解线性方程组基思想
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解线性方程组基思想
————————————————————————————————作者:————————————————————————————————日期:
四:基本方法
基本思路将在解题的过程中得到体现。
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;
[Q,R]=qr(A);
X=R\(Q\b)
2.求线性齐次方程组的通解(A*X=0)
在Matlab中,函数null用来求解零空间,即满足A•X=0的解空间,实际上是求出解空
间的一组基(基础解系)。
在Matlab中建立M文件如下
% exp4.m
format rat %指定有理式格式输出
A;b=0;
r=rank(A);
bs=null(A,‘r’); %一组基含(n-r)个列向量
% k ,k ,……,k
% X= k *bs(:,1)+ k *bs(:,2)+……+ k *bs(:,n-r) 方程组的通解
pretty(X) %让通解表达式更加精美
3 求非齐次线性方程组的通解(A*X=b)
非齐次线性方程组需要先判断方程组是否有解,若有解,再去求通解。
因此,步骤为:
第一步:判断AX=b是否有解,(利用基本思路的第一条)
若有解则进行第二步
第二步:求AX=b的一个特解
第三步:求AX=0的通解
第四步:AX=b的通解为:AX=0的通解加上AX=b的一个特解。
在Matlab中建立M文件如下
% exp4.m
clear all
A;b; %输入矩阵A,b
[m,n]=size(A);
R=rank(A);
B=[A b];
Rr=rank(B);
format rat
if R==Rr&R==n % n为未知数的个数,判断是否有唯一解
x=A\b;
elseif R==Rr&R x=A\b %求特解 C=null(A, r ) %求AX=0的基础解系,所得C为n-R列矩阵,这n-R列即为对 %应的基础解系 % 这种情形方程组通解xx=k(p)*C(:,P)(p=1…n-R) else X= No solution! % 判断是否无解 end 第3章线性方程组的迭代解法 3.1实验目的 理解线性方程组计算机解法中的迭代解法的求解过程和特点,学习科学计算的方法和简单的编程技术。 3.2概念与结论 1.n阶线性方程组 如果未知量的个数为n ,而且关于这些未知量x1,x2, …,x n的幂次都是一次的(线性的)那末, n 个方程 a11x1+a12x2+ …+a1n x n=b1 ┆┆┆(1) a n1x1+a n2x2+ …+a nn x n= b n 构成一个含n个未知量的线性方程组,称为n阶线性方程组。其中,系数a11,…,a1n,a21, …,a2n, …,a n1, …,a nn和b1, …,b n都是给定的常数。 方程组(1)也常用矩阵的形式表示,写为 Ax=b 其中,A是由系数按次序排列构成的一个n阶矩阵,称为方程组的系数矩阵,x和b都是n维向量,b称为方程组的右端向量。 2. n阶线性方程组的解 使方程组(1)中每一个方程都成立的一组数x1*,x2*, …,x n*称为式(1)的解,把它记为向量的形式,称为解向量.