MatLab求解线性方程组

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MatLab解线性方程组一文通

当齐次线性方程AX=0,rank(A)=r

用matlab 中的命令x=null(A, r )即可.其中:r=rank(A)

A=[ 1 1 1 1 -3 -1 1

1 0 0 0 1 1 0

-2 0 0 -1 0 -1 -2]

用matlab 求解程序为:A=[1 1 1 1 -3 -1 1;1 0 0 0 1 1 0;-2 0 0 -1 0 -1 -2];

r=rank(A);

y=null(A, r )

得到解为:

y=[ 0 -1 -1 0

-1 2 1 1

1 0 0 0

0 2 1 -2

0 1 0 0

0 0 1 0

0 0 0 1]

其列向量为Ay=0的一个基本解

MatLab解线性方程组一文通!

-------------------作者:liguoy(2005-2-3)

写在阅读本文前的引子。

一:读者对线性代数与Matlab 要有基本的了解;

二:文中的通用exp.m文件,你须把具体的A和b代进去。

一:基本概念

1.N级行列式A:|A|等于所有取自不同行不同列的n个元素的积的代数和。

2.矩阵B:矩阵的概念是很直观的,可以说是一张表。

3.线性无关:一向量组(a ,a ,…. a )不线性相关,即没有不全为零的数k ,k ,……kn

使得:k1* a +k2* a +…..+kn*an=0

4. 秩:向量组的极在线性无关组所含向量的个数称为这个向量组的秩。

5.矩阵B的秩:行秩,指矩阵的行向量组的秩;列秩类似。记:R(B)

6.一般线性方程组是指形式: (1)

其中x1,x2,…….xn为n个未知数,s为方程个数。记:A*X=b

7.性方程组的增广矩阵:=

8. A*X=0 (2)

二:基本理论

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

消元法(理论上分析解的情况,一切矩阵计算的基础)

首先用初等变换化线性方程组为阶梯形方程组,把最后的一些恒等式”0=0”(如果出现的

话)去掉,1:如果剩下的方程当中最后的一个等式是零等于一非零数,那么方程组无解;

否则有解,在有解的情况下,2:如果阶梯形方程组中方程的个数r等于未知量的个数,那

么方程组有唯一的解,3:如果阶梯形方程组中方程的个数r小于是未知量的个数,那么方

程组就有无穷个解。

用初等变换化线性方程组为阶梯形方程组,相当于用初等行变换化增广矩阵成阶梯形矩阵

。化成阶梯形矩阵就可以判别方程组有解还是无解,在有解的情形下,回到阶梯形方程组

去解。

定理1:线性方程组有解的充要条件为:R(A)=R()

线性方程组解的结构:

1:对齐次线性方程组,a: 两个解的和还是方程组的解;b: 一个解的倍数还是方程组的解

。定义:齐次线性方程组的一组解u1,u2,….ui 称为齐次线性方程组的一个基础解系,如

果:齐次线性方程组的任一解都能表成u1,u2,….ui的线性组合,且u1,u2,….ui线性无关

2:对非齐次线性方程组

(I)方程组(1)的两个解的差是(2)的解。

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

定理2 如果r0是方程组(1)的一个特解,那么方程组(1)的任一个解r都可以表成:

r=ro+v (3)

其中v是(2)的一个解,因此,对方程(1)的任一特解ro,当v取遍它的全部解时,(3) 就

给出了(1)的全部解。

三:基本思路

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

I)判断方程组解的情况。1:当R(A)=R()时有解(R(A)=R()>=n唯一解,R(

A)=R()〈n,有无穷解〉;2:当R(A)+1=R()时无解。

II)求特解;

III)求通解(无穷解), 线性方程组的无穷解= 对应齐次方程组的通解+非齐次方程组的

一个特解;

注:以上针对非齐次线性方程组,对齐次线性方程组,主要是用到I)、III)步!

四:基本方法

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

1.(求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠

密矩阵——直接法;一类是解大型稀疏矩阵——迭代法。

1.1利用矩阵除法求线性方程组的特解(或一个解)

方程:AX=b,解法:X=A"b,(注意此处’"’不是’/’)

例1-1 求方程组的解。

解: A = ; = ;b=(1,0,0,0,1)’

由于>>rank(A)=5,rank( )=5 %求秩,此为R(A)=R()>=n的情形,有唯一解。>>X= A"b %求解X =(2.2662, -1.7218, 1.0571,-0.5940, 0.3188)’ 或用函数rref 求解,>>sv=rref(A:b);所得sv的最后一列即为所要求的解。

1.2 利用矩阵的LU、QR和cholesky分解求方程组的解,这三种分解,在求解大型方程组时很有用。其优点是运算速度快、可以节省磁盘空间、节省内存。

I) 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);

X=U"(L"b)

II)Cholesky分解

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

方程A*X=b 变成所以

在Matlab中建立M文件如下

% exp2.m

A;b;

[R’,R]=chol(A);

X=R"(R’"b)

III)QR分解

对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR

方程A*X=b 变形成 QRX=b

所以 X=R"(Q"b)

上例中[Q, R]=qr(A)

X=R"(Q"B)

在Matlab中建立M文件如下

% exp3.m

A;b;

相关文档
最新文档