Re: Re: Diff. Equations with "Changeable" Parameters
- To: mathgroup at smc.vnet.net
- Subject: [mg51712] Re: [mg51693] Re: Diff. Equations with "Changeable" Parameters
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 31 Oct 2004 01:15:15 -0500 (EST)
- References: <clpsou$abt$1@smc.vnet.net> <200410290739.DAA03443@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
This does not do what you think it does. All you are doing is simply
solving the differential equation with f givne by your third
definition:
f[x_, y_] := x + Sin[t] + 2*y.
Your idea, however, is correct, but you need to use the correct syntaxt
for a conditional definition of a function. The following does
essetnially what you intended to do:
(f[x_, y_, t_] /; -1 < y &&
y < 1 := x + Sin[t] + 1*y)*
(f[x_, y_, t_] /; y <= -1 :=
x + Sin[t] + 0*y; )*
(f[x_, y_, t_] /; 1 <= y :=
x + Sin[t] + 2*y)
{f, g} = Flatten[{x, y} /.
NDSolve[{Derivative[1][x][
t] == y[t],
Derivative[1][y][t] ==
f[x[t], y[t], t],
y[0] == 0, x[0] == 0},
{x, y}, {t, 0, 2*Pi}]]
{InterpolatingFunction[],
InterpolatingFunction[]}
Plot[{f[t],g[t]},{t,0,2Pi}]
You can check that this gives the same pair of solutions as given by
Curt Fisher's method (using Unitstep).
Andrzej Kozlowski
Chiba, Japan
http://www.akikoz.net/~andrzej/
http://www.mimuw.edu.pl/~akoz/
On 29 Oct 2004, at 16:39, Peter Valko wrote:
> You need an initial condition for x as well.
> Then a right hand side function definition is handy:
>
> f[x_, y_] := x + Sin[t] + 1*y; -1 < y && y < 1;
> f[x_, y_] := x + Sin[t] + 0*y; y <= -1;
> f[x_, y_] := x + Sin[t] + 2*y; 1 <= y;
>
> NDSolve[{x'[t] == y[t], y'[t] == f[x[t], y[t]],
> y[0] == 0, x[0] == 0}, {x[t], y[t]}, {t, 0, 2Pi}]
>
> The result will be:
> {{x[t] -> InterpolatingFunction[{{0., 6.28319}}, <>][t],
> y[t] -> InterpolatingFunction[{{0., 6.28319}}, <>][t]}}
>
> Regards
> Peter
>
> "Krunom Ilicevic" <krunom at hotmail.com> wrote in message
> news:<clpsou$abt$1 at smc.vnet.net>...
>> I have solved diff. equations in this kind of a way:
>>
>> NDSolve[{x'[t]=y[t],y[0]=0}, {y'[t]=x+Sin[t]+c*y[t]},{x,y},{t,0,2Pi}]
>>
>> and parameter c was 1, but how to write this algorithm if c is:
>>
>> c=0, if y<=-1
>>
>> c=1, if -1<y<1
>>
>> c=2, if y>=1
>>
>> How to include this variable parameter c in my NDSolve method?
>>
>>
>>
>> Thanks.
>
>
- References:
- Re: Diff. Equations with "Changeable" Parameters
- From: p-valko@tamu.edu (Peter Valko)
- Re: Diff. Equations with "Changeable" Parameters