首页 > 编程知识 正文

matlab进行数据拟合,微分方程组参数拟合

时间:2023-05-05 23:37:04 阅读:40085 作者:2929

代码:

function k1k2k3

格式长

清除全部

clc

tspan=0:12:144;

k0=[0.5 8 1.5 2 -0.5 0.1 0.5 5 -0.01]; %k的霸气砖最需要调节

lb=[1 1 1 1 1 1 1 1 1 ]*-inf;

ub=[1 1 1 1 1 1 1 1 1]*inf;

数据=.

122.750.55 88.96

244.6 3.72 73.49

366.278.19 61.57

488.0714.1247.38

609.73 19.3733.63

7210.41 22.5424.65

8410.727.6111.19

9610.53 32.493.2

108 10.56 35.620

120 10.59 37.580

132 10.438.440

144 10.77 39.880

];

options=optimset('maxfunevals ',1500 );

sqnOnlin(@objfunc,k0,lb,ub,options,tspan,x0,yexp );

ci=Nlparci(k,residual,jacobian );

[tuu]=ode45(@kineticseqs,tspan,x0,[],k );

uxp=[0.35099.8]

122.750.55 88.96

244.6 3.72 73.49

366.278.19 61.57

488.0714.1247.38

609.73 19.3733.63

7210.41 22.5424.65

8410.727.6111.19

9610.53 32.493.2

108 10.56 35.620

120 10.59 37.580

132 10.438.440

144 10.77 39.880

];

figure(1)。

size(UEXP ) :2 );

size(UEXP ) :3 );

size(UEXP ) :4 );

size(uu ) :1 );

size(uu ) :2 );

size(uu ) :3 );

R1_square=1-sum((UEXP ) 2:end,2 )-UU ) 23360end,1 ).^2)./sum () UEXP ) 23360end,2 )-mean

R2_square=1-sum((UEXP ) 2:end,3 )-UU ) 23360end,2 ).^2)./sum () UEXP ) 2:end,3 )-mean

R3_square=1-sum((UEXP ) 2:end,4 )-UU ) 23360end,3 ).^2)./sum () UEXP ) 23360end,4 )-mean

打印(tspan,UEXP ) :2 ),or ),tspan,UU ) :1 ),'-r ',tspan,UEXP ) 3360,3 ),b ',tspan,

frintf((n(TK1=%.9f ),k (1) ) )

frintf((n(TK2=%.9f ),k ) )

frintf((n ) TK3=%.9f ),k )3) ) ) ) ) ) ) )。

frintf((n(TK4=%.9f ),k ) )

frintf((n ) TK5=%.9f ),k )5) ) ) ) ) ) ) )。

frintf((n(TK6=%.9f ),k (6) ) )

frintf((n(TK7=%.9f ),k (7) ) ) ) ) ) ) ) )。

frintf((n(TK8=%.9f ),k ) )

frintf((n(TK9=%.9f ),k ) )

frintf((n ) t方程1的确定系数R1_Square=%.6f ),R1_Square );

frintf((n ) t方程2的确定系数R2_Square=%.6f ),R2_Square );

frintf((n ) t方程3的确定系数R3_Square=%.6f ),R3_Square );

functionf=objfunc(k,tspan,x0,yexp ) %目标函数

[txsim]=ode45(@kineticseqs,tspan,x0,[],k );

xsim1=xsim (:1;

xsim2=xsim (:2;

xsim3=xsim (:2 );

ysim (3360,1 )=xsim1) 2:结束;

ysim (3360,2 )=xsim2) 2:结束;

ysim (3360,3 )=xsim3) 2:结束;

f=[ (ysim 653360,1 )-yexp 653360,1 ) ] 653360,2653360,2 ) 653360,2 ) ) ysim 65:3 )-yexp 653:3 )

functiondcdt=kineticseqs(t,u,k ) )。

x=u(1;

p=u(2;

s=u(3;

a=k(1;

b=k(2;

c=k(3;

d=k(4;

e=k(5;

f=k(6;

g=k(7;

h=k(8;

I=k(9;

DPDT=d*dxdte*(s./) sf ).*x;

dsdt=g*dxdt h*dpdt i*x;

dCdt=[dxdt; DPT; 滴滴涕];

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。