首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非均匀二维数据一阶导数的数值求解

问非均匀二维数据一阶导数的数值求解
EN

Stack Overflow用户
提问于 2022-04-29 16:42:59
回答 1查看 67关注 0票数 0

最初,我有两个数组p和角,并将它们插入方程fh中以得到第三个数组z。在得到这些数据后,我将数组p和角转换为p_perpendicular和p_parallel,其中p_perpendicular = p* sin(角)和p_parallel =p*cos(角)。

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

def func(p,alpha):
   fh = (1/((1+((p**(1/2))))**(3/2)))*(1-np.tanh((np.cos(alpha*np.pi/180))**(1/2))+(1+np.tanh(alpha)**(1/2)))
return (fh)

p=[]
angle=[]
z=[]
for p_loop in np.arange(1e-23,4e-22,1e-23): 
    for alpha in np.arange(1,90,3): 
        p.append(p_loop)
        angle.append(alpha)
        z.append(func(p_loop,alpha))

p_parallel = (np.array(p)*np.cos(np.array(angle)*np.pi/180))   #array of parallel p
p_perpendicular = (np.array(p)*np.sin(np.array(angle)*np.pi/180))  #array of perpendicular p

我知道我可以从原始数据中找到dz/dp和dz/d(角度)的近似导数,但不知道如何找到dz/dp_平行或dz/dp_垂直的导数。

我的第一个想法是使用二维直方图,但这导致了很大的不准确。在p_parallel和p_perpendicular空间中,是否有最好的插值方法、极二值法或其他方法?

​

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-29 18:18:07

你已经完成了变量变化。根据连锁规则:

代码语言:javascript
复制
  dz/dp = dz/dp_par dp_par/dp + dz/dp_perp dp_perp/dp
  dz/dangle = dz/dp_par dp_par/dangle + dz/dp_perp dp_perp/dangle

考虑到你的转变:

代码语言:javascript
复制
# the Jacobian of polar coordinates with respect to cartesian
# both `p` and `angle` are numpy arrays
J = np.array(
    [
        [np.cos(angle * np.pi / 180), -np.pi * p * np.sin(angle * np.pi / 180) / 180],
        [np.sin(angle * np.pi / 180), np.pi * p * np.cos(angle * np.pi / 180) / 180],
    ]
)

# J.shape = (2, 2, 1170).
# Transpose it such that the longest dim is first
J = np.transpose(J, axes=(2, 0, 1))

dz = <<your approximation of derivative [dz/dp, dz/dangle]>>
# dz.shape = (1170, 2)

然后利用解给出了dz/dp_par,dz/dp_perp的逼近。

代码语言:javascript
复制
np.linalg.solve(J, dz)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72061173

复制
相关文章

相似问题

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