Package edu.jas.root
Class RealRootsSturm<C extends RingElem<C> & Rational>
java.lang.Object
edu.jas.root.RealRootsAbstract<C>
edu.jas.root.RealRootsSturm<C>
- Type Parameters:
C
- coefficient type.
- All Implemented Interfaces:
RealRoots<C>
,Serializable
Real root isolation using Sturm sequences.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionexcludeZero
(Interval<C> iv, List<GenPolynomial<C>> S) Exclude zero v2.excludeZeroOld
(Interval<C> iv, List<GenPolynomial<C>> S) Exclude zero, old version.invariantSignInterval
(Interval<C> iv, GenPolynomial<C> f, GenPolynomial<C> g) Invariant interval for algebraic number sign.invariantSignInterval
(Interval<C> iv, GenPolynomial<C> f, List<GenPolynomial<C>> Sg) Invariant interval for algebraic number sign.long
realRootCount
(Interval<C> iv, GenPolynomial<C> f) Number of real roots in interval.long
realRootCount
(Interval<C> iv, List<GenPolynomial<C>> S) Number of real roots in interval.realRoots
(GenPolynomial<C> f) Isolating intervals for the real roots.Isolating intervals for the real roots.Sturm sequence.Methods inherited from class edu.jas.root.RealRootsAbstract
approximateRoot, approximateRoots, bisectionPoint, fourierSequence, halfInterval, invariantMagnitudeInterval, isApproximateRoot, isApproximateRoot, isApproximateRoot, magnitudeBound, realIntervalMagnitude, realIntervalMagnitudeInterval, realIntervalSign, realMagnitude, realMinimalRootBound, realMinimalRootSeparation, realRootBound, realRootNumber, realRoots, realRoots, realSign, refineInterval, refineIntervals, signChange, signSequence
-
Field Details
-
logger
private static final org.apache.logging.log4j.Logger logger -
debug
private static final boolean debug
-
-
Constructor Details
-
RealRootsSturm
public RealRootsSturm()
-
-
Method Details
-
sturmSequence
Sturm sequence.- Parameters:
f
- univariate polynomial.- Returns:
- a Sturm sequence for f.
-
realRoots
Isolating intervals for the real roots. -
realRoots
Isolating intervals for the real roots.- Parameters:
iv
- interval with f(left) * f(right) != 0.S
- sturm sequence for f and I.- Returns:
- a list of isolating intervals for the real roots of f in I.
-
realRootCount
Number of real roots in interval.- Parameters:
iv
- interval with f(left) * f(right) != 0.S
- sturm sequence for f and I.- Returns:
- number of real roots of f in I.
-
realRootCount
Number of real roots in interval.- Specified by:
realRootCount
in interfaceRealRoots<C extends RingElem<C> & Rational>
- Specified by:
realRootCount
in classRealRootsAbstract<C extends RingElem<C> & Rational>
- Parameters:
iv
- interval with f(left) * f(right) != 0.f
- univariate polynomial.- Returns:
- number of real roots of f in I.
-
invariantSignInterval
Invariant interval for algebraic number sign.- Specified by:
invariantSignInterval
in classRealRootsAbstract<C extends RingElem<C> & Rational>
- Parameters:
iv
- root isolating interval for f, with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.g
- univariate polynomial, gcd(f,g) == 1.- Returns:
- v with v a new interval contained in iv such that g(w) != 0 for w in v.
-
invariantSignInterval
public Interval<C> invariantSignInterval(Interval<C> iv, GenPolynomial<C> f, List<GenPolynomial<C>> Sg) Invariant interval for algebraic number sign.- Parameters:
iv
- root isolating interval for f, with f(left) * f(right) < 0.f
- univariate polynomial, non-zero.Sg
- Sturm sequence for (f,g), a univariate polynomial with gcd(f,g) == 1.- Returns:
- v with v a new interval contained in iv such that g(w) != 0 for w in v.
-
excludeZeroOld
Exclude zero, old version.- Parameters:
iv
- root isolating interval with f(left) * f(right) < 0.S
- sturm sequence for f and I.- Returns:
- a new interval v such that v < 0 or v > 0.
-
excludeZero
Exclude zero v2.- Parameters:
iv
- root isolating interval with f(left) * f(right) < 0.S
- sturm sequence for f and I.- Returns:
- a new interval v such that v < 0 or v > 0 or v == 0.
-