文档详情

Gauss列主元消去法程序设计说明书.docx

发布:2024-06-26约2.89千字共9页下载文档
文本预览下载声明

word格式文档

word格式文档

专业整理

专业整理

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

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

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

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

一.实验目的

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

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

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

kk

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

二、实验内容

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

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

(1)消元过程:

设a ?k??0,第i个方程减去第k个方程的m

kk ik

?a?k?/a

ik kk

?k?倍,

(i?k?1, ,n),得到A?k?1?x?b?k?1?.

??a

?k?1??a

?k??m

a?k?,?i,j?k?1,

,n?

?ij

ij ik kj

??b?k?1??b?k??m

b?k?

i i ikk

经过n-1次消元,可把方程组A?1?x?b?1?化为上三角方程组A?n?x?b?n?.(2)回代过程:

?x ?b?n?/a

?n?

?n n nn

?x??b????n

a??x

?/a??,i?n?1, ,1

?? ? i i ? i

?

?i ?

i ij j ii

j?i?1

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

?10x?7x ?7

??31?22?6 ?4

? x x x

?5 1 2 3

?x?x?5x ?6

1 2 3

列主元消去法

由高斯消去法可知,在消元过程中可能出现a

kk

?k??0的情况,这是消去法将

无法进行,即使主元素a

kk

?k??0但很小时,用其作除数,会导致其他元素数量级

的严重增长和舍入误差的扩散,最后也使得计算解不可靠.这时就需要选取主元素,假定线性方程组的系数矩阵A是菲奇异的.

消元过程:

对于k?1,2, ,n?1,进行如下步骤:

按列选主元,记

a ?max a

pk ik

k?i?n

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

A(k,j)=A(p,j)(j=k,…,n+1)3)交换常数项b的p,k两行的元素。

b(k)=b(p)

4)计算消元

??a

?k?1??a

?k??m

a?k?,?i,j?k?1,

,n?

?ij

ij ik kj

??b?k?1??b?k??mb

?k?

i i ikk

回代过程

?x ?b?n?/a

?n?

?n n nn

??x??b????n

?

a??x

?/a??,i?n?1, ,1

??

?

?i ?

i i ? i

i ij j ii

j?i?1

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

??0.00001x?x ?1

?

1 2

2?x?x ?2

2

?

1 2

三、实验环境

MATLABR2014a

四、实验步骤

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

开始

开始

输入系数阵a

和常数项b

按列选主元

交换元素

计算消元

回代

输出线性方程

组的解

结束

程序设计:

(一)高斯消去法:

a=input(请输入系数阵:);b=input(请输入常数项:);n=length(b);

A=[a,b];

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

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

forj=k+1:n

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

endend

end

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

x(n)=b(n)/A(n,n); %回代fori=n-1:-1:1;

s=0;

forj=i+1:n;

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

end

end

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

(二)高斯列主元消去法:a=input(请输入系数阵:);b=input(请输入常数项:);n=length(b);

A=[a,b];

x=zeros(

显示全部
相似文档