Ask Your Question

How to define a differential or integral operator?

asked 2012-07-25 12:29:49 +0100

owari gravatar image

updated 2012-07-25 23:02:01 +0100


What's the difference between the method notation and function notation? Is it possible to define a differential or integral operators using either of these notations or else?

I'm a beginner, just tried a bit codes like the followings



L={c:'diff(x,a,b)'}    # defining a dicionary

and codes like these … but none worked. Any idea?

edit retag flag offensive close merge delete


The syntax for creating a dictionary is: L = { c : 'diff(x,a,b)' }. You might want to brush up on some basic python and programming concepts. I would suggest's_Tutorial_for_Python

benjaminfjones gravatar imagebenjaminfjones ( 2012-07-25 12:40:17 +0100 )edit

thank you, I corrected the code in the main post, but anyway the code still doesn't work. I always give back the error that 'sage.symbolic.expression.Expression' object has no attribute 'L'. From this respect, both the codes in the main question act a same way! How can I introduce what is contained in L instead of L itself? I am a beginner programmer but if my mind could help there was something using which one could define a phrase in C language before main() whose usage was preprocessed as what it had contained, not a mere name. I thought dictionary would be something like that but the code above shows how wrong I was ...

owari gravatar imageowari ( 2012-07-25 14:02:41 +0100 )edit

2 Answers

Sort by » oldest newest most voted

answered 2012-07-25 14:22:42 +0100

benjaminfjones gravatar image

I'm not completely clear on what your question is, but here is an example of defining a differential operator. It is a function D that takes a function of one variable f and returns the derivative of f with respect to the variable.

sage: def D(f):
....:    return f.diff(*f.variables())
sage: f = function('f_1', x)
sage: f.variables()
sage: D(f)
sage: D(D(f))
D[0, 0](f_1)(x)

To explain, the function D takes a function as input and returns a function. Functions are "first class values" in Python so you can use them just as you would use a integer or string value, for example. The syntax *f.variables() takes the output of f.variables() which is a tuple (x,) and it unpacks the tuple so that we end up returning f.diff(x).

edit flag offensive delete link more


Thanks again benjaminfjones! It seems I should play with your code a little to fully understand it, but I guess this is what I really require, thanks

owari gravatar imageowari ( 2012-07-25 15:16:39 +0100 )edit

answered 2012-07-28 11:54:29 +0100

owari gravatar image

Hi again, just for documentation, benjaminfjones's code was quite good, it works for single and multivariable functions, but I couldn't adapt it to also define vector operators like d/dx_i, for that however I used the lambda operator and well everything goes fine now! thanks again benjaminfjones for your support!

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-07-25 12:29:49 +0100

Seen: 1,460 times

Last updated: Jul 28 '12