首頁 > 軟體

MATLAB使用QR分解法求線性方程組的解

2019-12-24 22:48:46

本文介紹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分解法求解線性方程組是正確的有效的。



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