如何用MATLAB擬合Logistic曲線求解曲線方程的特徵引數

時間 2022-02-14 16:15:04

1樓:匿名使用者

logistic模型:a/(1+(a/b-1)*exp(-k*t))

實現**:

clc,clear all,close all

%logistic模型用matlab求解

%時間是2023年到2023年

%資料是q=[503.02 526.02 561.

96 629.2 700.21 788.

15 876.76 989.23 1058.

23 1135.13 1330]

%要**2023年的用水量。

t=[1:11];

q=[503.02 526.02 561.

96 629.2 700.21 788.

15 876.76 989.23 1058.

23 1135.13 1330];

func=inline('a(1)./(1+(a(1)/a(2)-1)*exp(-a(3).*t))','a','t');

b=[0.1576    0.9706    0.9572]

a=lsqcurvefit(func,b,t,q);

q1=func(a,t);

y=q';y1=q';

wz=['q=',num2str(a(1)),'/(1+(',num2str(a(1)),'/',num2str(a(2)),'-1)*','exp(-',num2str(a(3)),'*t)'];

figure

tt=2000:2010;

xx=min(t):1:max(t);

yy=func(a,xx);

plot(tt,q,'rp'),hold on

plot(tt,yy,'*-'),xlabel('年份'),ylabel('用水量(萬噸)'),hold off %,grid on

text(2000,1300,wz,'fontsize',10);

t0=2015-2000+1;y0=func(a,t0);

text(2000,1200,['**2023年的用水量:',num2str(max(y0)),'(萬噸)'])

執行結果

**2023年的用水量:1972萬噸

2樓:置之不理

多項式函式擬合:a=polyfit(xdata,ydata,n)其中n表示多項式的最高階數,xdata,ydata為將要擬合的資料,它是用陣列的方式輸入.輸出引數a為擬合多項式的係數

多項式在x處的值y可用下面程式計算.

y=polyval(a,x)

matlab擬合非線性函式,如何用matlab進行已知函式的非線性擬合

兔子和小強 線性模型 非線性模型是以待優化引數w為參考 而不是看x y w x 表示轉置 描述的是線性模型。題目中要擬合的函式是 y w0 w1 cos a wn cosna,它同樣符合y w x,其中x 1 cosa cosna 設x構成的集合是x,y構成的集合是y,可依據最小二乘法求出w xx ...

matlab線性擬合

刻舟不為劍 線性擬合如下 x 0 20 40 60 100 130 160 190 y 18 17.586 17.136 16.704 15.84 15.129 14.544 13.896 a polyfit x,y,1 xi 0 0.001 200 yi polyval a,xi plot x,y...

matlab擬合問題

直接用左除就行了 定義x和y為如下形式 y y1 y2.y56 x 1 x11 x12 x16 1 x21 x22 x26 1 x56,1 x56,2 x56,6 然後a x y 就出來了 曲線你有6個自變數怎麼畫啊 你把a0,a1,a2,a3,a4,a5,a6看成未知數。把你的56個資料代入 y1...