Re: Axiom programs which include functions?
"Alasdair McAndrew" <[email protected]>
| Newsgroups | gmane.comp.mathematics.axiom.user |
|---|---|
| Message-ID | <[email protected]> |
Thanks, yes that's what I thought. There was another subtle error which was causing my confusion, which I've fixed. Thanks again, Alasdair On Tue, May 20, 2008 at 1:10 AM, Ralf Hemmecke <[email protected]> wrote: > Hi Alasdair, > > > On 05/19/2008 04:39 PM, Alasdair McAndrew wrote: > >> Hi, >> >> I can write (simple) Axiom programs for which the parameters are all >> numbers, but what if the parameters include a function? Suppose I wished to >> write a program to, say, solve the equation f(x)=0 by the bisection method, >> and I wanted to call it as >> >> bisect(f,a,b) >> >> where [a,b] brackets a solution. How do I do this? And in what form does >> Axiom like its functions in such a program? >> > > A function in Axiom is not so much different from a number. Just do the > obvious. > > > Suppose you write a function of type > > bisect(f: Float -> Float, a: Float, b: Float): Record(result: Float, eps: > Float) == > ... > > where the record stores an approximate result together with an error. > > ---BEGIN aaa.spad > )abbrev domain AAA Aaa > Aaa: with > bisect: (Float -> Float, Float, Float) -> Record(x: Float, eps: Float) > == add > bisect(f: Float -> Float, a: Float, b: Float): Record(x: Float, eps: > Float) == > -- insert your bisection algorithm here > r: Record(x: Float, eps: Float) := [f a, b-a] > --------------------------------------------^ > -- This is an example of the application of the input parameter f. > ---END aaa.spad > > Then go to axiom and say: > > )co aaa.spad > > bisect(sin, 1.0, 2.0) > bisect(cos, 1.0, 2.0) > > Does that help? > > Ralf > _______________________________________________ Axiom-mail mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-mail