消去法等解线性方程组(一)论文.docx

上传人:b****1 文档编号:264050 上传时间:2022-10-08 格式:DOCX 页数:23 大小:357.01KB
下载 相关 举报
消去法等解线性方程组(一)论文.docx_第1页
第1页 / 共23页
消去法等解线性方程组(一)论文.docx_第2页
第2页 / 共23页
消去法等解线性方程组(一)论文.docx_第3页
第3页 / 共23页
消去法等解线性方程组(一)论文.docx_第4页
第4页 / 共23页
消去法等解线性方程组(一)论文.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

消去法等解线性方程组(一)论文.docx

《消去法等解线性方程组(一)论文.docx》由会员分享,可在线阅读,更多相关《消去法等解线性方程组(一)论文.docx(23页珍藏版)》请在冰豆网上搜索。

消去法等解线性方程组(一)论文.docx

消去法等解线性方程组

(一)

消去法等解线性方程组

(一)

中文摘要

Gauss消去法是目前求解中小规模线性方程组(即阶数不要太高,例如不超过1000)常用的方法,它一般用于系数矩阵稠密(即矩阵的绝大多数元素都是非零的)而没有任何特殊结构的线性方程组。

本文对GAUSS、列主元及完全主元消去法这几种方法进行了比较。

求解n阶线性方程组Ax=b的基本思想是在逐步消元的过程中,把方程组的系数矩阵化为上三角矩阵,从而将原方程组约化为容易求解的等价三角方程组,然后进行回代求解。

关键词:

Gauss消去法;C++编程

ELIMINATIONMETHODFORSOLVINGLINEAREQUATIONS

(一)

ENGLISHABSTRACT

Gausseliminationmethodisthesmallsizeofsolvinglinearequations(i.e.theorderisnottoohigh,forexample,notmorethan1000)commonlyusedmethod,itisgenerallyusedforthecoefficientmatrixdense(ie,mostofthematrixelementsarenonzero)withoutanyspecialstructureoflinearequations.Inthispaper,GAUSS,themainelementandcompletelyEliminationPCAthesemethodswerecompared.SolvingnlinearequationsAx=bisthebasicideaofthegradualeliminationprocess,theequationsofthecoefficientmatrixintouppertriangularmatrix,thusreducedtotheoriginalequationseasytosolvetrigonometricequationsequivalencegroupthenbacksubstitutiontosolve.

Keywords:

Gausseliminationmethod;C++Programming

目录

消去法等解线性方程组

(一) 1

目录 3

一、问题背景 4

二、问题提出 5

三、数学原理与算法分析 5

3.1不选主元Gauss消去法 5

3.1.1不选主元Gauss消去法数学原理 5

3.1.2不选主元Gauss消去法算法步骤 6

3.2列主元Gauss消去法 7

3.2.1列主元Gauss消去法数学原理 7

3.2.1列主元Gauss消去法算法描述 8

3.3完全主元Gauss消去法 8

3.3完全主元Gauss消去法数学原理 8

3.3.1算法描述如下 10

3.4计算结果及敏度分析 11

四、其他方法 13

五、参考文献 14

六、附录 15

一、问题背景

在古代数学和近代数学数值计算和工程应用中,求解线性方程组都是重要的课题。

西方的Gauss消元法在求解未知数多的大型线形方程组则是在20世纪中叶电子计算机问世后才成为现实。

这次实验将充分运用各种数值计算方法,及计算机的强大数值计算功能来解决所遇到的问题。

数学上,高斯消元法,是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。

其基本思路如下:

设有方程组Ax=b,设A是可逆矩阵。

将矩阵的初等行变换作用于方程组的增广矩阵,将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组

高斯消元法的算法复杂度是O(n3),这就是说,如果系数矩阵的是n×n,那么高斯消元法所需要的计算量大约与n3成比例。

高斯消元法对于一些矩阵来说是稳定的。

对于普遍的矩阵来说,高斯消元法在应用上通常也是稳定的,所以本次课程设计采用GAUSS、列主元及完全主元消去法求解线性方程组。

二、问题提出

先用你所熟悉的计算机语言将不选主元、列主元和完全主元Gauss消去法编写成通用的子程序,然后用你编写的程序求解下面的方程组(考虑从70到80)

对上述方程组还可以采用哪些方法求解?

选择其中一些方法编程上机求解上述方程组,说明最适合的是什么方法;将计算结果进行比较分析,谈谈你对这些方法的看法。

三、数学原理与算法分析

3.1不选主元Gauss消去法

3.1.1不选主元Gauss消去法数学原理

Gauss消去法即是把一个给定的矩阵分解为一个下三角L和一个上三角U的乘积。

为此我们找到了一个最简单的下三角矩阵.其中

(1)

这种类型的下三角称作Gauss变换。

而称向量为Gauss向量。

对于一个给定的向量,我们有只要取,便有。

于是将Gauss变换作用于一个矩阵,就将对应的列向量相应项变为0。

一般的阶矩阵A,在一定条件下,我们也可以计算n-1个Gauss变换使

为上三角矩阵。

,这种计算主元分解的方法称做Gauss消去法。

LU分解的可行性分析:

若的顺序主子阵均非奇异,则存在唯一的单位下三角和上三角阵使得对于题1中,我们可以通过高等代数的方法计算出对于**.0,也即存在唯一性。

3.1.2不选主元Gauss消去法算法步骤

步骤1,首先将方程组用增广矩阵表示。

步骤2:

(1)输入数据A和b,置det=1;

(2)消元过程,对

a、选主元,找使得;

b、如果,则矩阵奇异,程序结束;否则执行(3)。

c、如果,则交换第行与第行对应元素位置,,。

d、消元,对,计算对,计算:

(2)

(3)

e、置det=*det

步骤3:

回代过程:

(1)若则矩阵奇异,程序结束;否则执行

(2)。

(2)对,计算

3.2列主元Gauss消去法

3.2.1列主元Gauss消去法数学原理

每次消去中,选取每列的绝对值最大的元素作为消去对象并作为主元素。

然后换行使之变到主元位子上,在进行消元计算。

设,确定第k列主元所在位置,在交换行和k行后,在进行消元。

根据矩阵理论,交换和k两个方程的位置,列主元素的消去过程相当于对交换后的新矩阵进行消元,即

(4)

同时,右端向量变化为

(5)

3.2.1列主元Gauss消去法算法描述

如果在高斯顺序消去法消去过程进行到第i步时,现选取中绝对值最大的元素,设为第j行的元素,把矩阵的第i行和第j行互换,这时变为,然后将第i+1行至第n行中的每一行减去第i行乘以(k代表行号),依次进行消元。

Gauss列主元消去法的算法步骤如下:

步骤1:

将方程组写成以下的增广矩阵的形式:

(6)

步骤2:

对k=1,2,3,...,n-1,令;交换增广矩阵的第k行与第p行;

步骤3:

对j=k+1,k+2,...,n,计算(m=看,k+1,...,n)

步骤4:

算法结束。

3.3完全主元Gauss消去法

3.3完全主元Gauss消去法数学原理

设方程组的增广矩阵为

(7)

首先在中选取绝对值最大的元素作为主元素,例如,然后交换的第行与第行,经第一次消元计算得

(8)

重复上述过程,已完成第步的选主元素,交换两行及交换两列,消元计算,约化为

(9)

其中元素仍记作,元素仍记作。

第步选主元素(在右下角方框内选),即确定,使

(10)

交换第行与行元素交换第列与列元素,将调到位置,再进行消元计算,最后将原方程化为

(11)

其中,,…,的次序为未知数,,…,调换后的次序。

回代求解得

(12)

3.3.1算法描述如下

设。

本算法用的带有行、列交换的Gauss消去法,消元结果冲掉,乘数冲掉,计算解冲掉常数项,用表示对的消元次数。

用一整型数组开始记录未知数,,…,的次序(即下标,2,…,),最后记录调换后未知数的下标。

步骤1对于=1,2,…,,有;对于,2,…,,做到步6;

步骤2选主元素;

步骤3如果,则计算停止(这时);

步骤4

(1)如果,则转

(2),否则换行:

,;

(2)如果,则转步5,否则换行:

,;

步骤5计算乘数;

步骤6消元计算;

步骤7回代求解

(1);

(2)对于,。

步骤8调整未知数的次序

(1)对于;,;

(2)对于;。

3.4计算结果及敏度分析

在对题目用高斯消去法C++编程(见附录一)后运行,结果用matlab作图后显示可以看出,在初始分量,效果还是比较理想的逼近于x=1,到后面出现了震荡。

可见得出的解数值不太稳定。

这是由于系数矩阵的条件

图1N=84Gauss消去法(不选主元)

数k(A)非常大,用matlab计算(程序见附录六)可得k(A)=cond(A)=4.1779e+016,已经非常大,也即该线形方程组得求解问题是病态的,我们得到的数值解是不稳定的。

而应用列主元高斯消去法,当矩阵是84阶时,不能得出结果,这是因为条件数很大时矩阵接近于一个奇异矩阵,高斯消去法不一定能

图2N=84Gauss全主元消去法

够进行下去。

当为30阶时,可以看出也得到了精确解。

当DIM=84时程序最后输出结果为:

Thelinearsystemhasn'tsolution!

Strikeanykeytoexit!

Pressanykeytocontinue

而且,对于方程系数矩阵是严格对角占优的,条件数k(A)=Cond(A)=1.4997,比较小,可知此问题数值比较稳定。

由于系数矩阵严格对角的方程组Gauss-seidel迭代收敛,所以可以应用此算法来解决(具体程序见附录)。

从计算结果的图形表示我们可以看出,此种方法达到了数值要求,比较好的收敛于线性方程的解。

四、其他方法

平方根法就是利用对称正定矩阵的三角分解而得到的求解对称正定方程组的一种有效方法。

平方根法递推公式可以证明对于对称正定矩阵A,可以唯一地分解成A=LLT,其中L是非奇异下三角形矩阵。

Cholesky分解定理:

若对称正定,则存在一个对角元均为正数的下三角阵,使得。

Cholesky分解可用不选主元的Gauss消去法来实现,更简单的方法是比较A=LLT两边对应元素来计算L的,设

(13)

比较两边对应元素,得关系式。

经计算得,

这样便求出了L的第k列元素。

这种方法称为平方根法。

图3N=84Gauss平方根法

应用平方根法时的程序见附录四。

由于b是计算机随机选取的,所以得到的解是人为无法确定的,我们在这里只画出了一种解的情况下的图象(见图2)

用改进的平方根法解Hilbert矩阵的程序见附录五,相应的图形见上图。

有趣的是,当应用平方根解此方程时并不会得到结果。

应着重指出,正定矩阵的分解具有重要的性质,即,这说明的元素的绝对值不会变得很大,这个性质对计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1