Re: How to define a polyfunction?
- To: mathgroup at smc.vnet.net
 - Subject: [mg27409] Re: [mg27389] How to define a polyfunction?
 - From: BobHanlon at aol.com
 - Date: Sun, 25 Feb 2001 00:53:32 -0500 (EST)
 - Sender: owner-wri-mathgroup at wolfram.com
 
Clear[golf, Key1, Key2, Key3, Key4];
golf[t_] := t^2-t;
Key1[t_] := t^4+3t /; golf'[t] > 0;
Key1[t_] := t^2.5-t /; golf'[t] <= 0;
Key2[t_] := If[golf'[t] > 0, (t^4+t*3), (t^2.5-t)];
Key3[t_] := If[(D[golf[x], x] /. x -> t) > 0, (t^4+t*3), (t^2.5-t)];
Key4[t_] := Evaluate[If[D[golf[t], t] > 0, (t^4+t*3), (t^2.5-t)]];
Key1 does not evaluate for non-numeric arguments
Key1[t]
Key1[t]
The other three give the same If statement for a non-numeric argument
Key2[t]
If[2*t - 1 > 0, t^4 + 3*t, t^2.5 - t]
Key2[t] === Key3[t]=== Key4[t]
True
All are equivalent for numeric arguments
And @@ Table[
    Key1[t] == Key2[t] == Key3[t] == Key4[t], {t, 0, 1, .01}]
True
Plot[{t^4+3t, t^2.5-t, Key1[t], golf'[t]}, {t, 0, 1}, 
    PlotStyle \[Rule] {
        {RGBColor[0, 1, 0], AbsoluteDashing[{5, 5}]}, 
        {RGBColor[0, .7, .5], AbsoluteDashing[{6, 3}]}, 
        {RGBColor[0, 0, 1], AbsoluteThickness[2]}, 
        {RGBColor[1, 0, 0], AbsoluteDashing[{3, 3}]}}, 
    ImageSize \[Rule] {400, 250}];
Bob Hanlon
In a message dated 2001/2/23 2:52:12 AM, gzgear at yahoo.com writes:
>Now I encounter a problem that I
>can not solve for a long time .
>It can be express simplely as how to define a
>polyfunction,for example,a simple polyfunction may be
>defined as that:
>
>Key[t_]:=If[(t>0),1,0];
>
>It is easy to define.However,it will be more difficult
>when the condition turns more complicate.For instance:
>golf=t^2-t;
>Key[t_]:=If[(D[golf[t],t]>0),(t^4+t*3),(t^2.5-t)];
>