Matrix 线性求解数学

Matrix 线性求解数学,matrix,wolfram-mathematica,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}}

我试图用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对矩阵问题不起作用,那么首先要看的是没有解的矩阵问题,这样你就可以看到你的维度是否都匹配。

不应该
Displacements={{0},{a},{b},{0}
be
Displacements={0,a,b,0}
?同样的变化也适用于IMO的
。如何使用?关于
解决方案=Solve[Thread[Stiffness.Displacements==Force],{a,b,x,y}]
?请参阅LinearSolve文档的“属性和关系”部分。我试着按照你的建议改变位移和力矩阵,得到了同样的结果。我曾尝试过
LinearSolve[Stiffness,Force]
,但不确定解决这个问题的正确方法是什么。使用
solution=Solve[Thread[Stiffness.Displacements==Force],{a,b,x,y}]
会产生“这个系统无法用可用的方法解决”的结果,在WA中它也不起作用。我不知道原因。希望其他人能帮你解决这个问题。