数值分析实验报告(包括高斯消去二分法牛顿迭代法).docVIP

数值分析实验报告(包括高斯消去二分法牛顿迭代法).doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数值分析实验报告(包括高斯消去二分法牛顿迭代法)

 PAGE \* MERGEFORMAT 6 开课学院、实验室: 实验时间 : 2014 年 1 月 1 日 课程 名称数值分析基础性实验实验项目 名 称数值计算算法及实现实验项目类型验证演示综合设计其他指导 教师成 绩√实验报告一:Gauss列主元消去法求解方程组 算法 选主元,对确定,使,若,停机. 若转(3),否则换行 若,输出无解信息,停机. 回代求解 输出解. Matlab源程序 function x=gausscolumn(A,b) %解Ax=b的高斯列主元消去法 [m,n]=size(A); if m~=n error(输入错误,系数矩阵只能是方阵) end if n~=length(b) error(输入错误,常数项的个数应与方程的个数相同) end x=zeros(1,n); for k=1:(n-1) %选主元 [m,r]=max(abs(A(k:n,k))); r=k+r-1; %判断A是否为奇异阵 if m==0 disp(A是奇异阵,请重新输入非奇异阵); return end %交换增广矩阵的行 if rk temp=A(k,:);A(k,:)=A(r,:);A(r,:)=temp; c=b(k);b(k)=b(r);b(r)=c; end %进行初等行变换使主元下面的元素为0 for i=(k+1):n for j=k+1:n A(i,j)=A(i,j)-A(i,k)/A(k,k)*A(k,j); end b(i)=b(i)-A(i,k)/A(k,k)*b(k); A(i,k)=0; end end %解上三角方程组 if A(n,n)==0 disp(A是奇异阵,请重新输入非奇异阵); return else x(n)=b(n)/A(n,n); end for p=(n-1):-1:1 for j=(p+1):n x(p)=(b(p)-A(p,j)*x(j))/A(p,p); end end 结果讨论及分析 用课本P13的例2.2对上述程序加以验证:求解线性方程组 用matlab调用gausscolumn.m求解方程组,界面显示如下: A=[0.50 1.1 3.1; 2.0 4.5 0.36; 5.0 0.96 6.5]; b=[6.0 0.020 0.96]; gausscolumn(A,b) ans = -2.6000 1.0000 2.0000 (inv(A)*b) ans = -2.6000 1.0000 2.0000 在此例中,利用inv(A)*b可得到精确解,且通过程序得到的解和精确解一致,验证了程序的正确性。 结果分析:列主元消去法相对于Gauss顺序消去法多了选主元这个方法,避免了零主元和小主元的出现,从而保证Gauss消去法能进行下去或保证方程组解的数值稳定性。从上例中对比课本给出的顺序消去法的结果即可得出此结论。 实验报告二:二分法求解非线性方程的根 算法 输入函数、根的存在区间、误差限、最大的迭代次数 对做到第5步; ; ; 若或,则输出,停机;否则 若,则,否则; 输出超过最大迭代次数的信息,停机。 Matlab源程序 function [k,x,fx]=dichotomy(f,a,b,e,N) %输入函数f,根的存在区间[a,b],误差限e,最大迭代次数N f=input(please enter a function:f(x)=); a=input(please enter the initial value:a=); b=input(b=); e=input(please enter error:e=); N=input(please enter the largest number of iterations:N=); for k=1:N x=(a+b)/2; fx=feval(f,x);fa=feval(f,a); if abs((b-a)/2)e || abs(fx)e disp

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档