首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MatLab中的数值偏导数

MatLab中的数值偏导数
EN

Stack Overflow用户
提问于 2013-11-28 04:06:42
回答 2查看 2.5K关注 0票数 2

如何在Matlab中计算概率密度函数(PDF)的数值偏导数?我并不是在寻找使用自动差异或符号解决方案的解决方案。

给出了以下示例:

代码语言:javascript
复制
arg = (-1:.01:1)';
mu = 0;
sigma = 0.5;

f = normpdf(arg,mu,sigma);

可以计算df/dsigma的数值偏导数吗?还是我不得不使用自动差异或符号数学工具箱?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-28 04:28:02

我假设实际函数不是正态分布的PDF。如果只需要一阶导数,则可以尝试使用复阶微分

代码语言:javascript
复制
mu = 0;
sigma = 0.5;
f = @(x)normpdf(x,mu,sigma);
x = -1:0.01:1;
h = 2^-28;
dx = imag(f(x+1i*h))/h;

或者,如果您保持xmu不变,并且改变sigma

代码语言:javascript
复制
mu = 0;
x = 0;
g = @(sigma)normpdf(x,mu,sigma);
sigma = 0.25:0.01:0.75;
h = 2^-28;
dsigma = imag(g(sigma+1i*h))/h;

这种技术快速,简单,非常准确。您可以从我的cdiff下载这个方便的函数,GitHub。

票数 3
EN

Stack Overflow用户

发布于 2013-11-28 04:40:23

我的理解是arg和mu是恒定的,西格玛是不同的。这是一个明显的近似:

代码语言:javascript
复制
arg = 0;
mu = 0;
incr = 0.0001;
sigma = incr:incr:1.5;

f = normpdf(arg,mu,sigma);
d = diff(f) / incr;
plot(sigma(2:end), d, '.')
set(gca, 'XLim', [0.05 1.5])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20257508

复制
相关文章

相似问题

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