线性方程组的数值解法实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

线性方程组的数值解法

实验

题目

用Gauss消元法和Seidel迭代法求线性方程组的解。

实验目的

通过本次实验了解Gauss消元法和Seidel迭代法的基本原理,掌握其算法,学会用Matlab编程进行计算,并能用这些方法解决实际问题。

Gauss 顺序消元法的基本原理算法:

(1)输入:,.

A b

(2)对1,2,,1

k n

=⋅⋅⋅-做

1)if0

kk

a=then输出算法失败信息,停机;

2)对1,,

i k n

=+⋅⋅⋅做

1/;

ik ik ik kk

a l a a

←=

2;

i i ik k

b b l b

=-

3对1,,

j k n

=+⋅⋅⋅做;

ij ij ik kj

a a l a

=-

(3)if0

nn

a=then输出算法失败信息,并停机else做

1)/;

n n n nn

b x b a

←=

2)对1,,2,1

i n

=-⋅⋅⋅做

1

()/;

n

i i i ij j ii

j i

b x b a x a

=+

←=-∑

(4)输出方程组的解.X

流程图见附页

Seidel 迭代法的基本原理算法:

(1)输入:,;

A b

(2)输入:初始解向量

;x

(3)对1,2,,

i n

=⋅⋅⋅做

1)

1

()/;

n

i i ij j ii

j

j i

y b a x a

=

=-∑

2);

i i i

e y x

=-

3);

i i

x y

=

(4)if

1

{||}

max i

i n

≤≤

i

x i n

=⋅⋅⋅停机;else返回第(3)步。

Gauss 顺序消元法的实验步骤步骤:

(1)利用Gauss顺序消元法设计主程序:

①根据RB RA

-的值判断方程组是否有解,当RB RA

>时方程组无解,当RB RA n

==时方程组有唯一解,当RB RA n

=<时,方程组有无穷多解;

②根据公式

(1)()()

(1)()()

(,1,,)

(1,,)

k k k

ij ij ik kj

k k k

i i ik k

a a l a i j k n

b b l b i k n

+

+

=-=+⋅⋅⋅

=-=+⋅⋅⋅

将增广矩阵[,]

B A b

=化为上三角形矩阵;

(2)建立.

backsub m文件;

(3)调用.

backsub m文件,在Matlab命令窗口输入,A b矩阵,再输入[,,,](,)

RA RB n X gaus A b

=,进行Matlab实现得出方程的解。

Seidel 迭代法的实验步骤步骤:

(1)利用Seidel迭代法设计主程序:

①确定精确度;ε

②当<

err relerr

εε

<或时,

(ⅰ)若=1,

j则 X(1)=(b(1)-A(1,2:n)*P(2:n))/A(1,1);

(ⅱ)若=,

j n则 X(n)=(b(n)-A(n,1:n-1)*(X(1:n-1))')/A(n,n);

(ⅲ)对于2,3,,1

j n

=⋅⋅⋅-

X(j)=(b(j)-A(j,1:j-1)*X(1:j-1)'-A(j,j+1:n)*P(j+1:n))/A(j,j);

(2)在Matlab命令窗口输入

,,

A b x矩阵,再输入

(,,,0.0005,15)

Seidel A b x,进行Matlab实现得出方程的解,输出X。

Gauss 顺序消元法的Matlab 原代码

Gauss 顺序消元法的实验结果在Matlab命令窗口输入:

A=[-2 1 1;1 -2 1;1 1 -2] ;

[1;2;4];

b=-

[,,,](,)

RA RB n X gaus A b

=

A=[1 1 1;1 1 1;1 1 1] ;

[1;1;1];

b=

[,,,](,)

RA RB n X gaus A b

=

结果显示:

在Matlab命令窗口输入:

A=[2 1 1;1 2 1;1 1 2] ;

b=

[1;2;4];

=

[,,,](,)

RA RB n X gaus A b 结果显示:

相关文档
最新文档