首頁 > 軟體

MATLAB利用LU分解法求解線性方程組

2019-12-24 22:33:50

當矩陣(方陣)A為行列式不為0的矩陣時,也就是說方陣A是可逆矩陣的,那麼A為非奇異矩陣。對於非奇異矩陣A可以進行LU分解,即把A分解為一個變換形式的下三角矩陣L(進行了行變換)和一個上三角矩陣U,使得A=L*U。同時得到線性方程組的解為X=U(Lb),其中b為線性方程組等號右邊的常數構成的列向量。本文將演示MATLAB利用LU分解法求解線性方程組的方法。


1

第一,下圖是要求解的線性方程組,參考了王正林等《MATLAB科學計算》有關內容。


2

第二,啟動MATLAB,新建指令碼,輸入如下程式碼:

close all; clear all; clc

% MATLAB利用LU分解法求解線性方程組

% A是線性方程組等號左邊係數構成的矩陣

% b是線性方程組等號右邊常數構成的矩陣

format compact

A = [1.5 3 -0.8 4;2 0 9 10;-7 4.8 -0.6 1;14 12.3 -4 5];

b = [4 0 1 -2]';

[L,U] = lu(A)

X = U(Lb)


3

第三,儲存和執行上述程式碼。得到線性方程組的解如下:

X =

   -0.3721

   -0.8291

   -1.5336

    1.4547


4

第四,其中lu分解法得到了一個變換形式的下三角矩陣L(進行了行變換)和一個上三角矩陣U如下:

L =

    0.1071    0.1536    0.0031    1.0000

    0.1429   -0.1605    1.0000         0

   -0.5000    1.0000         0         0

    1.0000         0         0         0

U =

   14.0000   12.3000   -4.0000    5.0000

         0   10.9500   -2.6000    3.5000

         0         0    9.1542    9.8474

         0         0         0    2.8965


5

第五,對變換形式的下三角矩陣L(進行了行變換)和上三角矩陣U進行驗證,即L*U是否等於A,在命令視窗輸入L*U,回車得到如下結果,可以見A=LU。這裡需要注意的是L*U,而不是L.*U,.*表示的矩陣每一項元素相乘,*表示矩陣相乘。


6

第六,對解進行驗證,在命令列視窗輸入A*X,回車得到如下結果,可見A*X=b,即結果正確,說明LU分解法求解線性方程組的方法是有效的。



IT145.com E-mail:sddin#qq.com