Factoring multivariable polynomials

nullsquared

Hey,

I'm a high school student (11th grade) and I'm working on a computer algebra system for a research project. Most things are are going well (sums, products, derivatives, integrals, series, expansion, complex analysis, factoring basic expressions, etc.). However, I am having difficulty with one key area: factoring polynomials (and, by extension, multivariable polynomials).

I have the book Computer algebra : systems and algorithms for algebraic computation by James Davenport, but the described algorithms in the factoring chapter go way over my head once eigenvectors, eigenvectors, determinants, etc. come into play. I have an undergraduate algebra book which I'm using to self-study these topics, but they are relatively difficult to understand without practical experience provided by an actual teacher. Unfortunately, the highest math class in my school is AP BC Calc (which I'm acing by taking naps during class) but it is miles behind any of this stuff.

My system can factor something like ax+ay+az+bx+by+bz into (a+b)(x+y+z) or x^x*ln(x)+x^x into (x^x)(ln(x)+1) by "reverse distribution", but it cannot factor a^2+2ab+b^2 into (a+b)(a+b), for example - and this is a critical requirement for simplification of expressions like sin^4(x)+2sin^2(x)cos^2(x)+cos^4(x) which reduces to 1 when it is factored.

Does anyone here have any experience with factoring polynomials in computer algebra systems, or know anyone that does? Or, perhaps, does anyone have any resources alternative to the aforementioned book? I do realize that this is a math and physics forum which is not necessarily related to software engineering, but I figured perhaps someone could point me in the right direction regarding only the math, whereas I could easily handing the actual programming.

Thanks!

fresh_42

Mentor
2018 Award
Factorization of polynomials is in general hard to do, will say impossible in most cases. Normally you want to factor a polynomial in linear or at most quadratic factors. Therefore one needs the zeros, which can only be calculated up to degree four, or numerically by algorithms for approximations. You could as well plot the polynomial and read out the zeroes.

For a multivariate polynomial use the fact that $\mathbb{Q}[x_1,\ldots ,x_n]=(\mathbb{Q}[x_1,\ldots ,x_{n-1}])[x_n]$ which gives you an iteration.

"Factoring multivariable polynomials"

Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving