gpt4 book ai didi

maxima - 简化最大值中的公式

转载 作者:行者123 更新时间:2023-12-04 19:06:29 27 4
gpt4 key购买 nike

我正在使用 maxima 软件来帮助我简化公式。通常,我可以使用 subst、ratsubst、factor、ratsimp 轻松管理……但是我发现仍然有一些公式很难以我想要的方式简化。

  • 假设 a > b 和 c > d,我想以这种方式简化以 a - 符号开头的分数:
    -(a - b)/(d - c)    ->   ( a - b )/( c - d)
    但我不知道该怎么做。似乎最大值简化算法
    将尝试以自己的方式对变量进行排序。
    我创建了自己的最大值函数来尝试简化这些无用的减号。
    no_minus(fraction):=
    block([simp:true,
    numerat:expand(-ratnumer(fraction)),
    denominat:expand(-ratdenom(fraction))],
    block([simp:false],
    numerat/denominat));
    -a/(b-x);
    no_minus(-a/(b-x));
    no_minus(-a*b*c/(b-x*b*f-f));

  • 我原以为 no_minus(-a/(b-x)) 会返回 a/(x-b) 但它没有。
  • 我想引入一个新的中缀运算符来表示两个表达式近似相等。例如,如果 x 是
    大约等于 y。我想记下
    x =~ y

    infix("=~").

  • 如何配置简化器,以便当输入为
    2*x+3 =~ u+v;  
    (%-3)/2;
    输出是
    x =~ (u+v-3)/2

    最佳答案

    好吧,您可以通过 tellsimp 定义简化规则(和 tellsimpafterdefruledefmatch )。也许这足以开始。

    (%i3) infix ("=~") $
    (%i4) matchdeclare ([aa, bb, cc], all) $
    (%i5) tellsimp ((aa =~ bb) * cc, (aa * cc) =~ (bb * cc)) $
    tellsimp: warning: rule will treat '?mtimes' as noncommutative and nonassociative.
    (%i6) tellsimp ((aa =~ bb) + cc, (aa + cc) =~ (bb + cc)) $
    tellsimp: warning: rule will treat '?mplus' as noncommutative and nonassociative.
    (%i7) (2*x + 3) =~ (u + v);
    (%o7) (2*x+3) =~ (v+u)
    (%i8) (% - 3)/2;
    (%o8) x =~ ((v+u-3)/2)

    关于maxima - 简化最大值中的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157333/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com