I think that this problem cannot be solved in its general form. For example suppose that f(x,y,z) is a polynomial of degree, say, n in x, and on the other side you have h1=sin(x),h2=cos(x), and h3=any polynomial of h2 or x. Then this decomposition is evidently impossible.
But if a problem of this kind is in principle solvable, and your functions are 'sufficiently' simple, then the following 'ugly' method 'might' work.
First rearrange the functions h1,h2,... by decreasing complexity [log(g),g,1 or x^2,x,1 e.g.] and then use the following form
first(divide(f(x,y,z),h1));first(divide(remainder(f(x,y,z),h1),h2));first(divide(remainder(remainder(f(x,y,z),h1),h2),h3));remainder(remainder(remainder(f(x,y,z),h1),h2),h3);
where the first 3 lines give the coefficients of h1,h2,h3 respectively, and the last line would be zero if the decomposition is valid.
But honestly, I think that the problems this method may solve, can be even solved by the naked eye.
~Shahir
------- Original Message -------
From: John Reid <j.reid at mail.cryst.bbk.ac.uk>
To: maxima at math.utexas.edu
Sent: 13-Apr-08, 18:16:41
Subject: Help factorising functions
Hi,
I'm sure this is straightforward enough yet I've not managed to work out
how to do it so far from the documentation.
I have several functions of several variables, for instance, f(x, y, z)
which I know can be written in the following form:
f(x, y, z) = g1(y, z) * h1(x) + g2(y, z) * h2(x) + g3(y, z) * h3(x)
where h1(x), h2(x) and h3(x) are known. How to get maxima to produce
g1(y, z), g2(y, z) and g3(y, z)?
For instance
f(x, mu, gamma): (- gamma * (x-mu)**2 - log(gamma) + log(2*%pi)) / 2
So how can I ask maxima to decompose f as:
g1(mu, gamma) * x**2 + g2(mu, gamma) * x + g3(mu, gamma)
and
g1(x, gamma) * mu**2 + g2(x, gamma) * mu + g3(x, gamma)
and
g1(x, mu) * log(gamma) + g2(x, mu) * gamma + g3(x, mu)
Thanks in advance,
John.
_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima