怎樣用matlab畫對數正態分佈密度函式圖

時間 2021-08-11 17:16:08

1樓:yesyes科

1、首先雙擊matlab軟體圖示,在命令列視窗使用函式normrnd()建立一個服從正態分佈的隨機數樣本j。

2、在命令列視窗中,使用函式lognrnd(),建立一個服從對數正態分佈的隨機數樣本k。

3、在命令列視窗中輸入:subplot(2,1,1);qqplot(k);,將影象分成上下兩部分,在影象的上半部分,繪**從對數正態分度的樣本k,與服從正態分佈的理論資料的q-q圖。

4、在命令列視窗中輸入:subplot(2,1,2);qqplot(j,k):將影象分成上下兩部分,在影象的下半部分繪**從對數正態分佈的樣本k與樣本j的q-q圖。

5、最後檢視繪製對數正態分佈的q-q圖,就完成了。

2樓:匿名使用者

x = (0:0.02:10);

y = lognpdf(x,1.73,0.22);

plot(x,y);

grid;

xlabel('x'); ylabel('p')這是對數正態分佈

x = (0:0.02:10);

y = normpdf(x,1.73,0.22);

plot(x,y);

grid;

xlabel('x'); ylabel('p')這是正態分佈

請問如何用matlab對一列資料畫出對數正態分佈曲線,並得到如下圖所示的引數

3樓:匿名使用者

close all;

clear all;

data = xlsread('工作簿資料.xlsx','sheet2','g2:g106556'); %讀入資料

%測試資料 data = lognrnd(8,.7,10000,1);

[y x]=hist(data,200);   %統計頻次分佈

h=bar(x,y,1);  %畫直方圖

hold on;

%對數正態分佈密度函式

fun=@(p,x) p(1)./x.*exp(-((log(x)-p(2))/p(3)).^2/2);

%a=p(1),mu=p(2),sigma=p(3)

[maxy ind]=max(y);

%做非線性資料擬合

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

%畫擬合曲線

x1 = min(x):0.01:max(x);

yfit=fun(p,x1);

plot(x1,yfit,'r','linewidth',1);

%極大似然處 x=exp(mu-sigma^2);

xmax=exp(p(2)-p(3)^2);

ymax=fun(p,xmax);

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

%期望值處 x=exp(mu+sigma^2/2)

xmean=exp(p(2)+p(3)^2/2);

ymean=fun(p,xmean);

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

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=\frace^} $',...

'interpreter','latex','fontsize',18);

matlab 如何用一列excel資料做對數正態分佈擬合曲線

4樓:匿名使用者

close all;

clear all;

data = xlsread('資料.xls','sheet1'); %讀入資料

[y x]=hist(data,100);   %統計頻次分佈

figure('color','w');h=bar(x,y,1);  %畫直方圖

set(h,'edgecolor',[0.5 0.5 0.5],'facecolor',[0.5 0.5 0.5]);

hold on;

) p(1)./x.*exp(-((log(x)-p(2))/p(3)).^2/2);

[maxy ind]=max(y);

%做非線性資料擬合

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

%畫擬合曲線

x1 = min(x):0.01:max(x);

yfit=fun(p,x1);

plot(x1,yfit,'k','linewidth',3);

[ymax i] = max(yfit); %找到極值點

xm = x1(i);

plot([xm xm],[0 ymax+10],'k','linewidth',3); %畫豎線

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

xlabel('bc濃度(ng/m^3)');

ylabel('頻數');

怎樣用matlab畫幾個已知的點

不用30個plot,把30個點的x座標都放到x 1 30 裡,y座標放到y 1 30 裡就行了 plot x,y,o x是二維點的橫座標向量 y是二維點的縱座標向量 matlab怎麼把一組已知的點畫在座標圖上?1 雙bai擊matlab軟體du圖示,開啟matlab軟體,可以看到zhimatlab軟...

matlab中,怎樣用function定義帶引數的方程?比

菠蘿時空 不知道是不是這樣的功能 myfun.m function y myfun a,b y solve char a 2 b x eof 呼叫函式前先syms x 然後 myfun x 1,2 x 1 執行結果如下 syms x myfun x 1,2 x 1 ans 1 3 建立一個func....

怎樣用畫組織架構圖,怎樣用word畫組織架構圖

word快捷辦公 word如何製作組織結構圖? 節曦稽芳洲 進入插入選單 組織結構圖。出來組織結構圖,輸入文字。利用組織結構圖工具增加內容,修改樣式都可以。如何快速用word畫出組織機構圖。 小小歐平兒 1 新建word文件,在目錄選單中選擇 插入 再選擇 smartart圖形 2 在 選擇smar...