计算方法实验12
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十二
阅读理解下列程序,并在计算机上运行
1. Jacobi迭代程序求方程组A x=b的解
jacob.m
function [y,k]=jacob(A,b,x,ep,n)
% x为初值向量,ep为精度,n为最大迭代次数
D=diag(diag(A));L=tril(A,-1);U=triu(A,1);
G=-D\(L+U);d=D\b;
for k=1:n
y=G*x+d;
if norm(y-x,inf) break end x=y; end if k==n disp(‘迭代失败’) end 2. Gauss-Seidel迭代程序求方程组A x=b的解 gaus.m function [y,k]=gaus(A,b,x,ep,n) % x为初值向量,ep为精度,n为最大迭代次数 D=diag(diag(A));L=tril(A,-1);U=triu(A,1); G=-(D+L)\U;d=(D+L)\b; for k=1:n y=G*x+d; if norm(y-x,inf) break end x=y; end if k==n disp(‘迭代失败’) end 3. SOR迭代程序求方程组A x=b的解 sor.m function [y,k]=sor(A,b,x,ep,w,n) % x为初值向量,ep为精度,n为最大迭代次数,w为松弛因子D=diag(diag(A));L=tril(A,-1);U=triu(A,1); B=(D+w*L)\b;G=(D+w*L)\((1-w)*D-w*U); for k=1:n y=G*x+w*B; if norm(y-x,inf) break end x=y; end if k==n disp(‘迭代失败’) end