千里马:如何替换方程中的变量

时间:2017-02-10 16:36:02

标签: symbolic-math maxima

我试着写下我工作的一些笔记。 Maxima简化我的工作的方式是,一旦我编写一堆方程式并且我想改变变量的定义,我就会这样做并重新评估整个文件。

这是我想要完成的一个例子:

问题1: 我有一个方程组,我想从Maxima中得到的只是变量替换。

#UpScopeLinkTop{
display: inline;
  position:relative;
  left: 70px;
  
}

#ResultCount{
  display: inline;
  position:relative;
  left: -75px;
}

如何输出Maxima

<div class="ms-srch-result" id="Result" name="Control">  

   <div id="UpScopeLinkTop" class="ms-srch-upscope-top">                        
   Text Right 
   </div>

   <div id="ResultCount" class="ms-srch-resultscount">                           
Text Left                       

   </div>

</div>

因此,如果我希望x成为+ b-c,我只需更改它并重新评估

问题2: 与以前类似,但有点复杂

eq1: x=a+b+c
eq2: y=d+e+f
eq3: x+y=0

如何输出Maxima

eq3: a+b+c+d+e+f = 0

如何让Maxima为e解决eq1并解决e和输出的eq2

eq1: x=a+b+c
eq2: y=d+e+f
eq3: x=y
eq4: a+s+e=0

提前感谢您的帮助, 吉

1 个答案:

答案 0 :(得分:2)

我认为substsolve可以处理您想要的操作。

(%i1) eq1: x=a+b+c;
(%o1)                            x = c + b + a
(%i2) eq2: y=d+e+f;
(%o2)                            y = f + e + d
(%i3) eq3: x+y=0;
(%o3)                              y + x = 0
(%i4) subst ([eq1, eq2], eq3);
(%o4)                      f + e + d + c + b + a = 0

好的,现在这是你的第二个例子。请注意solve返回一个方程列表。

(%i5) eq3: x=y;
(%o5)                                x = y
(%i6) eq4: a+s+e=0;
(%o6)                            s + e + a = 0
(%i7) subst ([eq1, eq2], eq3);
(%o7)                        c + b + a = f + e + d
(%i8) solve (eq1, a);
(%o8)                           [a = x - c - b]
(%i9) solve (eq2, e);
(%o9)                           [e = y - f - d]
(%i10) append (%o8, %o9);
(%o10)                  [a = x - c - b, e = y - f - d]
(%i11) subst (%o10, eq4);
(%o11)                   y + x + s - f - d - c - b = 0

千里马的solve功能并不太强大;它有许多种方法无法解决。但它可以解决线性方程式。