2013-03-14 209 views
1

當使用equationsToMatrix你解決一組線性方程的如在實施例(包括在溶液)equationsToMatrix:我如何獲得變量的值?

syms x y z; 
[A, b] = equationsToMatrix([x + y - 2*z == 0, x + y + z == 1, 2*y - z + 5 == 0], [x, y, z]) 

%solution of the equation set 

A = 
[ 1, 1, -2] 
[ 1, 1, 1] 
[ 0, 2, -1] 

b = 
    0 
    1 
-5 

矢量B返回所討論的變量的值:x,y和z。但是,如果我輸入x,那麼MATLAB返回x而不是0,這是這種情況下方程的解。這也會在不添加syms選項的情況下發生。

另一個問題是,如果我鍵入b(1)或b(2),我沒有得到任何值:我期望b包含x,y和z的值。 什麼我需要的是讓這樣的事情到底

b(1) = 0 

x = 0 

我應該怎麼做的只是輸入X,Y得到的x,y,z的值, Z'

+0

爲了解決您需要將系統做'ans = A \ b'。 – ja72 2013-03-14 10:22:16

+0

@ ja72完成了它,但它返回了錯誤消息 – ragnar 2013-03-14 10:26:11

+0

並且錯誤是??? ??? – ja72 2013-03-14 10:27:12

回答

3

你有什麼是通過提取係數矩陣將符號線性方程轉換成數字系統的方法。爲了解決你需要做的

sol = A\b; 

系統,現在你可以在另一個表達式

subst(expr, {x,y,z}, {sol(1),sol(2),sol(3));

使用的值,例如

A = 

1  1 -2 
1  1  1 
0  2 -1 

b = 

0 
1 
-5 

>> A\b 

ans = 

3.0000 
-2.3333 
0.3333 
+0

我已經有b,即x,y和z的值。我不能做的是從矩陣b中提取這些值,換句話說,如果我鍵入b(1)我沒有得到x的值。在這種情況下,b是UNKNOWNS的矩陣:我有一個方程如A * b = C。C是隻有零值的矩陣。我得做b = C/A – ragnar 2013-03-14 10:51:23

+0

對不起,明白了!當MATLAB關閉時,我無法立即將其排除。我寫了sol = b然後expr = [A,b],然後就和你一樣了。有用。 – ragnar 2013-03-14 10:59:31