Currently (in maple 10.04 and presumably earlier), Maple refuses to expand the natural log of an abstract product, so: v1 := ln( product(x[i], i=1..n) ): expand(v1) assuming positive; yields: ln( product(x[i], i=1..n) ) (Note the use of "assuming positive" so this makes sense mathematically.) The funny thing is that, if you print(`expand/ln`), it looks like they're trying to handle this situation: ... elif type(x, 'product'(anything, anything)) then s := signum(op(1, x)); if s = 1 then sum(ln(op(1, x)), op(2, x)) elif s = 0 then ln(0) else ln(product(expand(op(1, x)), op(2, x))) end if ... However, the type(x, 'product'(anything,anything)) expression doesn't seem to match a product in any cases that I've found (I tried delayed evaluation, etc.). However, if you replace this elif line with: elif type(x, 'function') and op(0, x) = product then, then the expand command works perfectly (and yields an abstract sum). Is this just a bug or am I missing something here? It would also be nice to handle the inert "Product" form. Thanks!

Please Wait...