以下为《实验课4:解线性方程组的迭代法》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
实验课4:解线性方程组的迭代法
实验目标
1. 使用雅可比迭代法与Gauss-Serdel迭代法编程求解方程组.
2. 了解雅可比迭代法与Gauss-Serdel迭代法敛散性。
实验内容:
编写程序用雅可比迭代法与Gauss-Serdel迭代法计算方程组的解,要求精度为10-4。
5
2
1
?1
4
2
2
?3
10
??
1
??
2
??
3
=
?12
20
3
解:MATLAB程序如下:
%------------主程序-------------------
Format rat
A=[5,2,1;-1,4,2;2,-3,10];
b=[-12,20,3]';
[x1,n1]=Jacobi_4(A,b,[0;0;0],1.0e-4)
[x2,n2]=Gauseidel_4(A,b,[0;0;0],1.0e-4)
%----------子程序:雅可比迭代法---------------
function [y,n]=Jacobi_4(A,b,x0,ep)
max1= 300;
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
B=D\(L+U);
f=D\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
x0=y;
y=B*x0+f;
n=n+1 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 ]=Gauseidel_4(A,b,[0;0;0],1.0e-6)
%----------子程序:雅可比迭代法---------------
function [y,n]=Jacobi_4(A,b,x0,ep)
max1= 300;
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
B=D\(L+U);
f=D\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
x0=y;
y=B*x0+f;
n=n+1;
if (n>=max1)
disp('迭代次数超过300,方程组可能不收敛')
return;
end
end
%-------子程序:Gauss-Serdel迭代法---------------
function [y,n]=Gauseidel_4(A,b,x0,ep)
max1= 300;
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
B=(D-L)\U;
f=(D-L)\b;
y=B*x0+f;
n=1;
while norm(y-x0)>=ep
x0=y;
y=B*x0+f;
n=n+1;
if (n>=max1)
disp('迭代次数超过300,方程组可能不收敛')
return;
end
end
结果截图:
/
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《实验课4:解线性方程组的迭代法》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。