我有一些设置如下的功能:
f(x):=1-2**-x$
g(y):=integrate(f(x), x, 0, y)$
并评估它们:
f(1)$float(%);
g(1)$float(%);
但是对于g(1),我得到了一个符号答案,而不是一个数字答案。使用float()试图得到一个数字答案,但它只是将积分中的所有项都变成了浮点数。
如何将g(1)作为数字?
答案 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]
第一个条目是数值解,
第二个条目是近似相对误差,
第三个条目是实现解决方案所需的迭代次数,
,最后一个条目是错误代码;错误代码