On May 9, 2007, at 3:28 PM, Bobby Moretti wrote: > On 5/9/07, Justin C. Walker <[EMAIL PROTECTED]> wrote: >> On May 9, 2007, at 10:51 AM, Timothy Clemans wrote: >> I'm not sure these are failures, per se. This may be a in issue with >> the Principal of Least Surprise :-} > This is definitely the case here. In every one of your examples, > Timothy, > the module is doing what it's supposed to. Sorry, the documentation > is kind > of lacking in the tutorial. I'm working on it right now. For now > I'd suggest > looking at the reference manual and especially the docstring for > sage.calculus.calculus.
Manual? Read? :-} > Now, by default, the symbols f, g, and most other single-character > symbols > are instances of SymbolicVariable. They are not callable. What you > really > are trying to do is make a formal function f, and a formal function > g, and > differentiate those. So to do that, you need to use the commands: > > sage: f = function('f') > sage: g = function('g') > sage: foo = diff(f(x) + g(x)) > diff(g(x), x, 1) + diff(f(x), x, 1) > > and then you can do something like > sage: foo(f=sin, g=x^3) > cos(x) + 3*x^2 Thanks for this. Now, David's reply makes even more sense :-} I cobbled up my response by communing with the ether, rather than actually reading something... > They are, but not as formal functions. They're defined as > SymbolicVariables. This is the part that I didn't really get until now. The calculus package is a great addition. It seems to 'just work'. I have a few concerns (cf. the Principal above), since this package is affected by what you change during a session, but overall, I like it. Here's an example of what I'm hinting at: > sage: f=c*x > sage: diff(f,c) > x > sage: diff(f,x) > c > sage: c=3 > sage: type(c) > <type 'sage.rings.integer.Integer'> > sage: type(f) > <class 'sage.calculus.calculus.SymbolicArithmetic'> > sage: diff(f,c) > ..... > <type 'exceptions.ValueError'>: must supply an explicit variable > for an expression containing more than one variable so above, the substitution 'c -> 3' takes place at the call. Below, > sage: diff(f,x) > c > sage: no substitution happens. On the other hand: > sage: a=1 > sage: g=a*x > sage: diff(g,x) > 1 > sage: Justin -- Justin C. Walker, Curmudgeon-At-Large Director Institute for the Enhancement of the Director's Income -------- "Weaseling out of things is what separates us from the animals. Well, except the weasel." - Homer J Simpson -------- --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://sage.math.washington.edu/sage/ and http://sage.scipy.org/sage/ -~----------~----~----~----~------~----~------~--~---