2014-01-21 47 views
3

我想用mathematica來解下面的方程組,但是我不能讓我的生活得到它的工作。我有以下幾點:線性求解Mathematica

Stiffness = ((Y*A)/L)*{{1, -1, 0, 0}, {-1, 2, -1, 0}, {0, -1, 
2, -1}, {0, 0, -1, 1}} // MatrixForm 

Displacements = {{0}, {a}, {b}, {0}} // MatrixForm 

Force = {{x}, {(7*L^3)/162}, {(10*L^3)/81}, {y}} // MatrixForm 

,我需要解決:

Stiffness * Displacements = Force 

當我使用LinearSolve它只是吐出回輸入命令。我需要解決a,b,x和y。謝謝您的幫助。

+0

不應該'位移= {{0},{a},{b},{0}}'位移= {0,a,b,0}'?國際海事組織的「強制」同樣適用。你如何使用[LinearSolve函數](http://reference.wolfram.com/mathematica/ref/LinearSolve.html)? – Palec

+0

'解決方案=解決[Thread [Stiffness。位移==力],{a,b,x,y}]'?請參閱LinearSolve文檔的「屬性和關係」部分。 [見WolframAlpha。](http://www.wolframalpha.com/input/?i=Solve [Thread [%28%28Y * A%29%2FL +%29 * {{1%2C + -1%2C + 0 %2C + 0}%2C + { - 1%2C + 2%2C + -1%2C + 0}%2C + {0%2C + -1%2C+++ 2%2C + -1}%2C + {0%2C + 0 %2C + -1%2C + 1}} +。+ {{0}%2C + {A}%2C + {b}%2C + {0}} +%3D%3D + {{X}%2C + {%287 * L^3 +%29%2F162}%2C + {%2810 * L^3%29%2F81}%2C + {y}}]%2C + {a%2C + b%2C + x%2C + y}]) – Palec

+0

我試過按照您的建議更改位移和力矩陣,並獲得相同的結果。我嘗試過'LinearSolve [Stiffness,Force]',但不知道解決這個問題的正確方法是什麼。 – mborland

回答

4
In[1]:= Stiffness = ((Y*A)/L)*{{1,-1,0,0},{-1,2,-1,0},{0,-1,2,-1},{0,0,-1,1}}; 
Displacements = {0, a, b, 0}; 
Force = {x, (7*L^3)/162, (10*L^3)/81, y}; 
Solve[Stiffness.Displacements == Force, {x, y, a, b}] 

Out[4]= {{x-> -((17 L^3)/243), y-> -((47 L^3)/486), a->(17 L^4)/(243 A Y), b->(47 L^4)/(486 A Y)}} 

不要使用//陣列式,除非你只是想要一些漂亮看,但你不能再使用任何後續的計算。

當你想要矢量或矩陣乘,使用時不要使用*。

不要以爲你可以通過每一個元素包裹內的{}

另一層如果解決不工作的矩陣問題,那麼來看看第一件事得到的列向量是不解決問題的矩陣所以你可以看到你的尺寸是否都匹配。