当我运行此代码时:
from scipy.optimize import minimize
import numpy as np
import matplotlib.pyplot as plt
import scipy.special as spl
def minf(x):
return x[0]**2 + (x[1]-1.)**2
sol = minimize(minf, [1,2])
x = np.linspace(0,10,5000)
plt.plot(x, spl.jv(3,x), '-', sol.x, -sol.fun, 'o')
我收到此错误:ValueError:x和y必须具有相同的第一个维度
如何正确指定绘图声明?
我的目标是绘制输入和功能值的景观。在这种情况下,一组二维输入。我想知道如何使用linspace,bessel函数和正确绘图来实现这一点。
我期待这样的情节,还有标记的最佳点:
https://sites.google.com/site/haripkannan/Home/plot_pdqp.png
答案 0 :(得分:1)
minimize
的输出结果不太正确。目前还不清楚你正在尝试用它做什么。看看sol
的输出,这应该如何绘制?
print sol.x, sol.fun
> [ -7.45132580e-09 9.99999993e-01] 1.1104451202e-16
尽管如此,绘制贝塞尔函数很简单:
x = np.linspace(0,10,500)
y = spl.jv(3,x)
plt.plot(x, y, '-')
plt.show()