2021-05-12 14:32:11
MATLAB使用QR分解法求線性方程組的解
本文介紹MATLAB使用QR分解法求解線性方程組的方法,其中QR分解法是把系數矩陣A分解為一個正交矩陣Q和一個上三角矩陣R的乘積。然後利用X=R(Qb)的方法求出線性方程組的解,其中b為線性方程組等號右邊常數構成的列向量。
1
第一,下圖是要求解的線性方程組,等號左邊構成系數矩陣A,等號右邊構成常數列向量b。該例子參考了王正林等《MATLAB科學計算》的有關內容。
2
第二,啟動MATLAB,新建指令碼,輸入以下程式碼:
close all; clear all; clc
% MATLAB使用QR分解法求線性方程組的解
% A是線性方程組等號左邊係數構成的矩陣
% b是線性方程組等號右邊常數構成的矩陣
format compact
A = [1 0.5 0.3333 0.25;0.5 0.3333 0.25 0.2;...
0.3333 0.25 0.2 0.1667;0.25 0.2 0.1667 0.1429];
b = [1 2 2 1]';
[Q,R] = qr(A)
X = R(Qb)
3
第三,儲存和執行上述程式碼,首先得到係數矩陣A分解成的一個正交矩陣Q和一個上三角矩陣R,如下:
Q =
-0.8381 0.5226 -0.1539 -0.0273
-0.4191 -0.4415 0.7261 0.3198
-0.2793 -0.5290 -0.1350 -0.7899
-0.2095 -0.5021 -0.6564 0.5226
R =
-1.1931 -0.6705 -0.4749 -0.3699
0 -0.1185 -0.1257 -0.1176
0 0 -0.0062 -0.0096
0 0 0 0.0001
4
第四,同時得到線性方程組的解如下:
X =
1.0e+03 *
0.1546
-1.8578
4.5882
-3.0156
5
第五,在命令視窗輸入Q*R,驗證A是不是等於Q*R,結果顯示A=Q*R。
6
第六,在命令視窗輸入A*X,驗證A*X是不是等於b,結果顯示A*X=b,說明QR分解法求解線性方程組是正確的有效的。
相關文章