Ok, I see. 
I had a similar idea but I've hoped there is a better way around. 

I'll try to implement it and if I come up with some general enough 
solution, i'll post it here.


пятница, 29 марта 2013 г., 2:28:33 UTC+4 пользователь [email protected] 
написал:
>
> Hello. 
> I am new to axiom and so far it is very appealing to me.
> So, I have been trying to apply it to some of my current problems 
> (numerical computations mainly).
>
> I need to evaluate higher order derivatives of Lewis integral ( 
> 10.1103/PhysRev.102.537  , Appendix A, eq. 9) for further fortran export.
>
> With a straightforward approach (see -----v1 below), I'm running out of 
> memory already on the second derivative. 
>
> I was able to progress slightly further (see ----v2) adapting an example 
> from the 'Derivatives' chapter of the axiom book (sec.1.11), but 
> i don't know how to export results into fortran, since after evaluation of 
> dLidMudAdB I need to somehow  define and export all functions like 
> D(bt(mu,a,b),[a,b,mu]),
> D(bt(mu,a,b),[b,mu]) and so on.
>
> All in all, my question is: what is the best way to compute, say, 5th 
> derivative of 'Li' function from examples below and
> export this result to fortran?
>
> P.S: I was under impression that attachements to mail lists are not a good 
> idea. 
> If they are fine actually, next time i'll try to use them to include code. 
>
> P.P.S: sorry for my english. 
>
> --------------- v1
>
> )clear all
>
> LiBt :=_
>   mu * ((qx-px)^2 + (qy-py)^2 + (qz-pz)^2 + (a+b)^2 )_
>   + b * ( mu^2 + qx^2 + qy^2 + qz^2 + a^2 )_
>   + a * ( mu^2 + px^2 + py^2 + pz^2 + b^2 );
>
> LiAg :=_
>   ( (qx-px)^2 + (qy-py)^2 + (qz-pz)^2 + (a+b)^2 )_
>   * ( qx^2 + qy^2 + qz^2 + (mu+a)^2 )_
>   * ( px^2 + py^2 + pz^2 + (mu+b)^2 );
>
> LiD := sqrt( LiBt^2 - LiAg );
>
> Li := %pi^2 / LiD * log( (LiBt + LiD) / (LiBt - LiD) );
>
> dLidMudA := D(Li,[mu,a]);
>
> ----------- v2
>
> )clear all
>
> dt := operator 'dt
> bt := operator 'bt
> ag := operator 'ag
>
> Li := (%pi^2 / dt(bt(mu,a,b),ag(mu,a,b)))_
>     * log(_
>      ( bt(mu,a,b) + dt( bt(mu,a,b), ag(mu,a,b)))_
>      / ( bt(mu,a,b) - dt( bt(mu,a,b), ag(mu,a,b))) )
>
> dLidMudAdB := D(Li,[mu,a,b])

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to