计算方法实验12

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档