数值分析实验报告
实验五 线性方程组的迭代解法
5x12x2x382x18x23x321 x3x6x1231 应用雅可比迭代和高斯-塞德尔迭代算法解线性方程组
1、 分别建立雅可比迭代和高斯-赛德尔迭代M文件。 雅可比迭代M文件jacobi.m
function jacobi(a,b) n=length(b);
D0 = diag(a); D = diag(D0); U = triu(a,1); L = tril(a,-1)
BJ = inv(D)*(-L-U); f = inv(D)*b norm(BJ, inf);
x0 = zeros(n, 1); x1 = BJ*x0 + f; k = 1; while norm(x1-x0,inf)>0.001 x0 = x1; k = k + 1
x1 = BJ*x0 + f end
高斯-赛德尔迭代M文件seidel.m
function seidel(a,b)
n=length(b); D0 = diag(a); D = diag(D0); U = triu(a,1); L = tril(a,-1) Bg =- inv(D + L)*U; f = inv(D + L)*b; norm(Bg, inf); x0 = zeros(n, 1); x1 = Bg*x0 + f; k = 1; while norm(x1-x0,inf)>0.001
x0 = x1; k = k + 1
x1 = Bg*x0 + f end
2、输入方程组的增广矩阵
>> a=[5 2 1;2 8 -3;1 -3 -6] a =
5 2 1 2 8 -3 1 -3 -6 >> b=[8;21;1] b =
8 21 1
3、调用jacobi.m >> jacobi(a,b)
L =
0 0 0 2 0 0 1 -3 0 f =
1.6000 2.6250 -0.1667 k = 2 x1 =
0.5833 2.1625 -1.2125 k = 3 x1 =
0.9775 2.0245 -1.1507 k = 4 x1 =
1.0203 1.9491 -1.0160 k = 5 x1 =
1.0236 1.98 -0.9712 k = 6 x1 =
0.9987 2.0049 -0.9905 k =
7 x1 =
0.9961 2.0039 -1.0027 k = 8 x1 =
0.9990 2.0000 -1.0026 k = 9 x1 =
1.0005 1.9993 -1.0001 k = 10 x1 =
1.0003 1.9998 -0.9996
4、调用seidel.m >> seidel(a,b)
L =
0 0 0 2 0 0 1 -3 0 k = 2 x1 =
0.9125 2.0172 -1.0232 k = 3 x1 =
0.9978 1.9919 -0.9963 k = 4
x1 =
1.0025 2.0008 -1.0000 k = 5 x1 =
0.9997 2.0001 -1.0001 k = 6 x1 =
1.0000 2.0000 -1.0000
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务