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.
