How to Solve a Nonlinear ODE with a Complex Threshold

  • Context: Graduate 
  • Thread starter Thread starter donifan
  • Start date Start date
  • Tags Tags
    Nonlinear Ode
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
13 replies · 3K views
donifan
Messages
12
Reaction score
0
A "simple" nonlinear ode

Hi
Does anyone see a way to solve/approximate this ODE?

dy'=exp(-f(t)y) with y(0)=yo

f(t) can be as simple as c*t^3/2 but it may be more complex. This came out as the solution of a very complex problem. This is the final threshold.

Thanks,

Donifan
 
Physics news on Phys.org


You might try using successive approximations, as follows:
[tex]y_1(t) = y0[/tex]
[tex]y_2(t) = y0 + \int_0^t e^{-f(t')y_1(t')}dt'[/tex]
[tex]y_3(t) = y0 + \int_0^t e^{-f(t')y_2(t')}dt'[/tex]
[tex]y_4(t) = y0 + \int_0^t e^{-f(t')y_3(t')}dt'[/tex]

And so on. If f(t) is well behaved, this can converge fairly quickly.
 


phyzguy said:
You might try using successive approximations, as follows:
[tex]y_1(t) = y0[/tex]
[tex]y_2(t) = y0 + \int_0^t e^{-f(t')y_1(t')}dt'[/tex]
[tex]y_3(t) = y0 + \int_0^t e^{-f(t')y_2(t')}dt'[/tex]
[tex]y_4(t) = y0 + \int_0^t e^{-f(t')y_3(t')}dt'[/tex]

And so on. If f(t) is well behaved, this can converge fairly quickly.

I believe your y0 should be [itex]y_{n-1}(t)[/itex] when writing out the equation for [itex]y_n(t)[/itex]

I assume you're doing Picard iteration?
 


Thanks for the suggestion. However even for the simple case of f=t^3/2, y_2 is already a nasty function. I'll keep trying.
 


Do you need an analytic solution, or is a numerical integration adequate? For your t^3/2 case, the successive approximations converge after 2-3 iterations if you do the integrations numerically.
 


Sorry about the confusion. Yes, I am looking for an analytical solution/approximation. I agree the numerical solution is actually simple. Thanks!
 


Analytical approximation would be something like a solution of a different but related problem, so the order of the error can be estimated.

I know. The analytical solution by the Picard method is pretty much impossible.

Maybe there is no solution however the equation seems so simple a compact that you almost feel there should be substitution/trick that quickly solves it, at least for f=c t^3/2.

Thanks.
 


The answer is simple: time. An analytical approximation is faster. The solution is suppose to be part of a humongous code that cannot spare a microsecond.

P.S. When I said error, I meant from the approximated analytical solution to the actual solution.
 


How about this: Even faster than an analytic solution is a look-up table. Given f(t), solve the equation numerically, then build a look-up table with interpolation that returns y given t. This is typically quite fast. Can this work? Is f(t) a given, or is f(t) constantly changing?
 


The form of f(t) is

[itex]f(t) = (a^{2} +b t)^{3/2} - a^3[/itex]

a and b are constantly changing. The simplest case is a=0. In principle a look up table would work, but I was wondering if a more elegant solution can be reached.

Thanks.
 


Just realized there is a typo (there is a d before y' that is no suppose to be there). So the whole problem is

[itex]y'=\exp[-f(t)y][/itex] with [itex]y(0)=y_0[/itex]

and

[itex]f(t) = (a^{2} +b t)^{3/2} - a^3[/itex]

Thanks.