枫不能计算我的功能

时间:2014-10-28 14:08:54

标签: math maple

我一开始抱歉我的英语不好。 我试着用枫树做一些数学。

我的功能

func(x) = x*e^(-x)-0.06064

我试着计算      f(0.05)* f(0.06)< 0

bn:= 0
mn := 0.06   
an := 0.05    
if (evalf( subs( x = mn, func ) )*evalf( subs( x = an, func ) )) < 0 then bn := mn;
但是枫说:

  

无法确定此表达式是true还是false:   (0.6000000000e-1 / E ^ 0.64692635994760e-1-0.6064e-1)*(0.5E-1 / E ^ 0.64692635994760e-1-0.6064e-1)   &LT; 0

我可以做些什么来计算吗?

2 个答案:

答案 0 :(得分:1)

你主要的困难在于Maple Notation以自然对数为基础的驱动就像是,

exp( -x )

而不喜欢,

e^( -x )

请注意您收到的错误消息中是否存在名称e。在Maple中,名称e在1D Maple Notation输入中没有特殊含义。

可能您只是将这些来电置于evalf,因为您尝试使用e解决问题。在您的示例中,浮点数具有足够的传染性以使evalf调用不必要。

您可能也对这两个变体感兴趣,以从您的公式中获得实际的浮点数。我在这里省略了不必要的evalf电话。

以下func定义为表达式。

restart:
func := x*exp(-x) - 0.06064:
bn:= 0: mn := 0.06: an := 0.0:
eval( func, x=mn ) * eval( func, x=an );

                           0.0002506935207

此处func定义为运算符。

restart:
func := x -> x*exp(-x)-0.06064:
bn:= 0: mn := 0.06: an := 0.0:
func( mn ) * func( an );

                           0.0002506935207

答案 1 :(得分:0)

我认为你的括号有点偏。试试这个:

if (evalf( subs( x = mn, func ) )*evalf( subs( x = an, func ) ) < 0) then bn := mn;