首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二元对数正态分布密度函数的积分

二元对数正态分布密度函数的积分
EN

Stack Overflow用户
提问于 2019-10-29 19:26:11
回答 1查看 97关注 0票数 2
代码语言:javascript
复制
rho = 0.8;

ff = @(x, y) (exp(-(((log(x)-10).^2 - 2.* rho .* (log(x)-10) .* (log(y)-10)+(log(y)-10).^2)./(2 .* (1-rho.^2))))./(2.*pi.*sqrt(1-rho.^2).*x.*y));

syms x y
vpaintegral(vpaintegral(ff, x, [0 inf]), y, [0 inf])

为什么在Matlab中上述二元对数正态分布密度函数的积分不是1?

注:这个对数正态二元随机变量的对数变换是一个具有均值(10,10)和协方差矩阵(1,rho,rho,1)的二元正态随机变量。

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 19:40:21

使用integral2

我们得到0.9994,

代码语言:javascript
复制
% MATLAB R2019a
rho = 0.8;
ff = @(x, y) (exp(-(((log(x)-10).^2-2.*rho.*(log(x)-10).*(log(y)-10)+(log(y)-10).^2)./(2.*(1-rho.^2))))./(2.*pi.*sqrt(1-rho.^2).*x.*y));

area = integral2(ff,0,inf,0,inf)     % area = 0.9994

但是,调整公差可以得到预期的结果。

代码语言:javascript
复制
area = integral2(ff,0,inf,0,inf,'Method','iterated','AbsTol',0,'RelTol',1e-10)

ans = 1.0000

代码语言:javascript
复制
format long
area

ans = 0.999999999999998

不太寒酸。

使用符号工具箱中的 瓦氏积分

您还可以使用调整公差 for vpaintegral

使用相对误差容限 of 1e-4完成了任务。这个参数对计算时间有很大的影响。

代码语言:javascript
复制
syms x y
area = vpaintegral(vpaintegral(ff, x, [0 inf],'RelTol', 1e-4, 'AbsTol', 0), y, [0 inf],'RelTol', 1e-4, 'AbsTol', 0)

面积= 1.0

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

https://stackoverflow.com/questions/58614145

复制
相关文章

相似问题

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