如何评估与数字的集成?

时间:2011-01-18 21:38:17

标签: math evaluation symbolic-math maxima

我有一些设置如下的功能:

f(x):=1-2**-x$
g(y):=integrate(f(x), x, 0, y)$

并评估它们:

f(1)$float(%);
g(1)$float(%);

但是对于g(1),我得到了一个符号答案,而不是一个数字答案。使用float()试图得到一个数字答案,但它只是将积分中的所有项都变成了浮点数。

如何将g(1)作为数字?

2 个答案:

答案 0 :(得分:3)

为什么不做(通过定积分的定义):

f(x):=1-2**-x$
gg(x):=''(integrate(f(x), x))$
g(y):=gg(y) - gg(0)$

''(quote-quote)运算符用于在赋值之前强制评估:=的右侧。

答案 1 :(得分:0)

如果您只对数值解决方案感兴趣,那么您可以使用数值积分。 例如,您可以使用quad_qag (f(x), x, a, b, key, [epsrel, epsabs, limit])

我试过了:

f(x) := 1-2^(-x);
g(y):= quad_qag(f(x), x, 0, y, 3, epsrel=10d-8)$
g(1);

返回:

[0.27865247955552,3.093663986714272*10^-15,31,0]

第一个条目是数值解,

第二个条目是近似相对误差,

第三个条目是实现解决方案所需的迭代次数,

,最后一个条目是错误代码;错误代码

  • 0如果没有遇到任何问题;
  • 1如果进行了太多的子间隔;
  • 2如果检测到过多的舍入错误;
  • 3如果发生非常糟糕的被投资行为;
  • 6如果输入无效。
顺便说一下,确切的解是1-1 /(2 * log(2)),大约是0.27865。