文档库 最新最全的文档下载
当前位置:文档库 › Gauss列主元消去法程序设计

Gauss列主元消去法程序设计

Gauss列主元消去法程序设计
Gauss列主元消去法程序设计

《Gauss列主元消去法》实验报告

实验名称:Gauss列主元消去法程序设计???成绩:_________

专业班级:数学与应用数学1202班?姓名:王晓阳???学号:

实?验?日?期:?2014?年11月10日

实验报告日期:?2014年?11月10日

一.实验目的

1. 学习Gauss消去法的基本思路和迭代步骤.

2. 学会运用matlab编写高斯消去法和列主元消去法程序,求解线性方程组.

3. 当绝对值较小时,采用高斯列主元消去法?

4. 培养编程与上机调试能力.

二、实验内容

用消去法解线性方程组的基本思想是用逐次消去未知数的方法把原线性方程组Ax二b 化为与其等价的三角形线性方程组,而求解三角形线性方程组可用回代的方法求解

1. 求解一般线性方程组的高斯消去法?

(1) 消元过程:

设a kk k-0 ,第i个方程减去第k个方程的m ik Tk k倍,("k 1^1, n),得到

A k1x=b k1.

经过n-1次消元,可把方程组A1^b1化为上三角方程组A n x=b n.

⑵回代过程:

以解如下线性方程组为例测试结果

2. 列主元消去法

由高斯消去法可知,在消元过程中可能出现a kk k =0的情况,这是消去法将无法进行, 即使主元素a kk k-0但很小时,用其作除数,会导致其他元素数量级的严重增长和舍入误差的扩散,最后也使得计算解不可靠.这时就需要选取主元素,假定线性方程组的系数矩阵A是菲奇异的.

(1)消元过程:

对于k =1,2,川,n -1,进行如下步骤:

1) 按列选主元,记

2) 交换增广阵A的p,k两行的元素

A(k,j)=A(p,j) ( j=k,…,n +1)

3) 交换常数项b的p,k两行的元素。

b(k)=b(p)

4) 计算消元

(2) 回代过程

(3) 以解如下线性方程组为例测试结果

三、实验环境

MATLAB R2014a

四、实验步骤

1.高斯列主元消去法流程图:

计算消

回代

“输出线性方

程组的解

结束2.程序设计:

(一)高斯消去法: a=input('请输入系数阵:’);

b=input('请输入常数项:’);

n=len gth(b);

A=[a,b];

x=zeros(n,1);

%初始值

for k=1:n-1

for i=k+1:n %第k 次消元

m(i,k)=A(i,k)/A(k,k);

for j=k+1:n

A(i,j)=A(i,j)-A(k,j)*m(i,k);

end

b(i)=b(i)-m(i,k)*b(k);

end

end

x(n)=b(n)/A(n,n); %回代

for i=n-1:-1:1;

s=0;

for j=i+1:n;

s=s+A(i,j)*x(j);

end

x(i)=(b(i)-s)/A(i,i)

end

( 二) 高斯列主元消去法:a=input( ' 请输入

系数阵:' );

b=input( ' 请输入常数项:' );

n=length(b);

A=[a,b];

x=zeros(n,1); %初始值

for k=1:n-1

if abs(A(k, k))<10(4);

y=1

%判断是否选主元

else

y=0; end

if y; %选主元

for i=k+1:n;

if abs(A(i,k))>abs(A(k,k))

p=i;

else p=k;

end

end

if p~=k;

for j=k:n+1;

s=A(k,j);

A(k,j)=A(p,j); %交换系数

A(p,j)=s;

end

t=b(k);

b(k)=b(p); %交换常数项

b(p)=t;

end end for i=k+1:n

m(i,k)=A(i,k)/A(k,k); % 第k 次消元for j=k+1:n

A(i,j)=A(i,j)-A(k,j)*m(i,k);

end

b(i)=b(i)-m(i,k)*b(k);

end end

1

x =

x(n)=b(n)/A(n,n); %回代

for i=n-1:-1:1;

s=0;

for j=i+1:n; s=s+A(i,j)*x(j); end x(i)=(b(i)-s)/A(i,i) end

五、实验结果Gauss1

请输入系数阵:[10,-7,0;-3,2,6;5,-1,5]

请输入常数项:[7;4;6]

x =

-1.0000

1.0000

x =

-0.0000

-1.0000

1.0000

X=(0 ,-1 ,1)

Gauss2

请输入系数阵:[10八(-5),1;2,1]

请输入常数项:[1;2]

y =

0.5000

1.0000

X= (0.5 , 1)

相关文档