LISP routines to do symbolic differentiation

From: Binesh Bannerjee (binesh-dated-1076052506.f41fdf_at_hex21.com)
Date: 01/30/04

  • Next message: Friedrich Dominicus: "Re: LISP routines to do symbolic differentiation"
    Date: 30 Jan 2004 07:53:56 GMT
    
    

    Hi...
            I'm looking for a lisp routine that will do symbolic differentiation
    of a function, given (obviously) an expression in prefix notation and what
    variable it is being differentiated against... Something like
    (differentiate '(* x x)) => (* 2 x)

    Obviously that's a simple homework assignment... But, what I need it for
    is to do these functions:
            power
            +,*,-,/
            Exp (Although, perhaps I don't need Exp, I can just use (pow E X)
            Log... I dunno what I'm going to do about this function tho... Hmmm
            But, I need Erf (The error function) But, I suppose, derivative of
            Erf is easy enough, to encode... Actually, I can live with it,
            if it doesn't differentiate Erf out the box...

    Here's what I want to do.
            I want to integrate a function
                    (Exp[((Log[X1/X0]-m)/sd)^2/2] Log[a X1 + b])/X1
                    (/ (* (exp (/ (pow (/ (- (log (/ X1 X0)) m) sd) 2) 2)) (log (+ (* a X1) b))) X1)

            (It's the PDF of a lognormal distributed X1 from X0 * log of a linear
            function of X1...)

            (The actual function is a little more complicated, but, this is
            the basic idea)

    I'm hoping to try to use genetic programming to create a function who's
    derivative is the function above... Is this feasible? Is this a good way
    to approach this problem of mine? So, the fitness criteria would be
    how far off the generated function is from the one I'm asking for...

    (But, first, I'd like some equivalent of freshmeat for open sourced stuff
    or cpan for perl stuff for lisp... Does such a beast exist?)

    Thanks!
    Binesh Bannerjee

    -- 
    "The measure of love is what one is willing to give up for it." --
    	Geoffrey Fielding - "Pandora and the Flying Dutchman"
        PGP  Key: http://www.hex21.com/~binesh/binesh-public.asc
        	Key fingerprint = 421D B4C2 2E96 B8EE 7190  A0CF B42F E71C 7FC3 AD96
        SSH2 Key: http://www.hex21.com/~binesh/binesh-ssh2.pub
        SSH1 Key: http://www.hex21.com/~binesh/binesh-ssh1.pub
    OpenSSH  Key: http://www.hex21.com/~binesh/binesh-openssh.pub
    CipherKnight Seals:
    	http://www.hex21.com/~binesh/binesh-seal.tar.bz2.cs256
    	http://www.hex21.com/~binesh/binesh-seal.zip.cs256
    	http://www.hex21.com/~binesh/binesh-certificate.gif.cs256
    	Decrypt with CipherSaber2 N=256, Password="WelcomeJedi!" (No quotes)
    

  • Next message: Friedrich Dominicus: "Re: LISP routines to do symbolic differentiation"