在python中使用bessel函数进行绘图

时间:2014-04-27 04:22:26

标签: python matplotlib

当我运行此代码时:

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

1 个答案:

答案 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()

enter image description here