收藏 分销(赏)

利用MATLAB求线性方程组学习资料.doc

上传人:w****g 文档编号:3854305 上传时间:2024-07-22 格式:DOC 页数:13 大小:66KB 下载积分:8 金币
下载 相关 举报
利用MATLAB求线性方程组学习资料.doc_第1页
第1页 / 共13页
利用MATLAB求线性方程组学习资料.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
利用MATLAB求线性方程组 精品资料 《MATLAB语言》课成论文 利用MATLAB求线性方程组 姓名:郭亚兰 学号:12010245331 专业:通信工程 班级:2010级通信工程一班 指导老师:汤全武 学院:物电学院 完成日期:2011年12月17日 利用MATLAB求解线性方程组 ( 郭亚兰 12010245331 2010 级通信一班 ) 【摘要】在高等数学及线性代数中涉及许多的数值问题,未知数的求解,微积分,不定积分,线性方程组的求解等对其手工求解都是比较复杂,而MATLAB语言正是处理线性方程组的求解的很好工具。线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。因而,线性代数被广泛地应用于抽象代数和泛函分析中;由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。因而,线性代数被广泛地应用于抽象代数和泛函分析中;由于科学研究中的非线性模型通常可以被近似为线性模型,使得线性代数被广泛地应用于自然科学和社会科学中。线性代数是讨论矩阵理论、与矩阵结合的有限维向量空间及其线性变换理论的一门学科。 【关键字】线性代数 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、 一般线性方程组是指形式: 二、基本理论 三种基本变换: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:对非齐次线性方程组 (1)方程组的两个解的差是(2)的解。 (2)方程组的一个解与(2)的一个解之和还是(1)的解。 定理2 如果R0是方程组(1)的一个特解,那么方程组(1)的任一个解R都可以表成;R=R0+V…. 其中V是(2)的一个解,因此,对方称(1)的任一特解R0,当v取遍它的全部解时,(3)就给出了(1)全部解。 三:基本思路 线性方程的求解分为两类:一类是方程求唯一解或求特解;一类是方程组 求无穷解即通解。 (1)判断方程组解的情况。1:当R(A)=R(B)时,有解(R(A)=R(A,b))>=n 唯一解,R(A)=R(A,b)(n,有无穷解);2:当R(B)+1=R(A,b)时无解。 (2)求特解; (3)求通解(无穷解),线性方程组的无穷解=对应齐次方程组的通解+非齐 次方程组的一个特解; 注:以上针对非齐次线性方程组,对齐次线性方程组,主要使用到(1),(2)步! 四、基本方法 基本思路将在解题的过程中得到体现。 1、 (求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠密矩阵——直接法;一类是解大型稀疏矩阵——迭代法。 2、 利用矩阵除法求线性方程组的特解(或一个解) 方程:AX=b,解法:X=A\b,(注意此处’\’不是’/’) (1)求方程组 命令如下: 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 = NaN Inf Inf -3.0000 曾介绍过利用矩阵求逆来解线性方程组,即其结果于使用左除是相同的。 2、利用矩阵的分解求线性方程组 矩阵分解是指根据一定的原理用某种运算将一个矩阵分解成若干个矩阵的乘积。常见矩阵分解如,LU,QR和Cholesky分解求方程组的解,这三种分解,再求大型方程组是很有用。其优点是运算速度快,可以节省磁盘空间,节省内存。 (1) LU分解又称Gauss 消去分解,可把任意方阵分解为下三角矩阵的基本变 换形式(行变换)和上三角矩阵的乘积。即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(交 换行),使之满足A=LU X=U\(L\b) %L右乘b的结果再右乘U得到x的值 (2)求方程组 命令如下: A=[1,1,-1,-1;2,-5,3,2;7,-7,3,1]; %产生3x4阶系数矩阵 b=[1,3,6]'; %对矩阵进行转置 [L,U]=lu(A); %产生一个三角矩阵A和一个变换形式的 下三叫矩阵L(交换行),使之满足A=LU x=U\(L\b) %L右乘b的结果再右乘U得到x的值 x = 0.4286 -0.4286 0 0 rank = 2, tol = 6.7642e-015. 采用第二种格式分解, 在MATLAB建立M文件如下 %exp1.m A;b; [L,U,P]=lu(A); X=U\(L\P*b) (3)求方程组 命令如下: 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,使之满足PA=LU x=U\(L\P*b) %x的值 x = 0.6667 -0.3333 0 0 rank = 2, tol = 6.7642e-015. (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=A X=R\(R’\b) %x的值 (4)求方程组 命令如下: A=[1,-1,-1,1;1,-1,1,-3;1,-1,-2,3]; %产生3x4阶的矩阵 b=[0,1,-0.5]'; %对矩阵进行转置 [R'R]=chol(A); %产生一个上三角矩阵R,使R'R=A x=R\(R'\b) %x的值 ??? Error using ==> chol Matrix must be square. 命令执行时,此格式将不出现错误信息。当A为对称正定时,则p=0; 否则p为一个正整数。如果X未满秩矩阵,则R为一个阶数为q=p-1的上三角 阵,且满足R’R=A(1:q,1:q)。 (3)QR分解 对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角 矩阵的初等变换形式,即:A=QR 方程 A*X=b 变形成 QRX=b 所以 X=R\(Q\b) 上例中 [Q,R]=qr(A) %产生一个正交矩阵Q和一个上三角矩阵R,使之A=QR X=R\(Q\B) %x的值 在MATLAB中建立M文件如下 %exp3.m A;b; [Q,R]=qr(A); X=R\(Q\b) (5) 求方程组 命令如下: A=[4,2,-1;3,-1,2;11,3,0]; %产生3x3阶的矩阵 b=[2,10,8]'; %对矩阵进行转置 [Q,R]=qr(A); %产生一个正交矩阵Q和一个上三角矩阵 R,使之满足A=QR x=R\(Q\b) %x的值 x = 1.0e+015 * 1.3238 -4.8539 -4.4126 RCOND = 4.594136e-017. 除了用直接方法求解线性方程组的解之外,还可以用迭代法求解。迭代法适合求解大型系数矩阵的方程组。它主要包括Jacobi迭代法,Gauss-Serdel迭代法,超松驰迭代法和两步迭代法。在此只讨论Jacobi与Gauss-Serdel迭代法。 1’ Gauseidel迭代法 用迭代法求解下列线性方程组,迭代初值为0,迭代精度为10e-6。 Gauseidel.m函数文件: function[y,n]=gauseidel(A,b,x0,eps) if nargin==3 eps =1.0e-6 ; elseif nargin<3 error %错误 return %结束该函数的执行 End D=diag(diag(A)); %求A的对角矩阵 L=-tril(A,-1); %求A的下三角阵 U=-triu(A,1); %求A的上三角阵 G=(D-L)\U; f=(D-L)\b; y=G*x0+f; %y的值 n=1; %迭代次数 while norm(y-x0)>=eps x0=y; y=G*x0+f; n=n+1; End (6)求解方程组 在命令中调用该文件gauseidel.m, 程序如下: A=[1,2,1;3,6,-1;5,10,1]; %产生一个3*3阶系数矩阵 b=[1,5,3]`; %对矩阵进行转置 [x,n]=gauseidel(A,b,[0,0,0]`,1.0e-6) %调用gauseidel函数 x = 0/0 0/0 0/0 n = 1391 2'Jacobi迭代法 Jacobi.m函数文件: function[y,n]=jacobi(A,b,x0,eps) if nargin==3 eps=1.0-6 ; %精确度为10e-6 elseif nargin<3 error %错误 return %结束该函数的执行 end D=diag(diag(A)); %求A的对角矩阵 L=-tril(A,-1); %求A的下三角阵 U=-triu(A,1); % 求A的上三角阵 B=D\(L+U); f=D\b; y=B*x0+f ; %y的值 n=1; %迭代次数 while norm(y-x0)>=eps x0=y; y=B*x0+f; n=n+1; end 用Jacobi迭代法求解下列线性方程组,迭代初值为0,迭代精度为10e-6。 (7)求解方程组 在命令中调用该文件jacobi.m, 程序如下: A=[3,-1,0;1,2,-3;0,-1,5]; %产生一个3*3阶系数矩阵A b=[6,5,7]'; %产生矩阵b [x,n]=jacobi(A,b,[0,0,0]',1.0e-6) %调用jacobi函数 f= 2.0000 2.5000 1.4000 n= 1 x= NaN NaN NaN n= 1709 五、总结 Matlab语言运算以矩阵运算为基础 ,可视化,程序设计有机的融合到一个简单易行的互换式工作环境中,有出色的数值计算功能和强大的图形处理功能,而且简单易学,代码短小高效。线性代数是数学中的一个重要分支,很多理论问题和实际问题都需要借助于线性代数的理论工具来分析解决,而且随着计算机的普及,线性代数被广泛应用于科学,经济,工程和管理等各个领域,同时线性代数也成为高校理工科和经济管理类各专业的一门公共基础课。线性代数课程是由方程Ax=b发展起来的,主要研究线性方程组和二次型,对线性方程组的研究引入了行列式,矩阵,向量。这三块内容是研究线性方程组的三大工具。学习线性代数有两大难点:一是概念,理论抽象,二是计算量大。不过利用Matlab语言,就可以轻松快捷的解决很多线性代数问题。比如说求方阵的逆和行列式,线性方程组中论述的求方阵的逆运算和行列式比较复杂,而在Matlab中,方阵的逆运算只需用函数“inv”即可… 六、心得体会 通过写本次的论文,我受益匪浅,才发现原来论文的书写格式要求这么严格,以前也没怎么注意格式。由于学的不精,在Matlab软件中编程时出现了好多好多问题,格式上的,大小写,还有软件中的一些特殊用法等等。在多次的修改后才勉强完成这次论文。在学习Matlab的时候,我感觉这个语言要比我们在大一时学的C语言更加方便,实用,虽然各有各的特点。比如在求解不等式问题上,C语言需要运用if,else,for等多条语句才能完成不等式的求解,然Matlab则只需几个简单的语句就可运行出结果。这样就可以是工作量大大减少。在学完该课程后,我发现利用Matlab作为后继课程的解题工具,可以使我们从繁杂的计算中解放出来,同时将计算机与其他课程结合起来,大大提高了学习效率。 [参考文献] [1] 《高等代数》,北京大学数学系编,1978 [2]吉家峰《Matlab6.0数学手册》,蒲俊,伊良忠编著,2002 [3]刘卫国主编《MATLAB程序设计与应用》第二版 [M].北京:高等教育出版社, 2006. 仅供学习与交流,如有侵权请联系网站删除 谢谢13
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服