- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 10 / 24
首次试做实验记录
实验中心(室): 年 月 日
实验课程名称 数值分析 面向专业 信息与计算科学 总学时数
实验项目名称
一、实验目的、要求
线性方程组的直接解法
实验学时
目的:掌握解线性方程组直接法(特别是顺序高斯消去法)的基本思想,熟悉其算法,加强编程能力和编程技巧,练习从数值分析的角度看问题。
要求:针对给定的实验题目,根据所学的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性。
二、实验原理
用高斯消去法解线性方程组的基本思想是设法消去方程组的系数矩阵A 的主对角线下的元素,而将线性方程组化为等价的上三角形方程组,然后再通过回代过程便可获得原方程组的解。
三、使用仪器、材料
计算机一台,Matlab、C、Mathematica 等软件。
四、实验内容:
用高斯消去法求解下列方程组Ax=b,其中
A =【2 2 2
3 2 4
1 3 】9 b =【1.0000
0.5000
2.5000】
五、实验过程原始记录(数据、图表、计算等)
Matlab 源代码:
function x =Gauss_solve(A, b) [n, n] = size(A);
for k = 1 : n-1 if A(k,k)==0
disp(A is singular,stop.)
end
for i = k+1 : n
mik = A(i, k) / A(k, k);
b(i) = b(i) - mik * b(k); for j=k+1:n
end
end
end
A(i, j) = A(i, j) - mik * A(k, j);
% back substitution x=zeros(n,1); x(n)=b(n)/A(n,n); for i=n-1:-1:1
sum=0;
for j=i+1:n
sum=sum+A(i,j)*x(j);
end
x(i)=(b(i)-sum)/A(i,i);
End
六、实验结果及分析
在命令窗口输入相关数据,运行上面定义的函数Gauss_solve
A=[2
A =
2
2;3
2
4;1 3 9]
2
2
2
3
2
4
1
3
9
b=[1;1/2;5/2]
b =
1.0000
0.5000
2.5000
x = Gauss_solve(A, b) x =
-0.5000
1.0000
0
结果分析:根据顺序高斯消去法的算法,使用Matlab 编写了程序,对所给的题目进行了求解。利用高等代数中的基本内容,我们可以看出该程序能够成功求解所给的线性方程组。
实验中心(室)验收审查意见
实验中心(室)主任签字:
首次试做实验记录
实验中心(室): 年 月 日
实验课程名称 数值分析 面向专业 信息与计算科学 总学时数
实验项目名称
一、实验目的、要求
线性方程组的迭代解法
实验学时
目的:掌握解线性方程组几种常见的迭代解法的基本思想,熟悉其算法,练习引入迭代矩阵的形式来解决方程组。
要求:针对给定的实验题目,根据所学的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性。
二、实验原理
用迭代法求解方程组的基本思想:首先对 A 进行分解,A=D-L-U,找出下三角阵 L,再找出上对角阵 U,还有主对角阵D,于是有
Jacobi 迭代法的矩阵形式的迭代公式为x=inv(D)*(L+U)*x+inv(D)*b Gauss-Seidel 迭代法的矩阵形式的迭代公式x=inv(D-L)*U*x+inv(D-L)*b
利用迭代即可在循环中实现的原则来完成此方程组的求解。注意在编程时也可使用分量形式的迭代公式。
三、使用仪器、材料
计算机一台,Matlab、C、Mathematica 等软件。
四、实验内容:
用 Jacobi 迭代法和G-S 迭代法求方程组: AX=b,其中
A =【10
-1
2
0
-1
11
-1
3
2
-1
10
-1
0
3
-1
】 8
b =【6
25
-11
15】
五、实验过程原始记录(数据、图表、计算等)
Jacobi 迭代法的 Matlab 源代码:
function [iter,x]=Jacobi(A,b,x0,eps,M) n=length(x0);
x=x0; iter=0; for k=1:M
for i=1:n
sum=0; for j=1:n
if j~=i
sum=sum+A(i,j)*x0(j%)x;0 stands for x_k
end
end
end
x(i)=(b(i)-sum)/A(i,i)%;
x stands for x_{k+1}
if norm(x-x0)eps iter=k;
return
end
end x0=x;
di
文档评论(0)