MATLAB小论文

  • 格式:doc
  • 大小:102.00 KB
  • 文档页数:6

实用数值方法(Matlab)

小论文题目:线性方程组的迭代法在热力学的应用

小组成员姓名: 学号: 班级:

姓名: 学号: 班级:

2008-2009(1)学期

提交日期:2008年 12 月 日

线性方程组的迭代法在热力学的应用

线性方程组中含有多个变元,中学数学里人们早已熟知,当变元个数不多时线性方程组的求解是容易的。问题在于,科学与工程计算中所归结出的线性方程组,其变元个数可能高达几万甚至几百万,一般形式乃至大规模的线性方程组如何求解呢?

求解大规模的线性方程组主要用迭代法。迭代法的设计思想是将“复杂”化归为“简单”的重复。这里面的问题是,相对于形式复杂的方程组,其所对应的“简单”是指什么样的计算模型呢?

Jacobi迭代与Gauss-Seidel迭代是两种基本的迭代法,下面以Gauss-Seidel迭代法为例。

Gauss-Seidel迭代

先考察三阶方程组

3313323213123232221211313212111bxaxaxabxaxaxabxaxaxa设令其左端仅保留下三角成分,而将其余成分挪到右端,则可改写成如下“伪三角形式”:

333323213132322221213132121111bxaxaxaxabxaxaxaxabxa依据这一等价形式可设计出迭代法

3)1(333)1(232)1(131)(3232)1(222)1(121)(313)(2121)1(111bxaxaxaxabxaxaxaxabxakkkkkkkkk它可以看作是关于迭代值)1(3)1(2)1(1,,kkkxxx的下三

角方程组,用回代发求解,其回代公式

称作求解方程组的Gauss-seidel公式.

进而讨论一般形式的方程组。令其左端仅保留下三角成分,将其余成分挪到右端,而加工成如下“伪三角形式”:

nixabxanijjijiijjij,,2,1,11

据此设计出迭代法

nijkjijiijkjijxabxa1)(1)1(

这是关于迭代值)1(kix的下三角方程组,自上而下逐步回代即可顺利求出

)1()1()1(1)1(2)1(1knkikikkxxxxx 33)1(232)1(1313)1(322)(323)1(1212)1(211)(313)(2121)1(1/(/)(/)(axaxabxaxaxabxaxaxabxkkkkkkkkk其求解公式

niaxaxabxijnijkjijijkjijiki,,2,1,/)(1)(11)1()1(

称为求解方程组的Gauss-Seidel公式。

下面取《传热学》中求解边界节点离散方程中应用

有一各同性材料的方形物体,其导热系数为常熟。已知各边界的温度如图1-1所示,试用高斯—赛德尔迭代求其内部网格节点1、2、3和4的温度。

解题

分析:这是一个三维稳态导热问题。对于物体内部每个网格节点的温度,

式02221,,1,2,1,,1ytttxtttnmnmnmnmnmnm的关系适用。从形式上看,式中主对角元nmt,的系数正好等于4个邻点的系数之和。但注意到,对所有计算的问题每个节点都有两个邻点的边界点,其温度值是已知的。在写成代数方程的通用形式时,温度值已知的项应该归入常数项b中,故主对角元的系数大于邻点系数之和的要求仍然满足,迭代法可以获得收敛的结果。

图1-1 方形物体的网格示意图

计算; 假设ctt300)0(2)0(1,ctt200)0(4)0(3。应用02221,,1,2,1,,1ytttxtttnmnmnmnmnmnm,按高斯—赛德尔迭代得

)100500(41)0(3)0(2)1(1ttcct cc275)200300100500(41

)100500(41)0(4)0(1)1(2ttcct

cc75.268)200275100500(41

)100100(41)0(4)0(1)1(3ttcct

cc75.168)200275100100(41

)100100(41)0(3)0(2)1(4ttcct

cc38.15975.16875.268100100(41

依次类推,可得其他各次迭代值。第1~5次迭代值汇总于下表。其中第5与第6次迭代的相对偏差)()1()(maxkikikittt已小于4102,迭代终止。

MATLAB文件

令A=[4,-1,-1,0;-1,4,0,-1;-1,0,4,-1;0,-1,-1,4];

b=[600

600

200

200];

x0=[300

300

200

200];

[x,k]=Gaussmethod(A,b,x0,100,10^-4)

运行结果为

迭代次数 ct/1 ct/2 ct/3 ct/4

0 300 300 200 200

1 275 268.75 168.75 159.38

2 259.38 254.68 154.69 152.35

3 252.35 251.18 151.18 150.59

4 250.59 250.30 150.30 150.15

5 250.15 250.07 150.07 150.04

6 250.04 250.02 150.02 150.01

参考文献

1 杨世铭 陶文铨编著. 传热学.北京:高等教育出版社,2006

2 王能超 编著.计算方法-算法设计及其MATLAB实现.北京:高等教育出版社 2206