rref指令
源自於https://bime-matlab.blogspot.com/2006/11/103-2.html
在處理聯立方程式時,若直接有解,應可利用左除法得到其答案。若為多數解,則需要將其重組並簡化至梯形的表列方式,將某些變數設定為自變數,並將其餘因變數之係數均轉換為1。此時可以利用rref([A C])這個指令達到目的。這個指令執行結果,會產生一個增廣矩陣,其內容為[A C]。以前述之T組變數為例:
M=rref([A C])
A =
3 2 1
10 -25 5
C =
5000
2000
>> M=rref([A C])
M =
1.0e+03 *
0.0010 0 0.0004 1.3579
0 0.0010 -0.0001 0.4632
最後簡化之梯形聯立方程式為:T1+0.4T3=1357.9
T2-0.1T3=463.2此時之聯立方程式經過rref這個指令會將結果簡化。
例題:
下面為一農場作業之資料,比較重要的作業可以分為整地、噴藥及收割等三項。下表為甲乙兩工人對個別作業每公頃所需之作業時數。設若此兩工人今年總工作時數分別為100及150小時,試求其今年各人總作業面積為多少。
小時/公頃 整地作業 噴藥作業 收割作業
========== ======== ======== ========
甲工人 3 5 8
乙工人 2 4 3
設x, y ,z分別為整地、噴藥及收割作業之作業面積數,則甲工人一年之工作情形可以下列方程式表示:顯然這是一個多數解的系統。設
甲工人:3x + 5y + 8z=100
乙工人:2x + 4y + 3z =150>> A=[3 5 8;2 4 3]
A =
3 5 8
2 4 3
>> b=[100 150]'
b =
100
150
利用增廣矩陣可以縮減成簡易之x y z系統:>> rref([A b])
ans =
1.0000 0 8.5000 -175.0000
0 1.0000 -3.5000 125.0000
解之,
x + 8.5z=-175
y-3.5z =125
或 x = 8.5z-175, y=125 +3.5z
在這種情況下,由於變數在均為正值之限制之下,故應可以得到一個範圍解。
沒有留言:
張貼留言