人人范文网 范文大全

看风景

发布时间:2020-03-03 00:46:47 来源:范文大全 收藏本文 下载本文 手机版

利用MATLAB求解线性方程组

( 姓名 郭亚兰 12010245331 2010 级通信一班 )

【摘要】线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。因而,线性代数被广泛地应用于抽象代数和泛函分析中;由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。

在研究线性方程组,因式化简,方程求根,高维几何,多元积分方面都有广泛的应用。

线性代数是讨论矩阵理论、与矩阵结合的有限维向量空间及其线性变换理论的一门学科。

随着科学的发展,我们不仅要研究单个变量之间的关系,还要进一步研究多个变量之间的关系,各种实际问题在大多数情况下可以线性化,而由于计算机的发展,线性化了的问题又可以计算出来,线性代数正是解决这些问题的有力工具。

【关键字】线性代数

MATLAB语言

矩阵

一:基本理论

1,N级行列式A:A等于所有取自不同性不同列的n个元素的积的代数和。 2,矩阵B:矩阵的概念是很直观的,可以说是一张表。

3,线性无关:一向量组(a1,a2,„,an)不线性相关,既没有不全为零的数k1,k2,„„„kn使得:k1*a1+k2*a2+„„„+kn*an=0 4,秩:向量组的极在线性无关组所含向量的个数成为这个向量组的秩。 5,矩阵B的秩:行秩,指矩阵的行向量组的秩;列秩类似。记:R(B) 6,一般线性方程组是指形式: {a11*x1+a12*x2„„+a1n*xn=b1 a21*x1+a22*x2+„„+a2n*xn=b2 „„

as1*x1+as2*x2+„„„+asn*xn=bn

二:基本理论 三种基本变换:1,用一非零的数乘某一方程;2,把一个方程的倍数加到另一方程;3,互换两个方程的位置。以上称出等变换。

消元法

首先用初等变换化线性方程组为阶梯形方程组:1,如果剩下的方程当中最后的一个等式等于一非零数,那么方程组无解;否则有解;2,如果阶梯形方程组中方程的个数r等于未知量的个数,那么方程组有唯一的解;3,如果阶梯形方程组中方程的个数r小于未知量的个数,那么方程组就有无穷个解。 定理1:线性方程组有解的充要条件为:R(A)=R(A,b) 线性方程组解的结构:

1:对齐次线性方程组,a:两个解的和还是方程组的解;b:一个解的倍数还是方程组的解。定义:齐次线性方程组的一组解u1,u2,„ui称为齐次线性方程组的一个基础解系,如果:齐次线性方程组的任一解都表成u1,u2,„ui的线性组合,且u1,u2,„ui线性无关。

2:对非齐次线性方程组 (I) (II) 方程组(1)的两个解的差是(2)的解。

方程组(1)的一个解与(2)的一个解之和还是(1)的解。

定理2 如果R0是方程组(1)的一个特解,那么方程组(1)的任一个解R都可以表成;R=R0+V„.(3) 其中V是(2)的一个解,因此,对方称(1)的任一特解R0,当v取遍它的全部解时,(3)就给出了(1)全部解。

三:基本思路

线性方程的求解分为两类:一类是方程求唯一解或求特解;一类是方程组求无穷解即通解。

(I) 判断方程组解的情况。1:当R(A)=R(B)时,有解(R(A)=R(A,b))》=n唯一解,R(A)=R(A,b)(n,有无穷解);2:当R(B)+1=R(A,b)时无解。

(II) 求特解;

(III) 求通解(无穷解),线性方程组的无穷解=对应齐次方程组的通解+非齐次方程组的一个特解; 注:以上针对非齐次线性方程组,对齐次线性方程组,主要使用到(I),(II)步!

四:基本方法

基本思路将在解题的过程中得到体现。

1,(求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠密矩阵——直接法;一类是解大型稀疏矩阵——迭代法。 2,I利用矩阵除法求线性方程组的特解(或一个解) 方程:AX=b,解法:X=A\\b,(注意此处’\\’不是’/’) 例 求方程组{2x1- x2- x3+ x4=2 x1+ x2-2x3+ x4=4 4x1-6x2+2x3-2x4=4 3x1+6x2-9x3+7x4=9 命令如下:

A=[2,-1,-1,1;1,1,-2,1;4,-6,2,-2;3,6,-9,7];%产生4x4阶

系数矩阵

b=[2;4;4;9]’; %对矩阵进行转置 x=A\\b %进行左初运算 x= 曾介绍过利用矩阵求逆来解线性方程组,即其结果于使用左除是相同的。 2,利用矩阵的分解求线性方程组

矩阵分解是指根据一定的原理用某种运算将一个矩阵分解成若干个矩阵的乘积。常见矩阵分解如,LU,QR和Cholesky分解求方程组的解,这三种分解,再求大型方程组是很有用。其优点是运算速度快,可以节省磁盘空间,节省内存。 (I) LU分解又称Gau 消去分解,可把任意方阵分解为下三角矩阵的基本变换形式(行变换)和上三角矩阵的乘积。即A=LU,L为下三角阵,U为上三角阵。

则:A*X=b 变成L*U*X=b 所以X=U\\(L\\b) 这样可以大大提高运算速度。命令[L,U]=lu(A) 在matlab中可以编如下通用m文件; 在MATLAB建立M文件如下 % exp1.m A;b; [L,U]=lu(A); %产生一个三角矩阵A和一个变换形式的下三叫矩阵L(交

换行),使之满足X=LU X=U\\(L\\b) %L右乘b的结果再右乘U得到x的值 例 求方程组{ x1+ x2- x3- x4=1, 2x1-5x2+3x3+2x4=3, 7x1-7x2+3x3+ x4=6 命令如下:

A=[1,1,-1,-1;2,-5,3,2;7,-7,3,1];%产生3x4阶系数矩阵 b=[1;3;6]’ %对矩阵进行转置

[L,U]=lu(A); %产生一个三角矩阵A和一个变换形式的下三叫矩阵

L(交换行),使之满足X=LU x=U\\(L\\b) %L右乘b的结果再右乘U得到x的值 x= 采用第二种格式分解,

在MATLAB建立M文件如下 %exp1.m A;b; [L,U,P]=lu(A); X=U\\(L\\P*b) 例 求方程组{ x1+ x2- x3- x4=1, 2x1-5x2+3x3+2x4=3, 7x1-7x2+3x3+ x4=7 命令如下:

A=[1,1,-1,-1;2,-5,3,2;7,-7,3,1]; %产生3x4阶矩阵 b=[1;3;7]’; %对矩阵进行转置 [L,U,P]=lu(A); %产生一个三角矩阵A和一个下三角阵L以及一个

置换矩阵P,使之满足PX=LU x=U\\(L\\P*b) %x的值 x= (II)Cholesky分解

若A为对成正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即:A=R’*R 其中R为上三角矩阵。

方程 A*X=b 变成 R’*R*X=b 所以 X=R\\(R’\\b) 在MATLAB中建立M文件如下 %exp2.m A;b; [R’,R]=chol(A); %产生一个上三角矩阵R,使R’R=x X=R\\(R’\\b) %x的值

例 求方程组{x1-x2- x3+ x4=0, x1-x2+ x3-3x4=1, x1-x2-2x3+3x4=-0.5 命令如下:

A=[1,-1,-1,1;1,-1,1,-3;1,-1,-2.3]; %产生3x4阶的矩阵 b=[0;1;-0.5]’; %对矩阵进行转置

[R,P]=chol(A); %产生一个上三角矩阵R,使R’R=x x=P\\(R\\b) %x的值 x= 命令执行时,此格式将不出现错误信息。当A为对称正定时,则p=0;否则p为一个正整数。如果X未满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满足R’R=X(1:q,1:q)。 (III)QR分解

对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR 方程 A*X=b 变形成 QRX=b 所以 X=R\\(Q\\b) 上例中 [Q,R]=qr(A) %产生一个正交矩阵Q和一个上三角矩阵R,使之

X=QR X=R\\(Q\\B) %x的值

在MATLAB中建立M文件如下

%exp3.m A;b; [Q,R]=qr(A); X=R\\(Q\\b) 例 求方程组{4x1+2x2- x3=2, 3x1- x2+2x3=10, 11x1+3x2 =8 命令如下:

A=[4,2,-1;3,-1,2;11,3,0];%产生3x3阶的矩阵 b=[2;10;8]’; %对矩阵进行转置

[Q,R]=qr(A); %产生一个正交矩阵Q和一个上三角矩阵R,使之满足

X=QR x=R\\(Q\\b) %x的值 x= 除了用直接方法求解线性方程组的解之外,还可以用迭代法求解。迭代法适合求解大型系数矩阵的方程组。它主要包括Jacobi迭代法,Gau-Serdel迭代法,超松驰迭代法和两步迭代法。在此只讨论Jacobi与Gau-Serdel迭代法。 1’ Jacobi迭代法

例:用Jacobi迭代法求解下列线性方程组,迭代初值为0,迭代精度为10e-6。 jacobi函数文件:function[y,n]=jacobi(A,b,x0,eps) if nargin==3 eps=1.0-6 %精确度为10e-6 elseif nargin

y=B*x0+f ; %y的值 n=1; %迭代次数 例 求解方程组{ x1+2x2+x3- x4=1, 3x1+6x2-x3-3x4=5, 5x1+10x2+x3-5x4=3 在命令中调用该文件jacobi.m, 程序如下:

A=[1,2,1,-1;3,6,-1,-3;5,10,1,-5]; %产生3x4阶的矩阵 b=[1;5;3]’; %对矩阵进行转置

[x,n]=Jacobi(A,b,[0,0,0]’,1.0e-6) %调用jacobi函数

x= n= 2,求线性齐次方程组的通解(A*X=0)

在MATLAB中,函数null用来求解零空间,即满足A*X=0的解空间,实际上是求出解空间的一组基(基础解析)。

在MATAB中建立一个函数文件line_solution.m如下 Function[x,y]=line_solution{A,b} [m,n]=size(A); y=[];

if norm(b)>0 %非齐次方程组 if rank(A)==rank([A,b]) if rank(A)==n %有唯一解 disp(‘原方程组有唯一解x’); x=A\\b; else %方程组有无穷多个解,基础解系

disp(‘原方程组有无穷个解,特解为x, 其齐次方程组的基础解系为y’); x=A\\b; y=null(A,‘r’); end else disp(‘原方程组无解‘); %原方程组无解 x=[]; end else %齐次方程组 disp(‘原方程组有零解x’); x=zeros(n,1); %0解 if rank(A)

A=[1,1,-3,-1;3,-1,-3,4;1,5,-9,-8]; %产生3x4阶的矩阵

b=[1;4;0]’; %对矩阵进行转置

[x,y]=line_solution(A,b) %调用line_solution函数 x,y format rat %恢复默认的短格式输出 输出结果为:

五:总结

Matlab语言运算以矩阵运算为基础 ,可视化,程序设计有机的融合到一个简单易行的互换式工作环境中,有出色的数值计算功能和强大的图形处理功能,而且简单易学,代码短小高效。线性代数是数学中的一个重要分支,很多理论问题和实际问题都需要借助于线性代数的理论工具来分析解决,而且随着计算机的普及,线性代数被广泛应用于科学,经济,工程和管理等各个领域,同时线性代数也成为高校理工科和经济管理类各专业的一门公共基础课。线性代数课程是由方程Ax=b发展起来的,主要研究线性方程组和二次型,对线性方程组的研究引入了行列式,矩阵,向量。这三块内容是研究线性方程组的三大工具。学习线性代数有两大难点:一是概念,理论抽象,二是计算量大。不过利用Matlab语言,就可以轻松快捷的解决很多线性代数问题。比如说求方阵的逆和行列式,线性方程组中论述的求方阵的逆运算和行列式比较复杂,而在Matlab中,方阵的逆运算只需用函数“inv”即可„ 六:心得体会

1.通过写本次的论文,我受益匪浅,才发现原来论文的书写格式要求这么严格,以前也没怎么注意格式。由于学的不精,在Matlab软件中编程时出现了好多好多问题,格式上的,大小写,还有软件中的一些特殊用法等等。在多次的修改后才勉强完成这次论文。在学习Matlab的时候,我感觉这个语言要比我们在大一时学的C语言更加方便,实用,虽然各有各的特点。比如在求解不等式问题上,C语言需要运用if,else,for等多条语句才能完成不等式的求解,然Matlab则只需几个简单的语句就可运行出结果。这样就可以是工作量大大减少。在学完该课程后,我发现利用Matlab作为后继课程的解题工具,可以使我们从繁杂的计算中解放出来,同时将计算机与其他课程结合起来,大大提高了学习效率。

参考文献:

1.《高等代数》,北京大学数学系编,1978 2.《Matlab6.0数学手册》,蒲俊,吉家峰,伊良忠编著,2002 3.《MATLAB程序设计与应用》第二版,刘卫国主编[M].北京:高等教育出版社,2006.

骑行看风景

看风景的人美文

我在桥上看风景

你站在桥上看风景

你站在桥上看风景[全文]

走自己的路 看自己的风景

读后感——蹲下来和孩子一起看风景

让爱陪我看风景高中作文

翻山越岭,却无心看风景杂文随笔

风景

看风景
《看风景.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档