Re: Fitting parameters of nonlinear diff equation system
- To: mathgroup at smc.vnet.net
- Subject: [mg81321] Re: Fitting parameters of nonlinear diff equation system
- From: "Kevin J. McCann" <Kevin.McCann at umbc.edu>
- Date: Wed, 19 Sep 2007 05:27:55 -0400 (EDT)
- Organization: University System of Maryland
- References: <fcnl8h$s85$1@smc.vnet.net>
I would suggest the simulated annealing technique.
Kevin
Paul Thomas wrote:
> Hi everyone,
>
> I have a set of differential equations (posted below) that I can solve quite
> easily using NDSolve if I define all my parameter values. I have three
> parameters that I am currently estimating and would like to try and fit
> using actual data I have acquired. The function FindFit though seems to only
> work off of a single, non-differential "model" equation. Is this right? Is
> there any functionality I can use in Mathematica to help me fit the
> parameters of a system like this? Right now I am using the "Table" function
> to solve the equation using NDSolve over a range for the parameters. The
> problem is that I have the multiple parameters that I'd like to fit so it's
> quickly become an enormously tedious set of solutions (as I have to a range
> of each parameter at a range of the other two parameters).
>
> Here's one of the sets I've been trying to do this with: The parameters I'd
> be solving for include b1, r, and h. Like I said, I can make good estimates
> of these and I know ranges, but I'd like to do a proper fit so that I can
> quantify sensitivity etc. Thanks,
>
> Paul
>
>
> {v1'[t]==-b1 v1[t] f[t],
> v2'[t]==2 b1 f[t] v1[t]-b1 f[t] v2[t],
> v3'[t]==2 b1 f[t] v2[t]-b1 f[t] v3[t],
> v4'[t]==2 b1 f[t] v3[t]-b1 f[t] v4[t],
> v5'[t]==2b1 f[t]v4[t]-v5[t],
> v6'[t]==2v5[t]-v6[t],
> v7'[t]==2v6[t]-v7[t],
> v8'[t]==2v7[t]-v8[t],
> v9'[t]==2v8[t]-v9[t],
> v10'[t]==2v9[t]-v10[t],
> v11'[t]==2v10[t]-v11[t],
> v12'[t]==2v11[t]-v12[t],
> v13'[t]==2v12[t],
> f'[t]==r f[t](1-f[t]/10000000)-h
> (v1[t]+v2[t]+v3[t]+v4[t]+v5[t]+v6[t]+v7[t]+v8[t]+v9[t]+v10[t]+v11[t]+v12[t]+v13[t])
> f[t],
> v1[0]==30000,v2[0]==0,v3[0]==0,v4[0]==0,v5[0]==0,v6[0]==0,v7[0]==0,v8[0]==0,v9[0]==0,v10[0]==0,v11[0]==0,v12[0]==0,v13[0]==0,f[0]==1000000}
>
>