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