estimating parameters in a differential equation with mathematica 6
- To: mathgroup at smc.vnet.net
- Subject: [mg89041] estimating parameters in a differential equation with mathematica 6
- From: sado Sylvain <sadosylvain at hotmail.com>
- Date: Sat, 24 May 2008 03:55:08 -0400 (EDT)
I need a help I have bee trying to solve a differential equation to fit experimental data with mathematica, but something is always wrong. can somebody kindly help me! this is the experiemtal data data = {{0.0000001, -0.000001}, {1, -1.386}, {2, -1.933}, {4, \ -3.767}, {5, -5.009}, {6, -6.322}, {7, -7.177}, {7.5, -7.679}}; and the formula for least square Plus @@ Apply[(f[#1] - #2)^2 &, data, {1}] then the differential equation is as follow {f'[t] = -n Log[ 1 + \[ExponentialE]^( k (-22.46` + x/(0.00225`+ 0.04` x)))] (-f[t]/ Log[1 + \[ExponentialE]^( k (-22.46` + x/(0.00225`+ 0.04` x)))])^(-1 + n)/n} where "n" and "k" are to be estimated by the FindMinimum operation. so the expression I have used is this one sse[n_?NumberQ, k_?NumberQ] := Block[{sol, f}, sol = NDSolve[{f'[ x] = -n Log[ 1 + \[ExponentialE]^( k (-22.46` + x/(0.00225`+ 0.04` x)))] (-f[x]/ Log[1 + \[ExponentialE]^( k (-22.46` + x/(0.00225`+ 0.04` x)))])^(((-1) + n)/n), f[0.0000001] == -0.000001}, f, {x, 0.00000001, 7.5}][[1]]; Plus @@ Apply[(f[#1] - #2)^2 &, data, {1}] /.sol] followed by this: FindMinimum[sse[n, k], {n, 0.00001, 100}, {k, 0.00001, 100}] but i can get any solution.this one of the comments i receive ReplaceAll::reps: {-(0.00001 \ Log[1.+<<18>>^(0.00001<<1>><<1>>)])/(-(1. \ <<1>>)/(Log<<1>><<1>>]))^99999.,f[1.*10^-7]==-1.*10^-6} is neither a \ list of replacement rules nor a valid dispatch table, and so cannot \ be used for replacing. >> NDSolve::deqn: Equation or list of equations expected instead of \ -(0.00001 Log[1+\[ExponentialE]^(0.00001 \ <<1>>)])/(-f[x]/Log[<<1>>])^99999. in the first argument {-(0.00001 \ Log[1+\[ExponentialE]^(0.00001 \ <<1>>)])/(-f[x]/(Log<<1>><<1>>]))^99999.,f[1.*10^-7]==-1.*10^-6}. >> it seems there is a syntax problem somewhere. Thanks in advance for any help, Sylvain