logistic模型MATLAB代碼


先來一個簡單MATLAB代碼說明logistic模型:

clear all;clc;
x=0:1:12; 
y=[43.65 109.86 187.21 312.67 496.58 707.65 960.25 1238.75 1560.00 1824.29 2199.00 2438.89 2737.71];

[ABC,res]=lsqcurvefit('logismodel',[k,a],x,y);
kk=ABC(1);
aa=ABC(2);
y_logistic=logismodel(ABC,x);
figure;
plot(x,y,'.r',x,y_logistic,'g');
legend('實驗數據點','Logistic模型');

其中函數logismodel:

function y=logismodel(A,x)
k=A(1);
a=A(2);
L=3000;
y=L./(1+a*exp(-k*x));

%%%%%%%%%%%%%%%%%%%%

同樣這個例子中的數據,用其它方法擬合:

x=0:1:12; 
y=[43.65 109.86 187.21 312.67 496.58 707.65 960.25 1238.75 1560.00 1824.29 2199.00 2438.89 2737.71];
line_A=polyfit(x,log(y),1);%ln(y)=k*x+a,求k和a.note:按x降冪相加,1表示x最高次冪是1
k=line_A(1);
a=exp(line_A(2));
plot(x,y,'*',x,a*exp(k*x));
title('線性回歸的參數曲線與已知點的關系');

%可以看到是用y=a*exp(k*x)去擬合的,效果不太好。

 

對於logistic模型的實際用途,接下來會繼續研究。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM