高斯消元法和三角分解法

合集下载

数值计算常用公式

数值计算常用公式

第一章 误差由观测产生的误会差,称为观测误差或参量误差. 由数值计算方法所得到的近似解与实际问题准确解之间出现的这种误差,称为截断误差或方法误差。

x *为准确值的一个近似值,则绝对误差: e *(x)= x-x * 绝对误差限:∣e *(x)∣=∣x-x *∣≤ε*(在知道x 准确值的条件下)相对误差:=xx x xx e*-=)(*=****)(xx x xx e -=相对误差限:******)()(rrxx x xx e x eε≤-==误差传播规律:)()()()()(2**21**1*x e x fx e x f y e ∂∂+∂∂≈*)()(**y y e y e r =(看会第七页例题)有效数字与有效数字位数:例一:对于x=π=3.14159…,若取近似值=3.14,则绝对误差∣)(*x e ∣=0.00159…≤01.021⨯,即百分位数字4的半个单位(指01.021⨯)是*x 的绝对误差限,故从*x 最左边的非零数“3”开始到百分位数字“4”的三个数都是有效数字,近似值*x 具有三位有效数字。

例二:求2*1049-⨯=x 的有效数字?有两位有效数字,即位有效数字,则有设的绝对误差限为,而可写为解:**2**x 2m 2m 0m x 105.0x 1049.0x =-=-⨯⨯-第二章 非线性方程求根二分法:[]b a x ,∈,2b a x +=分成两半,检查0)()(0<x f a f 则x *在[],x a 范围内。

1*22+-=-≤-k kk ka b a b xx预估二分法的次数:ε≤-+12k ab ,ε为允许误差(精度)。

简单迭代法:)(0)(x g x x f =⇒=,....)2,1,0)((1==+k x g x kk满足条件:1.(1)当在区间[]b a ,上g'存在,且)1(1)('的正常数为小于其中L L x g <≤;(2)对任意[]b a x ,∈,都有[]ba x g ,)(∈, 则 (1)对任取初始近似值[]b a x ,0∈,迭代法)(1x g xk =+产生的迭代序列{kx}都收敛于方程[]ba x g x ,)(在=上的唯一实根*x ; (2).1*;11*011x x LLx x x x L x x kk k k k --≤---≤-+误差估计表明:要使即可。

数值分析6(选主元高斯消元法)

数值分析6(选主元高斯消元法)
20:22

2 1 2 2 3 3 2 1 2 0 5 0 4 6 19 9
14/27
三对角矩阵分解
f u over , with f
f u( x ) 0 x 1 f (0) a, f (1) b
20:22
( k = 2, 3, · · · ,n)
20:22
18/27
下三角方程组 LY = f
1 y1 f1 y f 1 2 2 2 n 1 y n f n

2 3 / 2 1 2
4 4 2 3 12 6 4 1 2 2 1 1

4 4 2 3 / 2 3 6 1 0 1 2 1 2
20:22

4 4 2 2 3 / 2 3 6 3 1 0 5 0 2 19 / 5 9 2
三角分解:
A = LU
三对角矩阵
=
单位下三角阵 上三角阵
AX=F LU X = F ①
20:22
L Y=F
②UX=Y
16/27
LU分解
2 2 1 1 / 2 1 3 2 2 4 2 3 5 1 2 2 1 / 2 1 / 2 5 / 2 2 4 / 5 12 / 5 2 3 5 2 1 1 / 2 1 U L 4/5 1 5 / 4 1 20:22
10 0 0
20:22
7 0 x1 7 x 6.1 0 6 2 2.5 5 2.5 x3

范数-摆脱课本繁琐的公式,比较好懂

范数-摆脱课本繁琐的公式,比较好懂
p p
p
范数的特殊情况。 注:前三种范数都是p—范数的特殊情况。其中 前三种范数都是 范数的特殊情况
|| X ||∞ = lim || X || p
p →∞
计算方法三 计算方法三⑤
向量范数的连续性: 向量范数的连续性
5/35
定理3.3 设f(X)=||X||为Rn上的任一向量范数 则f(X) 定理 为 上的任一向量范数,则 的分量x 的连续函数. 为X的分量 1,x2,…,xn的连续函数 的分量
lim x i = xi (i = 1,2,..., n)
(k ) k →∞
则称向量X= (x1,x2,...,xn)T为向量序列 则称向量 , {X(k)}的极限,或者说向量序列 (k)}收敛 的极限, 的极限 或者说向量序列{X 收敛 于向量X, 于向量 ,记为
lim X
k →∞
(k )
=X 或 X
(k )
→ X (k → ∞)
计算方法三 计算方法三⑤
计算方法三 计算方法三⑤
x1 (k ) ( k ) x2 X = ………… M x (k ) n (k ) x1 x1 (k ) x2 ( k ) x2 X = → = M M x (k ) x n n
几种常用的矩阵范数: 几种常用的矩阵范数:
n
13/35
a11 a21 设 A= ⋅⋅⋅ a n1
a12 ⋅⋅⋅ a1n A 1 = max∑aij 列范数 1≤j≤n i=1 n a22 ⋅⋅⋅ a2n A ∞ = max∑aij 行范数 ⋅⋅⋅ ⋅⋅⋅ ⋅⋅⋅ 1≤i≤n j=1 T an2 ⋅⋅⋅ ann A 2 = λ (A A) max AF =

数值分析复习资料

数值分析复习资料

数值分析复习资料一、重点公式第一章 非线性方程和方程组的数值解法 1)二分法的基本原理,误差:~12k b ax α+--<2)迭代法收敛阶:1lim0i pi ic εε+→∞=≠,若1p =则要求01c <<3)单点迭代收敛定理:定理一:若当[],x a b ∈时,[](),x a b ϕ∈且'()1x l ϕ≤<,[],x a b ∀∈,则迭代格式收敛于唯一的根;定理二:设()x ϕ满足:①[],x a b ∈时,[](),x a b ϕ∈, ②[]121212,,, ()(),01x x a b x x l x x l ϕϕ∀∈-≤-<<有 则对任意初值[]0,x a b ∈迭代收敛,且:110111i i iii x x x llx x x lαα+-≤---≤-- 定理三:设()x ϕ在α的邻域内具有连续的一阶导数,且'()1ϕα<,则迭代格式具有局部收敛性;定理四:假设()x ϕ在根α的邻域内充分可导,则迭代格式1()i i x x ϕ+=是P 阶收敛的 ()()()0,1,,1,()0j P j P ϕαϕα==-≠ (Taylor 展开证明)4)Newton 迭代法:1'()()i i i i f x x x f x +=-,平方收敛 5)Newton 迭代法收敛定理:设()f x 在有根区间[],a b 上有二阶导数,且满足: ①:()()0f a f b <; ②:[]'()0,,f x x a b ≠∈;③:[]'',,f x a b ∈不变号④:初值[]0,x a b ∈使得''()()0f x f x <;则Newton 迭代法收敛于根α。

6)多点迭代法:1111111()()()()()()()()()i i i i i i i i i i i i i i i f x f x f x x x x x f x f x f x f x f x f x x x -+-----=-=+----收敛阶:P =7)Newton 迭代法求重根(收敛仍为线性收敛),对Newton 法进行修改 ①:已知根的重数r ,1'()()i i i i f x x x rf x +=-(平方收敛) ②:未知根的重数:1''()(),()()()i i i i u x f x x x u x u x f x +=-=,α为()f x 的重根,则α为()u x 的单根。

电力系统稳态分析-各知识点(详细版)

电力系统稳态分析-各知识点(详细版)
. (k )
Ij
. (k )
Pjs jQ s j
(k )
Uj
i 1 j 1
U j Z ij I j Z ij I j
j i
. (k )
n
. ( k 1)
4、 牛顿法潮流雅克比矩阵的特点,其稀疏结构和节点导纳矩阵的关系; 极坐标及直角类型的修正方程式,有以下特点: a) b) c) d) 修正方程式的数目分别为 2(n-1)-m 个及 2(n-1)个,在 PV 节点所占的比例不大时, 两者的方程式数目基本接近 2(n-1)个。 雅可比矩阵的元素都是节点电压的函数;每次迭代,雅可比矩阵都需要重新形成。 雅可比矩阵的非对角元是否为零决定于相应的节点导纳阵元素 Yij 是否为零。 和节点导纳矩阵具有相同稀疏结构的分块雅可比矩阵在位置上对称,但雅可比矩阵 不对称。 5、 快速解耦潮流和牛顿法潮流的关系,基本快速解耦潮流与 XB 和 BX 型快速解耦潮流潮流 在系数矩阵求取上有哪些异同,对大 R/X 比值病态问题如何处理。 (1)快速解耦潮流和牛顿法潮流的关系:
Pi ei Gij e j Bij f j f i Gij f j Bij e j
ji ji
Qi f i Gij e j Bij f j ei Gij f j Bij e j
ji ji
潮流方程的极坐标形式:
Pi U i U j Gij cos ij Bij sin ij
确定方法;
fi(x)=gi(x)-bi=0 或 f(x)=0
构造标量函数
n n
F ( x ) fi ( x ) 2 ( gi ( x ) bi ) 2
i 1 i 1

三角分解法

三角分解法
. . . . l21 1 . . = . . . . ... . . . . . an1 ... ann ln1 ... 1 ... . . . . . . unn
ai j =
min( i , j ) k =1
∑l
ik
uk j
ai j =
min( i , j )
一般采用列主元 对换, 将 i ,j 对换,对 j = i, i+1, …, n 有 一般采用列主元 ii a ji = ∑ l jk uki + l ji u k= k =1 法增强稳定性. 法增强稳定性.但注意 v i 1 b 也必须做相应的 l ji = ( a ji ∑ l jk uki ) / uii b 行交换. 行交换. k =1
=I
Upper-triangular
Lower-triangular With diagonal entries 1
注: L 为一般下三角阵而 U 为单位上三角阵的分解称为 单位上三角阵的分解称为 Crout 分解. 分解. ~~ 分解, 实际上只要考虑 A* 的 LU 分解,即A* = L U ,则 ~ ~ A= U * L* 即是 A 的 Crout 分解. 分解. =
(
)
n1 Step 6 Set l = 运算量为2 O(n3/6), 比普通 ann ∑ k =1 lnk ; , 比普通LU nn Step 7 Output ( lij for j = 1, …, i and i = 1, …, n );A = LDLT 分解少一半, 次开方. 分解少一半,但有 n 次开方.用
mn1
v A b
( 2) (2)
(1 (1 ( a11) a12) ... a11) n Step n 1: (2 ( v a22) ... a22) n Ln1Ln2 ... L1 A b = ... . . . (n ann)

LU分解法程序及其运行结果

实验报告线性方程组的求解一.上机题目已知方程组为:x1-2*x2+2*x3=-2;2*x1-3*x2-3*x3=4;4*x1+x2+6*x3=3;分别用矩阵的三角分解法和高斯列主元消去法求方程组的解二.目的要求掌握用矩阵的三角分解法和高斯列主元消去法设计程序,从而实现对线性方程组的求解。

三.方法原理1.高斯消去法是通过逐步消元的方法把原方程组化为等价的上三角形方程组,然后回代的求解过程。

高斯列主元消去法是在高斯消去法第k步时,不取a[k][k]作为主元,而是取满足|a[r][k]|=max|a[i][k]|(k<=i<=n)的a[r][k]作为主元,若有多个r满足则取最小的,然后再去交换第r行与第k行;最后利用高斯消元法求解。

2. 矩阵的三角分解法是方程组的系数矩阵A可以分解为一个下三角阵L和一个上三角阵U的乘积,即A=LU,则AX=b为LUX=b,根据Ly=b和UX=y求出方程组的解。

其中求L,U的过程为:先计算U的第一行和L的第一列U[1][j]=a[1][j](1<=j<=n),L[i][1]=a[i][1]/U[1][1];然后根据U[k][j]=a[k][j]-∑L[k][r]*U[r][j](1<=r<=k-1;j=k,k+1,…n)和L[i][k]=(a[i][k]-∑L[i][r]*U[r][k])/U[k][k](1<=r<k-1;i=k+1,…n)计算出U的第k行和L的第k 列,从而求出L和U矩阵四.算法步骤(N-S流程图)1.矩阵的三角分解法算法步骤如下:Step1:计算U的第一行和L的第一列U的第一行:i=1时a[1][j]=L[1][1]*U[1][j]则U[1][j]=a[1][j] L[1][1]=1 (j=1,2,…n );L的第一列:j=1时a[i][1]=L[i][1]*U[1][1]则L[i][1]=a[i][1]/a[1][j] (i=2,3,…n);Step2:计算U的第二行和L的第二列U的第二行:i=2时a[2][j]=L[2][1]*U[1][j]+L[2][2]*U[2][j] L[2][2]=1则U[2][j]=a[2][j] –L[2][1]*U[1][j] (j=2,3,…n);L的第二列:j=2时 a[i][2]=L[i][1]*U[1][2]]+L[i][2]*U[2][2]则L[i][2]=(a[i][2]-L[i][1]*U[1][2])/U[2][2] (i=3,4,…n);Step3:假设已经进行了(k-1)步,得到了U的前k-1行和L的前k-1列,则计算U的第k行和L的第k列U的第k行:i=k时U[k][j]=a[k][j]-∑L[k][r]*U[r][j] (1<=r<=k-1;j=k,k+1,…n)L的第k列:j=k时L[i][k]=(a[i][k]-∑L[i][r]*U[r][k])/U[k][k] (1<=r<k-1;i=k+1,…n)Step4:利用L,U求解方程组的解根据A=L*U,A*X=y,从而得到 Ly=b和UX=y,然后根据高斯消元法的回代部分即可分别求出y和x2. 高斯列主元消去法算法步骤如下:Step1:选出列主元a[r][k]=max|a[i][k]| (k<=i<=n);Step2:判断方程组是否适合使用该方法求解若a[r][k]<e,则方程组不适合使用该方法求解,程序结束,否则进行下一步Step3:若r不等于k,交换r,k行Step4:高斯消元求解过程消元过程:当k=0,i=1时,令a[1][0]=a[1][0]/a[0][0];b[1]=b[1]-a[1][0]*b[1]; j=1时a[1][1]=a[1][1]-a[1][0]*a[0][1]当消元进行到第k次时,令a[k][k-1]=a[k][k-1]/a[k-1][k-1]; b[k]=b[k]-a[k][k-1]*b[k]; j=k时a[k][k]=a[k][k]-a[k][k-1]*a[k][k-1]回代求解过程:b[n-1]=b[n-1]/a[n-1][n-1];当k=n-1时,b[k]=(b[k]-∑a[k][j]*b[j])/a[k][k](k+1<=j<=n;k=n-1,n-2,...1);返回值b[k]即为所求解。

实验三 高斯消去法和三角分解法1

实验报告实验三 高斯消去法与矩阵的三角分解一、实验目的1、掌握列主元素消去法,并且能够用MATLAB 编写相关程序,实现高斯消去法的求解。

2、能够用矩阵理论理解与研究高斯消去法,通过对矩阵的初等变换实现高斯消去法。

3、学会矩阵的三角分解,并且能够用MATLAB 编写相关程序,实现矩阵的三角分解,解方程组。

二、上机内容⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡2822171310871234567112345611123451111234111112311111121111111764321x x x x x x1、用列主元素高斯消去法求解方程组。

2、用列主元消去法求解方程组(实现PA=LU) 要求输出: (1)计算解X;(2)L,U;(3)正整型数组IP(i),(i=1,···,n) (记录主行信息)。

三、实验原理1、列主元素消去法用高斯消去法求解方程组时,为了减小误差,在消去的过程中要避免用绝对值较小的主元素。

因此在高斯消去法的每一步应该在系数矩阵货消去后的低阶矩阵中选取绝对值较大的元素作为主元素,保持|m ik |<=1,以减小计算过程中的舍入误差对计算解的影响。

此方法为完全主元素消去法。

完全主元素消去法在选主元素时花费一定的计算机时间,因此实际计算中常用列主元消去法。

列主元消去法在每次选主元时,仅依次按列选取绝对值最大的元素作为主元素,且仅交换两行,再进行消元计算。

装订 线第k步计算如下:对于k=1,2,…,n-1(1)按列选主元:即确定t使(2)如果t≠k,则交换[A,b]第t行与第k行元素。

(3)消元计算(4)回代求解计算流程图回代求解 b=b/a (当a nn ≠0)b ←(b -∑a x )/adet=a nn *det输出计算解及行列式及detk=1,2,…,n-1输入n ,A,b,εdet=1按列主元|a i(k),k |=max|a ik |C 0=a i(k),k换行 a ik a i(k)j(j=k,…n ) b k b j(k), 消元计算 (i=k+1,…,n ) a ik=a ik -a kk *m ik a ij=a ij -a kj *m ik (j=k+1,…,n )|C 0|<εi k =kdet=a kk det否否是是k<=n-1输出det(A)=0停机停机2. 矩阵的三角分解法 (1)定理设 n n R A ⨯∈ 。

求解线性方程组的方法探讨论文设计

求解线性方程组的方法探讨摘要:线性方程组在数学领域中的应用十分广泛,而且它的求解方法在代数的学习中有着重要的作用,线性方程组的求解方法与行列式、矩阵、线性变换、向量组的线性相关性有着很大的关系,而在《高等代数》中只介绍了高斯消元法以及克莱姆法则,所以解法比较单一,有一定局限性。

本论文首先对课题的背景、意义、国内外研究状况进行阐述。

而后介绍其概念和他的性质定理。

然后对线性方程组的求解方法进行归纳和总结。

在例题中说明对每种解法的步骤及其特点,并对各种方法的优缺点、适用性进行分析。

线性方程组的解法虽多,但是根据线性方程组的不同结构来选用合适的解题方法,才能提高解题的效率,更快更好的得到结果。

关键词:线性方程组;矩阵;初等变换;高斯消元法Discussion on Methods of Solving Linear EquationsAbstarct:Linear equations are widely used in mathematics, and its solution plays an i mportant role in learning algebra.The method of solving linear equations has a great r elationship with determinant, matrix, linear transformation and linear correlation of ve ctor groups.However, only gauss elimination and Cramer&apos;s Law are introduced in Advanced Algebra, so the solution is relatively simple and has certain limitations.Fi rstly, this paper expounds the background, significance and research status at home an d abroad of the subject.Then the concept and his property theorem are introduced.The n, the methods of solving the linear equations are summarized.In the examples, the ste ps and characteristics of each method are explained, and the advantages, disadvantage s and applicability of each method are analyzed.Although there are many solutions to linear equations, only by choosing appropriate solutions according to different structur es of linear equations can we improve the efficiency of solving problems and get bette r and faster results.Key words:linear equations; matrix; Elementary transformation; gauss elimination目录1.绪论 (1)1.1 线性方程组的求解的背景及意义 (1)1.2 线性方程组国内外研究现状及评价 (1)2.线性方程组的概念和基础理念 (2)2.1 线性方程组的概念及形式 (2)2.2线性方程组有无解的判定定理[]1 (2)2.3 线性方程组的解的结构 (3)2.3.1 齐次方程组的解的结构 (3)2.3.2 非齐次方程组的解的结构 (4)3.线性方程组的求解方法 (5)3.1 高斯消元法 (5)3.2 LU分解法 (7)3.3 克莱姆(Cramer)法则 (8)3.4 逆矩阵解法 (10)3.5 分块矩阵解法[]75- (12)3.6 齐次线性方程组的基础解系求解方法 (13)3.7 非齐次线性方程组化为齐次线性方程组方法[]8 (14)结论 (17)参考文献 (18)致谢 (19)1.绪论1.1线性方程组的求解的背景及意义线性方程组求解在中国有着悠久历史,对线性方程组的研究,中国比欧洲至少早一千多年,记载于我国古代第一部数学专著《九章算术》的方程章。

线性方程组的几种求解方法

线性方程组的几种求解方法1.高斯消元法高斯消元法是求解线性方程组的一种常用方法。

该方法的基本思想是通过对方程组进行一系列简化操作,使得方程组的解易于求得。

首先将方程组表示为增广矩阵,然后通过一系列的行变换将增广矩阵化为行简化阶梯形,最后通过回代求解出方程组的解。

2.列主元高斯消元法列主元高斯消元法是在高斯消元法的基础上进行改进的方法。

在该方法中,每次选取主元时不再仅仅选择当前列的第一个非零元素,而是从当前列中选取绝对值最大的元素作为主元。

通过选取列主元,可以避免数值稳定性问题,提高计算精度。

3.LU分解法LU分解法是一种将线性方程组的系数矩阵分解为一个下三角矩阵L 和一个上三角矩阵U的方法。

首先进行列主元高斯消元法得到行阶梯形矩阵,然后对行阶梯形矩阵进行进一步的操作,得到L和U。

最后通过回代求解出方程组的解。

4.追赶法(三角分解法)追赶法也称为三角分解法,适用于系数矩阵是对角占优的三对角矩阵的线性方程组。

追赶法是一种直接求解法,将系数矩阵分解为一个下三角矩阵L和一个上三角矩阵U,然后通过简单的代数运算即可求得方程组的解。

5.雅可比迭代法雅可比迭代法是一种迭代法,适用于对称正定矩阵的线性方程组。

该方法的基本思想是通过不断迭代求解出方程组的解。

首先将方程组表示为x=Bx+f的形式,然后通过迭代计算不断逼近x的解。

6.高斯-赛德尔迭代法高斯-赛德尔迭代法是雅可比迭代法的改进方法。

该方法在每一次迭代时,使用已经更新的解来计算新的解。

相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。

7.松弛因子迭代法松弛因子迭代法是一种对高斯-赛德尔迭代法的改进方法。

该方法在每一次迭代时,通过引入松弛因子来调节新解与旧解之间的关系。

可以通过选择合适的松弛因子来加快迭代速度。

以上是一些常用的线性方程组求解方法,不同的方法适用于不同类型的线性方程组。

在实际应用中,根据问题的特点和要求选择合适的求解方法可以提高计算的效率和精度。

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

实验四线性方程组的直接数值解法信息与计算科学金融崔振威201002034031一、实验目的:编程实现高斯消元法和三角分解法二、实验内容:p108.15、p120.1三、实验要求:1、分别对所给算例利用高斯消元法和三角分解法进行数值求解2、分析系数矩阵p108.15的算法稳定性主程序高斯消元法:function [x,det,flag]=Gauss(A,b)%求线性方程组的列主元Gauss消去法%A为方程组的系数矩阵%b为方程组的右端项%x为方程组的解%det为系数矩阵A的行列式的值%flag为指标向量,flag为failure表示计算失败,为ok时表示计算成功[n,m]=size(A);nb=length(b);%当方程组与列的维数不相等时停止计算,并输出出错信息if n~=merror('方程组与右端项列的维数不相等,错误。

');return;end%赋初始值,计算flag='OK';det=1;x=zeros(n,1);for k=1:n-1%选主元max1=0;for i=k:nif abs(A(i,k))>max1max1=abs(A(i,k));r=i;endendif max1<1e-10flag='failure';return;end%交换两行if r>kfor j=k:nz=A(k,j);A(k,j)=A(r,j);A(r,j)=z;endz=b(k);b(k)=b(r);b(r)=z;det=-det;end%消元过程for i=k+1:nm=A(i,k)/A(k,k);for j=k+1:nA(i,j)=A(i,j)-m*A(k,j);endb(i)=b(i)-m*b(k);enddet=det*A(k,k);enddet=det*A(n,n);%回代过程if abs(A(n,n))<1e-10flag='failure';return;endfor k=n:-1:1for j=k+1:nb(k)=b(k)-A(k,j)*x(j);endx(k)=b(k)/A(k,k);endx(k)=b(k)/A(k,k);end三角分解法:function [L,U,flag]=LU_Decom(A)%求矩阵A的LU分解%A为被分解的矩阵%L为单位下三角阵%U为单位上三角阵%flag为指标向量,flag为failure表示计算失败,为ok时表示计算成功[n,m]=size(A);%要求所分解的矩阵是方阵,否则停止计算,并输出错误信息if n~=merror('所分解的矩阵不是一个方阵');return;endL=eye(n);U=zeros(n);flag='OK';for k=1:nfor j=k:nz=0;for q=1:k-1z=z+L(k,q)*U(q,j);endU(k,j)=A(k,j)-z;endif abs(U(k,k))<epsflag='failure';return;endfor i=k+1:nz=0;for q=1:k-1z=z+L(i,q)*U(q,k);endL(i,k)=(A(i,k)-z)/U(k,k);endendP108 15(a)解:1、利用高斯消元,在matlab的命令窗口中输入命令,并得出结果:>> A=[1 1/2 1/3 1/4;1/2 1/3 1/4 1/5;1/3 1/4 1/5 1/6;1/4 1/5 1/6 1/7],b=[1 0 00],[x,det,flag]=Gauss(hilb(4),b)A =1.00000000000000 0.50000000000000 0.33333333333333 0.250000000000000.50000000000000 0.33333333333333 0.25000000000000 0.200000000000000.33333333333333 0.25000000000000 0.20000000000000 0.166666666666670.25000000000000 0.20000000000000 0.16666666666667 0.14285714285714b =1 0 0 0x =1.0e+002 *0.15999999999999-1.199999999999922.39999999999980-1.39999999999987det =1.653439153439300e-007flag =OK2、利用三角消元,在matlab的命令窗口中输入命令,并得出结果:>> A=[1 1/2 1/3 1/4;1/2 1/3 1/4 1/5;1/3 1/4 1/5 1/6;1/4 1/5 1/6 1/7],b=[1 0 00]',[L,U]=lu(A),x=U\(L\b)A =1.00000000000000 0.50000000000000 0.33333333333333 0.250000000000000.50000000000000 0.33333333333333 0.25000000000000 0.200000000000000.33333333333333 0.25000000000000 0.20000000000000 0.166666666666670.25000000000000 0.20000000000000 0.16666666666667 0.14285714285714b =1L =1.00000000000000 0 0 00.50000000000000 1.00000000000000 1.00000000000000 00.33333333333333 1.00000000000000 0 00.25000000000000 0.90000000000000 -0.60000000000000 1.00000000000000 U =1.00000000000000 0.50000000000000 0.33333333333333 0.250000000000000 0.08333333333333 0.08888888888889 0.083333333333330 0 -0.00555555555556 -0.008333333333330 0 0 0.00035714285714 x =1.0e+002 *0.15999999999999-1.199999999999922.39999999999980-1.39999999999987由上面的输出结果可以看出:通过高斯消元和三角分解所的出的值二者之间的相差很小,甚至从结果无法判断二者的相差多少。

(b)1、利用高斯消元,在matlab的命令窗口中输入命令,并得出结果:>> A=[1 1/2 1/3 1/4;1/2 1/3 1/4 1/5;1/3 1/4 1/5 1/6;1/4 1/5 1/6 1/7],b=[1 0 00],[x,det,flag]=Gauss(A,b)A =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429b =1 0 0 0x =16.0000-120.0000240.0000-140.0000det =1.6534e-007flag =OK2、利用三角消元,在matlab的命令窗口中输入命令,并得出结果:>> format>> A=[1 1/2 1/3 1/4;1/2 1/3 1/4 1/5;1/3 1/4 1/5 1/6;1/4 1/5 1/6 1/7],b=[1 0 0 0]',[L,U]=lu(A),x=U\(L\b)A =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429b =1L =1.0000 0 0 00.5000 1.0000 1.0000 00.3333 1.0000 0 00.2500 0.9000 -0.6000 1.0000U =1.0000 0.5000 0.3333 0.25000 0.0833 0.0889 0.08330 0 -0.0056 -0.00830 0 0 0.0004x =16.0000-120.0000240.0000-140.0000分析:通过三角分解求解线性方程组,当矩阵为四位有效数字表示时和用分数表示时,其输出的解结果明显不同,当二者的差值在10-4到10-5时输出结果相差值有1点多(a、b中的三角分解的输出结果)。

因此可以看出当矩阵系数发生明显变化其输出结果变化也会明显。

其稳定性不好。

P120.1解:1、利用高斯消元,在matlab的命令窗口中输入命令,并得出结果:>> A=[1 3 5 7;2 -1 3 5;0 0 2 5;-2 -6 -3 1],b=[1 2 3 4],[x,det,flag]=Gauss(A,b)A =1 3 5 72 -13 50 0 2 5-2 -6 -3 1b =1 2 3 4x =1.34290.6857-3.00001.8000det =35.0000flag =OK2、利用三角消元,在matlab的命令窗口中输入命令,并得出结果:>> A=[1 3 5 7;2 -1 3 5;0 0 2 5;-2 -6 -3 1],b=[1 2 3 4]',[L,U]=lu(A),x=U\(L\b)A =1 3 5 72 -13 50 0 2 5-2 -6 -3 1b =1234L =0.5000 -0.5000 1.0000 01.0000 0 0 00 0 0.5714 1.0000-1.0000 1.0000 0 0U =2.0000 -1.00003.0000 5.00000 -7.0000 0 6.00000 0 3.5000 7.50000 0 0 0.7143x =1.34290.6857-3.00001.8000。

相关文档
最新文档