Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings (that do not allow rounding errors of any kind). Unfortunately, real and complex fields cannot be implemented exactly. A suitable substitute for real field is the field of algebraic real numbers AA, and one for complex field is the field of algebraic number QQbar. For details, see https://doc.sagemath.org/html/en/reference/number_fields/sage/rings/qqbar.html

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent $\pi$ as a polynomial root of degree 5 as follows:

pi_aa = AA.polynomial_root(algdep(pi,5),RIF(3.14,3.15))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings (that do not allow rounding errors of any kind). Unfortunately, real and complex fields cannot be implemented exactly. A suitable substitute for real field is the field of algebraic real numbers AA, and one for complex field is the field of algebraic number QQbar. For details, see https://doc.sagemath.org/html/en/reference/number_fields/sage/rings/qqbar.html

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent $\pi$ as a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(3.14,3.15))
AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings (that do not allow rounding errors of any kind). Unfortunately, real and complex fields cannot be implemented exactly. A suitable substitute for real complex and real fields is the field is the field of algebraic real numbers QQbar and real subfield AA, and one for complex field is the field of algebraic number QQbar. For details, see https://doc.sagemath.org/html/en/reference/number_fields/sage/rings/qqbar.html.

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent $\pi$ as a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings (that do not allow rounding errors of any kind). Unfortunately, real and complex fields cannot be implemented exactly. A suitable substitute for complex and real fields is the field of algebraic numbers QQbar and its real subfield AA.

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent $\pi$ as a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings (that do not allow rounding errors of any kind). Unfortunately, real and complex fields cannot be implemented exactly. A Nevertheless, there are suitable substitute substitutes for complex and real fields is - namely, the field of algebraic numbers QQbar and its real subfield AA.

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent $\pi$ as a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings (that fields/rings, which do not allow rounding errors of any kind). kind. Unfortunately, real and complex fields cannot be implemented exactly. Nevertheless, there are suitable substitutes for complex and real fields - namely, the field of algebraic numbers QQbar and its real subfield AA.

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent $\pi$ as a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings, which do not allow rounding errors of any kind. Unfortunately, real and complex fields cannot be implemented exactly. Nevertheless, there are suitable substitutes for complex and real fields - namely, the field of algebraic numbers QQbar and its real subfield AA.

You can covert real and complex numbers into elements of AA and QQbar with algdep() function, where you can choose "precision" in the form of polynomial degree:

For example, we can represent approximate $\pi$ as with a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field

The problem with real or complex fields is that their elements are approximate, and operations there are subject to rounding errors, which may accumulate with the number of performed operations. This is unacceptable situation for the ideals machinery, where accumulating errors destroy basic properties and make it impossible to perform basis operations (e.g., membership testing).

In other words, for ideals to work they have to be defined over exact fields/rings, which do not allow rounding errors of any kind. Unfortunately, real and complex fields cannot be implemented exactly. Nevertheless, there are suitable substitutes for complex and real fields - namely, the real and complex fields:

We can covert approximate real and complex numbers into with elements of AA and QQbar with using algdep() function, where you we can choose "precision"accuracy in the form of polynomial degree:degree.

Clearly, rational fields QQ and QQ[I] are subfields of AA and QQbar, respectively, and appear when we approximate with polynomials of degree 1.

For example, we can approximate $\pi$ with a polynomial root of degree 5 as follows:

eps = 1e-6
pi_aa = AA.polynomial_root(algdep(pi,5),RIF(pi-eps,pi+eps))
print(pi_aa)
print(pi_aa.parent())

which gives

3.141592653589794?
Algebraic Real Field