实验课4:解线性方程组的迭代法

本文由用户“szm0312”分享发布 更新时间:2022-05-05 09:20:08 举报文档

以下为《实验课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:解线性方程组的迭代法》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览