数值分析第八次实验报告
姓名:董安葳
学号:5123119
题目:雅克比迭代法、高斯—赛德尔迭代法
实验方法:
本人通过学习雅克比迭代法和高斯—赛德尔迭代法,理解算法的本质,上机编写代码并调试,最终得到两个程序。
实验过程:
1、雅克比迭代:
function x=yakebi(A,b,p,wucha) %A是系数矩阵,b是常数向量,p是范数类型,wucha是限制的精度
[m,n]=size(A);
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
if det(D)==0
error('ÎÞ½â')
end
B=(D^-1)*(L+U);
f=(D^-1)*b;
x=zeros(n,1);
c=50; %设定迭代次数为50次
for ii=1:c
x1=(B*x+f);
shijiwucha=norm(x1-x,p);
if(shijiwucha
break;
else
x=x1;
end
end
2、高斯—赛德尔迭代
function x=gaosisaideer(A,b,p,wucha)
[m,n]=size(A);
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
if det(D)==0
error('ÎÞ½â')
end
B=((D-L)^-1)*U;
f=((D-L)^-1)*b;
x=zeros(n,1);
c=50; %设定迭代次数为50次
for ii=1:c
x1=((D-L)^-1)*(U*x+b);
shijiwucha=norm(x1-x,p);
if(shijiwucha
break; % A是系数矩阵,b是常数向量,p是范数类型,wucha是限制的精度
else
x=x1; end end
实验截图: