Re: procedures

*To*: mathgroup at smc.vnet.net*Subject*: [mg96950] Re: [mg96937] procedures*From*: Sseziwa Mukasa <mukasa at jeol.com>*Date*: Sat, 28 Feb 2009 06:40:15 -0500 (EST)*References*: <200902271116.GAA21679@smc.vnet.net> <7F1970D7-0EE8-42D6-BC3E-6095D648BBA6@jeol.com> <1235749530.4275.7.camel@linux-sslk.site>

On Feb 27, 2009, at 10:45 AM, Davide Venturelli wrote: > Thank you for the answer! > >> What is the purpose of assigning its value to >> itself? > > I am evaluating a recursive function. > I want to store every computed value in such a way that next time the > code calls it, it remembers if it has already evaluated it. > So while I need := for definition of the recursive functions, I use > the > Do loop to assign actual values to the array. > > Do you have a better idea? You can implement functions with memory as F[x_]:=f[x]=(*body goes here*) This would obviate the need for Do loop, just evaluating D[x,n] would be sufficient. Search for FunctionsThatRememberValuesTheyHaveFound in the Mathematica help documentation (for v7). > I now have another problem, anyway! > > When I do FindRoot[f[x],{x,0}] it looks for all instances of x in the > definition of the function, and THEN evaluate the function for the > symbol X. I think this occurs because FindRoot defaults to Newton's method and it needs to take the derivative of the expression. > What I want is to override this symbolic method and call f[x] with the > numerical value of x, since in the definition of f[x] I have recursive > functions that would imply to evaluate a huge polynomial of x, and > keeping track of all the terms is really lengthy. > While if I substitute x=x0 at each recursive step, the computation is > less costy. > > So is there a way to tell mathematica in FindRoot to call the function > with numerical values, like it was a black box? This comes up from time to time on this mailing list. The usual suggestion is to make the function definition valid only for numeric arguments see http://groups.google.com/group/comp.soft-sys.math.mathematica/ browse_thread/thread/a076ff6d9b72b462 for example. Hope that helped, Sseziwa Mukasa

**References**:**procedures***From:*ventutech@gmail.com