Factoring multivariable polynomials

Click For Summary
SUMMARY

This discussion focuses on the challenges of factoring multivariable polynomials within a computer algebra system. The participant, a high school student, is utilizing the book "Computer Algebra: Systems and Algorithms for Algebraic Computation" by James Davenport but struggles with advanced concepts such as eigenvectors and determinants. They successfully implement basic factoring techniques but require assistance with more complex expressions like a^2 + 2ab + b^2. The conversation highlights that polynomial factorization is generally difficult, often limited to linear or quadratic factors, and suggests using numerical algorithms or plotting for finding zeros.

PREREQUISITES
  • Understanding of basic algebraic concepts, including polynomials and their properties.
  • Familiarity with computer algebra systems and their functionalities.
  • Knowledge of eigenvectors and determinants as they relate to polynomial factorization.
  • Experience with numerical methods for approximating polynomial zeros.
NEXT STEPS
  • Research numerical algorithms for finding polynomial roots, such as the Newton-Raphson method.
  • Explore advanced topics in algebra, focusing on multivariable polynomial factorization techniques.
  • Study graphical methods for polynomial analysis, including plotting polynomials to identify zeros.
  • Investigate alternative resources or textbooks that simplify the concepts of eigenvectors and determinants in the context of polynomial factorization.
USEFUL FOR

This discussion is beneficial for high school students, educators, and developers working on computer algebra systems, particularly those interested in polynomial factorization and advanced algebraic concepts.

nullsquared
Messages
1
Reaction score
0
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!
 
Mathematics news on Phys.org
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.
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 19 ·
Replies
19
Views
3K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 81 ·
3
Replies
81
Views
10K