How to Solve a Nonlinear ODE with a Complex Threshold

  • Thread starter Thread starter donifan
  • Start date Start date
  • Tags Tags
    Nonlinear Ode
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:
y_1(t) = y0
y_2(t) = y0 + \int_0^t e^{-f(t')y_1(t')}dt'
y_3(t) = y0 + \int_0^t e^{-f(t')y_2(t')}dt'
y_4(t) = y0 + \int_0^t e^{-f(t')y_3(t')}dt'

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


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

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

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

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.
 


For a numerical approximation you can typically use Runge-Kutta.
 


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


You've got me confused at "analytical approximation"... what is that?

An analytical solution gets very complex in a hurry.
 


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.
 
  • #10


Can't you also estimate the error with Runge-Kutta?
How would any analytical approximation, like Picard's method I guess, be better?
 
  • #11


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.
 
  • #12


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?
 
  • #13


The form of f(t) is

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

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.
 
  • #14


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

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

and

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

Thanks.
 
Back
Top