首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中求f(x,y)沿x和y的偏导数:del^2f(x,y)/[del(x)][del (y)]

如何在python中求f(x,y)沿x和y的偏导数:del^2f(x,y)/[del(x)][del (y)]
EN

Stack Overflow用户
提问于 2019-03-27 11:28:02
回答 1查看 1K关注 0票数 4

我在(xx,yy)网格中定义了一个2D函数f(x,y)。我想从数字上得到它的偏导数,如下所示。注意,np.gradient不执行这项工作,因为它沿着每个轴返回一个向量字段。

我怎么能这么做?这是我的代码:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-5, 5, 0.1)
y = np.arange(-4, 4, 0.1)
xx, yy = np.meshgrid(x, y, sparse=True)
f = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,f)
plt.show()

df=np.gradient(f,y,x) #Doesn't do my job
df=np.array(df)
print(df.shape)

# h = plt.contourf(x,y,df)   #This is what I want to plot.
# plt.show()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 11:36:37

您需要调用np.gradient两次:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

x = np.arange(-5, 5, 0.1)
y = np.arange(-4, 4, 0.1)
xx, yy = np.meshgrid(x, y, sparse=True)
f = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
h = plt.contourf(x,y,f)
plt.show()

dfy = np.gradient(f, y, axis=0)
dfxy = np.gradient(dfy, x, axis=1)
print(dfxy.shape)
# (80, 100)

h = plt.contourf(x, y, dfxy)
plt.show()

输出:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55376102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档