- 1、本文档共77页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
实验五解线性方程组的直接方法
实验5.1(主元的选取与算法的稳定性)
问题提出:Gauss消去法是我们在线性代数中已经熟悉的。但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss消去法作为数值算法的稳定性呢?Gauss消去法从理论算法到数值算法,其关键是主元的选择。主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
实验内容:考虑线性方程组
Ax=b,A∈R×”,b∈R
编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss消去过程。
实验要求:
(1)取矩阵,则方程有解。取n=10计算矩阵的条件数。让程序自动选取主元,结果如何?
(2)现选择程序中手动选取主元的功能。每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。
(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。重复上述实验,观察记录并分析实验结果。
思考题一:(Vadermonde矩阵)设
其中,,
(1)对n=2,5,8,计算A的条件数;随n增大,矩阵性态如何变化?
(2)对n=5,解方程组Ax=b;设A的最后一个元素有扰动10-4,再求解Ax=b
(3)计算(2)扰动相对误差与解的相对偏差,分析它们与条件数的关系。
(4)你能由此解释为什么不用插值函数存在定理直接求插值函数而要用拉格朗日或牛顿插值法的原因吗?
相关MATLAB函数提示:
zeros(m,n)生成m行,n列的零矩阵
ones(m,n)生成m行,n列的元素全为1的矩阵eye(n)生成n阶单位矩阵
rand(m,n)生成m行,n列(0,1)上均匀分布的随机矩阵
diag(x)返回由向量x的元素构成的对角矩阵
tril(A)提取矩阵A的下三角部分生成下三角矩阵
triu(A)提取矩阵A的上三角部分生成上三角矩阵
rank(A)返回矩阵A的秩
det(A)返回方阵A的行列式
inv(A)返回可逆方阵A的逆矩阵
[V,D]=eig(A)返回方阵A的特征值和特征向量
norm(A,p)矩阵或向量的p范数cond(A,p)矩阵的条件数
[L,U,P]=lu(A)选列主元LU分解R=chol(X)平方根分解
Hi=hilb(n)生成n阶Hilbert矩阵
5.1实验过程:
5.1.1程序:
functionx=gauss(n,r)
n=input(请输入矩阵A的阶数:n=)
A=diag(6*ones(1,n))+diag(ones(1,n-1),1)+diag(8*ones(1,n-1),-1)b=A*ones(n,1)
fori=1:4
p=input(条件数对应的范数是p-范数:p=)pp=cond(A,p)
end
pause
[m,n]=size(A);
nb=n+1;Ab=[Ab]
r=input(请输入是否为手动,手动输入1,自动输入0:r=)fori=1:n-1
ifr==0
[pivot,p]=max(abs(Ab(i:n,i));ip=p+i-1;
ifip~=i
Ab([iip],:)=Ab([ipi],:);disp(Ab);pause
endend
ifr==1
i=i
ip=input(输入i列所选元素所处的行数:ip=);Ab([iip],:)=Ab([ipi],:);disp(Ab);pause
end
pivot=Ab(i,i);fork=i+1:n
Ab(k,i:nb)=Ab(k,i:nb)-(Ab(k,i)/pivot)*Ab(i,i:nb);end
disp(Ab);pauseend
x=zeros(n,1);x(n)=Ab(n,nb)/Ab(n,n);fori=n-1:-1:1
x(i)=(Ab(i,nb)-Ab(i,i+1:n)*x(i+1:n))/Ab(i,i);end
5.1.2实验结果如下:
1.按照实验要求一:取矩阵A的阶数:n=10且自动选取主元,程序结果运行如下:
WindowCommandWindowCommand
WindowCommandWindow
条件数对应的范数是p-
条件数对
文档评论(0)