用simpson法求对数正态函数的概率密度函数与坐标轴之间的面积的matlab程序对数正态函数的概率密度函数与坐标轴围成的总面积应该为1,但是我用matlab运行出来的一段区间面积就比1大,我找不
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 13:14:09
用simpson法求对数正态函数的概率密度函数与坐标轴之间的面积的matlab程序对数正态函数的概率密度函数与坐标轴围成的总面积应该为1,但是我用matlab运行出来的一段区间面积就比1大,我找不
用simpson法求对数正态函数的概率密度函数与坐标轴之间的面积的matlab程序
对数正态函数的概率密度函数与坐标轴围成的总面积应该为1,但是我用matlab运行出来的一段区间面积就比1大,我找不出原因,望大家帮个忙,快要上交了.
这是我写的matlab程序:函数一是simpson法的定义,函数2是概率密度函数.
function s=MySimp(a,b,k)
h=(b-a)/k;
x=[a:h:b];
n=length(x);
ys=f(x(2));
yf=f(x(n));
ymid=0;
yin=0;
for i=1:n-1
ymid=ymid+4*f((x(i)+x(i+1))/2);
end
for i=2:n-1
yin=yin+2*f(x(i));
end
s=(h/6)*(ys+ymid+yin+yf);
function y=f(x)
y=(1/x*0.891*sqrt(2*pi))*exp((-(log(x)-7.59)^2)/2*0.7938);
a=0;
n=8;
b=2000;
ssimp=MySimp(a,b,n)
用simpson法求对数正态函数的概率密度函数与坐标轴之间的面积的matlab程序对数正态函数的概率密度函数与坐标轴围成的总面积应该为1,但是我用matlab运行出来的一段区间面积就比1大,我找不
simpson法的精度取决于你划分的区间
你把n改成1000,看看是不是更靠近1了
看了一下,你的积分程序并没有看出什么问题来(不过我也很久没用过matlab了,近来都用C或者maple)
但是你给出的函数y=(1/x*0.891*sqrt(2*pi))*exp((-(log(x)-7.59)^2)/2*0.7938)
并不是正态分布的概率密度函数。正态分布密度函数里,不会出现log(x)。
另外,不同的补充语言对log(x)的规定不同,有的不是自然对数,...
全部展开
看了一下,你的积分程序并没有看出什么问题来(不过我也很久没用过matlab了,近来都用C或者maple)
但是你给出的函数y=(1/x*0.891*sqrt(2*pi))*exp((-(log(x)-7.59)^2)/2*0.7938)
并不是正态分布的概率密度函数。正态分布密度函数里,不会出现log(x)。
另外,不同的补充语言对log(x)的规定不同,有的不是自然对数,有的表示常用对数,一定别弄混淆了。
收起