怎麼用matlab求解Logistic模型中的引數

2022-03-23 08:40:03 字數 3827 閱讀 8063

1樓:匿名使用者

給你這個例項,來說明如何用matlab求解logistic模型中的三個引數。

x=[21 24 27 30 33 36 39 42 45 48];  %已知數值

y=[0 4.5541 11.5836 19.

9043 22.7024 25.2441 26.

2109 26.5693 26.6396 25.

9511]; %已知數值

fun=inline('a(1)./(1+exp(a(2)-a(3).*x))','a','x');  %定義logistic模型函式

a0=[0.95717  0.48538  0.80028]; %a的初值

a = nlinfit(x,y,fun,a0);  %求解logistic模型中的三個引數

syms x

fx=vpa(fun(a,x),5);

str1=['擬合曲線f(x):',char(fx)];

fprintf('%s\n',str1)  %顯示logistic模型函式

執行結果

2樓:匿名使用者

建立m函式檔案存為logistic1

function f=logistic1(b)t=[0,5,10,24,33,48,57,72,96,120,144,168,192,216];y=[0,0.028,0.103,0.

336,0.450,0.597,0.

716,0.778,0.835,0.

849,0.816,0.839,0.

811,0.816];

f = y-b(1)./(1+b(2).*exp(-b(3).*t));

b0=[10,2,2];

>> b=leastsq('logistic1',b0)b =0.8221 13.9173 0.0818或者cftool

general model:

f(x) = b/(1+a*exp(-k*x))coefficients (with 95% confidence bounds):

a = 13.92 (6.301,21.

53)b = 0.822 (0.7911,0.

853)k = 0.08184 (0.06479,0.

0989)goodness of fit:

sse:0.01404

r-square:0.9898

adjusted r-square:0.9879rmse:0.03572

怎麼用matlab求解logistic模型中的三個引數?

3樓:匿名使用者

題主的問題可以這樣來實現。1、自定義函式,即fun=@(a,k)a(1)./(1+exp(a(2)-a(3)*(k)));  注:

這裡不能k+2008,而應為k

2、確定初值,a0=[210 0 0.1];

3、使用lsqcurvefit函式求解係數,a=a(1),b=a(2),c=a(3)

4、繪製擬合前後的資料對比圖執行結果

急!怎麼用matlab求解logistic模型中的三個引數?

4樓:匿名使用者

建立m函式檔案存為logistic1

function f=logistic1(b)t=[0,5,10,24,33,48,57,72,96,120,144,168,192,216];y=[0,0.028,0.103,0.

336,0.450,0.597,0.

716,0.778,0.835,0.

849,0.816,0.839,0.

811,0.816];

f = y-b(1)./(1+b(2).*exp(-b(3).*t));

b0=[10,2,2];

>> b=leastsq('logistic1',b0)b =0.8221 13.9173 0.0818或者cftool

general model:

f(x) = b/(1+a*exp(-k*x))coefficients (with 95% confidence bounds):

a = 13.92 (6.301, 21.

53)b = 0.822 (0.7911, 0.

853)k = 0.08184 (0.06479, 0.

0989)goodness of fit:

sse: 0.01404

r-square: 0.9898

adjusted r-square: 0.9879rmse: 0.03572

如何用matlab擬合logistic曲線求解曲線方程的三個特徵引數

5樓:匿名使用者

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萬噸

6樓:置之不理

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

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

y=polyval(a,x)

狀態空間表示式用matlab怎麼求解

參考 bai q solve q c d q 2 d q exp 3 d 2 3 e3 c d q exp 4 d 2 3 e3 2 3 e4 d q 1 exp d 2 3 e4 c 1.22 10 11 q subs q 需要說du明的是,由 於原表示式可整zhi理成dao關於q的三次方程內,所...

求解matlab一道經典簡單題,高分求解

1.已知五個點,如果曲面方程有5個係數,則可直接求出這5個係數。如 f x,y p00 p10 x p01 y p20 x 2 p11 x y coefficients p00 2850 p10 178.3 p01 1570 p20 162 p11 305.7 又如 f x,y p00 p10 x ...

求解答這題目謝謝,求解答這道matlab題目。急用

以臺式電腦為例,現在一套臺式電腦,一般價錢3000元到4000元不等。這就是商品。而它拆分開來,有主機板 記憶體 電源 健盤 顯示器 印表機等部件。這每一件都是一個實物商品,組裝在一起,又構成了一臺商品臺式電腦。這就是實物商品的整體構成。我說的,是對的!以手機為例 核心商品為提供通話服務等,有形商品...