【发布时间】:2012-10-14 19:41:14
【问题描述】:
假设如下函数:
f(x) = x * cos(x-4)
对于x = [-2.5, 2.5],此函数在f(0) = 0 和f(-0.71238898) = 0 处交叉0。
这是通过以下代码确定的:
import math
from scipy.optimize import fsolve
def func(x):
return x*math.cos(x-4)
x0 = fsolve(func, 0.0)
# returns [0.]
x0 = fsolve(func, -0.75)
# returns [-0.71238898]
使用fzero(或任何其他 Python 根查找器)在一次调用中找到两个根的正确方法是什么?是否有其他 scipy 函数可以执行此操作?
【问题讨论】:
-
也许我的数学很模糊,但
f(0) = 2不在那里吗? -
@mayhewr。看起来你的数学不是那么模糊。 ;)
-
@strimp099:f(x) 与 func(x) 完全不同。那你想解决哪一个?
-
对不起,很草率。更新 f(x)
-
Scipy 邮件列表中的这一系列消息可能是相关的:mail.scipy.org/pipermail/scipy-user/2007-September/013870.html
标签: python optimization scipy