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]