>n;coutfor(i=0;ifor(s=0;scin>>a[i][s];}cout}coutfor(i=0;icin>>b[i];}for(" />
当前位置:文档之家› 追赶法解三角矩阵

追赶法解三角矩阵

追赶法解三角矩阵
追赶法解三角矩阵

#include"iostream"

#include"cmath"

using namespace std;

double a[100][100],l[100][100],u[100][100],b[100],y[100],x[100];

int n,s,i;

void main(){

cout<<"请输入三对角阵的规模:"<

cin>>n;

cout<<"请输入三对角阵:"<

for(i=0;i

for(s=0;s

cin>>a[i][s];

}

cout<

}

cout<<"请输入b的值:"<

for(i=0;i

cin>>b[i];

}

for( i=0;i

for( s=0;s

l[i][s]=0;

u[i][s]=0;

}

cout<

}

u[0][0]=a[0][0]; //根据Doolittle分解法,得出LU矩阵for(i=0;i

u[i][i+1]=a[i][i+1];

l[i][i]=1.0;

l[i+1][i]=a[i+1][i]/u[i][i];

u[i+1][i+1]=a[i+1][i+1]-l[i+1][i]*a[i][i+1];

}

cout<<"根据Doolittle分解:"<

cout<<"L矩阵为:"<

for(i=0;i

for(s=0;s

cout<

}

cout<

}

cout<

cout<<"U矩阵为:"<

for(i=0;i

cout<

}

cout<

}

y[0]=b[0]; //解Ly=b(追过程)

for(i=1;i

y[i]=b[i]-l[i][i-1]*y[i-1];

}

x[n-1]=y[n-1]/u[n-1][n-1]; //解Ux=y(赶过程)for(i=n-2;i>=-1;i--){

x[i]=(y[i]-u[i][i+1]*x[i+1])/u[i][i];

}

for(i=0;i

cout<<"x["<

}

}

/*

4

1 -0.25 0 0

-0.25 1 -0.25 0

0 -0.25 1 -0.25

0 0 -0.25 1

1 1 1 1

*/

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

求解线性方程组的直接解法 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的元素,不需逐步 计算存储.

2.4直接三角分解法

§4 直接三角分解法 一、教学设计 1.教学内容:Doolittle 分解法、Crout 分解法,紧凑格式的Doolittle 分解法、部分选主元的Doolittle 分解法。 2.重点难点:紧凑格式的Doolittle 分解法、部分选主元的Doolittle 分解法。 3.教学目标:了解直接三角分解法的基本思想,掌握基本三角分解法及其各种变形。 4.教学方法:讲授与讨论。 二、教学过程 在上节中我们用矩阵初等变换来分析Gauss 消去法,得到了重要的矩阵LU 分解定理(定理 3.1,3.2)。由此我们将得到Gauss 消去法的变形:直接三角分解法。直接三角分解法的基本想法是,一旦实现了矩阵A 的LU 分解,那么求解方程组b x =A 的问题就等价于求解两个三角形方程组 (1)b y =L ,求y ; (2)y x =U ,求x 。 而这两个三角形方程组的求解是容易的。下面我们先给出这两个三角形方程组的求解公式;然后研究在LU A =或LU PA =时,U L ,的元素与A 的元素之间的直接关系。 4-0 三角形线性方程组的解法 设 ????? ???????= nn n n l l l l l l L 21222111, 11121222n n nn u u u u u U u ??????=???????? 则b y =L 为下三角形方程组,它的第i 个方程为 ),2,1(11,22111 n i b y l y l y l y l y l i i ii i i i i i i j j ij ==++++=--=∑ 假定0≠ii l ,按n y y y ,,,21 的顺序解得: ??? ?? ? ?=+-==∑-=) ,,3,2(/1111 11n i l b y l y l b y ii i i j j ij i 上三角形方程组y x =U 的第i 个方程为

计算方法_矩阵LU分解法

clear all; %A=LU矩阵三角分解法 n=input('输入方矩阵的维数: '); for i=1:n for j=1:n A(i,j)=input('依次输入矩阵元素:'); end end %输入一个n阶方形矩阵 for j=1:n L(j,j)=1; %Doolittle分解,L对角元素全为1 end for j=1:n U(1,j)=A(1,j); end %U的第一行 for i=2:n L(i,1)=A(i,1)/U(1,1); end %L的第一列 for k=2:n for j=k:n sum1=0; for m=1:k-1 sum1=sum1+L(k,m)*U(m,j); end %求和 U(k,j)=A(k,j)-sum1; end for i=k+1:n sum2=0; for m=1:k-1 sum2=sum2+L(i,m)*U(m,k); end %求和 L(i,k)=(A(i,k)-sum2)/U(k,k); end end L %输出下三角矩阵L U %输出上三角矩阵U

运行结果:(示例) 输入方矩阵的维数: 4 依次输入矩阵元素: 1 依次输入矩阵元素: 1 依次输入矩阵元素: 2 依次输入矩阵元素: 3 依次输入矩阵元素:0 依次输入矩阵元素: 2 依次输入矩阵元素: 1 依次输入矩阵元素: 2 依次输入矩阵元素: 1 依次输入矩阵元素:-1 依次输入矩阵元素: 2 依次输入矩阵元素: 2 依次输入矩阵元素: 2 依次输入矩阵元素: 2 依次输入矩阵元素: 5 依次输入矩阵元素:9 A=LU分解后则可以求解Ax=b线性方程组,相关计算参考计算方法,这里不再详细介绍。

列主元三角分解法在matlab中的实现

列主元三角分解法在matlab中的实现 摘要:介绍了M atlab语言并给出用M atlab语言实现线性方程组的列主元三角分解法,其有效性已在计算机实现中得到了验证。 关键词:M atlab语言;高斯消去法;列主元三角分解法 0前言 M atlab是M atrix Laboratory(矩阵实验室)的缩写,它是由美国M athwork公司于1967年推出的软件包,现已发展成为一种功能强大的计算机语言。它编程简单,使用方便,在M a tlab环境下数组的操作与数的操作一样简单,进行数学运算可以像草稿纸一样随心所欲,使计算机兼备高级计算器的优点。M atlab语言具有强大的矩阵和向量的操作功能,是Fo rtran和C语言无法比拟的;M a tlab语言的函数库可任意扩充;语句简单,内涵丰富;还具有二维和三维绘图功能且使用方便,特别适用于科学和工程计算。 在科学和工程计算中,应用最广泛的是求解线性方程组的解,一般可用高斯消去法求解,如果系数矩阵不满足高斯消去法在计算机上可行的条件,那么消元过程中可能会出现零主元或小主元,消元或不可行或数值不稳定,解决办法就是对方程组进行行交换或列交换来消除零主元或小主元,这就是选主元的思想。 1 定义 列主元三角分解:如果A为非奇异矩阵,则存在排列矩阵P,使PA=LU,其中L为单位下三角矩阵,U为上三角阵。列主元三角分角法是对直接三角分解法的一种改进,主要目的和列主元高斯消元法一样,

就是避免小数作为分母项. 2 算法概述 列主元三角分解法和普通三角分解法基本上类似,所不同的是在构造Gauss 变换前,先在对应列中选择绝对值最大的元素(称为列主元),然后实施初等行交换将该元素调整到矩阵对角线上。 例如第)1,,2,1(-=n k 步变换叙述如下: 选主元:确定p 使{}1)1( max -≤≤-=k ik n i k k pk a a ; 行交换:将矩阵的第k 行和第p 行上的元素互换位置,即 . 实施Gauss 变换:通过初行变换,将列主对角线以下的元素消为零.即 3 列主元三角分解在matlab 中的实现

追赶法求解三对角线性方程组

追赶法求解三对角线性方程组 一 实验目的 利用编程方法实现追赶法求解三对角线性方程组。 二 实验内容 1、 学习和理解追赶法求解三对角线性方程组的原理及方法; 2、 利用MATLAB 编程实现追赶法; 3、 举例进行求解,并对结果进行分。 三 实验原理 设n 元线性方程组Ax=d 的系数矩阵A 为非奇异的三对角矩阵 11222=(1)(n 1)()()a c b a c A a n c b n a n ??????????--?????? ………… 这种方程组称为三对角线性方程组。显然,A 是上下半宽带都是1的带状矩阵。设A 的前n-1个顺序主子式都不为零,根据定理2.5的推论,A 有唯一的Crout 分解,并且是保留带宽的。 其中L 是下三角矩阵,U 是单位上三角矩阵。利用矩阵相乘法,可以1112212(1)1u(n 1)()()1l u m l u A LU l n m n l n ????????????????==?????--????????????……………

得到: 由上列各式可以得到L 和U 。 引入中间量y ,令 y Ux =,则有: 已知 L 和d ,可求得y 。 则可得到y 的求解表达式: 11/1 2,3,,()(1)*y()=()[()(1)]/y d l i n m i y i li i di y i di m i y i li ==-+=--… 1111111/1(2)(1)(1)u (1)(11)/(1)(1)(1)l a l u c u c l mi bi i n a i m i i l i i n ci li ui ui ci li l i a i b i ui =*===≤≤+=+++≤≤-=?=+=+-+Ax LUx Ly d Ly d ====1112222(1)(n 1)(n 1)()()(n)(n)l y d m l y d l n y d m n l n y d ?????????????????????????=??????---?????????????????? ……………

追赶法解三对角方程组

《数值分析》课程设计追赶法解三对角方程组 院(系)名称信息工程学院 专业班级10普本信计 学号100111014 学生姓名刘银朋 指导教师张荣艳 2013 年05 月31日

数值分析课程设计评阅书 题目追赶法解三对角方程组 学生姓名刘银朋学号100111014 指导教师评语及成绩 指导教师签名: 年月日答辩评语及成绩 答辩教师签名: 年月日 教研室意见 总成绩: 教研室主任签名: 年月日

课程设计任务书 2012—2013学年第二学期 专业班级:10普本信息与计算科学学号:100111014 姓名:刘银朋 课程设计名称:数值分析Ⅰ、Ⅱ 设计题目:追赶法解三对角方程组 完成期限:自2013 年05月21 日至2013年05 月31日共10天 设计依据、要求及主要内容: 一、设计目的 理解追赶法,掌握追赶法的算法设计以及关于追赶法的分析和综合应用,能 够较熟练的应用Matlab软件编写求解追赶法的程序和应用Matlab软件数据库软 件. 二、设计内容 (1)认真挑选有代表性的三对角方程组. (2)认真梳理解三对角方程组的解题思路. (3)比较追赶法和高斯消去法的计算精度. 三、设计要求 1.先用Matlab数据库中的相应的函数对选定的方程,求出具有一定精度的解. 2.然后使用所用的方法编写Matlab程序求解. 3.对于使用多个方程解同意问题的,在界面上要设计成菜单的形式. 计划答辩时间:2013年06 月 5 日 工作任务鱼工作量要求: 查阅文献资料不少于3篇,课程设计报告1篇不少于3000字. 指导教师(签字):教研室主任(签字): 批准日期:2013 年05 月20 日

第四章线性方程组直接法,矩阵三角分解

第四章 习题答案 1。用Gauss 消去法解方程组 1231231 2323463525433032 x x x x x x x x x ++=?? ++=??++=? 解:方程组写成矩阵形式为12323463525433032x x x ?????? ? ? ? = ? ? ? ? ? ????? ?? 对其进行Gauss 消去得12323441 4726002x x x ?? ???? ? ? ? ?-= ? ? ? ? ? ?????-?? 得方程组12312323 32346 131 44 822 24 x x x x x x x x x ++=?=-???? -=-?=????=?-=-?? 2。用Gauss 列主元素消去法解方程组 1233264107075156x x x -?????? ? ? ?-= ? ? ? ? ? ?-???? ?? 解:因为第一列中10最大,因此把10作为列主元素 1233264107075156x x x -?????? ? ? ?-= ? ? ? ? ? ?-??????12r r ????→1231070732645156x x x -?????? ? ? ?-= ? ? ? ? ? ?-???? ?? 21 3113 10122 31070716106101055052 2r r r r x x x +-? ??? ? ?-?? ? ? ? ? ????→-= ? ? ? ? ? ??? ? ?????23 r r ????→123107075505221 61061010x x x ? ??? ? ?-?? ? ? ? ? ?= ? ? ? ? ? ? ?? ? ?-????

矩阵分解及其应用

《线性代数与矩阵分析》课程小论文 矩阵分解及其应用 学生姓名:****** 专业:******* 学号:******* 指导教师:******** 2015年12月

Little Paper about the Course of "Linear Algebra and Matrix Analysis" Matrix Decomposition and its Application Candidate:****** Major:********* StudentID:****** Supervisor:****** 12,2015

中文摘要 将特定类型的矩阵拆解为几个矩阵的乘机称为矩阵的分解。本文主要介绍几种矩阵的分解方法,它们分别是矩阵的等价分解、三角分解、谱分解、奇异值分解和 Fitting 分解等。矩阵的分解理论和方法是矩阵分析中重要的部分,在求解矩阵的特征值、解线性方程组以及实际工程中有着广泛的运用。因此,本文将介绍矩阵等价分解、三角分解、奇异值分解的理论运用以及三角分解的工程运用。 关键词:等价分解,三角分解,奇异值分解,运用

Abstract Many particular types of matrix are split into the product of a matrix of several matrices, which is called decomposition of matrix. In this paper, we introduce some methods of matrix decomposition, which are equivalent decomposition, triangular decomposition, spectral decomposition, singular value decomposition, Fitting decomposition and so on. The decomposition theory and method of matrix is an important part of matrix analysis, which is widely used in solving the characteristic value, solving linear equations and the practical engineering. In this paper, we will introduce the theory of matrix equivalence decomposition, triangular decomposition, singular value decomposition and the engineering application of triangular decomposition. Key words:Equivalent Decomposition, Triangular Decomposition, Singular Value Decomposition, Application

三 矩阵直接三角分解法

矩阵直接三角分解法 1、实验目的: 求解方程组Ax=b A=[1 2 -12 8; 5 4 7 -2; -3 7 9 5; 6 -12 -8 3], b=[27; 4; 11; 49] 2、实验步骤: 添加库函数 #include "stdafx.h" #include "math.h" 3、代码: #include "stdafx.h" #include "math.h" void main() { float x[4]; int i; float a[4][5]={1,2,-12,8,27,5,4,7,-2,4,-3,7,9,5,11,6,-12,-8,3,49}; void DirectLU(float*,int,float[]); DirectLU(a[0],4,x); for(i=0;i<=3;i++)printf("x[%d]=%f\n",i,x[i]); } void DirectLU(float*u,int n,float x[]) {

int i,r,k; for(r=0;r<=n-1;r++) { for(i=r;i<=n;i++) for(k=0;k<=r-1;k++) *(u+r*(n+1)+i)-=*(u+r*(n+1)+k)*(*(u+k*(n+1)+i)); for(i=r+1;i<=n-1;i++) { for(k=0;k<=r-1;k++) *(u+i*(n+1)+r)-=*(u+i*(n+1)+k)*(*(u+k*(n+1)+r)); *(u+i*(n+1)+r)/=*(u+r*(n+1)+r); } } for(i=n-1;i>=0;i--) { for(r=n-1;r>=i+1;r--) *(u+i*(n+1)+n)-=*(u+i*(n+1)+r)*x[r]; x[i]=*(u+i*(n+1)+n)/(*(u+i*(n+1)+i)); } }

【良心出品】MATLAB 追赶法求解三对角方程组的算法原理例题与程序

3)三对角形线性方程组 123456789104100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014x x x x x x x x x x -????????--????????--????--????????--????--????????--????--???????--??????-???? 7513261214455????????-?? ?? ??=??-?? ???? -?? ?????? ???-?? *(2,1,3,0,1,2,3,0,1,1)T x =--- 二、数学原理 设系数矩阵为三对角矩阵 1 122233111000000000 000000 n n n n n b c a b c a b A a b c a b ---?? ? ? ?= ? ? ? ? ?? ? 则方程组Ax=f 称为三对角方程组。 设矩阵A 非奇异,A 有Crout 分解A=LU ,其中L 为下三角矩阵,U 为单位上三角矩阵,记 1 122 233 1 10 00010 000 0001000 000100,00000000 00 0001n n n n b L U γαβγββγβ--???? ? ? ? ? ? ??== ? ? ? ? ? ? ? ? ? ??? ? ? ? 可先依次求出L ,U 中的元素后,令Ux=y ,先求解下三角方程组Ly=f 得出y ,再求解上三角方程组Ux=y 。

事实上,求解三对角方程组的2追赶法将矩阵三角分解的计算与求解两个三角方程组的计算放在一起,使算法更为紧凑。其计算公式为: 1111, 1111 ,111 ,2,3,,,1,2,,1i i i i i i i i i i i i i i n n i i i i c f b y i n c a b a f y y x y i n n x y x βγββαβγγβαβγ--+? ===?? =?? ?==-= ??? -?=?? =??=--?=-??对对(*) 三、程序设计 function x=chase(a,b,c,f) %求解线性方程组Ax=f,其中A 是三对角阵 %a 是矩阵A 的下对角线元素a(1)=0 %b 是矩阵A 的对角线元素 %c 是矩阵A 的上对角线元素c(n)=0 %f 是方程组的右端向量 n=length(f); x=zeros(1,n);y=zeros(1,n); d=zeros(1,n);u= zeros(1,n); %预处理 d(1)=b(1); for i=1:n-1 u(i)=c(i)/d(i); d(i+1)=b(i+1)-a(i+1)*u(i); end %追的过程 y(1)=f(1)/d(1); for i=2:n y(i)=(f(i)-a(i)*y(i-1))/d(i); end %赶的过程 x(n)=y(n); for i=n-1:-1:1 x(i)=y(i)-u(i)*x(i+1); end

列主元高斯消去法和列主元三角分解法解线性方程

计算方法实验报告1 【课题名称】 用列主元高斯消去法和列主元三角分解法解线性方程 【目的和意义】 高斯消去法是一个古老的求解线性方程组的方法,但由它改进得到的选主元的高斯消去法则是目前计算机上常用的解低阶稠密矩阵方程组的有效方法。 用高斯消去法解线性方程组的基本思想时用矩阵行的初等变换将系数矩阵A 约化为具有简单形式的矩阵(上三角矩阵、单位矩阵等),而三角形方程组则可以直接回带求解 用高斯消去法解线性方程组b Ax =(其中A ∈Rn ×n )的计算量为:乘除法运算步骤为 32(1)(1)(21)(1)(1)262233n n n n n n n n n n n MD n ----+= +++=+-,加减运算步骤为 (1)(21)(1)(1)(1)(25) 6226n n n n n n n n n n AS -----+= ++= 。相比之下,传统的克莱姆 法则则较为繁琐,如求解20阶线性方程组,克莱姆法则大约要19 510?次乘法,而用高斯消 去法只需要3060次乘除法。 在高斯消去法运算的过程中,如果出现abs(A(i,i))等于零或过小的情况,则会导致矩阵元素数量级严重增长和舍入误差的扩散,使得最后的计算结果不可靠,所以目前计算机上常用的解低阶稠密矩阵方程的快速有效的方法时列主元高斯消去法,从而使计算结果更加精确。 2、列主元三角分解法 高斯消去法的消去过程,实质上是将A 分解为两个三角矩阵的乘积A=LU ,并求解Ly=b 的过程。回带过程就是求解上三角方程组Ux=y 。所以在实际的运算中,矩阵L 和U 可以直接计算出,而不需要任何中间步骤,从而在计算过程中将高斯消去法的步骤进行了进一步的简略,大大提高了运算速度,这就是三角分解法 采用选主元的方式与列主元高斯消去法一样,也是为了避免除数过小,从而保证了计算的精确度

追赶法解三对角矩阵

实验追赶法解三对角方程组 一、实验目的 学会用追赶法解三对角方程组,并应用该算法于实际问题. 二、实验要求 给定三对角方程组,应用追赶法解得方程组的解。 三、实验内容 1、追赶法 2、以课本数值试验2为实例 3、如果有错,修改直至运行成功,查看运行结果; 四、实验环境 matlab 五、实验步骤和方法 1、程序设计 2、带入实例 3、撰写实验报告。 六、实验预习要求 得到实例的解 一、[源程序] function x = my_zgf2(A,d,flag) %MY_ZGF2 Summary of this function goes here [m,n]=size(A); %计算矩阵的大小 if nargin==2; %输入变量等于2的时候,A中储存所有元素的值for i=1:n a(i)=A(i+1,i); b(i)=A(i,i); c(i)=A(i,i+1); end a(1)=0; %补充不足的值 b(n)=A(n,n); c(n)=0; else c=[A(1,:) 0]; %flag==1时 b=A(2,:); a=[0 A(3,:)]; end

u(1)=b(1); for i=2:n %第一次追赶,得到上、下三角矩阵 l(i)=a(i)/u(i-1); u(i)=b(i)-c(i-1)*l(i); end y(1)=d(1); %解Ly=d for i=2:n y(i)=d(i)-l(i)*y(i-1); end x(n)=y(n)/u(n); %解Ux=y for i=n-1:-1:1 x(i)=(y(i)-c(i)*x(i+1))/u(i); end 二、带入实例 A = -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 0 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 5.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 -2.0000 0 d= 8.1400 0 0 0 0 0 0 0 >> d=A(4,:); my_zgf2(A,d,1) ans = 2.0350 1.0174 0.5086 0.2541 0.1267 0.0626 0.0298 0.0119 >>

07 第七讲 矩阵的三角分解

第七讲 矩阵的三角分解 一、 Gauss 消元法的矩阵形式 n 元线性方程组 ?? ????? 1111221n n 1 2112222n n 2n11n22nn n n a ξ+a ξ++a ξ= b a ξ+a ξ++a ξ=b a ξ+a ξ++a ξ=b → Ax =b ?? ? ? ? ?? ij T 12n T 12n A =(a )x =[ξ ξ ξ]b =[b b b ] 设()0ij n ×n A =A =a ,设A 的k 阶顺序主子式为k Δ,若(0) 111Δ=a ≠0 ,可以令(0)i1 i1(0)11 a c =a 并构造Frobenius 矩阵 ???????????? 211n1n ×n 10c 1L =c 01 → ???????????? 21 -11 n11 0-c 1L =-c 01 计算可得 ???? ???? ??? ? (0)(0)(0)1112 1n (1) (1)(1)-1(0)222n 1 (1) (1)n2nn a a a a a A =L A =0a a → (0)(1)1A =L A 该初等变换不改变行列式,故(0)(1)21122Δ=a a ,若2Δ≠0,则(1) 22a ≠0 ,又可定义 (1)i2i2(1)22 a c =(i=3,4,,n)a ,并构造Frobenius 矩阵

????? ???? ??????? 232n2 11L =c c 1 → ?? ??? ?? ?? ??????? -1232n2 1 1L =-c -c 1 ???? ? ? ????????? ? (0)(0)(0)(0)1112 13 1n (1) (1)(1)22232n (2)-1(1) (2)(2)2 333n (2)(2)n3 nn a a a a a a a A =L A =a a a a → (1)(2) 2A =L A 依此类推,进行到第(r-1)步,则可得到 ??? ? ? ? ????? ???????? ? (0)(0)(0) (0)111r-11r 1n (r-2)(r-2) (r-2)(r-1)r-1r-1r-1r r-1n (r-1) (r-1)rr rn (r-1) (r-1)nr nn a a a a a a a A =a a a a (r =2,3, ,n-1) 则A 的r 阶顺序主子式 (0)(1)(r-2)(r-1)r 1122r-1r-1rr Δ=a a a a ,若r Δ≠0,则(r-1) rr a ≠0 可定义(r-1)ir ir (r-1)rr a c =a ,并构造Frobenius 矩阵 ?????????????????? r r+11nr 11L =c 1c 1 → ?????? ?????? ???? ?? -1 r r+11nr 11L =-c 1-c 1

数值计算实验解三对角线性方程组的追赶法

实验课程名称计算机数值计算 实验项目名称追赶法 年级10级 专业信计 学生姓名成富 学号1007010167 理学院 实验时间:2012 年 3月 26 日

学生实验室守则 一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。 二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。 三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。 四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。 五、实验中要节约水、电、气及其它消耗材料。 六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。 七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。 八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。 九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经批准后,方可补做。 十、自选实验,应事先预约,拟订出实验方案,经实验室主任同意后,在指导教师或实验技术人员的指导下进行。 十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。

线性方程组的求解问题1

目录 1 引言 (2) 1.1 概念 (3) 1.2 解的情况及其通解 (4) 2 线性方程组的常见解法 (4) 2.1 高斯消元法 (4) 2.2 矩阵初等变换法 (6) 2.2.1 LU分解 (6) 2.2.2 追赶法 (7) 2.3平方根法 (10) 3 线性方程组解法探讨 (12) 3.1 线性方程组的直接方法 (12) 3.2 线性方程组的多项式矩阵的初等变换法 (16) 4结束语 (19) 参考文献 (20)

线性方程组的解法 摘要: 线性方程组是线性代数中一个最基础的内容,广泛应用于现代科学的许多分支。其核心问题之一就是线性方程组的求解问题。本文先简要介绍了线性方程组的概念,然后给出线性方程组解的结构,重点介绍了解线性方程组的几种方法:高斯消元法,追赶法,平方根法,直接法,初等变换法等求解线性方程组的方法。说明研究线性方程组求解问题的探讨及本文的写作意义。 关键词: 线性方程组;高斯消元法;平方根法;追赶法;直接法;初等变换法 1 引言 线性方程组即各个方程关于未知量均为一次的方程组。对线性方程组的研究,中国比欧洲至少早1500年,记载在公元初《九章算术》方程章中。 线性方程组是线性代数的主要内容,它主要包括线性方程组有解性的判定、线性方程组的求解和线性方程组解的结构等。线性方程组的核心问题是研究它何时有解,以及解是什么。本节主要对线性方程组解的情况进行讨论,给出当解不唯一时通解的表示形式。另外还介绍了几种特殊的线性方程组的求解方法。线性方程组可以分成两类,一类是未知量个数与方程的个数相等,另一类是未知量个数与方程的个数不等。对于前一类特殊的线性方程组,我们可以采用克拉默法则,对于后一种线性方程组我们可以采用高斯消元法。而且随着现代工业的发展,线性方程组的应用出现在各个领域,伴随着大量方程和多未知数的出现,而追赶法是数值计算中解线性方程组的一种直接法,它能在无舍入误差存在的情况下,经过有限步运算即可求得方程组的精确解的算法。用矩阵初等变化

(完整word版)追赶法求解三对角方程及其算例

追赶法求解三对角方程组 要求:对于给定的三对角系数矩阵和右端项,可以求 解线性代数方程组 一、 追赶法的数学理论 设系数矩阵为三对角矩阵 112223311100000000 000000 n n n n n b c a b c a b A a b c a b ---?? ? ? ?= ? ? ? ? ?? ? 则方程组Ax=f 称为三对角方程组。 设矩阵A 非奇异,A 有Crout 分解A=LU ,其中L 为下三角矩阵,U 为单位上三角矩阵,记 1 122 233 1 10 00010 000 0001000 000100,00000000 00 0001n n n n b L U γαβγββγβ--???? ? ? ? ? ? ??== ? ? ? ? ? ? ? ? ? ??? ? ? ? 可先依次求出L ,U 中的元素后,令Ux=y ,先求解下三角方程组Ly=f 得出y ,再求解上三角方程组Ux=y 。

事实上,求解三对角方程组的2追赶法将矩阵三角分解的计算与求解两个三角方程组的计算放在一起,使算法更为紧凑。其计算公式为: 1111, 1111 ,111 ,2,3,,,1,2,,1i i i i i i i i i i i i i i n n i i i i c f b y i n c a b a f y y x y i n n x y x βγββαβγγβαβγ--+?===?? =?? ?==-= ??? -?=?? =??=--?=-??对对(*) 二、 追赶法的算法和流程图 1.预处理 生成方程组的系数i u 及其除数i d ,事实上,按式(*)可交替生成i d 与i u : 1d →1u →2d →…→1-n u →n d 其计算公式为 ??? ??-=-===+++1,...,2,1, ,/c u b 111 i i 11n i u a b d d d i i i i i 2.追的过程 顺序生成方程组右端: i y →2y →…→n y 据式(*)的计算公式为 n i d y a f y d f y i i i i i ,...,3,2, /)(/1111=?? ? -==-

矩阵的三角分解

§4矩阵的三角分解 矩阵的三角分解定理:设n n A R ×∈,如果A 的前 n-1个顺序主子式 det()0,1,2,,1i A i n ≠=? , 则A 可分解为一个单位下三角矩阵L 与一个上三角矩阵U 的乘积,且这种分解是唯一的。

证明: 1.存在性:利用高斯消去法来构L 和U (1)(2)() 1122det()0,1,2,,1i i ii A a a a i n =≠=? 1L A U ?=,A LU = 21 1 2 1 00101n n m L m m ??????=?? ???? , (1) (1)(1)11 121(2)(1)222()0 n n n nn a a a a a U a ??? ???=?? ??????

2.唯一性:分A 非奇异和奇异两种情况来证 (1)A 非奇异 考虑到A 的前n-1个顺序主子式非零,得 det()0,1,2,,i A i n ≠= 设1122A LU L U ==,12,L L 为单位下三角矩阵,12,U U 为上三角矩阵。 因A 非奇异,所以1U 可逆,从而 11 2121L L U U ??=

11 2121 11 2121(,) L L E U U L L U U ?????==因为单位下三角阵为上三角阵2121,L L U U ?== (2)A 奇异 因det()0,1,2,,1i A i n ≠=? ,det()0n A = ()0,1,2,,1i ii a i n ?≠=? ,() 0n nn a = 设1122A LU L U ==,12,L L 为单位下三角矩阵,12,U U 为上三角矩阵。对它们进行矩阵

追赶法求解三对角线性方程组

作业五:编写用追赶法求解三对角线性方程组的标准程序,并求下列方程组的解。matlab 1233212417259x x x -???????????? =-?????????????????? function [ x,flag ] =zgf(A,b) % A 为方程组的系数矩阵 % b 为方程组的右端项 % x 为方程组的解 % flag 为指标向量,flag=‘failure ’表示失败,flag=‘OK ’表示成功 [n,m]=size(A);n=length(b); [L,U,flag]=LU_decom(A); for i=1:n if i==1 y(i)=b(i)/L(i,i); else y(i)=(b(i)-L(i,i-1)*y(i-1))/L(i,i); end end x(n)=y(n)/U(n,n); for k=n-1:-1:1 y(k)=y(k)-U(k,k+1)*x(k+1);

x(k)=y(k)/U(k,k); end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function [L,U,flag]=LU_decom(A) [n,m]=size(A); if n~=m error('The rows and columns of matrix A must be equal!'); return; end L=eye(n); U=zeros(n); flag='OK'; for k=1:n for j=k:n z=0; for q=1:k-1 z=z+L(k,q)*U(q,j); end U(k,j)=A(k,j)-z; end if abs(U(k,k))

矩阵的三角分解

第十讲 矩阵的三角分解 一、 Gauss 消元法的矩阵形式 n 元线性方程组 1111221n n 12112222n n 2n11n22nn n n a a a b a a a b a a a b ξ+ξ++ξ=?? ξ+ξ++ξ=?? ??ξ+ξ++ξ=? → Ax b = ij T 12n T 12n A (a )x [,,]b [b ,b b ]=?? ?=ξξξ ? ?=?? 设() 0ij n n A A a ?==,设 A 的k 阶顺序主子式为k ?, 若(0)1 11 a 0?=≠,可以令(0) i1i1011 a c a = 并构造Frobenius 矩阵 21 1n1n n 1 0c 1 L c 0 1???????=???? ?? → 2111n1 10c 1 L c 01-????-??=???? -?? 计算可得

(0) (0)(0) 11121n (1)(1)(1)1(0) 222n 1(1)(1)n2 nn a a a a a A L A 0a a -???? ??==????? ? → (0)(1)1A L A = 初等变换不改变行列式,故01 21122a a ?=, 若20?≠, 则1 22 a 0≠,又可定义 (1) i2i2(1)22 a c (i 3,4,n)a = = ,并构造Frobenius 矩阵 232n2 1 1L c c 1????? ?=??? ??????? → 1 232n2 11L c c 1-?? ??? ?=-??? ?????-?? (0) (0) (0) (0) 1112131n (1)(1)(1)22 232n (2)1(1) (2)(2)2333n (2)(2)n3 nn a a a a a a a A L A a a a a -???? ?? ??==??????? ? → (1)( 2 2 A L A = 依此类推,进行到第(r-1)步,则可得到

矩阵直接三角分解法

矩阵直接三角分解法 算法 将方程组Ax=b 中的A 分解为A=LU ,其中L 为单位下三角矩阵,U 为上三角矩阵,则方程组Ax=b 化为解2个方程组Ly=b ,Ux=y 。具体算法: ○ 1对j=1,2,3,…,n 计算 U 1j =a 1j 对i=2,3,…,n 计算 L i1=a i1/a 11 ○ 2对k=2,3…,n: a . 对j=k ,k+1,…,n 计算 U kj=a kj- LkqUqj k?1q =1 b.对i=k+1,k+2,…,n 计算 l ik =(a ik-) LiqUqk k?1q =1/u kk ○ 3y 1=b 1对k=2,3…,n 计算 Y k =b k - LkqUq k?1q =1 ○ 4X n =y n /U nn ,对k=n-1,n-2,…2,1计算 X k =(y k - UkqXq n q =k +1/U kk 注:注由于计算u 的公式与计算y 的公式形式上一样,故可直接对增广矩阵 [A|b]= a11 a12…a1n a1,n +1a 21 a 22…a2n a2,n +1:: ::an1 an2…ann an,n +1 施行算法○ 2○3,此时U 的第n+1列元素即为y 。 程序与实例 求方程组Ax=b A= 1 2 ?12 85 4 7 ?2?3 7 9 56 ?12 ?8 3 ,b= 2741149 程序 #include void main() { float x[4]; inti; float a[4][5]={1,2,-12,8,27, 5,4,7,-2,4, -3,7,9,5,11, 6,-12,-8,3,49};

直接法解线性方程组

数学与计算科学学院实验报告 实验项目名称直接法解线性方程组 所属课程名称数值方法A 实验类型验证型 实验日期 2014.11.28 班级信计12- 学号201253100 姓名 成绩

一、实验概述: 【实验目的】 1.掌握用C语言编程实现追赶法求解三对角线性方程组; 2.掌握运用高斯列主元消去法解线性方程组; 3.加深对解线性方程组的直接法——高斯列主消元法和LU分解法的构造过程的理解; 4.熟悉并掌握各种方法的适用对象及优缺点,学会针对不同问题选择不同方法; 5.培养使用电子计算机进行科学计算和解决问题的能力。 【实验原理】 1.追赶法原理

2.高斯列主元消去法 【实验环境】 1.硬件环境 2.软件环境 (1) (2)VC++ 6.0

二、实验内容: 【实验过程】(实验步骤) 1.实验步骤 1)深入了解解题过程并依次写出解题算法; 2)依照算法用C语言编写解题程序; 3)上机时将写好的程序输入到VC++中并调试运行得出方程的解; 4)比较几种方法之间的联系与区别。 2.1追赶法 根据以上的实验原理,在VC++编辑框中输入源程序:

2-1-12-1A -12-1-12-1-12????????=???????? 10000f ????????=???????? 由原理可知:b[1]=2,c[1]=-1,f[1]=1 a[2]=-1,b[2]=2,c[2]=-1,f[2]=0 a[3]=-1,b[3]=2,c[3]=-1,f[3]=0 a[4]=-1,b[4]=2,c[4]=-1,f[4]=0 a[5]=-1,b[5]=2 ,f[5]=0 将上述系数逐个输入运行框, 并经过多次调试运行,最终运行出结果如下:

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