《数值分析》实验报告
第二章=解线性方程组的直接方法
2、试用MATLAB软件编程实现追赶法求解三对角方程组的算法,
并考虑梯形电阻电路问题,电路如下:
其中电路中的各个电流f2?…,珀}须满足下列线性方程组:
一耳十务一巧=0
一巧4■笃一為=0
一迢+呂一逼=0
一耳+兀_%=0
一爲+5% 一巧=0
-2f6+5f7-2f8 =0
-2i7+5r g=0
设F = 220V,氏= 27Q,运用求各段电路的电流量。
解:v!R = — «8_1481
27
上述方程组可用矩阵表示为:
・2_2000000h81481
_25_200000h0
0_25-20000h0
00_25_2000h0
000-25_200h0
0000_25-20S0
00000-25_2h0
000000-25?8.0
認翟蚁蛊
X
-p u a) A .H )q /(i p n .H )p T (.rH )p
T
二—二丄岂4
晒口®〈狠* A8)q
、
(8)PH(8)p
-p u a)
-U
—.H )
P
*-H )
F
(.H )
P A
.H )
P
丄)
y (.H )q A .H )q
Q
丄)q/u)y(2
晒口§前厂<
00
勺:。
4
坦祖咽鱼磋£紙夜
lll <
=0 0 0 0 0
0 0
T
畧
oo v
p 二甲
d — d —
甲甲甲
d —
v 。
二g
g g g
g g
g d v q
氏
—甲
甲甲甲甲
d — O V B
曲恥 qedelN
寸 61—<10905
30p ^
s
£0-
S S I
黑理q。
脅
u)
旺=味蛋二
迭代初始向量取评=(0, 0, 0, 0, 0)T o
解:实验步骤及程序、结果
取要求达到的精度f=i(r8。
以下程序中的丘均表示迭代次数。
(1) Jacobi迭代法MatLab源程序。
format long
4[10丄2,3,4;1,9厂1,2厂3;2厂1,7,3厂5;3,2,3,12厂1;4,-3厂
5厂1,15]; b=[12r27,14,-17,12];
x0=[0,0,0,0,0];xl=x0;
Nmax=1000;
k=0;
for i=l:5
sum=0;
for j=l:5
sum=sum+A(i,j) *x0 (j);
end;
end;
Nl(i)=(b(i)
end;
while abs(norm(x 1 -x0,inf))>le-8 &k<Nmax x0=xl;
for i=l:5
sum=0;
for j=l:5
sum=sum+A(i,j) *x0 (j);
end;
end; xl(i)=(b 诡
end;
k=k+l;
end;
xl
k
输岀结果=
xl =
1.0000000 -
2.0000000 2.8446139 -1.3335823 0.
k=88
迭代了88次。
(2)Gauss-Seidel 迭代法MatLab 源程序。
4[10丄2,3,4;1,9厂1,2,-3;2厂1,7,3厂5;323,12厂1;4,-3厂5厂
1,1习;
b=[12,-27,14,-17,12J;
xO=[O,O,O,O,O];xl=xO;
Nmax=1000;
k=l;sum=O;
for j=2:5
sum=sum+A( 1 ,j) *x0 (j);
end;
for i=2:4
sum=0;
forj=l:(i-l)
sum=sum+A(i,j) *x0 (j);
end;
xl(i)=b
sum=0;
forj=(i+l): 了
sum=sum+A(i,j) *x0 (j);
end;
xl(i)=(x 1 ①
end;
sum=0;
forj=l:4
sum=sum+A(5 ,j) *x0 (j); end;
xl(5)=(b(5)-sum)/A(5,5);
while abs(norm(x 1 -xO,inf))>le-8 & k<Nmax xO=xl;
sum=0;
for j=2:5
sum=sum+A( 1 ,j) *x0 (j);
end;
for i=2:4
sum=0;
for 尸1©1)
sum=sum+A(i,j) *x0 (j);
end;
xl(i)=b
sum=0;
for 尸(i+l):了
sum=sum+A(i,j) *x0 ①;
end;
xl(i)=(x 1 ①-sum)/A(i,i);
end;。