Date: Apr 24, 2013 6:16 AM
Author: Bob Hanlon
Subject: Re: cannot work a "conditional If"

Your output of signy is a list of length 1 rather than a number.

Consequently, the test in the If does not evaluate as either True or False

and the If statement returns unevaluated. Change the definition of signy to

produce a number, i.e.,

signy[t_] := y[t] /. orbit[[1]]

However, rather than use an If statement, I recommend that you use

Piecewise.

Bob Hanlon

On Mon, Apr 22, 2013 at 3:11 AM, <patrice.haldemann@gmail.com> wrote:

> Hi everybody

>

> I am a newcomer in the mathematica world and I have been facing an issue

> for some days.

>

> I have used mathematica to solve an NDSolve and it has worked well

>

> I have tested expressions with the solution of NDSolve and its has worked

> well.

>

> Now if I use an expression in an "Conditional If", it does not work.

>

> Thank you for your help

>

>

> See below

>

> signy[t_] := y[t] /. orbit where y[t] is the solution of the NDSolve

>

> signy[1]

>

> {-1.96861}

>

> ang12[t_] := If[signy[t] > 3, 10, 6]

>

> ang12[1]

>

> If[{-1.96861} > 3, 10, 6]

>

>