目:确定高精度参数问题

有一个生,其中含有生物,即: A生物和B生物,其中A生物是捕食者,B生物是被捕食者。假刻捕食者A的数目,被捕食者B数目,它间满足以下律:

初始条件

其中模型的待定参数。

过对此生观测可以得到相观测数据观测数据的格式依次

观测时A生物数目B生物数目

二:利用有数据,解决以下问题

1) 观测数据无差的情况下,若已知,求其它3个参数?有数据数据文件:DATA1.TXT

2) 观测数据无差的情况下,也未知,至少需要多少组观测数据,才能确定参数?有数据数据文件:DATA1.TXT

3) 观测资料有时间变量不含有差)的情况下,利用观测DATA2.TXTDATA3.TXT,确定参数在某的最,并与仿真而改的数学模型

4) 设连观测资料的时间变量也含有差,利用数据DATA4.TXT,建立数学模型,确定参数在某的最解。

(1)       由题意

其中,  

 

该微分方程解为:

        h由初始条件确定)                                      (1)

利用data1.txt

0                                                          10.                               60.

0.1                                         11.750840650304518               0.1374480266382216

0.2                                        3.4133367257849176               7.108705996120129

0.30000000000000004        20.80921881438798                 0.4251595082899424

0.4                                       5.231982481945481                   0.7182384931413827

0.5                                       26.925221604818102               26.706603701525214

得到:

      

          t=0.1,0.2,0.3,0.4时的x(t),y(t)数据代入得:

A=zeros(5,3);  

A(1,1)=log(0.1374480266382216/60);

A(1,2)=-log(11.750840650304518 /10);

A(1,3)=10-11.750840650304518 ;

A(2,1)=log(7.108705996120129/60);

A(2,2)=-log( 3.4133367257849176/10);

A(2,3)=10-3.4133367257849176;

A(3,1)=log( 0.4251595082899424/60);

A(3,2)=-log( 20.80921881438798/10);

A(3,3)=10-20.80921881438798 ;

A(4,1)=log( 0.7182384931413827/60);

A(4,2)=-log( 5.231982481945481 /10);

A(4,3)=10- 5.231982481945481 ;

A(5,1)=log(26.706603701525214/60);

A(5,2)=-log(26.925221604818102/10);

A(5,3)=10-26.925221604818102;

B=vpa(A,20);   

b=-[0.1374480266382216-60. ,7.108705996120129-60., 0.4251595082899424-60., 0.7182384931413827-60, 26.706603701525214-60]';

x=vpa(inv(B'*B)*B'*b,20)   

 

x =

[ -10.000067799756287514]

[  60.002089116073604142]

[ -5.0002118475010526008]                                                                                             (3)

a=0.2*x  

 

a =

[ -2.0000135599512575028000000000000]

[  12.000417823214720828400000000000]

[ -1.0000423695002105201600000000000]  

 

vpa(a,5)  

5位有效数字下的参数值为

ans =

[ -2.0000]

[  12.000]

[ -1.0000]                                                                                                                                 4

 

2)如果未知,至少需要4组数据才能确定四个参数。

  ,将原方程变为

   

%fun4.m

function dx=fun4(t,x)

dx=[x(1)*(-10.000067799756287514+x(2));x(2)*(60.002089116073604142-5.0002118475010526008*x(1))];  

 

[T,X]=ode45('fun4',[0:0.0001:0.75],[10;60]);

[T,X];

sx=zeros(1,15);

x0=[11.750840650304518 , 3.4133367257849176,5.231982481945481 ];

 for k=1:15

xx=X([k+1410,2*(k+1410),4*(k+1410)],:);

   sx(k)=(xx(1)-x0(1))^2+(xx(2)-x0(2))^2+(xx(3)-x0(3))^2;

end;

 vpa( sx,20)

                                                                                                                                                                                                                                                                                            

ans =

[ .17718032001520018365e-1, .12082716359257807820e-1, .75397145717927488776e-2, .40765988511500756211e-2, .16810301001388846219e-2, .34075674228936804868e-3, .43613571180803200223e-4, .77752061912388591679e-3, .25304820451909760919e-2, .52905850425689010877e-2, .90459987652286542870e-2, .13784973273885125361e-1, .19495838501259167563e-1, .26167003236613261413e-1, .33786954129557893178e-1]  

分析x(),=0.1416时,x()数据与data1数据吻合较好.t=0.1,0.2,0.4四个点的总误差为4.3613571180803200223e-5

 

sy=zeros(1,15);

y0=[ 0.1374480266382216, 7.108705996120129,0.7182384931413827];

 for k=1:15

xx=X([k+1410,2*(k+1410),4*(k+1410)],:);

   sy(k)=(xx(4)-y0(1))^2+(xx(5)-y0(2))^2+(xx(6)-y0(3))^2;

end;

vpa(sy,10)  

ans =

[    .1312494859, .9202878850e-1, .5949356599e-1, .3383310209e-1, .1524064395e-1, .3913477041e-2, .5300141002e-4, .3864809109e-2, .1555876298e-1, .3534907678e-1, .6345439660e-1,    .1000978837,    .1455072989,    .1999150879,    .2635584689]  

分析y(),

=0.1416时,y()数据与data1数据吻合较好.t=0.1,0.2,0.4四个点的总误差为5.300141002e-5.

综合两者结果,取 =0.1416,得到 ,代入(2)得:

a=1.416*x  

a =

[ -14.160096004454903119824000000000]

[  84.962958188360223465072000000000]

[ -7.0802999760614904827328000000000]  

vpa(a,5)  

ans =

[ -14.160]

[  84.963]

[ -7.0803]