Re: How to remove a singularity

• To: mathgroup at smc.vnet.net
• Subject: [mg130523] Re: How to remove a singularity
• From: Peter Pein <petsie at dordos.net>
• Date: Fri, 19 Apr 2013 01:13:45 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net
• References: <kkoelp\$gl3\$1@smc.vnet.net>

```Am 18.04.2013 11:33, schrieb William Duhe:
> Bellow I have a differential equation which hits a singularity at low values of t. What I want to do is somehow utilize the WhenEvent command in order to replace the last factor of the equation (2/t a'[t]) with 0 at low values of t in order to avoid getting errors. Is there a way to do this?
>
> Here is an example of the equation and how I attempted to use the Whenevent Command.
>
> q = NDSolve[{a''[t] == 1/2 a[t]^2 + 1/6 a[t]^6 - 1/4 a[t]^4 - 2/t a'[t], a[0] == 1, a'[0] == 0, WhenEvent[t < .1, a'[t] -> 0]}, a, {t, 0, 1}];
>
> any help would be appreciated!
>

Hi,

mathematically incorrect but working:

In[1]:= With[{eps = SetPrecision[\$MachineEpsilon, Infinity]},
soln = a /.
NDSolve[{a''[t] ==
1/2 a[t]^2 + 1/6 a[t]^6 - 1/4 a[t]^4 - 2/t  a'[t],
a[eps] == 1, a'[eps] == 0}, a, {t, eps, 1},
WorkingPrecision -> 16] // First
];

In[2]:= Abs[1 - soln[0]]
Derivative[1][soln][0]
soln[1]

Out[2]= 0.*10^-16

Out[3]= 0.*10^-2

Out[4]= 1.073198752912019

Peter

```

• Prev by Date: Re: Plot with axes exchanged
• Next by Date: linux mathematica speed
• Previous by thread: Re: How to remove a singularity
• Next by thread: linux mathematica speed