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
2 | No.2 Revision |
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
3 | No.3 Revision |
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
4 | No.4 Revision |
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
5 | No.5 Revision |
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
6 | No.6 Revision |
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
7 | No.7 Revision |
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
8 | No.8 Revision |
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:
QQ
and rational complex field QQ[I]
;QQbar
and its real subfield AA
.You
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