matlab 如何在频数统计图中添加对数正态分布拟合曲线

一列Excel数据,导入后首先做出频数统计图,怎样才能在不改变这个图任何地点的基础上添加对数正态分布曲线,最后做到这种效果。求完整程序过程,采纳后追加财富值。... 一列Excel数据,导入后首先做出频数统计图,怎样才能在不改变这个图任何地点的基础上添加对数正态分布曲线,最后做到这种效果。求完整程序过程,采纳后追加财富值。 展开
dukinkin
推荐于2017-09-16 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:944万
展开全部

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);


北京埃德思远电气技术咨询有限公司
2023-08-25 广告
"整定计算的工作步骤,大致如下:1.确定整定方案所适应的系统情况。2.与调度部门共同确定系统的各种运行方式。3.取得必要的参数与资料(保护图纸,设备参数等)。4.结合系统情况,确定整定计算的具体原则。5.进行短路计算。6.进行保护的整定计算... 点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式