首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用其导数计算Sin(x)^4的梯度是不一样的

用其导数计算Sin(x)^4的梯度是不一样的
EN

Stack Overflow用户
提问于 2016-05-12 14:42:00
回答 1查看 203关注 0票数 1

当我用下面的代码直接将Sin(x)^4的导数4 Sin(x)^3 Cos(x)用于x= 0到180 deg时,计算并绘制它的导数时,我得到了正确的结果。

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

a = np.power( np.sin(   np.deg2rad(range(0,180))    ),4 )   
c = 4 * np.sin( np.deg2rad(range(0,180) ))**3 * np.cos(np.deg2rad(range(0,180)))
plt.plot(a)
plt.plot(c)    
plt.show()

但是当我尝试用numpy梯度函数做同样的事情时,它给出了一个不同的结果,即梯度就像直线。例如,使用以下代码:

代码语言:javascript
复制
import matplotlib.pyplot as plt
a = np.power( np.sin(   np.deg2rad(range(0,180))    ),4 )   
plt.plot(a)
plt.plot(np.gradient(a))    
plt.show()

我仍然无法理解这种差异的原因。有谁能告诉我他们为什么不一样吗?实际上,在模拟工作中,我在数组中有一组值,我需要计算它们在phi=range(0,180)上的导数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-12 15:03:30

您没有正确地指定样本之间的间隔(默认为1),因此您得到的答案被错误地缩放了。

尝试:

代码语言:javascript
复制
a = np.power(np.sin(np.deg2rad(range(0,180))),4 )   
plt.plot(a)
plt.plot(np.gradient(a, np.deg2rad(1)))

现在,cnp.gradient(a, np.deg2rad(1))应该是几乎相同的。

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

https://stackoverflow.com/questions/37190267

复制
相关文章

相似问题

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