点与多项式曲线之间的最小距离

时间:2020-04-18 08:26:38

标签: distance point curve minimize

在网上搜索时,我发现可以采用scipy.optimize.minimize_scalar来最小化距离函数。这个问题不应该很难,但是,优化过程似乎并不起作用。

当我在位于多项式上的优化点和我选择的随机点之间绘制矢量时,优化只会返回诸如矢量将是水平或垂直的点,并且距离不会被优化。

这是我尝试过的:

P = (250,7)

def f(x):
    return 7.905e-07*x**(3)-0.0009478*x**(2)+0.381*x-44.34

def obj(x):
    y = f(x)
    return np.sqrt((x - P[0])**2 + (y - P[1])**2)

ris = minimize_scalar(obj)

x = np.linspace(0,450)
plt.plot(x,f(x))
plt.scatter(P[0],P[1])
plt.ylim(bottom=0)
plt.plot([P[0],ris.x],[P[1],f(ris.x)])
plt.grid()

结果图:

The resulting plot

0 个答案:

没有答案
相关问题