Thank you Robert for the clarification. Since I'm an amateur programmer, could you please give me a sample of how I would do it. I'll take some time to study arrays as well, and how to write them, I know of lists, and tuples, and dictionaries; from "Dive into Python". but I am very green around the ears still. :|
On Fri, Oct 29, 2010 at 11:16 AM, Robert Kern <robert.k...@gmail.com> wrote: > On 10/29/10 12:02 AM, Chris Rebert wrote: > >> On Thu, Oct 28, 2010 at 9:41 PM, Bj Raz<whitequill...@gmail.com> wrote: >> >>> I am working with differential equations of the higher roots of negative >>> one. (dividing enormous numbers into other enormous numbers to come out >>> with >>> very reasonable numbers). >>> I am mixing this in to a script for Maya (the final output is graph-able >>> as >>> a spiral.) >>> I have heard that Sage, would be a good program to do this in, but I'd >>> like >>> to try and get this to work in native python if I can. >>> The script I am trying to port to Python is; >>> http://pastebin.com/sc1jW1n4. >>> >> >> Unless your code is really long, just include it in the message in the >> future. >> So, for the archive: >> indvar = 200; >> q = 0; >> lnanswer = 0; >> for m = 1:150 >> lnanswer = (3 * m) * log(indvar) - log(factorial(3 * m)) ; >> q(m+1) = q(m)+ ((-1)^m) * exp(lnanswer); >> end >> lnanswer >> q >> >> Also, it helps to point out *what language non-Python code is in*. I'm >> guessing MATLAB in this case. >> >> Naive translation attempt (Disclaimer: I don't know much MATLAB): >> >> from math import log, factorial, exp >> indvar = 200 >> q = [0] >> lnanswer = 0 >> for m in range(1, 151): >> lnanswer = (3 * m) * log(indvar) - log(factorial(3 * m)) >> q.append(q[-1] + (1 if m % 2 == 0 else -1) * exp(lnanswer)) >> print(lnanswer) >> print(q) >> > > I promised that I would reply when the OP posted here. Except you gave the > answer that I would have. > > To the OP: In your code snippet, q(m+1) and q(m) are not function calls. > They are array indexing operations (with the special semantics that > assigning beyond the last element in the array appends a new element to the > array). You are not setting the result of a function to anything, just > building up an array of results. You don't need symbolic math libraries like > SAGE for this. > > -- > Robert Kern > > "I have come to believe that the whole world is an enigma, a harmless > enigma > that is made terrible by our own mad attempt to interpret it as though it > had > an underlying truth." > -- Umberto Eco > > -- > http://mail.python.org/mailman/listinfo/python-list >
-- http://mail.python.org/mailman/listinfo/python-list