Python 如何在pyhthon中初始化二维不连续初始数据

Python 如何在pyhthon中初始化二维不连续初始数据,python,numerical-methods,pde,piecewise,Python,Numerical Methods,Pde,Piecewise,我刚刚用Python编写了有限差分求解器,用于单位平方的热方程,为了检查方程的一个重要性质,我需要给出一个折扣函数作为初始数据 我的域在[0,1]x[0,1]中,我希望有一个如下的函数,但在2D中,即变量(x,y)的分段函数 问题是我试图使用numpy.piecise,但它似乎不起作用。有人知道如何建立这样一个初始数据吗?可能是这样的: import numpy as np import matplotlib.pyplot as plt number_of_desired_points =

我刚刚用Python编写了有限差分求解器,用于单位平方的热方程,为了检查方程的一个重要性质,我需要给出一个折扣函数作为初始数据

我的域在
[0,1]x[0,1]
中,我希望有一个如下的函数,但在2D中,即变量(x,y)的分段函数

问题是我试图使用numpy.piecise,但它似乎不起作用。有人知道如何建立这样一个初始数据吗?

可能是这样的:

import numpy as np
import matplotlib.pyplot as plt

number_of_desired_points = 20
x = np.linspace(0,1,number_of_desired_points)

def boxplot(x):
     y = [1 if (x[i] >0.4) and (x[i]<0.6) else 0 for i in range(len(x))]
     return y

y = boxplot(x)

plt.plot(x,y)
plt.show()

data2D = np.array([x,y]).T
将numpy导入为np
将matplotlib.pyplot作为plt导入
所需点数=20
x=np.linspace(0,1,所需点数)
def箱线图(x):

y=[1如果(x[i]>0.4)和(x[i]0.4)和(x[i]我已经能够做到了…我需要这样一个函数,但在2d中。它有一个“楼梯”的形式。你说2d中的函数是什么意思。这个答案给出了构成2d网格的x,y向量。我的意思是,函数的输入是2d,即$u(x,y)$,因此,$u$的图形是一个三维对象,我找到了这篇()文章,它几乎给出了答案,但我无法将其适应我的情况
import numpy as np
import matplotlib.pyplot as plt

number_of_desired_points = 20
x = np.linspace(0,1,number_of_desired_points)

def boxplot(x):
     y = [1 if (x[i] >0.4) and (x[i]<0.6) else 0 for i in range(len(x))]
     return y

z = boxplot(x)
y=x[:]

fig = plt.figure()
ax = plt.axes(projection='3d')
ax.scatter(x,y,z)
plt.show()