# product of functions

I just started using SageMath and I am trying to do something simple but I cannot figure it out.

I have a Gaussian function

mu, sigma, x, N = var('mu, sigma, x, N')
P(x) = 1/sqrt((2*pi*sigma^2))*exp(-(x-mu)^2/(2*sigma^2))


and I want to calculate the product of N such functions.

I tried

f = lambda x, N: prod([P for x in range(1, N)])
f(x, N)


and I got the error:

TypeError: unable to convert N to an integer


I works if I choose N to be some number, but I would like to get a symbolic expression output.

edit retag close merge delete

A symbolic product in SageMath is currently not implemented, but you could take a logarithm and use a symbolic sum.

1

Sort by » oldest newest most voted

In Sage, sum serves both for Python sums and for symbolic sums, but for products we have prod and product.

Declare an extra symbolic variable k, and instead of

f = lambda x, N: prod([P for x in range(1, N)])


use

f = lambda x, N: product(P, k, 1, N)


P(x) = 1/sqrt((2*pi*sigma^2))*exp(-((x-mu)/sigma)^2/2)

more