How Can I Represent Algebraic Numbers for Computation?

  • Context: Undergrad 
  • Thread starter Thread starter Darksonn
  • Start date Start date
  • Tags Tags
    Numbers
Click For Summary
SUMMARY

This discussion focuses on the representation of algebraic numbers for computational purposes, specifically through the use of polynomials and their roots. The user proposes a method of assigning integer values to roots based on their distance from the origin in a complex plane, facilitating calculations with algebraic numbers. The conversation also highlights the need for a systematic approach to apply these representations in programming, particularly for operations beyond multiplication, and references the concept of "resultants" in polynomial theory as a potential avenue for further exploration.

PREREQUISITES
  • Understanding of algebraic numbers and their definitions.
  • Familiarity with polynomial functions and their roots.
  • Basic knowledge of complex numbers and their representation.
  • Awareness of computational methods in algebra, particularly the concept of resultants.
NEXT STEPS
  • Research the properties and applications of "resultants" in polynomial theory.
  • Explore computational libraries for algebraic number manipulation, such as SymPy or SageMath.
  • Investigate methods for representing algebraic numbers in programming languages, focusing on data structures.
  • Learn about algebraic operations beyond multiplication, including addition and division of algebraic numbers.
USEFUL FOR

Mathematicians, computer scientists, and software developers interested in algebraic computations, particularly those working on numerical methods and algebraic structures in programming.

Darksonn
Messages
2
Reaction score
0
First I'll write what I know:

Algebraic number: one of the roots to a polynomial over rational numbers.

Polynomial: A function for x. Example: ##f(x) = x^2-2## although I won't write the ##f(x)## part when writing a polynomial.

Root of a polynomial: All values for x where the polynomial is equal to 0 Example: ##f(x)=x^2-2## is equal to 0 at ##\sqrt{2}## and ##-\sqrt{2}##

Here comes the question:

How can I represent an algebraic number? To represent it we need a polynomial, I get that part, and a way to tell it which of the roots that is the value of the number.

So the question is now, how do I represent which root it is?

Then finally, I want to apply the rules I find to a computer api/library so I can make programs that work with these values, how do I do that?

Here I'll write what work I have made myself:

After a little bit of work, I found a way to represent the algebraic numbers by giving them an integer following these rules:

Take all the roots and put them as points on a grid, where x is the real line and y is the imaginary, now take the distance from 0,0 to each point, and assign them in a order so the closest is 1 and the next is 2 and so on...

Now if they have several at the same distance, we can make a circle with center at 0,0 that goes through all the points with the same distance and start at angle 0 and go (counter)clockwise around the circle and assigning numbers that way.

Now this seems to work perfect for the representation, but there is a problem, how do I use it to calculate with, for example: if ##alg(polynomial, integer)## is an algebraic number for that polynomial and the number represents which root (going counterclockwise for this example when they have equal distance), then what is ##alg(x^2-2, 1)*alg(x^2+1, 1)##

If you make them into complex numbers, you can do the calculations and turn them back, it's possible to do so, for example you can solve the one above like this:

I'll start with ##alg(x^2-2, 1)##
All values for x in ##x^2-2=0## is with numbers assigned following my rules:
1. ##\sqrt{2}##
2. ##-\sqrt{2}##
I have also drawn these values on an image in attachment A
And it's the first one so ##alg(x^2-2, 1) = \sqrt{2}##

Then for ##alg(x^2+1, 1)##
All values for x in ##x^2+1=0## is with numbers assigned folloing my rules:
1. ##i##
2. ##-i##
I have also drawn these values on an image in attachment B
And it's the first one so ##alg(x^2+1, 1) = i##

Then calculate ##\sqrt{2}*i## which is just that.
Then I found a polynomial that has that root: ##x^2+2##
Then let's find out which root and their number if you follow my rules so we can find the algebraic number:
1. ##i*\sqrt{2}##
2. ##-i*\sqrt{2}##
So the answer is obviously ##alg(x^2+2, 1)##.

Conclusion and questions:

This is all good, but how do I apply rules to this?

Can you find some rules for this that works in every solvable case?

If not what kind of system would have those properties?

We would also wan't to be able to do this for other things than multiplication, because addtion and division ect, should also be here.

I can see that I could solve this, but I used wolfram alpha which already have similar number systems, so I can't really apply it to a computer program, how can I apply it? This question probably is answered if I can find answers to the previous ones.

You don't have to find me a definite solution but rather some tips on how I could go about solving it.

Just a note, I don't know if you'll need these things to answer but I don't understand derivatives and integrals, so please don't include them in your explanations.
 

Attachments

  • A.png
    A.png
    4.8 KB · Views: 499
  • B.png
    B.png
    4.6 KB · Views: 473
Last edited:
Physics news on Phys.org
One feature of your notation (f(x),k) is that the same algebraic number has many different designations. For example, as I understand it, ((x-1)(x-2)(x-3),1) = ((x-1)(x-5),1) = ((x-1)(x-1),2) In coordinate systems where the same point has many names, it is useful to identify a "principal" name for the point. I don't see how to do that in your system.

In proving that the product of two algebraic numbers is an algebraic number, we have to show that there exists a polynomial with rational coefficients that has the product as a root. So to investigate a rule for computing (f(x),k) (g(x),j) , you should look at the methods used in such a proof. I haven't looked at them recenty. The Wikipedia article on algebraic numbers says the proof can be done by computing the "resultant" of two polynomials. However the Wikipedia article on "resultant" looks inscrutable. Perhaps this article is clearer http://www.google.com/url?sa=t&rct=...pi9jca8Ot3KNyaQ&bvm=bv.47534661,d.aWc&cad=rja. The "resultant" of two polynomials seems to be defined as a number in modern sources, but in older books it is defined as a polynomial. I don't know the technical terms that distinguish between resultant-as-number and resultant-as-polynomial.
 

Similar threads

  • · Replies 0 ·
Replies
0
Views
3K
  • · Replies 13 ·
Replies
13
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
48
Views
6K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 26 ·
Replies
26
Views
1K
  • · Replies 6 ·
Replies
6
Views
3K