2013-02-02 19 views
2

這可能非常簡單,但我無法設置矩陣來解決使用符號對象的兩個線性方程。用MATLAB解決簡單的線性代數方程使用符號對象

方程是在表格上:

(1) a11*x1 + a12*x2 + b1 = 0 
(2) a21*x1 + a22*x2 + b2 = 0 

所以我有一個矢量{E}:

 [ a11*x1 + a12*x2 + b1 ] 
{E} = [ a21*x1 + a22*x2 + b2 ] 

我想要得到的矩陣[A]和向量{B}這樣我可以求解方程,即

[A]*{X} + {B} = 0 => {X} = -[A]\{B}. 

 [ x1 ] 
{X} = [ x2 ] 

     [ a11 a12 ] 
[A] = [ a21 a22 ] 

     [ b1 ] 
{B} = [ b2 ] 

矩陣[A]只是{E}的雅可比矩陣,但我必須在{E}上執行什麼操作才能得到{B},即不包含x的項?

這是我做了什麼:

x = sym('x', [2 1]); 
a = sym('a', [2 2]); 
b = sym('b', [2 1]); 

E = a*x + b; 
A = jacobian(E,x); 

n = length(E); 
B = -E; 
for i = 1:n 
    for j = 1:n 
     B(i) = subs(B(i), x(j), 0); 
    end 
end 

X = A\B 

我想一定是有功能的,這是否在同一行。

所以基本上我的問題是:我可以做什麼而不是那些for循環?

(我知道這是一件很簡單的,容易通過搜索發現,但問題是我不知道這是什麼所謂的,所以我不知道要尋找什麼。)

回答

1

這僅僅是B = subs(B,x,[0 0])

+0

看,我知道這是非常簡單的事情。 :) 謝謝。你知道矩陣B被稱爲什麼嗎? (在我的報告中,我稱之爲什麼?) –

+0

我稱之爲「不均勻性」或方程系統的「右手側」......而且,我更願意稱之爲矢量。 – Jan

+0

是的,矩陣位是一個brainfart。 :) 再次感謝你。 –

相關問題