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)]; >