有没有办法知道要使用什么正确的网格网格点来绘制一个好的函数?

时间:2019-01-24 18:25:19

标签: python

我正在用python编写一个程序,该程序创建一个网状网格并计算Rosenbrock函数的Z。然后绘制等高线,对于我尝试的每组网格,我都会得到几个不同的等高线。有没有办法猜测正确的Meshgrid值以绘制出良好的轮廓?

所需的结果在图像中:http://www.brnt.eu/phd/rosenbrock.png

我为X和Y尝试了不同的开始,结束和步长值,但无法获得所需的输出

import numpy as np
import matplotlib.pyplot as plt

#step 1: defining the function rosenbrock
def rosenbrock(X):
    x1 = X[0]
    x2 = X[1]
    a = 1. - x1
    b = x2 - x1*x1
    return a*a + b*b*100.

s = 0.001
X = np.arange(-3, 3, s) #arange(start,finish,increment), stores resulting 
vector in X
Y = np.arange(-3, 3, s)
X, Y = np.meshgrid(X, Y)   #create the mesh grid
Z = (1.-X)**2 + 100.*(Y-X*X)**2 # rosenbrock function
CS = plt.contour(X,Y,Z) #plot contour

图片:http://www.brnt.eu/phd/rosenbrock.png

0 个答案:

没有答案