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

2021-08-05 23:31:18 字數 2697 閱讀 6757

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畫正太分佈曲線如果我只知道該正態

可以用抄randn 生成正態分 布隨機數 參考bai clcclear all close all miu 10 均值 sd 3 標準差du n 1e4 生成隨機變zhi量個數r miu sd randn n,1 figure hist r 效果圖dao randn 具體使用可在命令視窗輸入help...

怎樣用Matlab做動畫演示

舉一個例bai 子 將下列 拷貝到 mand window中執行du,就會得到一個zhi波的傳播的動畫dao演示。t 0 pi 50 4 pi 專 y sin t h plot t,y,ydatasource y k 0 tmp 10 tmp決定了移動速度,屬tmp越小,速度越大。while 1 y...

怎樣用cdrps畫服裝效果圖,怎樣用PS做地磚的效果圖

1 繪畫大致過程式 人體 服裝 五官 頭髮 配飾。這是完成圖 版 2 用橢圓權和矩形工具大概現出人體的各個主要部分,然後轉換為曲線 3 用造開工具裡的增加節點和直線轉換為曲線調整人體外開 4 用貝茲曲線工具畫出服裝外累廓,填色,保留 輪廓線,後面上明暗後再去除 5 在藝術筆觸裡挑一下適合的刷畫出眉毛...