Quartic class final
Concrete implementation of Algebraic that represents a fourth degree polynomial equation in the form ax^4 + bx^3 + cx^2 + dx + e = 0.
This equation has 4 solutions, which can be combined as follows:
- 2 distinct real roots and 2 complex conjugate roots
- 4 real roots and 0 complex roots
- 0 real roots and 4 complex conjugate roots
- Multiple roots which can be all equal or paired (complex or real)
The above cases depend on the value of the discriminant.
Constructors
- Quartic({Complex a = const Complex.fromReal(1), Complex b = const Complex.zero(), Complex c = const Complex.zero(), Complex d = const Complex.zero(), Complex e = const Complex.zero()})
- These are examples of quartic equations, where the coefficient with the highest degree goes first:
- Quartic.realEquation({double a = 1, double b = 0, double c = 0, double d = 0, double e = 0})
- This is an example of a quartic equations, where the coefficient with the highest degree goes first:
Properties
- a → Complex
-
The first coefficient of the equation in the form
f(x) = ax^4 + bx^3 + cx^2 + dx + e = 0
no setter
- b → Complex
-
The second coefficient of the equation in the form
f(x) = ax^4 + bx^3 + cx^2 + dx + e = 0
no setter
- c → Complex
-
The third coefficient of the equation in the form
f(x) = ax^4 + bx^3 + cx^2 + dx + e = 0
no setter
-
coefficients
→ List<
Complex> -
The list with the polynomial coefficients.
finalinherited
- d → Complex
-
The fourth coefficient of the equation in the form
f(x) = ax^4 + bx^3 + cx^2 + dx + e = 0
no setter
- degree → int
-
The degree of the polynomial.
no setteroverride
- e → Complex
-
The fifth coefficient of the equation in the form
f(x) = ax^4 + bx^3 + cx^2 + dx + e = 0
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- isRealEquation → bool
-
Determines whether the polynomial is real or not.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
coefficient(
int degree) → Complex? -
Returns the coefficient of the polynomial whose degree is
degree
. For example:inherited -
copyWith(
{Complex? a, Complex? b, Complex? c, Complex? d, Complex? e}) → Quartic - Creates a deep copy of this object and replaces (if non-null) the given values with the old ones.
-
derivative(
) → Algebraic -
The derivative of the polynomial.
override
-
discriminant(
) → Complex -
The polynomial discriminant, if it exists.
override
-
evaluateIntegralOn(
double lower, double upper) → Complex -
Evaluates the integral of the the polynomial between
lower
andupper
.inherited -
evaluateOn(
Complex x) → Complex -
Evaluates the polynomial on the given
x
value.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
realEvaluateOn(
double x) → Complex -
Evaluates the polynomial on the given decimal
x
value.inherited -
solutions(
) → List< Complex> -
Finds the roots (the solutions) of the associated P(x) = 0 equation.
override
-
toString(
) → String -
A string representation of this object.
inherited
-
toStringWithFractions(
) → String -
Returns a string representation of the polynomial where the coefficients
are converted into their fractional representation.
inherited
Operators
-
operator *(
Algebraic other) → Algebraic -
The product of two polynomials is performed by multiplying the
corresponding coefficients of the polynomials.
inherited
-
operator +(
Algebraic other) → Algebraic -
The sum of two polynomials is performed by adding the corresponding
coefficients.
inherited
-
operator -(
Algebraic other) → Algebraic -
The difference of two polynomials is performed by subtracting the
corresponding coefficients.
inherited
-
operator /(
Algebraic other) → AlgebraicDivision -
This operator divides a polynomial by another polynomial of the same or
lower degree.
inherited
-
operator ==(
Object other) → bool -
The equality operator.
inherited
-
operator [](
int index) → Complex -
Returns the coefficient of the polynomial at the given
index
position. For example:inherited -
operator unary-(
) → Algebraic -
The 'negation' operator changes the sign of every coefficient of the
polynomial. For example:
inherited