我在用动力系统做模拟。基本上,对于二维平面上的每一个初始条件(x,y),我计算出一个特定的量,这是一个实数。我的目标是采取一系列的点,并计算出所说的数量为每个点,然后作出一个彩色绘图。你知道吗
这个特殊的模拟包含一个势能函数,以x和y作为输入。我固定能量并绘制函数的轮廓(使用等高线从matplotlib)。我想在这个轮廓内创建一个颜色图。你知道吗
到目前为止,我只在矩形域上进行了模拟,并使用np.网格,但这次我不知道怎么做。有人能提些建议吗?到目前为止,我有:
import numpy as np
import matplotlib.pyplot as plt
def V(x,y):
return 0.5*(x**2+y**2)+(x**2)*y-(1.0/3.0)*(y**3)
def my_function(x,y,h):
# insert function here
# returns a real number > 0
#The following segment plots a contour of V at value h:
def plot_contour(h):
x=np.linspace(-1.0,1.0,200)
y=np.linspace(-1.0,1.0,200)
X,Y=np.meshgrid(x,y)
Z=np.zeros((200,200))
for i in range(200):
for j in range(200):
Z[i,j]=V(X[i,j],Y[i,j])
plt.contour(X,Y,Z,[h])
plt.show()
#The following segment creates a color plot on a rectangular domain
def color_plot(h):
x=np.linspace(-1.0,1.0,200)
y=np.linspace(-1.0,1.0,200)
X,Y=np.meshgrid(x,y)
Z=np.zeros((200,200))
for i in range(200):
for j in range(200):
Z[i,j]=my_function(X[i,j],Y[i,j],h)
plt.pcolormesh(X,Y,Z)
plt.show()
我想做以下工作:选择一个值h
,计算V
在h
的轮廓,用颜色绘制my_function(x,y,h)
的值,其中(x,y)
是轮廓内的一个点。因此,颜色图仅限于等高线内的点。基本上就是这样
目前没有回答
相关问题 更多 >
编程相关推荐