Math 如何将积分计算为一个数?

Math 如何将积分计算为一个数?,math,evaluation,symbolic-math,maxima,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)作为一个数?为什么不(根据定积分的定义)这样做呢: “”(quote quote)运算符用于在赋值之前强制计算:=”的右侧。如果您只对数

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

f(x):=1-2**-x$
g(y):=integrate(f(x), x, 0, y)$
并对其进行了评估:

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

我怎样才能得到g(1)作为一个数?

为什么不(根据定积分的定义)这样做呢:


“”(quote quote)运算符用于在赋值之前强制计算:=”的右侧。

如果您只对数值解感兴趣,则可以使用数值积分。 例如,您可以使用
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。

您使用的是
Wolfram Mathematica
[0.27865247955552,3.093663986714272*10^-15,31,0]