0

这是我的功能

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 的指数。这是为什么?

4

2 回答 2

2

问题似乎分为两部分。

  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 和绘图例程等的计算机代数系统。

于 2014-12-14T16:05:58.557 回答
1

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

(%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 系列?我已经在https://sourceforge.net/p/maxima/bugs/2850/报告了这个

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

于 2014-12-04T15:15:27.670 回答