Ask Your Question
2

how to define symbolic function on functions?

asked 2021-03-24 01:03:05 +0100

Performant Data gravatar image

I recently started using Sage in earnest, and was trying to define a function on functions. But:

inner_product(f,g) = integral(f(x) * g(x), (x,0,1))
inner_product

returns:

(f, g) |--> 1/3

Not surprisingly, trying to use it, it behaves as described:

e1(x) = 1
inner_product(e1,e1)

returns:

1/3

And curiously:

inner_product(f,g) = integral(f(x) * 1, (x,0,1))
inner_product

returns:

(f, g) |--> 1/2

What's going on here?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
3

answered 2021-06-10 11:50:57 +0100

rburing gravatar image

The reason for the results is that callable symbolic expressions are defined by interpreting the input variables as symbolic variables, and calling will amount to substitution of values into those variables in the expression on the right-hand side. I agree this limitation is not obvious and often confusing for beginners.

Indeed, when f and g are symbolic variables, and x is a symbolic variable, then f(x) and g(x) will both evaluate to x, and integral(f(x)*g(x), (x,0,1)) hence evaluates to integral(x^2, (x,0,1)) which is indeed 1/3.

As explained in the other answer, what you want is a Python function instead.

edit flag offensive delete link more
2

answered 2021-03-24 02:42:35 +0100

cav_rt gravatar image

Your expressions are ill defined. A python function does the job

def inner_product(f,g): return integral(f*g, (x,-pi,pi))

Thus

inner_product(sin(3*x),sin(3*x))

returns $\pi$.

See here for symbolic computation.

edit flag offensive delete link more

Comments

Thanks, I'll have a look. But what I really want to know is why I got the above results.

Performant Data gravatar imagePerformant Data ( 2021-03-24 03:08:54 +0100 )edit

I looked over your symbolic computation link but don't see anything there relevant to my question.

Performant Data gravatar imagePerformant Data ( 2021-03-24 18:03:09 +0100 )edit

Your Answer

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

Add Answer

Question Tools

1 follower

Stats

Asked: 2021-03-24 01:03:05 +0100

Seen: 822 times

Last updated: Jun 10 '21