【问题标题】:Does Maxima have problems differentiating integrals?Maxima 在微分积分上有问题吗?
【发布时间】:2021-08-21 07:46:40
【问题描述】:

当我问千里马的价值时

diff(integrate(f(y),y,0,x),x);

那么它正确地推导出这个表达式是 f(x)。但是,如果我将表达式稍微修改为

diff(integrate(f(y)^(1/2),y,0,x),x);

然后 Maxima 询问 x 是正数、零还是负数。回答正面或负面会导致 f(x)^(1/2) 的正确且相同的结果。回答 0 会产生错误,因为由常量派生的定义不明确。

这是 Maxima 的限制,还是有办法让 Maxima 在不询问 x 符号的情况下获得正确的结果?

我有 5.41.0 版的 Maxima,并且正在通过 18.02.0 版的 wxMaxima 使用它。

【问题讨论】:

    标签: integration maxima differentiation


    【解决方案1】:

    看起来问题来自integrate,而不是diff:

    (%i2) integrate (f(y), y, 0, x);
                                x
                               /
                               [
    (%o2)                      I  f(y) dy
                               ]
                               /
                                0
    (%i3) integrate (sqrt(f(y)), y, 0, x);
    Is x positive, negative or zero?
    
    p;
                             x
                            /
                            [
    (%o3)                   I  sqrt(f(y)) dy
                            ]
                            /
                             0
    (%i4) integrate (sqrt(f(y)), y, 0, x);
    Is x positive, negative or zero?
    
    n;
                              0
                             /
                             [
    (%o4)                  - I  sqrt(f(y)) dy
                             ]
                             /
                              x
    

    重新排序积分限制是可以的,尽管可能没有必要,而且 %i2 和 %i3 之间是不一致的。我想这是一个错误。

    之后diff就有了预期的效果:

    (%i5) diff (%o2, x);
    (%o5)                         f(x)
    (%i6) diff (%o3, x);
    (%o6)                      sqrt(f(x))
    (%i7) diff (%o4, x);
    (%o7)                      sqrt(f(x))
    

    您可以通过告诉 Maxima x 是大于还是小于零来隐藏这个问题。我不知道这对您要解决的问题是否有意义。

    (%i8) assume (x > 0);
    (%o8)                        [x > 0]
    (%i9) integrate (sqrt(f(y)), y, 0, x);
                             x
                            /
                            [
    (%o9)                   I  sqrt(f(y)) dy
                            ]
                            /
                             0
    (%i10) diff (%, x);
    (%o10)                     sqrt(f(x))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 1970-01-01
      • 2016-07-12
      相关资源
      最近更新 更多