当前位置:文档之家› 实验四 线方程组的直接解法 2

实验四 线方程组的直接解法 2

实验四 线方程组的直接解法 2
实验四 线方程组的直接解法 2

实验四 线方程组的直接解法

一、问题提出

给出下列几个不同类型的线性方程组,请用适当算法计算其解。 1、 设线性方程组

1234567891042312100

08653

650100422132103102151311944261673323868571726350213425301161011917342122462713

9

2

012400183248631x x x x x x x x x x --??????--??

????---??

?---??????---??

?--??????--??

?---????-????-----???5123234613381921?????????

???

???

??????

=?????????

???

????????

????

????-???

2、 设对称正定阵系数阵线方程组

123456784240240

002212

1320641141835620021

6

1433232181224103943344111422025310

11421500

6

3

3

4

21945x x x x x x x x -????????????---???

???

??????

----???

???

----??????

=

??????

----???

???

----??????????---?????--???

??????????

?? 3.三对角形线性方程组

123456789104100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014x x x x x x x x x x -????????--????????--????--????????--????--????????--????--???????--??????-????

7513261214455??

??????-??

??

??=??-??

????-????????

???-??

列主元高斯消去法的matlab的M文件程序

function [x,det,index]=Gauss(A,b)

% 求线形方程组的列主元Gauss消去法,其中,

% A为方程组的系数矩阵;

% b为方程组的右端项;

% x为方程组的解;

% det为系数矩阵A的行列式的值;

% index为指标变量,index=0表示计算失败,index=1表示计算成功。[n,m]=size(A); nb=length(b);

% 当方程组行与列的维数不相等时,停止计算,并输出出错信息。

if n~=m

error('The rows and columns of matrix A must be equal!');

return;

end

% 当方程组与右端项的维数不匹配时,停止计算,并输出出错信息

if m~=nb

error('The columns of A must be equal the length of b!');

return;

end

% 开始计算,先赋初值

index=1;det=1;x=zeros(n,1);

for k=1:n-1

% 选主元

a_max=0;

for i=k:n

if abs(A(i,k))>a_max

a_max=abs(A(i,k));r=i;

end

end

if a_max<1e-10

index=0;return;

end

% 交换两行

if r>k

for j=k:n

z=A(k,j);A(k,j)=A(r,j);A(r,j)=z;

end

z=b(k);b(k)=b(r);b(r)=z;det=-det;

end

% 消元过程

for i=k+1:n

m=A(i,k)/A(k,k);

for j=k+1:n

A(i,j)=A(i,j)-m*A(k,j);

end

b(i)=b(i)-m*b(k);

end

det=det*A(k,k);

end

det=det*A(n,n);

% 回代过程

if abs(A(n,n))<1e-10

index=0;return;

end

for k=n:-1:1

for j=k+1:n

b(k)=b(k)-A(k,j)*x(j);

end

x(k)=b(k)/A(k,k);

end

然后在命令窗口输入

>> A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1];

>> b=[5 12 3 2 3 46 13 38 19 -21];

>> gauss(A,b)

ans =

1.0000

-1.0000

0.0000

1.0000

2.0000

0.0000

3.0000

1.0000

-1.0000

2.0000

x*=--

(1,1,0,1,2,0,3,1,1,2)T

高斯-约当消去法maltab的M文件程序

function [x,flag]=Gau_Jor(A,b)

% 求线形方程组的列主元Gauss-约当法消去法,其中,

% A为方程组的系数矩阵;

% b为方程组的右端项;

% x为方程组的解;

[n,m]=size(A); nb=length(b);

% 当方程组行与列的维数不相等时,停止计算,并输出出错信息。if n~=m

error('The rows and columns of matrix A must be equal!');

return;

end

% 当方程组与右端项的维数不匹配时,停止计算,并输出出错信息if m~=nb

error('The columns of A must be equal the length of b!');

return;

end

% 开始计算,先赋初值

flag='ok';x=zeros(n,1);

for k=1:n

% 选主元

max1=0;

for i=k:n

if abs(A(i,k))>max1

max1=abs(A(i,k));r=i;

end

end

if max1<1e-10

falg='failure';return;

end

% 交换两行

if r>k

for j=k:n

z=A(k,j);A(k,j)=A(r,j);A(r,j)=z;

end

z=b(k);b(k)=b(r);b(r)=z;

end

% 消元过程

b(k)=b(k)/A(k,k);

for j=k+1:n

A(k,j)=A(k,j)/A(k,k);

end

for i=1:n

if i~=k

for j=k+1:n

A(i,j)=A(i,j)-A(i,k)*A(k,j);

end

b(i)=b(i)-A(i,k)*b(k);

end

end

end

% 输出x

for i=1:n

x(i)=b(i);

end

然后保存后在命令窗口输入:

>> A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1];

>> b=[5 12 3 2 3 46 13 38 19 -21];

>> Gau_Jor(A,b)

ans =

1.0000

-1.0000

0.0000

1.0000

2.0000

0.0000

3.0000

1.0000

-1.0000

2.0000

(1,1,0,1,2,0,3,1,1,2)T

x*=--

在利用两种方法都互相检验,验证是结果误差很小

其他几题同理可得。

试验5线性代数方程组的数值解法

实验6 线性代数方程组的数值解法 [实验目的] 1. 1. 学会用MATLAB 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析; 2. 2. 通过实例学习用线性代数方程组解决简化的实际问题。 [实验内容] 5-5 输电网络:一种大型输电网络可简化为图5.5(见书)所示电路, 其中R 1,R 2,…,R n 表示负载电阻,r 1,r 2,…,r n 表示线路内阻,I 1,I 2,…,I n 表示负载上的电流。设电源电压为V 。 (1)列出求各负载电阻R 1,R 2,…,R n 的方程; (2)设I 1=I 2=…=I n =I ,r 1=r 2=…=r n =r ,在r=1,I=0.5,V=18,n=10的情况下求R 1,R 2,…,R n 及总电阻R 0。 [问题分析、模型建立及求解] (1) 设电源负极为电势为0,电阻R 1上对应节点电压为V 1,对于任意节点,根据KCL 定律列出方程: 11 1++----=k k k k k k k k r V V r V V R V 而 k k k R V I =,可得: 111111)(++++--++-= k k k k k k k k k k k k R r I R r I r I R r I I k=2,3,……,n-1; k=1时 2221211R r I R r I I +- =,为与上式形式一致,化为 22212111111)(R r I R r I r I r V I +--=- k=m (12-≤≤n m )时 111111)(++++--+--+= m m m n m m m m m m m m R r I R r I r I R r I I k=n 时 n n n n n n n R r I R r I I -= --11 设以上方程组的矩阵形式为:b AR = 则 []T n R R R R 21=

线性方程组的解法

线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解。在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组。而如插值公式,拟合公式等的建立,微分方程差分格式的构造等,均可归结为求解线性方程组的问题.在工程技术的科学计算中,线性方程组的求解也是最基本的工作之一.因此,线性方程组的解法一直是科学和工程计算中研究最为普遍的问题,它在数值分析中占有极其重要的地位。20世纪50年代至70年代,由于电子计算机的发展,人们开始考虑和研究在计算机上用迭代法求线性方程组Ax =b的近似解,用某种极限过程去逐渐逼近精确解,并发展了许多非常有效的迭代方法,迭代法具有需要计算机存储单元少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点。例如Jacobi方法、Gauss—Seidel 方法、SOR方法、SSOR 方法,这几种迭代方法是最常用的一阶线性定常迭代法。 2 主要算法 20世纪50年代至70年代,人们开始考虑和研究用迭代法求解线性方程组。 Ax = b (1) 的近似解,发展了许多有效的方法,其中有Jacobi方法、Gauss—Seidel方法,SOR方法、SSOR方法,这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A的一个分裂:A =M-N ;M 为可逆矩阵,线性方程组(1)化为: (M-N)X =b; →M X = NX + b; →X= M -1NX+ M-1b 得到迭代方法的一般公式: X(k+1)=HX(k)+d (2) 其中:H =MN-1,d=M-1b,对任意初始向量X(0) 一阶定常迭代法收敛的充分必要条件是: 迭代矩H的谱半径小于1,即ρ(H) < 1;又因为对于任何矩阵范数恒有ρ(H)≤‖H‖,故又可得到收敛的一个充分条件为:‖H‖< 1。 2.1 Jacobi迭代法 若D为A的对角素构成的对角矩阵,且对角线元素全不为零。系数矩阵A的一个分解:A =

求解线性方程组的直接解法

求解线性方程组的直接解法 5.2LU分解 ① Gauss消去法实现了LU分解 顺序消元结束时的上三角矩阵U和所用的乘数,严格下三角矩阵。 将下三角矩阵的对角元改成1,记为L,则有A=LU, 这事实是一般的,我们不难从消去的第k个元素时的矩阵k行及k列元素的 历史得到这一点.因为从消元的历史有 u kj=a kj-m k1u1j- m k2u2j -…- m k,k-1u k-1,j, j=k,k+1,…,n m ik=(a ik-m i1u1k- m i2u2k -…-m i,k-1u k-1,k>/u kk i=k+1,k+2,…,n 于是a kj=m k1u1j+m k2u2j+…+m k,k-1u k-1,j+u kj, j=k,k+1,…,n a ik=m i1u1k+m i2u2k+…+m i,k-1u k-1,k+m ik u kk i=k+1,k+2,…,n 从前面两个式子我们可以直接计算L和U(见下段>.将矩阵分解为单位下 三角矩阵和上三角矩阵之积称为矩阵的LU分解.顺序消元实现了LU分 解,同时还求出了g, Lg=b的解. ②直接LU分解 上段我们得到(l ij=m ij> u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j, j=k,k+1,…,n l ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk i=k+1,k+2,…,n 2 诸元素对应乘积,只不过算L的元素时还要除以同列对角元.这一规律很 容易记住.可写成算法(L和U可存放于A>: for k=1:n-1 for j=k:n u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j end for i=k+1:n l ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk end end 这一算法也叫Gauss消去法的紧凑格式,可一次算得L,U的元素,不需逐步 计算存储.

解线性方程组的直接解法

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识 求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解 线性方程组为b x\ =即可。 A Ax=,则输入b 2、列主元的高斯消元法 程序流程图: 输入系数矩阵A,向量b,输出线性方程组的解x。 根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于1 p :1- =n 选择第p列中最大元,并且交换行; 消元计算; 回代求解。(此部分可以参看课本第150页相关算法) 3、利用矩阵的分解求解线性方程组 (1)LU分解 调用matlab中的函数lu即可,调用格式如下: [L,U]=lu(A) 注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三角。 (2)平方根法

调用matlab 中的函数chol 即可,调用格式如下: R=chol (A ) 输出的是一个上三角矩阵R ,使得R R A T =。 三、研究、解答以下问题 问题1、先将矩阵A 进行楚列斯基分解,然后解方程组b Ax =(即利用平方根法求解线性方程组,直接调用函数): ??????? ??--------=19631699723723312312A ,?????? ? ??-=71636b 解答: 程序: A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19]; R=chol(A) b=[6 3 -16 7]'; y=inv(R')*b %y=R'\b x=inv(R)*y %x=R\y 结果: R =3.4641 -0.8660 0.5774 0.2887 0 4.7170 -1.3780 -0.5830 0 0 9.8371 -0.7085 0 0 0 4.2514 y =1.7321 0.9540 -1.5945 1.3940 x =0.5463 0.2023 -0.1385 0.3279 问题 2、先将矩阵A 进行LU 分解,然后解方程组b Ax =(直接调用函数): ?????????? ??----=8162517623158765211331056897031354376231A ,????????? ? ??-=715513252b

解线性方程组直接解法

第2章 解线性方程组的直接解法 §0 引言 11112211211222221122n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=??+++=??? ?+++=?L L L L 1112121 22212112,(,,,),()n n T T n n n n nn a a a a a a A x x x x b b b a a a ??????===??? ??? ? ?L L L L L L L Ax b = 若A 非奇异,即det()0A ≠,方程组Ax b =有唯一解。由 Cramer 法则,其解 det(),1,2,,det() i i A x i n A = =L 其中i A 为用b 代替A 中第i 列所得的矩阵。当n 大时, 1n +个行列式计算量相当大,实际计算不现实。 121212(,)12det()(1)n n n i i i i i i n i i i A a a a τ=-∑L L L §1 Gauss 消去法 (I )Gauss 消去法的例子 (1)1231123 212336 ()123315()18315() x x x E x x x E x x x E ++=??-+=??-+-=-? 2131()12(),()(18)()E E E E -?--? (2) 12312342356 ()15957()211793()x x x E x x E x x E ++=?? --=-??+=?

方程组13()()E E -与方程组145(),(),()E E E 同解 541 ()21( )()15 E E --得 (3)1231234366()15957()3() x x x E x x E x E ++=?? --=-??=? 由(3)得3 213,2,1x x x === 123(,,)(1,2,3)T T x x x = (3)的系数矩阵为11 10159001????--?????? ,上三角 矩阵。 (II )Gauss 消去法,矩阵三角分解 Ax b = 1112 11,12122 22,112 ,1 n n n n n n nn n n a a a a a a a a A b a a a a +++????????=?????????? L M L M L L M M L M 令(1) ,1,2,,;1,2,,,1ij ij a a i n j n n ===+L L (1)(1)A b A b ??=?? ???? 第1次消去 (1) 110a ≠, 令 (1)1 1(1)11 , 2,3,,i i a l i n a ==L 作运算:11()()i i i l E E E -+→ i E 表示第i 个方程(第i 行) 2,3,,i n =L (2)(1)(1) 111110 2,3,,i i i a a l a i n =-==L

线性方程组的直接解法 实验报告

本科实验报告 课程名称:数值计算方法B 实验项目:线性方程组的直接解法 最小二乘拟合多项式 实验地点:ZSA401 专业班级:学号:201000 学生姓名: 指导教师:李志 2012年4月13日

线性方程组的直接解法 一、实验目的和要求 实验目的:合理利用Gauss 消元法、LU 分解法或追赶法求解方程组。 实验要求:利用高斯消元法,LU 分解法或追赶法进行编程,求解题中所给的方程组。 二、实验内容和原理 实验内容:合理利用Gauss 消元法、LU 分解法或追赶法求解下列方程组: ① ?? ?? ? ?????=????????????????????13814142210321321x x x ②??? ? ?? ??????=????????????????????? ?? ? ??--?-2178.4617.5911212592.1121130.6291.513 14 .59103.043 2115x x x x ③?? ??? ??? ? ???????----=????????????????????????????????-55572112112112121 n n x x x x (n=5,10,100,…) 实验原理:这个实验我选用的是高斯消元法。高斯消元法:先按照 L ik =a ik^(k-1)/a kk^(k-1) , a ij^(k)=a ij^(k-1)-l ik a kj^(k-1) [其中k=1,2,…,n-1;i=k+1,k+2,…,n;j=k+1,k+2,…,n+1] 将方程组变为上三角矩阵,再经过回代,即可求解出方程组的解。 三.计算公式 通过消元、再回代的求解方法称为高斯消元法。特点是始终消去主对角线 下方的元素。 四、操作方法与实验步骤 #include "Stdio.h" #define N 3 main() { double a[N][N+1],b[N]; int i,j,k,x=0; for(i=0;i

线性方程组的解法及其应用

线性方程组的解法及其应用 The solution of linear equation and its application 专业:测控技术与仪器 班级: 2010-1班 作者:刘颖 学号: 20100310110105

摘要 线性方程组是线性代数的一个重要组成部分,也在现实生产生活中有着广泛的运用,在电子工程、软件开发、人员管理、交通运输等领域都起着重要的作用。在一些学科领域的研究中,线性方程组也有着不可撼动的辅助性作用,在实验和调查后期利用线性方程组对大量的数据进行处理是很方便简捷的选择。本文主要围绕如何解线性方程组来进行讲解,对于不同类型的线性方程组的不同方法,并简述线性方程组的一些实际应用。 关键词: 齐次线性方程组,非齐次线性方程组,克莱姆法则,消元法,矩阵,矩阵的秩,特解,通解。

Abstract Linear equations linear algebra is one of the important component parts, and in real life has extensive production use,and it plays an important role in electronic engineering, software development, personnel management, transportation, etc. In some discipline study, it also has the reigns of linear equations of the auxiliary function.In experiment and survey using the linear equations of the late on the data processing is very convenient simple choice. This article, focusing on how to solve linear equations to explain, for different types of linear equations of different methods, and briefly introduces some of the practical application of linear equations. Keywords: Homogeneous linear equations, Non homogeneous linear equation,Clem’s law,Elimination method,Matrix,Rank of matrix,Special solution,General solution.

线性方程组的直接解法及matlab的实现

本科毕业论文 ( 2010 届) 题目线性方程组的直接解法及matlab的实现 学院数学与信息工程学院 专业数学与应用数学 班级2006级数学1 班 学号0604010127 学生姓名胡婷婷 指导教师王洁 完成日期2010年5月

摘要 随着科技技术的发展及人类对自然界的不断探索模拟.在自然科学和工程问题中的很多问题的解决常常归结为线性代数问题! 本文的主要内容是对线性方程组求解方法的探讨,主要介绍了四种求解线性方程组的方法,第一种是教科书上常见的消元法,我们称之为基本法.第二种方法是标准上三角形求解法,即将增广矩阵经过初等变换后化成标准上三角形,然后求解.它改进了一般教科书上的常见方法,与常见方法比较有如下优点:1)规范了自由未知量的选取;2)只用矩阵运算;3)减少了计算量.第三种方法是对特定的方程组(系数矩阵A为n阶对称正定矩阵,且A的顺序主子式均不为零.)的求解方法进行描述,并且为这种线性方程的求解提供了固定的公式化的方法.第四种方法是对现在实际问题中常常会遇到的系数矩阵为三对角矩阵的方程组的求解方法.同时给出这几种方法的数值解法(matlab程序),由于运用电脑软件求解,所以必须考虑计算方法的时间、空间上的效率以及算法的数值稳定性问题,所以针对不同类型的线性方程组有不同的解法.但是,基本的方法可以归结为两大类,即直接法和迭代法. 关键词 高斯消去法;三角分解法;乔莱斯基分解法;追赶法

Abstract Systems of linear equations are associated with many problems in engineering and scinence ,as well as with applications of mathematics to the social sciences and the quantitative study of business and economic problems. The main content of this article is the method for solving linear equations, we introduce four methods for solving linear equations in this paper. The first is the elimination method which is commonly found in textbooks, and we call the Basic Law. The second method is Standard on the triangle Solution, that first change Augmented matrix into standards in primary triangle, and then solving. It improves the general textbook on common methods, compared with the common method has the following advantages:1) Specification of the free choice of unknowns; 2)Only matrix operations;3) Reduce the computation. The third method describes a way to solve a Specific equations(N coefficient matrix A is symmetric positive definite matrix, and A are not zero-order principal minor), And for this linear equation provides a fixed formulaic approach. The fourth method is to present practical problems often encountered in the coefficient matrix is tridiagonal matrix method for solving the equations. These methods are given numerical solution of (matlab program), As the use of computer software to solve, it is necessary to consider ways of computing time and space efficiency and numerical stability of algorithms, Therefore, different types of linear equations have a different solution. However, the basic method can be classified into two categories, namely direct methods and iterative methods. Key words Gaussian elimination; Triangular decomposition; Cholesky decomposition method; Thomas algorithm

线性方程组的直接解法

第4章 线性方程组的直接解法 本章主要内容 线性方程组的直接解法——消元法(高斯消元法、主元消元法). 矩阵的三角分解法( Doolittle 分解、Crout 分解、 LDU 分解) 紧凑格式 改进平方根法. 本章重点、难点 一、消元法(高斯消元法、列主元消元法) 本章求解的是n 阶线性方程组Ax=b 的(即方程的个数和未知量的个数相等的线性方程组) ?????????=+???++????????????? ??=+???++=+???++n n nn 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 22112 3222212111212111 1. 高斯消元法 ①高斯消元法的基本思想:通过对线性方程组Ax=b 的进行同解消元变换(也可以用矩阵的初等行变换法进行线性方程组的消元变换),将线性方程组化为上三角形方程组,然后用回代法求出此线性方程组的解。 ②高斯消元法计算公式: ????? ? ? ????????--=-=--==? ????? ????? ???? +=-=-=====-+=------------∑)1,..., 2,1()1,..., 2,1(,...,1,,,,...,2,1) ,...,2,1,(,) 1(1)1()1()1() 1() 1()1() 1()1()() 1()1()1()1()(,)0()0(n n i a x a b x n n i a b x n k j i b a a b b a a a a a n k n j i b b a a i ii n i j j i ij i i i n nn n n n k k k kk k ik k i k i k kj k kk k ik k ij k ij i i ij ij 对回代公式: 消元公式:

浅析线性方程组的解法

目录 摘要................................................................................... I Abstract. ............................................................................. II 第一章绪论............................................................................ I 1.1引言 (1) 1.2线性方程组解的求解方法的研究现状 (1) 1.3本文对线性方程组解法的研究结构 (1) 第二章线性方程组理论基础 (2) 2.1 线性方程组概念 (2) 2.2 线性方程组的解的情况分析 (2) 2.3 齐次线性方程组解的结构 (4) 2.4非齐次线性方程组解的结构 (4) 第三章线性方程组的数值解 (5) 3.1 迭代法 (5) 3.1.1 Jacobi方法 (6) 3.2.2 高斯-赛德尔方法 (8) 第四章全文总结和展望 (10) 4.1 全文总结 (10) 4.2 未来展望 (10) 参考文献 (11) 致谢................................................................. 错误!未定义书签。

线性方程组的求解方法 学生:指导教师: 摘要:本文在对线性方程组解的结构的研究背景与意义分析的基础上,对线性方程组的求解方法的研究现状进行了介绍,之后针对线性方程组展开了研究,包括线性方程组的概念、线性方程组的求解方法以及线性方程组的作用等,在对线性方程组有了全面的认识后,基于线性方程组解的结构展开了研究,包括线性方程组解的基本定理,齐次和非齐次线性方程组解的结构形式,以及齐次和非齐次线性方程组解的结构,我们用迭代法中最常用的Jacobi方法中的相似上三角矩阵定理和迭代法中的收敛性讨论线性方程组的数值解法,并用高斯-赛德尔方法进行验证。得到线性方程组的数值解的一般方法。最后,对全文进行了总结和展望。 关键词:线性方程组;数值解;迭代法;Jacobi方法;高斯-赛德尔方法

线性方程组的直接解法

第2章线性方程组的直接解法 2.1实验目的 理解线性方程组计算机解法中的直接解法的求解过程和特点,学习科学计算的方法和简单的编程技术。 2.2概念与结论 1. n阶线性方程组 如果未知量的个数为 n ,而且关于这些未知量x1,x2, …,x n的幂次都是一次的(线性的)那末, n 个方程 a11x1+a12x2+ … +a1n x n=b1 ┆┆┆ (1) a n1x1+a n2x2+ … +a nn x n= b n 构成一个含n个未知量的线性方程组,称为n阶线性方程组。其中,系数a11,…,a1n,a21, …,a2n, …,a n1, …,a nn 和b1, …,b n都是给定的常数。 方程组(1)也常用矩阵的形式表示,写为 Ax=b 其中,A是由系数按次序排列构成的一个n阶矩阵,称为方程组的系数矩阵,x和b都是n维向量,b称为方程组的右端向量。 2. n阶线性方程组的解 使方程组(1)中每一个方程都成立的一组数x1*,x2*, …,x n*称为式(1)的解,把它记为向量的形式,称为解向量. 3.一些特殊的线性方程组 1) 上三角方程组 2) 三对角方程组 ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - n n nn n n n n n n n n b b b x x x a a a a a a a a a a a a 2 1 2 1 1 1 1 2 1 2 23 22 1 1 1 13 12 11

4.矩阵的Doolittle 分解 5.Doolittle 分解的紧凑格式 6.矩阵的Crout 分解 ????????? ? ??=?????????? ???????????? ? ?--n n n n n n d d d x x x b a c b c b a c b a c b 21 2111333 22211???? ?? ? ? ???????? ??=??????? ??nn n n n n nn n n n n u u u u u u l l l a a a a a a a a a 222 11211 2 1 21 2 1 2222111211111 ???? ?? ? ? ???????? ??=??????? ??11 1 21122 1 2221 11 2 1 2222111211 n n nn n n nn n n n n u u u l l l l l l a a a a a a a a a ????? ?? ? ??nn n n n n n n u l l l u u l l u u u l u u u u 3 2 1 333323122322211131211

线性方程组的直接解法

实验五 线性方程组的直接解法 一、实验内容 1、用列主元素法求解方程组 15 123459.170.31059.43146.785.291 6.3112111.295221211x x x x -?????????????--??????=?????????????? ???? 并计算误差b-Ax ,分析结果的好坏; 2、 用改进Cholesky 方法求对称正定阵线性方程组 1234248.72171013.741090.7x x x -????????????-=????????????-?????? 并计算误差b-Ax ,分析结果的好坏; 3、 用追赶法解方程组 123421006132010121000351x x x x -????????????--??????=??????--??????-???? ?? 二、要求 1、 对上述三个方程组分别利用Gauss 列主元消去法;Cholesky 方法;追赶法求解(选择其一); 2、 应用结构程序设计编出通用程序; 3、 比较计算结果,分析数值解误差的原因; 三、目的和意义 1、通过该课题的实验,体会模块化结构程序设计方法的优点; 2、运用所学的计算方法,解决各类线性方程组的直接算法; 3、提高分析和解决问题的能力,做到学以致用; 4、 通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点。 四、实验学时:2学时 五、实验步骤: 1.进入matlab 开发环境; 2.根据实验内容和要求编写程序; 3.调试程序; 4.运行程序; 5.撰写报告,讨论分析实验结果.

六、程序 1、Gauss列主元素消去法 function x=Gauss_pivot(A,b) %用Gauss列主元素法求解线性方程组Ax=b %x是未知向量 n=length(b); x=zeros(n,1); c=zeros(1,n); d1=0; %消元计算 for i=1:n-1 max=abs(A(i,i)); m=i; for j=i+1:n if max

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

线性方程组的几种解法 线性方程组形式如下: 常记为矩阵形式 其中 一、高斯消元法 高斯(Gauss)消元法的基本思想是:通过一系列的加减消元运算,也就是代数中的加减消去法,将方程组化为上三角矩阵;然后,再逐一回代求解出x 向量。现举例说明如下: (一)消元过程 第一步:将(1)/3使x 1的系数化为1 得 再将(2)、(3)式中x 1的系数都化为零,即由(2)-2×(1)(1) 得 )1(32)2( (03) 4 32=+x x )1(321)1(......23132=++ x x x

由(3)-4×(1)(1) 得 第二步:将(2)(1) 除以2/3,使x 2系数化为1,得 再将(3)(1) 式中x 2系数化为零,即 由(3)(1) -(-14/3)*(2)(2) ,得 第三步:将(3)(2) 除以18/3,使x 3系数化为1,得 经消元后,得到如下三角代数方程组: (二)回代过程 由(3)(3) 得 x 3=1, 将x 3代入(2)(2) 得x 2=-2, 将x 2 、x 3代入(1)(1) 得x 2=1 所以,本题解为[x]=[1,2,-1]T (三)、用矩阵演示进行消元过程 第一步: 先将方程写成增广矩阵的形式 第二步:然后对矩阵进行初等行变换 初等行变换包含如下操作 (1) 将某行同乘或同除一个非零实数 ) 3(3)3(......1-=x )2(3)3( (63) 18-=x ) 2(32) 2(......02=+x x ) 1(32)3( (63) 10 314-=-- x x

(2)将某行加入到另一行 (3)将任意两行互换 第三步:将增广矩阵变换成上三角矩阵,即主对角线全为1,左下三角矩阵全为0,形式如下: 示例: (四)高斯消元的公式 综合以上讨论,不难看出,高斯消元法解方程组的公式为 1.消元 (1)令 a ij(1) = a ij , (i,j=1,2,3,…,n) b i(1) =b i , (i=1,2,3,…,n) (2)对k=1到n-1,若a kk(k)≠0,进行 l ik = a ik(k) / a kk(k) , (i=k+1,k+2,…,n) a ij(k+1) = a ij(k) - l ik * a kj(k), (i,j= k+1,k+2,…,n) b i(k+1) = b i(k) - l ik * b k(k), (i= k+1,k+2,…,n) 2.回代 若a nn(n) ≠0 x n = b n(n) / a nn(n) x i = (b i(i) – sgm(a ij(i) * x j)/- a ii(i),(i = n-1,n-2,…,1),( j = i+1,i+2,…,n ) (五)高斯消元法的条件 消元过程要求a ii(i) ≠0 (i=1,2,…,n),回代过程则进一步要求a nn(n) ≠0,但就方程组Ax=b 讲,a ii(i)是否等于0时无法事先看出来的。 注意A的顺序主子式D i(i=1,2,…,n),在消元的过程中不变,这是因为消元所作的变换是“将某行的若干倍加到另一行”。若高斯消元法的过程进行了k-1步(a ii(i) ≠0,i

实验报告—代数方程与微分方程求解

实 验 报 告 四 代数方程求解 1、【示例】以下命令可求出方程 (x +1)e –x +e x sin x =0在0附近的一个根: >>y=sym('(x+1)*exp(-x)+exp(x)*sin(x)'); % 用sym 命令定义符号表达式 >>x=solve(y,'x') % 用准解析方法求出方程最接近0的一个根 x =-0.86508244315736795185621568221837 或可用以下命令求解该方程以指定点为初始搜索点的数值解: >> y=inline('(x+1)*exp(-x)+exp(x)*sin(x) ', 'x'); % 用数值方法求解时,方程要用inline 命令定义 >> x=fsolve(y,0) % 用数值方法从初始点1开始搜索方程的近似解 x = -0.8651 注:准解析命令solve 只能求出方程最接近0的一个实数根,而数值解法fsolve 可以通过初始搜索点的变化,得到不同的解(如果方程有多个实数解)。 【要求】仿照示例,用准解析方法求出30.5sin(42)4cos(2)0.5t t e t e t --++=的一个根;再用数值方法分别求该方程在-0.6和3附近的两个根。 y=sym('exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5'); t=solve(y,'t') t =0.67374570500134756702960220427474 y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t'); t=fsolve(y,0.6) t = 0.6737 y=inline('exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5','t'); t=fsolve(y,3) t = 2.5937 2、【示例】以下命令可求解非线性方程组339820 x y x x y ?+-=?+-=? >> eq1=sym('x^3+y^3-x-98'); % 定义第一个方程表达式 >> eq2=sym('x+y-2'); % 定义第二个方程表达式 >> [x,y]=solve(eq1,eq2) % 解方程组(用准解析方法) x = 13/12+1/12*2329^(1/2) 13/12-1/12*2329^(1/2) y = 11/12-1/12*2329^(1/2) 11/12+1/12*2329^(1/2) 或可用以下命令求解上述方程组以指定点为初始搜索点的数值解: >> f=inline('[x(1) ^3+x(2) ^3-x(1)-98; x(1)+x(2)-2]', 'x'); % 用inline 命令定义方程组 >> x=fsolve(f,[1;1]) % 用数值方法从初始点(1,1)开始搜索方程组的一个近似解 x =

线性代数方程组的直接解法_赖志柱

第二章线性代数方程组的直接解法 教学目标: 1.了解线性代数方程组的结构、基本理论以及相关解法的发展历程; 2.掌握高斯消去法的原理和计算步骤,理解顺序消去法能够实现的条件,并在此基础上理解矩阵的三角分解(即LU分解),能应用高斯消去法熟练计算简单的线性代数方程组; 3.在理解高斯消去法的缺点的基础上,掌握有换行步骤的高斯消去法,从而理解和掌握选主元素的高斯消去法,尤其是列主元素消去法的理论和计算步骤,并能灵活的应用于实际中。 教学重点: 1. 高斯消去法的原理和计算步骤; 2. 顺序消去法能够实现的条件; 3. 矩阵的三角分解(即LU分解); 4. 列主元素消去法的理论和计算步骤。 教学难点: 1. 高斯消去法的原理和计算步骤; 2. 矩阵的三角分解(即LU分解); 3. 列主元素消去法的理论和计算步骤。 教学方法: 教具: 引言 在自然科学和工程技术中,许多问题的解决常常归结为线性方程组的求解,有的问题的数学模型中虽不直接表现为线性方程组,但它的数值解法中将问题“离散化”或“线性化”为线性方程组。例如,电学中的网络问题、船体数学放样中建立三次样条函数问题、最小二乘法用于求解实验数据的曲线拟合问题、求解非线性方程组问题、用差分法或有限元法求解常微分方程边值问题及偏微分方程的定解问题,都要导致求解一个或若干个线性方程组的问题。 目前,计算机上解线性方程组的数值方法尽管很多,但归纳起来,大致可以分为两大类:一类是直接法(也称精确解法);另一类是迭代法。例如线性代数中的Cramer法则就是一种直接法,但其对高阶方程组计算量太大,不是一种实用的算法。实用的直接法中具有代表性的算法是高斯(Gauss)消元法,其它算法都是它的变形和应用。 在数值计算历史上,直接法和迭代法交替生辉。一种解法的兴旺与计算机的硬件环境和问题规模是密切相关的。一般说来,对同等规模的线性方程组,直接法对计算机的要求高于迭代法。对于中、低阶(200 n )以及高阶带形的线性方程组,由于直接法的准确性和可靠性高,一般都用直接法求解。对于一般高阶方程组,特别是系数矩阵为大型稀疏矩阵的线性方程组用迭代法有效。

数值分析讲义——线性方程组的解法

数值分析讲义 第三章线性方程组的解法 §3.0 引言 §3.1 雅可比(Jacobi)迭代法 §3.2 高斯-塞德尔(Gauss-Seidel)迭代法 §3.3 超松驰迭代法§3.7 三角分解法 §3.4 迭代法的收敛性§3.8 追赶法 §3.5 高斯消去法§3.9 其它应用 §3.6 高斯主元素消去法§3.10 误差分析 §3 作业讲评3 §3.11 总结

§3.0 引言 重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用.如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题. 分类:线性方程组的解法可分为直接法和迭代法两种方法. (a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解.最基本的直接法是Gauss消去法,重要的直接法全都受到Gauss消去法的启发.计算代价高. (b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列.收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题.简单实用,诱人.

§3.1 雅可比Jacobi 迭代法 (AX =b ) 1 基本思想: 与解f (x )=0 的不动点迭代相类似,将AX =b 改写为X =BX +f 的形式,建立雅可比方法的迭代格式:X k +1=BX (k )+f ,其中,B 称为迭代矩阵.其计算精度可控,特别适用于求解系数为大型稀疏矩阵(sparse matrices)的方程组. 2 问题: (a) 如何建立迭代格式? (b) 向量序列{X k }是否收敛以及收敛条件? 3 例题分析: 考虑解方程组??? ??=+--=-+-=--2.453.82102 .72103 21321321x x x x x x x x x (1) 其准确解为X *={1, 1.2, 1.3}. 建立与式(1)相等价的形式: ??? ??++=++=++=84.02.01.083.02.01.072 .02.01.02 13312321x x x x x x x x x (2) 据此建立迭代公式: ?????++=++=++=+++84 .02.01.083.02.01.072.02.01.0)(2)(1)1(3 )(3 )(1)1(23)(2)1(1k k k k k k k k k x x x x x x x x x (3) 取迭代初值0) 0(3 )0(2)0(1===x x x ,迭代结果如下表. JocabiMethodP31.cpp

相关主题
文本预览
相关文档 最新文档