一、
实验名称:
线性方程组高斯消去法.
二、
实验目的:
进一步熟悉理解
Guass
消元法解法思路,提高
matlab
编程能力.
三、
实验要求:
已知线性方程矩阵,
利用软件求解线性方程组的解.
四、
实验原理
:
消元过程:
设
0
)
0
(
11
a
,令乘数
)
0
(
11
)
0
(
1
1
/
a
a
m
i
i
,做(消去第
i
个方程组的
i
x
)
操作
1
i
m
×第
1
个方程
+
第
i
个方程(
i=2
,
3
,
.n
)
则第
i
个方程变为
1
)
1
(
2
)
1
(
2
...
i
n
in
i
b
x
a
x
a
这样消去第
2
,
3
,
.
.
.
,
n
个方程的变元
i
x
后.原线性方程组变
为:
)
1
(
)
1
(
2
)
1
(
2
)
1
(
2
)
1
(
2
2
)
1
(
22
)
0
(
1
)
0
(
1
1
)
0
(
11
...
.
.
...
...
n
n
nn
n
n
n
n
n
b
x
a
x
a
b
x
a
x
a
b
x
a
x
a
这样就完成了第
1
步消元.
回代过程:
在最后的一方程中解出
n
x
,得:
)
1
(
)
1
(
/
n
nn
n
n
n
a
b
x
再将
n
x
的值代入倒数第二个方程,
解出
1
n
x
,
依次往上反推,
即
可求出方程组的
其通项为
3,...1
-
n
2,
-
n
k
/
)
(
)
1
(
1
)
1
(
)
1
(
k
kk
n
k
j
j
k
kj
k
k
k
a
x
a
b
x
五、实验内容:
function
maintest2
clc
clear
all
A=[1 3 4;2 4 5;1 4 6];
%
系数矩阵
b=[1 7 6]'
%
常数项
num=length(b)
for
k=1:num-1
for
i=k+1:num
if
A(k,k)~=0
l=A(i,k)/A(k,k);
A(i,:)=A(i,:)-A(k,:).*l;
b(i)=b(i)-b(k)*l;
end
end
end
A
b
%
回代求
x
x(num)=b(num)/A(num,num);
for
i=num-1:-1:1
sum=0;
for
j=i+1:num
sum=sum+A(i,j)*x(j);
end
x(i)=(b(i)-sum)/A(i,i);
end
x
End
六、实验结果:
A =
1.0000
3.0000
4.0000
0
-2.0000
-3.0000
0
0
0.5000
b =
1.0000
5.0000
7.5000
x =
16
-25
15