如何评估对数字的积分?
我设置了一些函数,如下所示:
f(x):=1-2**-x$
g(y):=integrate(f(x), x, 0, y)$
并对它们进行了评估:
f(1)$float(%);
g(1)$float(%);
但是对于 g(1),我得到了符号答案而不是数字答案。使用 float() 是为了获得数值答案,但它只是将积分中的所有项都转换为浮点数。
我怎样才能得到g(1)作为一个数字?
I have some functions set up like this:
f(x):=1-2**-x$
g(y):=integrate(f(x), x, 0, y)$
and evaluated them:
f(1)$float(%);
g(1)$float(%);
but for g(1), I got a symbolic answer instead of a numerical answer. Using float() was an attempt to get a numerical answer but it just turned all of the terms in the integral into floats.
How can I get g(1) as a number?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么不直接这样做(根据定积分的定义):
''(引号-引号)运算符用于在赋值之前强制评估 := 的右侧。
Why not just do (by the definition of definite integral):
'' (quote-quote) operator is used to force the evaluation of the :='s right hand side before the assignment.
如果您只对数值解感兴趣,那么您可以使用数值积分。
例如,您可以使用quad_qag (f(x), x, a, b, key, [epsrel, epsabs, limit])。
我尝试过:
它返回:
第一个条目是数值解,
第二个条目是近似相对误差,
第三个条目是实现解决方案所需的迭代次数,
最后一个条目是错误代码; 错误代码为
顺便说一句,精确解是 1-1/(2*log(2)),大约为 0.27865。
If you're only interested in a numerical solution, then you could use numerical integration.
For example you could use
quad_qag (f(x), x, a, b, key, [epsrel, epsabs, limit])
.I tried:
which returns:
the first entry is the numerical solution,
the second entry is the approximate relative error,
the third entry is the number of iterations required to achieve the solution,
and the last entry is an error code; error codes are
BTW, the exact solution is 1-1/(2*log(2)) which is approximately 0.27865.