我正在尝试使用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。谢谢您的帮助。
最佳答案
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的矩阵问题,这样您就可以查看尺寸是否全部匹配。