《解方程组基本思想》由会员分享,可在线阅读,更多相关《解方程组基本思想(33页珍藏版)》请在金锄头文库上搜索。
1、四:基本方法基本思路将在解题的过程中得到体现。1(求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠密矩阵 直接法;一类是解大型稀疏矩阵 迭代法。1.1利用矩阵除法求线性方程组的特解(或一个解)方程:AX=b,解法:X=Ab,(注意此处不是/)例1-1 求方程组 的解。解: A = ; = ;b=(1,0,0,0,1)由于rank(A)=5,rank( )=5 %求秩,此为R(A)=R( )=n的情形,有唯一解。X= Ab %求解 X =(2.2662, -1.7218, 1.0571,-0.5940, 0.3188) 或用函数rref求解,sv=rref(A:b);所
2、得sv的最后一列即为所要求的解。12 利用矩阵的LU、QR和cholesky分解求方程组的解 这三种分解,在求解大型方程组时很有用。其优点是运算速度快、可以节省磁盘空间、节省内存。I) LU分解又称Gauss消去分解,可把任意方阵分解为下三角矩阵的基本变换形式(行交换)和上三角矩阵的乘积。即A=LU,L为下三角阵,U为上三角阵。则:A*X=b 变成L*U*X=b所以X=U(Lb) 这样可以大大提高运算速度。命令 L,U=lu (A)在matlab中可以编如下通用m 文件:在Matlab中建立M文件如下% exp1.mA;b;L,U=lu (A);X=U(Lb)II)Cholesky分解若A为对
3、称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即: 其中R为上三角阵。方程 A*X=b 变成 所以在Matlab中建立M文件如下% exp2.mA;b;R,R=chol(A);X=R(Rb)III)QR分解对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR方程 A*X=b 变形成 QRX=b所以 X=R(Qb)上例中 Q, R=qr(A)X=R(QB)在Matlab中建立M文件如下% exp3.mA;b;Q,R=qr(A);X=R(Qb)2求线性齐次方程组的通解(A*X=0)在Matlab中,函数null用来求解零
4、空间,即满足A•X=0的解空间,实际上是求出解空间的一组基(基础解系)。在Matlab中建立M文件如下% exp4.mformat 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是否有解,(利用基本思路的第一条)若有解则进
5、行第二步第二步:求AX=b的一个特解第三步:求AX=0的通解第四步:AX=b的通解为: AX=0的通解加上AX=b的一个特解。在Matlab中建立M文件如下% exp4.mclear allA;b; %输入矩阵A,bm,n=size(A);R=rank(A);B=A b;Rr=rank(B);format rat if R=Rr&R=n % n为未知数的个数,判断是否有唯一解x=Ab;elseif R=Rr&R S |aij| i=1,2,n, j=1,ji 则称方阵A是严格(行)对角占优的.7.收敛定理 对任意初始向量x(0)及任意右端向量 g,由迭代x(k+1) =B x(k) +g产生的
6、迭代向量序列x(k)收敛的充要条件是谱半径r(B)18.收敛判别条件 判别条件1: 若|B|1, 则迭代x(k+1) =B x(k) +g 对任何初始向量x(0)都收敛. 判别条件2: 如果A为严格对角占优阵,则其 Jacobi迭代和Seidel迭代对任何初始向量x(0)都收敛。 判别条件3: 如果A为对称正定阵,则其 Seidel迭代对任何初始向量x(0)都收敛。9.迭代法的误差估计 若|B|1,则对迭代格式 x(k+1) =B x(k) +g 有3.3 程序中Mathematica语句解释 a*matrix 数a与矩阵matrix相乘matrix1+matrix2 矩阵matrix1和矩阵
7、matrix2相加(注意矩阵的大小相同)matrix1.matrix2 矩阵matrix1和矩阵matrix2相乘(注意矩阵乘法的规则) Transposematrix 求矩阵matrix转置Inversematrix 求矩阵(方阵) matrix 的逆 DiagonalMatrixlist 使用列表list中的元素生成一个对角矩阵.IdentityMatrixn 生成n阶单位矩阵Maxx 求向量x中元素的最大值3.4 方法、程序、实验 解线性方程组的迭代法是将线性方程组 Ax=b 化为等价线性方程组 x=Bx+f 再由矩阵迭代格式 x(k+1)=Bx (k)+f构造向量序列x(k)来求线性方
8、程组解的。如果得出的向量序列x(k)收敛至某个向量x*,则可得该向量x*就是所求方程组 Ax=b 的准确解.线性方程组的迭代法主要有Jocobi迭代法、Seidel迭代法和超松弛(Sor)迭代法。1. Jocobi迭代法1) Jocobi迭代法的构造过程 假设aii0,依次在第i个方程解出x i , i=1,2,n并令 cij = -aij /aii (ij) , gi= bi /aii 就得到如下Jocobi迭代格式: x1(k+1)= c12x2(k)+c13x3(k)+ +c1nxn(k)+g1 x2(k+1)=c21x1(k) +c23x3(k)+ +c2nxn(k)+g2 。 xn(
9、k+1)=cn1x1(k) +cn2x2(k)+ +cn(n-1)xn-1(k) + gn 若令则有Jocobi迭代的矩阵格式:x(k+1) = BJx(k) +gJBJ 称为Jocobi迭代矩阵。 Jocobi迭代可以写成如下紧凑格式:在给定初始迭代向量x(0)后就可以进行Jocobi迭代求解了。2) Jacobi迭代算法1.输入变量个数n、初值向量x(0)、迭代精度eps、系数矩阵A、常数项b 和迭代最大次数nmax2 For i=1,2,n2.1 如果|aii|eps1,则输出“迭代失败”提示并终止3. Bj E-D-1A4. gj D-1b5.For k=1,2,nmax5.1 x Bj.x0+ gj 5.2 如果|x-x0|eps ,输出迭代失败,终止。3) Jacobi 迭代法程序Cleara,b,x;nmax=500;n=Input“线性方程组阶数n=”;a=Input系数矩阵A=;b=Input常数项b=;x0=Input输入迭代初值向量x0;eps1=0.000001;eps=Input输入精度控制eps=;DoIfAbsai,ieps1,t1=1;Return,t1=0,i,1,n;