【问题标题】:Maxima: how to replace variables in equations千里马:如何替换方程中的变量
【发布时间】:2017-02-10 16:36:02
【问题描述】:

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

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


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

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

如何让 Maxima 输出

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

所以将来如果我想让 x 成为 a+b-c,我只是改变它并重新评估


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

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

如何让 Maxima 输出

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

如何让 Maxima 为 a 求解 eq1 并为 e 求解 eq2 并输出

eq4: x-b-c+s+y-d-f = 0

提前感谢您的帮助, 圭多

【问题讨论】:

    标签: symbolic-math maxima


    【解决方案1】:

    我认为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功能不是太强大;有很多种方程它不能解。但它可以解线性方程组。

    【讨论】:

    • 非常感谢罗伯特!我不知道 subst 可以以这种方式使用。非常感谢您的帮助
    • 不是很清楚,但是基本上如果你有一个带有变量的表达式并且想用一个值替换一个变量,你会做类似subst(x = 3, x + 2);的事情,它会返回@ 987654328@.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多