欢迎来到天天文库
浏览记录
ID:14135387
大小:256.50 KB
页数:10页
时间:2018-07-26
《数值计算实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值计算方法实验实验名称:解线性方程组的迭代法班级:宿舍:成员:实验三解线性方程组的迭代法一、实验目的用雅克比和高斯-赛尔迭代法解线性方程组Ax=b,式中A为非奇异矩阵。再给定迭代初值的情况下,进行迭代,知道满足精度要求。二、实验方法(1)雅克比迭代法1、实验程序雅克比迭代法的MATLAB函数文件agui_jacobi.m如下。functionx=agui_jacobi(a,b)n=length(b);N=100;e=1e-4;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;d=diag(diag(a));l=-tril(a,-1);
2、u=-triu(a,1);whilenorm(x0-x,inf)>e&k>a=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]>>b=[0;5;-2;5;-2;6]>>x=agui_jacobi(a,b)4、实验结果截图该程序运行后得到一个错误的结果,如下图:5、实
3、验程序修改将实验程序中x0=zeros(n,1);修改为x0=b;,去掉n=length(b);后得下图源程序:得到结果为下图,仍然为错误结果(2)高斯-赛尔迭代法1、实验程序高斯-赛尔迭代法的MATLAB函数文件agui_gauss.m如下。functionx=agui_gauss(a,b)n=length(b);N=100;e=1e-4;x0=zeros(n,1);x=x0;x0=x+2*e;k=0;a1=tril(a);a2=inv(a1);whilenorm(x0-x,inf)>e&k4、a2*b;kdisp(x')endifk==Nwarning('已达最大迭代次数');end2、高斯-赛尔迭代法源程序3、在MATLAB命令窗口输入如下。>>a=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]>>b=[0;5;-2;5;-2;6]>>x=agui_gauss(a,b)4、实验结果截图一、结果分析通过计算机运用高斯-赛尔迭代法求解方程,要经过14次迭代,从而简化求解过程,得到结果。经过宿舍多次讨论并修改尝试,用雅克比迭代法求解方程,计算机编程计算中出现错误,得不到相5、应结果,因而无法比较迭代次数。
4、a2*b;kdisp(x')endifk==Nwarning('已达最大迭代次数');end2、高斯-赛尔迭代法源程序3、在MATLAB命令窗口输入如下。>>a=[4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14]>>b=[0;5;-2;5;-2;6]>>x=agui_gauss(a,b)4、实验结果截图一、结果分析通过计算机运用高斯-赛尔迭代法求解方程,要经过14次迭代,从而简化求解过程,得到结果。经过宿舍多次讨论并修改尝试,用雅克比迭代法求解方程,计算机编程计算中出现错误,得不到相
5、应结果,因而无法比较迭代次数。
此文档下载收益归作者所有