数值计算方法课程设计

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

重庆邮电大学

数学与应用数学 专业

《数值计算方法》课程设计

姓名: 李金徽 王莹 刘姝楠

班级: 1131001 1131002 1131002 学号: 2010213542 2010213570 2010213571

设计时间:

2012-6-4

指导教师:

朱伟

一、课程设计目的

在科学计算与工程设计中,我们常会遇到求解线性方程组的问题,对于系数矩阵为低阶稠密矩阵的线性方程组,可以用直接法进行消元,而对于系数矩阵为大型稀疏矩阵的情况,直接法就显得比较繁琐,而迭代法比较适用。比较常用的迭代法有Jacobi 迭代与Gauss - seidel 迭代。本文基于两种方法设计算法,并比较他们的优劣。

二、课程设计内容

给出Jacobi 迭代法和Gauss-Seidel 迭代法求解线性方程组的算法思想和MATLAB 程序实现,并对比分析这两种算法的优劣。

三、问题的分析(含涉及的理论知识、算法等)

Jacobi 迭代法

方程组迭代法的基本思想和求根的迭代法思想类似,即对于线性

方程组Ax = b( 其中n

n n R b R R A ∈⨯∈,),即方程组

)1(2211222221211

1212111⎪⎪

⎩⎪⎪⎨

⎧=+⋯++⋯⋯=+⋯++=+⋯++n

n nn n n n n n n b x a x a x a b x a x a x a b x a x a x a

将系数矩阵A 写为

)2(000000

21122

12122

11U

L D a a a a a a a a a A n n n n nn --≡⎪⎪⎪

⎪⎪

⎫ ⎝⎛----

⎪⎪⎪⎪⎪⎭⎫

⎝⎛----⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=

若选取D M =,则U L A M N +=-=,方程组)1(转化为等价方程组

b x U L Dx ++=)(

迭代公式:

于是,得可逆,所以因为Jacobi b D x U L D x D n i a ii .)(),,,1(011--++==≠

)

3()()()1()

0(⎪⎩

⎪⎨⎧+=+f x B x x k J k 初始向量

迭代公式的分量形式:

)(其中,迭代矩阵Jacobi b D f U L D B J 11

-,-=+=

)可写为次近似,则式(为第引进记号:3),,,()()(2)(1)(k x x x x T

k n k k k =

∑≠=+-=n

i

j j k j ij i k i

ii x a b x

a 1)

()

1(

)

4(),2,1,0;,2,1(,),,,(1

)()1()0()0(2)0(1)0(⎪⎪⎩

⎪⎪⎨

⎧==-==∑≠=+ k n i a x a b x x x x x ii n

i j j k j ij i k i

T

n ,

为其精度||||)()1(k k x x -+。

Gauss-Seidel 迭代法

的等价方程组为

方程组下三角矩阵),于是若取)1(.(U A M N D L M =-=-=

b

Ux x L D +=-)(

赛德尔迭代公式:于是,得到高斯-

(初始向量)5()()1()

0(⎪⎩

⎪⎨⎧+=+f x B x x k G k

阵。赛德尔迭代法的迭代矩为解方程组的高斯称。

其中,-)(,)(11G G B b L D f U L D B ---=-=

)可写成

公式(记5,)()(2)(1),,,()

(x x x x

k n k k T

k =

b

U

x L D x

k k +=-+)

()1()(

b x

a x a x

a i

k j

n

i j ii

k j

i j ii k i

ii

+-

-=∑∑+=+-=+)(1

)

1(1

1

)1(

⎪⎪⎪⎪

⎩⎪⎪

⎪⎪⎨⎧==--=

=∑∑+=+-=+),2,1,0;,2,1(),,,(1)

()1(11)1()0()0(2)0(1)0( k n i x x a b x x x x x ii n i j k j k j i j ii i k i T

n

,或

算法步骤: Jacobi 步骤

第一步:输入A ,b,x0,e 的初始值

第二步:求出b 的长度,和A 的大小;判断输入变量的个数,使x 与x0之间产生差值,设定x x x x k k ==+,0)1(,给定k 的初始值; 第三步:求出上下三角矩阵进而求出对角矩阵的逆;

第四步:求出谱半径,当谱半径小于一时,用while 循环,当满足

e x x k k >-∞+||||)1(时,

k=k+1;),2,1,0;,,2,1(,1)

()1( ==-=

∑≠=+k n i a x a b x

ii

n

i

j j k j ij i k i

若谱半径不小于一,则迭代法发散。 Gauss-Seidel 步骤:

第一步:输入A ,b,x0,e 的初始值

第二步:求出b 的长度,和A 的大小;判断输入变量的个数,使x 与x0之间产生差值,设定x x x x k k ==+,0)1(,给定k 的初始值;

相关文档
最新文档