Wolfram mathematica 如何将Solve[]用于可变数量的方程?
我需要解一个大的线性方程组。问题在于,根据用户的输入,方程式的数量会有所不同 作为一个具体的例子,假设我有两个未知的方程。我会写字Wolfram mathematica 如何将Solve[]用于可变数量的方程?,wolfram-mathematica,Wolfram Mathematica,我需要解一个大的线性方程组。问题在于,根据用户的输入,方程式的数量会有所不同 作为一个具体的例子,假设我有两个未知的方程。我会写字 Solve[{x+y==1&&2x+2y==3},{x,y}] 有没有一种方法,我可以把上面的解推广到任意数量的方程和变量,而不必显式地键入所有内容?我的方程和变量存储在数组中。语法将取决于存储它们的形式。例如,如果您有 eqns = {x - y == 1, 2 x + 2 y == 3, 5*x - 3*y - z == 2} vars = {
Solve[{x+y==1&&2x+2y==3},{x,y}]
有没有一种方法,我可以把上面的解推广到任意数量的方程和变量,而不必显式地键入所有内容?我的方程和变量存储在数组中。语法将取决于存储它们的形式。例如,如果您有
eqns = {x - y == 1, 2 x + 2 y == 3, 5*x - 3*y - z == 2}
vars = {x, y, z}
那你就可以了
Solve[eqns, vars]
(*
{{x -> 5/4, y -> 1/4, z -> 7/2}}
*)
(感谢Wizard先生提醒我正确的语法)除了Acl编写的内容之外,您还可以使用
LinearSolve
:
我正在借用Acl数据
Remove["Global`*"];
eqns = {x - y == 1, 2 x + 2 y == 3, 5*x - 3*y - z == 2}
vars = {x, y, z}
A = CoefficientArrays[eqns, vars];
sol = LinearSolve[A[[2]], -A[[1]]]
给
{5/4, 1/4, 7/2}
In[135]:= Thread[vars->sol]
Out[135]= {x->5/4,y->1/4,z->7/2}
如果有明确的数组示例,其中eqn和vars存储在hanks acl中,这将非常有用。我花了几个小时想弄明白这一点。回答您的问题,是的,我是mathematica的新手。@用户什么,几小时后@您从未想到过??)我同意一开始在mathematica中很难计算出如何做简单的事情。@acl,回顾我的答案;如果您同意
和@@
是无关的,并且您相应地更新了您的问题,我将删除我的问题。