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);
%è¿éå 为没ææ°æ®æ以ç¨ä¸è¾¹ä¸¤å¥æ¨¡æxï¼yæ°æ®
bar(x,y,1);hold on;%æ ¹æ®xï¼yæ°æ®ç»æ±ç¶å¾
[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);
温馨提示:答案为网友推荐,仅供参考