home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / sci / math / symbolic / 2210 < prev    next >
Encoding:
Text File  |  1992-08-15  |  1.7 KB  |  49 lines

  1. Newsgroups: sci.math.symbolic
  2. Path: sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!ux1.cso.uiuc.edu!news.cso.uiuc.edu!usenet
  3. From: Richard J. Gaylord <gaylord@ux1.cso.uiuc.edu>
  4. Subject: Re: Mathematica: defining functions. HELP!
  5. References: <l8mkk4INN5ll@halcyon.usc.edu>
  6. Message-ID: <Bt14s4.MAA@news.cso.uiuc.edu>
  7. X-Xxdate: Sat, 15 Aug 92 09:41:03 GMT
  8. Sender: usenet@news.cso.uiuc.edu (Net Noise owner)
  9. X-Useragent: Nuntius v1.1.1d7
  10. Organization: University of Illinois
  11. Date: Sat, 15 Aug 1992 14:40:50 GMT
  12. Lines: 35
  13.  
  14. Subject: Re: Mathematica: defining functions. HELP!
  15. From: Dave Seaman, ags@seaman.cc.purdue.edu
  16. Date: 14 Aug 92 14:30:59 GMT
  17. In article <56833@mentor.cc.purdue.edu> Dave Seaman,
  18. ags@seaman.cc.purdue.edu writes:
  19. >In article <l8mkk4INN5ll@halcyon.usc.edu> rao@halcyon.usc.edu (Anil Rao)
  20.  
  21. >writes:
  22. >> define a function f(x) = x between x = 2 and x = 5
  23. >>                        = x^2/2 for x < 2
  24. >>                        = 5 x - 20 for x > 5
  25. >> 
  26. >
  27. >At least two methods come to mind. One is to qualify the definitions:
  28. >
  29. >    f[x_] := x /; 2 <= x <= 5
  30. >    f[x_] := x^2/2 /; x < 2
  31. >    f[x_] := 5 x - 20 /; x > 5
  32. >
  33. >and another way is to use a one-liner with nested conditionals:
  34. >
  35. >    f[x_] := If[ x<2, x^2/2, If[ x<=5, x, 5 x - 20]]
  36. >
  37.  
  38. ======================================
  39.  
  40. a one-liner can be written without nesting 
  41.  
  42. f[x_] := Which[x<2, x^2/2, x<= 5, x, True, 5x - 20]
  43.  
  44. comment: note that in the one-liner it is sufficient to use x<=5 because
  45. M goes through Which[..] from left to right, while in the rule-based
  46. method given above, we have to  use 2<=x<=5 so that the rules don't have
  47. overlapping domains because we can't be really sure how M will decide
  48. what rule to use when.
  49.