matlab中动力学方程,Matlab求动力学的微分方程组拟合

!using["XSLSF"];                //使用命名空间XSLSF

//函数定义,用于计算微分方程组中各方程右端函数值,连分式法对微分方程组积分一步函数pbs1将调用该函数f。

//t为自变量,a1,a2,a3,a4,a6为函数值,da1,da2,da3,da4,da6为右端函数值(即微分方程的值)。

//该函数被调用时将用到参数k1,k2,k3,k4,k5,k7,k8,k9,这8个参数正好是拟合参数,用模块变量传递这8个参数。

f(t,a1,a2,a3,a4,a6,da1,da2,da3,da4,da6:x:k1,k2,k3,k4,k5,k7,k8,k9)=

{

da1=a1-k1*a1^2+k2*a3-k5*a1*a2-k7*a4*a1+k8*a6-k9*a4*a1,

da3=k1*a1^2-k2*a3-k3*a3+k4*a2,

da2=k3*a3-k4*a2-k5*a2*a1,

da4=k5*a2*a1-k7*a4*a1+k8*a6-k9*a4*a1^2,

da6=k7*a3*a1-k8*a6

};

//用连分式法对微分方程组进行积分,获得理论值。

//t1,t2为积分的起点和终点。

//h,s为自动变量。

//模块变量:hf为函数f的句柄,要预先获得该句柄;Array为工作数组;step为积分步长;eps为积分精度。

积分(t1,t2:h,s:hf,Array,step,eps)=

{

s=ceil[(t2-t1)/step],       

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值