总有一部分人拿一些很不好算的函数,交给Maple计算不定积分或者定积分。一旦Maple没办法处理就会很鄙视她,认为她不过如此。的确,Maple本身也是人创造的产物,自然有她的缺陷,不过我觉得大多数时候下的论断 Maple不能处理什么的为时过早。
本文针对两类积分问题进行简要分析,说明使用Maple也需要动动脑筋,灵活求解。
1.1 不定积分求不出结果?
我们考察不定积分:
看起来这样的函数的复杂程度也的确不是很过分,我们用免费使用的 geogebra 输入f(x)=Integral(cos^(-1)(x) sin^(-1)(x)) 就可以得出下面结果。
我们试想使用Maple自然不会差到哪去!然而差点吐血!
int(arccos(x)*arcsin(x),x)
这个结果显然正确,但不是一些初等函数表达的形式,即不是我们预期的结果! 难道说Maple这点能力都没有了?不禁要贬低一番。然而此时为时过早了。
我们试想如果我们人为去计算应该想到的第一步积分方法是什么,估计想的多的是分部积分。那么我们尝试诱导Maple进行分部积分如何?我们可以利 IntegrationTools工具包里面的Parts让arcsin(x)放到积分变量后面去。试试结果就出来了还相当简洁!
IntegrationTools:-Parts(int(arccos(x)*arcsin(x), x), arcsin(x));
第二种试着换元,
IntegrationTools:-Change(int(arccos(x)*arcsin(x),x), x=sin(t));
eval(%, sin(t)=x);
结果也不错:
试着用convert改变一下形式,效果nice!
convert( int(arccos(x)*arcsin(x),x), arcsin );
也就是说Maple不仅可以给出结果,还能依据方法给出不同形式的不定积分结果。
1.2 微积分基本定理使用失效?
微积分基本定理
若是区间上的连续函数,那么定积分
且是的任意一个不定积分,即且有。
注意:这里的
在区间
可导。
但是一般地计算机代数求函数地不定积分时候,会出现不可导点!甚至在一些点不连续,这是一个小漏洞,其中原因应该是函数的多值性导致,在计算机代数认为是可以接受的。只需将这些间断点进行一定地定义修补就好。
我们用下面例子就会明白:考虑
在区间[0,5]的定积分。
f:=1/(2+sin(x));
int(f,x=0..5);
evalf(%)
如果我们直接在该区间使用微积分基本定理求定积分:
F:=int(f,x):
combine(eval(F,x=5)-eval(F,x=0));
evalf(%)
显然错误了。这是因为函数
在区间
是一个恒大于
的函数。定积分显然大于
。