利用MATLAB求线性方程组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《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、一般线性方程组是指形式:⎪⎪⎩⎪⎪⎨⎧=+++=+++=*+++s
sn s s n n n n b a x a x a b x a x a x a b x a x a x n 22112222212111212111x ********a 二、基本理论
三种基本变换: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)求方程组 ⎪⎪⎩⎪⎪⎨⎧=+-+=-+-=+-+=+--9
796342264422243214321
43214321x x x x x x x x x x x x x x x x 命令如下:
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)求方程组 ⎪⎩⎪⎨⎧=++-=++-=--+63773235214321
43214321x x x x x x x x x x x x
命令如下:
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
rank = 2, tol = 6.7642e-015.
采用第二种格式分解,
在MATLAB 建立M 文件如下