【问题标题】:Non integral exponent for taylor expansion using sage使用 sage 进行泰勒展开的非积分指数
【发布时间】:2014-12-15 00:05:58
【问题描述】:

这是我的功能

var('h,r')
f=r^2*arccos((r-h)/r)-(r-h)*sqrt(2*r*h-h^2)

taylor(f,h,0,3)

结果:

-1/5*sqrt(2)*h^(5/2)/sqrt(r) + 4/3*sqrt(2)*h^(3/2)*sqrt(r)

我期望 ax^3+bx^2+cx+d 形式的表达式,但我得到 5/2 和 3/2 作为 h 的指数。这是为什么呢?

【问题讨论】:

    标签: sage taylor-series


    【解决方案1】:

    问题似乎分为两部分。

    1. Maxima 中的程序比名称 (taylor) 所暗示的更为通用。 事实上,当泰勒级数不存在时,它会返回其他类型的级数。这包括 Laurent 级数(负指数)和非整数幂。例如,试试 taylor(sqrt(1/sin(x)),x,0,5)。

    这可以通过将命令的名称更改为(比如)series() 来解决。尽管可能仍然存在命名问题,因为世界上还有其他类型的级数,并且您可能想要(比如说)某种渐近级数。

    1. 原始海报和一些评论似乎表明,Maxima 应该遵循严格的纪律,只做命令性质指定的事情。如果系统不能执行命令的操作,它应该给出错误消息。这不是Maxima所做的。举一个非常简单的例子,如果你输入 f(3),而 f 是未定义的,一些系统可能会说“错误,f 是未定义的”。 Maxima 返回 f(3),因为在这种情况下,f(3) 是一个合理的结果,可能允许您继续进行。作为第二个例子,Maxima 不知道如何积分的某种形式的积分会产生一个带有积分符号的公式。不是“无法集成...”的错误。

    一般性评论:如果您使用 Sage 仅访问 Maxima 中的设施,您可能会发现只使用 Maxima 很方便,这是一个具有自己的用户界面 wxmaxima 和绘图例程等的计算机代数系统。

    【讨论】:

    • 感谢您提及 wxmaxima!
    【解决方案2】:

    这本质上是直接使用千里马,所以

    (%i11) display2d: false;
    
    (%o11) false
    (%i12) f:r^2*acos((r-h)/r)-(r-h)*sqrt(2*r*h-h^2);
    
    (%o12) r^2*acos((r-h)/r)-(r-h)*sqrt(2*h*r-h^2)
    (%i13) taylor(f,h,0,3);
    
    (%o13) 4*sqrt(r)*sqrt(2)*h^(3/2)/3-sqrt(r)*sqrt(2)*h^(5/2)/(5*r)
    

    围绕其他点展开给出了我们的预期,所以我猜这是 Maxima 中的某种错误(或未记录的功能)。

    (%i22) taylor(sqrt(x),x,0,5);
    
    (%o22) +sqrt(x)
    (%i23) powerseries(sqrt(x),x,0);
    
    (%o23) sqrt(x)
    

    也许他们喜欢Puiseux series?我已经在https://sourceforge.net/p/maxima/bugs/2850/

    报告了这个

    编辑:当然,存在平方根函数在零处表现不佳的问题!但我认为,人们仍然会期待别的东西。

    【讨论】:

    • 底线是它是一个错误?我是圣人的新手。什么是千里马?
    • Maxima 是 Sage 用于进行积分、限制和(某些)幂级数的开源程序。他们说这不是错误 - 请参阅错误报告。我认为我同意,尽管我也认为我们的文档(首先是他们的)需要更新以说明为什么这是一个好的答案(基本上,因为这些函数(非分析)并没有真正的“泰勒”通常意义上的扩展,但可以返回“相关的东西”。
    • 我经历了关于“错误”的整个讨论。我认为让一个名为 taylor 的函数返回一个 Laurent 或 Puisseux 系列是没有意义的。为每种类型的扩展设置单独的函数而不是使用令人困惑的名称会更合乎逻辑。在任何情况下,文档都需要一个明确的更新和某种返回值来表明它不是一个泰勒级数被返回的事实,以便让程序员采取一些适当的行动。我宁愿返回一个错误。
    • 顺便说一下,我们在 Sage 本身有一个非常相关的票证,地址为 trac.sagemath.org/ticket/6119
    • Tarik:我不确定我是否同意你的看法,但如果你对此有强烈的感觉,你应该写信给 Maxima 邮件列表,说明你认为正确的做法。对我来说,这似乎是一个例子,应该在上游(Maxima)修复或理解感知到的错误,而不是在下游(在 Sage 中)绕过它。
    猜你喜欢
    • 2017-06-14
    • 2014-06-11
    • 2021-07-10
    • 2020-04-10
    • 2016-05-08
    • 2017-04-02
    • 2020-04-06
    • 2013-10-09
    • 2019-09-24
    相关资源
    最近更新 更多