我在对问题进行研究时找到了解决方案,但我仍然在这里发布问题/答案。我在网上搜索时找不到其他资源,所以我希望这篇文章将来可能对某人有所帮助。
您好,我正在使用sympy
计算分段定义函数的积分。然而,积分引入了虚数常数。
最小的例子
from sympy import *
f = interpolating_spline(1, Symbol('p'), [0,0.1,1], [0,10,1000])
r = (ln(20000-f)).simplify()
s = integrate(r)
print('r='+latex(r))
print('s='+latex(s))
这使
为什么积分中有虚常数?我隐约记得复杂分析中的分支切割,所以它可能与此有关?
问题公式的起源是凯利准则,适用于损失超过曲线。
预期结果
如果我只整合第一个表达式,我会得到一个没有常数的实值积分:
In [71]: integrate(ln(20000-100*p))
Out[71]: p*log(20000 - 100*p) - p - 200*log(p - 200)
但是这个结果也很奇怪,因为结果不会被定义为p=0.1
,因为p-200
它将是负数。很奇怪。