R语言遇到的问题求助

Python016

R语言遇到的问题求助,第1张

fun=@(p,x) p(1)./x.*exp(-((log(x)-p(2))/p(3)).^2/2)%数态布密度函数

x=(0:0.02:6)*1e4

y=fun([3e5,8.3,0.6],x)+rand(size(x)).*exp(-(x/2e4).^2)*20

%原图能用hist(data,n)画

%data数据n区间统计画柱状图

%要保留hist数据

%原语句要返x y值

%[y x]=hist(data,n)

%没数据所用边两句模拟xy数据

bar(x,y,1)hold on%根据xy数据画柱状图

[maxy ind]=max(y)

p=nlinfit(x,y,fun,[maxy*x(ind),log(x(ind)),1])%拟合

%p(1)~幅度关 p(2)~mu p(3)~sigma

yfit=fun(p,x)%计算拟合曲线

plot(x,yfit,'r','linewidth',2)

xmax=exp(p(2)-p(3)^2)%计算布极布处值 x=exp(mu-sigma^2)

ymax=fun(p,xmax)

plot([xmax xmax],[0 ymax],'g','linewidth',2)

xmean=exp(p(2)+p(3)^2/2)%计算期望值 x=exp(mu+sigma^2/2)

ymean=fun(p,xmean)

plot([xmean xmean],[0 ymean],'c','linewidth',2)

hold off

xlim([min(x) max(x)])

xlabel('BC浓度(ng/m^3)')

ylabel('频数')

legend('统计数据',['数态布:\mu=' num2str(p(2)) ',\sigma=' num2str(p(3))],...

['极概布位置:x=' num2str(xmax)],['期望值位置:x=' num2str(xmean)])

text(xmean+10000,ymean+10,'$ y=\frac{A}{x}e^{-\frac{(lnx-\mu)^2}{2\sigma^2}} $',...

'interpreter','latex','FontSize',18)

-

ln为一个算符,意思是求自然对数,即以e为底的对数。

e是一个常数,等于2.71828183…

lnx可以理解为ln(x),即以e为底x的对数,也就是求e的多少次方等于x。

lnx=loge^x

扩展资料:

当自然对数lnN中真数为连续自变量时,称为对数函数,记作y=lnx(x为自变量,y为因变量)。

常数e的含义是单位时间内,持续的翻倍增长所能达到的极限值。

自然对数的底e是由一个重要极限给出的。

e是一个无限不循环小数,其值约等于2.718281828459…,它是一个超越数。

参考资料:自然对数-百度百科