线性求解Mathematica

时间:2014-01-21 23:23:16

标签: matrix wolfram-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。谢谢您的帮助。

1 个答案:

答案 0 :(得分: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)}}

不要使用// MatrixForm,除非你只是想看一些漂亮的东西,但是你不能再用它来进行任何后续的计算。

当你想要矢量或矩阵乘法时,不要使用*,使用。

不要认为你可以通过将每个元素包装在{}

的另一个层中来获取列向量

如果Solve不适用于矩阵问题,那么首先要看的是没有Solve的矩阵问题,这样你就可以看到你的尺寸是否都匹配了。