我正在尝试使用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 :(得分: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的矩阵问题,这样你就可以看到你的尺寸是否都匹配了。