NDSolve with square root
- To: mathgroup at smc.vnet.net
- Subject: [mg120980] NDSolve with square root
- From: william cuervo <wfcuervo at gmail.com>
- Date: Sat, 20 Aug 2011 06:16:41 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
Hi!
I have to solve a system of two coupled nonlinear ordinary differential
equations. In the function that defines the system there are terms with
square root of the dependant variables. I tried to solve the system
numerically but in the nmerical solution I get violent oscillations.
Then I realized that the same problem appears in the numerical solution of
this very simple exactly solvable differential equation:
x'[t] == Sqrt[1 - x[t]] , x[2.1] == 0.9975
The exact solution is x(t)=(1/4)(4t-t^2).
I tried:
NDSolve[{x'[t] == Sqrt[1 - x[t]] , x[2.1] == 0.9975`}, x, {t, -5, 5},
MaxSteps -> 4000000]
using ExplicitEuler, ExplicitRungeKutta and MidPoint Methods.
It seems to me that the problem is the square root (1-x(t))^(1/2). When the
numerical solution approach an extremum, then x'(t) and (1-x(t))^(1/2) both
approach zero. But then (1-x(t)) also approaches zero, and in fact (1-x(t))
takes negative values, that makes the square root imaginary.
I explore the situation with the fourth-order Runge-Kutta method with step
h=0.2 and in the firt iteration I find the complex value:
x(2.1)=1.00463+ 0.0042963 I
The same happens with the Euler method and the MidPoint Method
Any hint of how to get the correct numerical solution of this equation???
Thanks a lot!
- Follow-Ups:
- Re: NDSolve with square root
- From: Murray Eisenberg <murray@math.umass.edu>
- Re: NDSolve with square root
- From: Gabriel Landi <gtlandi@gmail.com>
- Re: NDSolve with square root