C
- coefficient type.public abstract class RealRootsAbstract<C extends RingElem<C> & Rational> extends java.lang.Object implements RealRoots<C>
Constructor and Description |
---|
RealRootsAbstract() |
Modifier and Type | Method and Description |
---|---|
BigDecimal |
approximateRoot(Interval<C> iv,
GenPolynomial<C> f,
BigRational eps)
Approximate real root.
|
java.util.List<BigDecimal> |
approximateRoots(GenPolynomial<C> f,
BigRational eps)
Approximate real roots.
|
C |
bisectionPoint(Interval<C> iv,
GenPolynomial<C> f)
Bi-section point.
|
Interval<C> |
halfInterval(Interval<C> iv,
GenPolynomial<C> f)
Half interval.
|
Interval<C> |
invariantMagnitudeInterval(Interval<C> iv,
GenPolynomial<C> f,
GenPolynomial<C> g,
BigRational eps)
Invariant interval for algebraic number magnitude.
|
abstract Interval<C> |
invariantSignInterval(Interval<C> iv,
GenPolynomial<C> f,
GenPolynomial<C> g)
Invariant interval for algebraic number sign.
|
boolean |
isApproximateRoot(BigDecimal x,
GenPolynomial<BigDecimal> f,
GenPolynomial<BigDecimal> fp,
BigDecimal eps)
Test if x is an approximate real root.
|
boolean |
isApproximateRoot(BigDecimal x,
GenPolynomial<C> f,
C eps)
Test if x is an approximate real root.
|
boolean |
isApproximateRoot(java.util.List<BigDecimal> R,
GenPolynomial<C> f,
BigRational eps)
Test if each x in R is an approximate real root.
|
C |
magnitudeBound(Interval<C> iv,
GenPolynomial<C> f)
Magnitude bound.
|
C |
realIntervalMagnitude(Interval<C> iv,
GenPolynomial<C> f,
GenPolynomial<C> g)
Real algebraic number magnitude.
|
int |
realIntervalSign(Interval<C> iv,
GenPolynomial<C> f,
GenPolynomial<C> g)
Real algebraic number sign.
|
C |
realMagnitude(Interval<C> iv,
GenPolynomial<C> f,
GenPolynomial<C> g,
BigRational eps)
Real algebraic number magnitude.
|
C |
realRootBound(GenPolynomial<C> f)
Real root bound.
|
abstract long |
realRootCount(Interval<C> iv,
GenPolynomial<C> f)
Number of real roots in interval.
|
abstract java.util.List<Interval<C>> |
realRoots(GenPolynomial<C> f)
Isolating intervals for the real roots.
|
java.util.List<Interval<C>> |
realRoots(GenPolynomial<C> f,
BigRational eps)
Isolating intervals for the real roots.
|
java.util.List<Interval<C>> |
realRoots(GenPolynomial<C> f,
C eps)
Isolating intervals for the real roots.
|
int |
realSign(Interval<C> iv,
GenPolynomial<C> f,
GenPolynomial<C> g)
Real algebraic number sign.
|
Interval<C> |
refineInterval(Interval<C> iv,
GenPolynomial<C> f,
BigRational eps)
Refine interval.
|
java.util.List<Interval<C>> |
refineIntervals(java.util.List<Interval<C>> V,
GenPolynomial<C> f,
BigRational eps)
Refine intervals.
|
boolean |
signChange(Interval<C> iv,
GenPolynomial<C> f)
Sign changes on interval bounds.
|
public RealRootsAbstract()
public C realRootBound(GenPolynomial<C> f)
public C magnitudeBound(Interval<C> iv, GenPolynomial<C> f)
iv
- interval.f
- univariate polynomial.public C bisectionPoint(Interval<C> iv, GenPolynomial<C> f)
iv
- interval with f(left) * f(right) != 0.f
- univariate polynomial, non-zero.public abstract java.util.List<Interval<C>> realRoots(GenPolynomial<C> f)
public java.util.List<Interval<C>> realRoots(GenPolynomial<C> f, C eps)
public java.util.List<Interval<C>> realRoots(GenPolynomial<C> f, BigRational eps)
public boolean signChange(Interval<C> iv, GenPolynomial<C> f)
public abstract long realRootCount(Interval<C> iv, GenPolynomial<C> f)
public Interval<C> halfInterval(Interval<C> iv, GenPolynomial<C> f)
iv
- root isolating interval with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.public Interval<C> refineInterval(Interval<C> iv, GenPolynomial<C> f, BigRational eps)
public java.util.List<Interval<C>> refineIntervals(java.util.List<Interval<C>> V, GenPolynomial<C> f, BigRational eps)
public abstract Interval<C> invariantSignInterval(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g)
iv
- root isolating interval for f, with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.g
- univariate polynomial, gcd(f,g) == 1.public int realIntervalSign(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g)
iv
- root isolating interval for f, with f(left) * f(right) < 0,
with iv such that g(iv) != 0.f
- univariate polynomial, non-zero.g
- univariate polynomial, gcd(f,g) == 1.public int realSign(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g)
realSign
in interface RealRoots<C extends RingElem<C> & Rational>
iv
- root isolating interval for f, with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.g
- univariate polynomial, gcd(f,g) == 1.public Interval<C> invariantMagnitudeInterval(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g, BigRational eps)
iv
- root isolating interval for f, with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.g
- univariate polynomial, gcd(f,g) == 1.eps
- length limit for interval length.public C realIntervalMagnitude(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g)
iv
- root isolating interval for f, with f(left) * f(right) < 0,
with iv such that |g(a) - g(b)| < eps for a, b in iv.f
- univariate polynomial, non-zero.g
- univariate polynomial, gcd(f,g) == 1.public C realMagnitude(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g, BigRational eps)
public BigDecimal approximateRoot(Interval<C> iv, GenPolynomial<C> f, BigRational eps) throws NoConvergenceException
iv
- real root isolating interval with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.eps
- requested interval length.NoConvergenceException
public java.util.List<BigDecimal> approximateRoots(GenPolynomial<C> f, BigRational eps)
f
- univariate polynomial, non-zero.eps
- requested interval length.public boolean isApproximateRoot(BigDecimal x, GenPolynomial<C> f, C eps)
x
- approximate real root.f
- univariate polynomial, non-zero.eps
- requested interval length.public boolean isApproximateRoot(BigDecimal x, GenPolynomial<BigDecimal> f, GenPolynomial<BigDecimal> fp, BigDecimal eps)
x
- approximate real root.f
- univariate polynomial, non-zero.fp
- univariate polynomial, non-zero, deriviative of f.eps
- requested interval length.public boolean isApproximateRoot(java.util.List<BigDecimal> R, GenPolynomial<C> f, BigRational eps)
R
- ist of approximate real roots.f
- univariate polynomial, non-zero.eps
- requested interval length.