Quartic equation: Difference between revisions
Citation bot (talk | contribs) Add: doi-access, authors 1-1. Removed proxy/dead URL that duplicated identifier. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Headbomb | Linked from Wikipedia:WikiProject_Academic_Journals/Journals_cited_by_Wikipedia/Sandbox2 | #UCB_webform_linked 485/677 |
Tags: Reverted Visual edit |
||
Line 33: | Line 33: | ||
If <math>\ a_1 = a_0 k\ ,</math> <math>\ a_2 = 0\ </math> and <math>\ a_4= a_3 k\ ,</math> then <math>\ x = -k\ </math> is a root of the equation. The full quartic can then be factorized this way: |
If <math>\ a_1 = a_0 k\ ,</math> <math>\ a_2 = 0\ </math> and <math>\ a_4= a_3 k\ ,</math> then <math>\ x = -k\ </math> is a root of the equation. The full quartic can then be factorized this way: |
||
: <math>\ a_0 x^4 + a_0 k x^3 + a_3 x + a_3 k = a_0 x^3 (x + |
: <math>\ a_0 x^4 + a_0 k x^3 + a_3 x + a_3 k = a_0 x^3 (x +\barAIPs |
||
View on GitHub |
|||
API Improvement Proposals General AIPs Standard methods: List |
|||
AIP-132 |
|||
Standard methods: List |
|||
In many APIs, it is customary to make a GET request to a collection's URI (for example, /v1/publishers/1/books) in order to retrieve a list of resources, each of which lives within that collection. |
|||
Resource-oriented design (AIP-121) honors this pattern through the List method. These RPCs accept the parent collection (and potentially some other parameters), and return a list of responses matching that input. |
|||
Guidance |
|||
APIs must provide a List method for resources unless the resource is a singleton. The purpose of the List method is to return data from a finite collection (generally singular unless the operation supports reading across collections). |
|||
List methods are specified using the following pattern: |
|||
rpc ListBooks(ListBooksRequest) returns (ListBooksResponse) { |
|||
option (google.api.http) = { |
|||
get: "/v1/{parent=publishers/*}/books" |
|||
}; |
|||
option (google.api.method_signature) = "parent"; |
|||
} |
|||
The RPC's name must begin with the word List. The remainder of the RPC name should be the plural form of the resource being listed. |
|||
The request and response messages must match the RPC name, with Request and Response suffixes. |
|||
The HTTP verb must be GET. |
|||
The collection whose resources are being listed should map to the URI path. |
|||
The collection's parent resource should be called parent, and should be the only variable in the URI path. All remaining parameters should map to URI query parameters. |
|||
The collection identifier (books in the above example) must be a literal string. |
|||
The body key in the google.api.http annotation must be omitted. |
|||
If the resource being listed is not a top-level resource, there should be exactly one google.api.method_signature annotation, with a value of "parent". If the resource being listed is a top-level resource, there should be either no google.api.method_signature annotation, or exactly one google.api.method_signature annotation, with a value of "". |
|||
Request message |
|||
List methods implement a common request message pattern: |
|||
message ListBooksRequest { |
|||
// The parent, which owns this collection of books. |
|||
// Format: publishers/{publisher} |
|||
string parent = 1 [ |
|||
(google.api.field_behavior) = REQUIRED, |
|||
(google.api.resource_reference) = { |
|||
child_type: "library.googleapis.com/Book" |
|||
}]; |
|||
// The maximum number of books to return. The service may return fewer than |
|||
// this value. |
|||
// If unspecified, at most 50 books will be returned. |
|||
// The maximum value is 1000; values above 1000 will be coerced to 1000. |
|||
int32 page_size = 2; |
|||
// A page token, received from a previous `ListBooks` call. |
|||
// Provide this to retrieve the subsequent page. |
|||
// |
|||
// When paginating, all other parameters provided to `ListBooks` must match |
|||
// the call that provided the page token. |
|||
string page_token = 3; |
|||
} |
|||
A parent field must be included unless the resource being listed is a top-level resource. It should be called parent. |
|||
The field should be annotated as required. |
|||
The field must identify the resource type of the resource being listed. |
|||
The page_size and page_token fields, which support pagination, must be specified on all list request messages. For more information, see AIP-158. |
|||
The comment above the page_size field should document the maximum allowed value, as well as the default value if the field is omitted (or set to 0). If preferred, the API may state that the server will use a sensible default. This default may change over time. |
|||
If a user provides a value greater than the maximum allowed value, the API should coerce the value to the maximum allowed. |
|||
If a user provides a negative or other invalid value, the API must send an INVALID_ARGUMENT error. |
|||
The page_token field must be included on all list request messages. |
|||
The request message may include fields for common design patterns relevant to list methods, such as string filter and string order_by. |
|||
The request message must not contain any other required fields, and should not contain other optional fields except those described in this or another AIP. |
|||
Note: List methods should return the same results for any user that has permission to make a successful List request on the collection. Search methods are more relaxed on this. |
|||
Response message |
|||
List methods implement a common response message pattern: |
|||
message ListBooksResponse { |
|||
// The books from the specified publisher. |
|||
repeated Book books = 1; |
|||
// A token, which can be sent as `page_token` to retrieve the next page. |
|||
// If this field is omitted, there are no subsequent pages. |
|||
string next_page_token = 2; |
|||
} |
|||
The response message must include one repeated field corresponding to the resources being returned, and should not include any other repeated fields unless described in another AIP (for example, AIP-217). |
|||
The response should usually include fully-populated resources unless there is a reason to return a partial response (see AIP-157). |
|||
The next_page_token field, which supports pagination, must be included on all list response messages. It must be set if there are subsequent pages, and must not be set if the response represents the final page. For more information, see AIP-158. |
|||
The message may include a int32 total_size (or int64 total_size) field with the number of items in the collection. |
|||
The value may be an estimate (the field should clearly document this if so). |
|||
If filtering is used, the total_size field should reflect the size of the collection after the filter is applied. |
|||
Ordering |
|||
List methods may allow clients to specify sorting order; if they do, the request message should contain a string order_by field. |
|||
Values should be a comma separated list of fields. For example: "foo,bar". |
|||
The default sorting order is ascending. To specify descending order for a field, users append a " desc" suffix; for example: "foo desc, bar". |
|||
Redundant space characters in the syntax are insignificant. "foo, bar desc", " foo , bar desc ", and "foo,bar desc" are all equivalent. |
|||
Subfields are specified with a . character, such as foo.bar or address.street. |
|||
Note: Only include ordering if there is an established need to do so. It is always possible to add ordering later, but removing it is a breaking change. |
|||
Filtering |
|||
List methods may allow clients to specify filters; if they do, the request message should contain a string filter field. Filtering is described in more detail in AIP-160. |
|||
Note: Only include filtering if there is an established need to do so. It is always possible to add filtering later, but removing it is a breaking change. |
|||
Soft-deleted resources |
|||
Some APIs need to "soft delete" resources, marking them as deleted or pending deletion (and optionally purging them later). |
|||
APIs that do this should not include deleted resources by default in list requests. APIs with soft deletion of a resource should include a bool show_deleted field in the list request that, if set, will cause soft-deleted resources to be included. |
|||
Errors |
|||
See errors, in particular when to use PERMISSION_DENIED and NOT_FOUND errors. |
|||
Further reading |
|||
For details on pagination, see AIP-158. |
|||
For listing across multiple parent collections, see AIP-159. |
|||
Changelog |
|||
2023-03-22: Fix guidance wording to mention AIP-159. |
|||
2023-03-17: Align with AIP-122 and make Get a must. |
|||
2022-11-04: Aggregated error guidance to AIP-193. |
|||
2022-06-02: Changed suffix descriptions to eliminate superfluous "-". |
|||
2020-09-02: Add link to the filtering AIP. |
|||
2020-08-14: Added error guidance for permission denied cases. |
|||
2020-06-08: Added guidance on returning the full resource. |
|||
2020-05-19: Removed requirement to document ordering behavior. |
|||
2020-04-15: Added guidance on List permissions. |
|||
2019-10-18: Added guidance on annotations. |
|||
2019-08-01: Changed the examples from "shelves" to "publishers", to present a better example of resource ownership. |
|||
2019-07-30: Added guidance about documenting the ordering behavior. |
|||
2019-05-29: Added an explicit prohibition on arbitrary fields in standard methods. |
|||
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see content licensing.google.api.httplibrary.googleapis.com/Book k) + a_3 (x + k) = (a_0 x^3 + a_3) (x + k) \ .</math> |
|||
Alternatively, if <math>\ a_1 = a_0 k\ ,</math> <math>\ a_3 = a_2 k\ ,</math> and <math>\ a_4 = 0\ ,</math> then {{math|''x'' {{=}} 0}} and {{math|''x'' {{=}} −''k''}} become two known roots. {{math|''Q''(''x'')}} divided by {{nobr| {{math|''x''(''x'' + ''k'')}} }} is a quadratic polynomial. |
Alternatively, if <math>\ a_1 = a_0 k\ ,</math> <math>\ a_3 = a_2 k\ ,</math> and <math>\ a_4 = 0\ ,</math> then {{math|''x'' {{=}} 0}} and {{math|''x'' {{=}} −''k''}} become two known roots. {{math|''Q''(''x'')}} divided by {{nobr| {{math|''x''(''x'' + ''k'')}} }} is a quadratic polynomial. |
Revision as of 00:39, 24 November 2023
In mathematics, a quartic equation is one which can be expressed as a quartic function equaling zero. The general form of a quartic equation is
where a ≠ 0.
The quartic is the highest order polynomial equation that can be solved by radicals in the general case (i.e., one in which the coefficients can take any value).
History
Lodovico Ferrari is attributed with the discovery of the solution to the quartic in 1540, but since this solution, like all algebraic solutions of the quartic, requires the solution of a cubic to be found, it could not be published immediately.[1] The solution of the quartic was published together with that of the cubic by Ferrari's mentor Gerolamo Cardano in the book Ars Magna (1545).
The proof that this was the highest order general polynomial for which such solutions could be found was first given in the Abel–Ruffini theorem in 1824, proving that all attempts at solving the higher order polynomials would be futile. The notes left by Évariste Galois before his death in a duel in 1832 later led to an elegant complete theory of the roots of polynomials, of which this theorem was one result.[2]
Solving a quartic equation, special cases
Consider a quartic equation expressed in the form :
There exists a general formula for finding the roots to quartic equations, provided the coefficient of the leading term is non-zero. However, since the general method is quite complex and susceptible to errors in execution, it is better to apply one of the special cases listed below if possible.
If the constant term a4 = 0, then one of the roots is x = 0, and the other roots can be found by dividing by x, and solving the resulting cubic equation,
Evident roots: 1 and −1 and −k
Call our quartic polynomial Q(x). Since 1 raised to any power is 1,
Thus if Q(1) = 0 and so x = 1 is a root of Q(x). It can similarly be shown that if x = −1 is a root.
In either case the full quartic can then be divided by the factor (x − 1) or (x + 1) respectively yielding a new cubic polynomial, which can be solved to find the quartic's other roots.
If and then is a root of the equation. The full quartic can then be factorized this way:
- Failed to parse (unknown function "\barAIPs"): {\displaystyle \ a_0 x^4 + a_0 k x^3 + a_3 x + a_3 k = a_0 x^3 (x +\barAIPs View on GitHub API Improvement Proposals General AIPs Standard methods: List AIP-132 Standard methods: List In many APIs, it is customary to make a GET request to a collection's URI (for example, /v1/publishers/1/books) in order to retrieve a list of resources, each of which lives within that collection. Resource-oriented design (AIP-121) honors this pattern through the List method. These RPCs accept the parent collection (and potentially some other parameters), and return a list of responses matching that input. Guidance APIs must provide a List method for resources unless the resource is a singleton. The purpose of the List method is to return data from a finite collection (generally singular unless the operation supports reading across collections). List methods are specified using the following pattern: rpc ListBooks(ListBooksRequest) returns (ListBooksResponse) { option (google.api.http) = { get: "/v1/{parent=publishers/*}/books" }; option (google.api.method_signature) = "parent"; } The RPC's name must begin with the word List. The remainder of the RPC name should be the plural form of the resource being listed. The request and response messages must match the RPC name, with Request and Response suffixes. The HTTP verb must be GET. The collection whose resources are being listed should map to the URI path. The collection's parent resource should be called parent, and should be the only variable in the URI path. All remaining parameters should map to URI query parameters. The collection identifier (books in the above example) must be a literal string. The body key in the google.api.http annotation must be omitted. If the resource being listed is not a top-level resource, there should be exactly one google.api.method_signature annotation, with a value of "parent". If the resource being listed is a top-level resource, there should be either no google.api.method_signature annotation, or exactly one google.api.method_signature annotation, with a value of "". Request message List methods implement a common request message pattern: message ListBooksRequest { // The parent, which owns this collection of books. // Format: publishers/{publisher} string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "library.googleapis.com/Book" }]; // The maximum number of books to return. The service may return fewer than // this value. // If unspecified, at most 50 books will be returned. // The maximum value is 1000; values above 1000 will be coerced to 1000. int32 page_size = 2; // A page token, received from a previous `ListBooks` call. // Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to `ListBooks` must match // the call that provided the page token. string page_token = 3; } A parent field must be included unless the resource being listed is a top-level resource. It should be called parent. The field should be annotated as required. The field must identify the resource type of the resource being listed. The page_size and page_token fields, which support pagination, must be specified on all list request messages. For more information, see AIP-158. The comment above the page_size field should document the maximum allowed value, as well as the default value if the field is omitted (or set to 0). If preferred, the API may state that the server will use a sensible default. This default may change over time. If a user provides a value greater than the maximum allowed value, the API should coerce the value to the maximum allowed. If a user provides a negative or other invalid value, the API must send an INVALID_ARGUMENT error. The page_token field must be included on all list request messages. The request message may include fields for common design patterns relevant to list methods, such as string filter and string order_by. The request message must not contain any other required fields, and should not contain other optional fields except those described in this or another AIP. Note: List methods should return the same results for any user that has permission to make a successful List request on the collection. Search methods are more relaxed on this. Response message List methods implement a common response message pattern: message ListBooksResponse { // The books from the specified publisher. repeated Book books = 1; // A token, which can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. string next_page_token = 2; } The response message must include one repeated field corresponding to the resources being returned, and should not include any other repeated fields unless described in another AIP (for example, AIP-217). The response should usually include fully-populated resources unless there is a reason to return a partial response (see AIP-157). The next_page_token field, which supports pagination, must be included on all list response messages. It must be set if there are subsequent pages, and must not be set if the response represents the final page. For more information, see AIP-158. The message may include a int32 total_size (or int64 total_size) field with the number of items in the collection. The value may be an estimate (the field should clearly document this if so). If filtering is used, the total_size field should reflect the size of the collection after the filter is applied. Ordering List methods may allow clients to specify sorting order; if they do, the request message should contain a string order_by field. Values should be a comma separated list of fields. For example: "foo,bar". The default sorting order is ascending. To specify descending order for a field, users append a " desc" suffix; for example: "foo desc, bar". Redundant space characters in the syntax are insignificant. "foo, bar desc", " foo , bar desc ", and "foo,bar desc" are all equivalent. Subfields are specified with a . character, such as foo.bar or address.street. Note: Only include ordering if there is an established need to do so. It is always possible to add ordering later, but removing it is a breaking change. Filtering List methods may allow clients to specify filters; if they do, the request message should contain a string filter field. Filtering is described in more detail in AIP-160. Note: Only include filtering if there is an established need to do so. It is always possible to add filtering later, but removing it is a breaking change. Soft-deleted resources Some APIs need to "soft delete" resources, marking them as deleted or pending deletion (and optionally purging them later). APIs that do this should not include deleted resources by default in list requests. APIs with soft deletion of a resource should include a bool show_deleted field in the list request that, if set, will cause soft-deleted resources to be included. Errors See errors, in particular when to use PERMISSION_DENIED and NOT_FOUND errors. Further reading For details on pagination, see AIP-158. For listing across multiple parent collections, see AIP-159. Changelog 2023-03-22: Fix guidance wording to mention AIP-159. 2023-03-17: Align with AIP-122 and make Get a must. 2022-11-04: Aggregated error guidance to AIP-193. 2022-06-02: Changed suffix descriptions to eliminate superfluous "-". 2020-09-02: Add link to the filtering AIP. 2020-08-14: Added error guidance for permission denied cases. 2020-06-08: Added guidance on returning the full resource. 2020-05-19: Removed requirement to document ordering behavior. 2020-04-15: Added guidance on List permissions. 2019-10-18: Added guidance on annotations. 2019-08-01: Changed the examples from "shelves" to "publishers", to present a better example of resource ownership. 2019-07-30: Added guidance about documenting the ordering behavior. 2019-05-29: Added an explicit prohibition on arbitrary fields in standard methods. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see content licensing.google.api.httplibrary.googleapis.com/Book k) + a_3 (x + k) = (a_0 x^3 + a_3) (x + k) \ .}
Alternatively, if and then x = 0 and x = −k become two known roots. Q(x) divided by x(x + k) is a quadratic polynomial.
Biquadratic equations
A quartic equation where a3 and a1 are equal to 0 takes the form
and thus is a biquadratic equation, which is easy to solve: let , so our equation turns to
which is a simple quadratic equation, whose solutions are easily found using the quadratic formula:
When we've solved it (i.e. found these two z values), we can extract x from them
If either of the z solutions were negative or complex numbers, then some of the x solutions are complex numbers.
Quasi-symmetric equations
Steps:
- Divide by x 2.
- Use variable change z = x + m/x.
- So, z 2 = x 2 + (m/x) 2 + 2m.
This leads to:
- ,
- ,
- (a quadratic in z = x + m/x)
Multiple roots
If the quartic has a double root, it can be found by taking the polynomial greatest common divisor with its derivative. Then they can be divided out and the resulting quadratic equation solved.
In general, there exist only four possible cases of quartic equations with multiple roots, which are listed below:[3]
- Multiplicity-4 (M4): when the general quartic equation can be expressed as , for some real number . This case can always be reduced to a biquadratic equation.
- Multiplicity-3 (M3): when the general quartic equation can be expressed as , where and are a couple of two different real numbers. This is the only case that can never be reduced to a biquadratic equation.
- Double Multiplicity-2 (DM2): when the general quartic equation can be expressed as , where and are a couple of two different real numbers or a couple of non-real complex conjugate numbers. This case can also always be reduced to a biquadratic equation.
- Single Multiplicity-2 (SM2): when the general quartic equation can be expressed as , where , , and are three different real numbers or is a real number and and are a couple of non-real complex conjugate numbers. This case is divided into two subcases, those that can be reduced to a biquadratic equation and those in which this is impossible.
So, if the three non-monic coefficients of the depressed quartic equation in terms of the five coefficients of the general quartic equation are given as follows: , and ; then, the criteria to identify a priori each case of quartic equations with multiple roots and their respective solutions are exposed below.
- M4. The general quartic equation corresponds to this case whenever , so the four roots of this equation are given as follows: .
- M3. The general quartic equation corresponds to this case whenever and , so the four roots of this equation are given as follows: and , whether ; otherwise, and .
- DM2. The general quartic equation corresponds to this case whenever , so the four roots of this equation are given as follows: and .
- Biquadratic SM2. The general quartic equation corresponds to this subcase of the SM2 equations whenever , so the four roots of this equation are given as follows: , and .
- Non-Biquadratic SM2. The general quartic equation corresponds to this subcase of the SM2 equations whenever , so the four roots of this equation are given by the following formula:[4] , where , and .
The general case
To begin, the quartic must first be converted to a depressed quartic.
Converting to a depressed quartic
Let
(1') |
be the general quartic equation which it is desired to solve. Divide both sides by A,
The first step, if B is not already zero, should be to eliminate the x3 term. To do this, change variables from x to u, such that
Then
Expanding the powers of the binomials produces
Collecting the same powers of u yields
Now rename the coefficients of u. Let
The resulting equation is
(1) |
which is a depressed quartic equation.
If then we have the special case of a biquadratic equation, which is easily solved, as explained above. Note that the general solution, given below, will not work for the special case The equation must be solved as a biquadratic.
In either case, once the depressed quartic is solved for u, substituting those values into
produces the values for x that solve the original quartic.
Solving a depressed quartic when b ≠ 0
After converting to a depressed quartic equation
and excluding the special case b = 0, which is solved as a biquadratic, we assume from here on that b ≠ 0 .
We will separate the terms left and right as
and add in terms to both sides which make them both into perfect squares.
Let y be any solution of this cubic equation:
Then (since b ≠ 0)
so we may divide by it, giving
Then
Subtracting, we get the difference of two squares which is the product of the sum and difference of their roots
which can be solved by applying the quadratic formula to each of the two factors. So the possible values of u are:
- or
Using another y from among the three roots of the cubic simply causes these same four values of u to appear in a different order. The solutions of the cubic are:
using any one of the three possible cube roots. A wise strategy is to choose the sign of the square-root that makes the absolute value of w as large as possible.
Ferrari's solution
Otherwise, the depressed quartic can be solved by means of a method discovered by Lodovico Ferrari. Once the depressed quartic has been obtained, the next step is to add the valid identity
to equation (1), yielding
(2) |
The effect has been to fold up the u4 term into a perfect square: (u2 + α)2. The second term, αu2 did not disappear, but its sign has changed and it has been moved to the right side.
The next step is to insert a variable y into the perfect square on the left side of equation (2), and a corresponding 2y into the coefficient of u2 in the right side. To accomplish these insertions, the following valid formulas will be added to equation (2),
and
These two formulas, added together, produce
which added to equation (2) produces
This is equivalent to
(3) |
The objective now is to choose a value for y such that the right side of equation (3) becomes a perfect square. This can be done by letting the discriminant of the quadratic function become zero. To explain this, first expand a perfect square so that it equals a quadratic function:
The quadratic function on the right side has three coefficients. It can be verified that squaring the second coefficient and then subtracting four times the product of the first and third coefficients yields zero:
Therefore to make the right side of equation (3) into a perfect square, the following equation must be solved:
Multiply the binomial with the polynomial,
Divide both sides by −4, and move the −β2/4 to the right,
Divide both sides by 2,
(4) |
This is a cubic equation in y. Solve for y using any method for solving such equations (e.g. conversion to a reduced cubic and application of Cardano's formula). Any of the three possible roots will do.
Folding the second perfect square
With the value for y so selected, it is now known that the right side of equation (3) is a perfect square of the form
-
- (This is correct for both signs of square root, as long as the same sign is taken for both square roots. A ± is redundant, as it would be absorbed by another ± a few equations further down this page.)
so that it can be folded:
-
- Note: If β ≠ 0 then α + 2y ≠ 0. If β = 0 then this would be a biquadratic equation, which we solved earlier.
Therefore equation (3) becomes
(5) |
Equation (5) has a pair of folded perfect squares, one on each side of the equation. The two perfect squares balance each other.
If two squares are equal, then the sides of the two squares are also equal, as shown by:
(5') |
Collecting like powers of u produces
(6) |
- Note: The subscript s of and is to note that they are dependent.
Equation (6) is a quadratic equation for u. Its solution is
Simplifying, one gets
This is the solution of the depressed quartic, therefore the solutions of the original quartic equation are
(6') |
- Remember: The two come from the same place in equation (5'), and should both have the same sign, while the sign of is independent.
Summary of Ferrari's method
Given the quartic equation
its solution can be found by means of the following calculations:
If then
Otherwise, continue with
(either sign of the square root will do)
(there are 3 complex roots, any one of them will do)
- The two ±s must have the same sign, the ±t is independent. To get all roots, compute x for ±s,±t = +,+ and for +,−; and for −,+ and for −,−. This formula handles repeated roots without problem.
Ferrari was the first to discover one of these labyrinthine solutions[citation needed]. The equation which he solved was
which was already in depressed form. It has a pair of solutions which can be found with the set of formulas shown above.
Ferrari's solution in the special case of real coefficients
If the coefficients of the quartic equation are real then the nested depressed cubic equation (5) also has real coefficients, thus it has at least one real root.
Furthermore the cubic function
where P and Q are given by (5) has the properties that
- and
where α and β are given by (1).
This means that (5) has a real root greater than , and therefore that (4) has a real root greater than .
Using this root the term in (8) is always real, which ensures that the two quadratic equations (8) have real coefficients.[5]
Obtaining alternative solutions the hard way
It could happen that one only obtained one solution through the formulae above, because not all four sign patterns are tried for four solutions, and the solution obtained is complex. It may also be the case that one is only looking for a real solution. Let x1 denote the complex solution. If all the original coefficients A, B, C, D and E are real—which should be the case when one desires only real solutions – then there is another complex solution x2 which is the complex conjugate of x1. If the other two roots are denoted as x3 and x4 then the quartic equation can be expressed as
but this quartic equation is equivalent to the product of two quadratic equations:
(9) |
and
(10) |
Since
then
Let
so that equation (9) becomes
(11) |
Also let there be (unknown) variables w and v such that equation (10) becomes
(12) |
Multiplying equations (11) and (12) produces
(13) |
Comparing equation (13) to the original quartic equation, it can be seen that
and
Therefore
Equation (12) can be solved for x yielding
One of these two solutions should be the desired real solution.
Alternative methods
Quick and memorable solution from first principles
Most textbook solutions of the quartic equation require a substitution that is hard to memorize. Here is an approach that makes it easy to understand. The job is done if we can factor the quartic equation into a product of two quadratics. Let
By equating coefficients, this results in the following set of simultaneous equations:
This is harder to solve than it looks, but if we start again with a depressed quartic where , which can be obtained by substituting for , then , and:
It's now easy to eliminate both and by doing the following:
If we set , then this equation turns into the cubic equation:
which is solved elsewhere. Once you have , then:
The symmetries in this solution are easy to see. There are three roots of the cubic, corresponding to the three ways that a quartic can be factored into two quadratics, and choosing positive or negative values of for the square root of merely exchanges the two quadratics with one another.
Galois theory and factorization
The symmetric group S4 on four elements has the Klein four-group as a normal subgroup. This suggests using a resolvent whose roots may be variously described as a discrete Fourier transform or a Hadamard matrix transform of the roots. Suppose ri for i from 0 to 3 are roots of
If we now set
then since the transformation is an involution, we may express the roots in terms of the four si in exactly the same way. Since we know the value s0 = −b/2, we really only need the values for s1, s2 and s3. These we may find by expanding the polynomial
which if we make the simplifying assumption that b = 0, is equal to
This polynomial is of degree six, but only of degree three in z2, and so the corresponding equation is solvable. By trial we can determine which three roots are the correct ones, and hence find the solutions of the quartic.
We can remove any requirement for trial by using a root of the same resolvent polynomial for factoring; if w is any root of (3), and if
then
We therefore can solve the quartic by solving for w and then solving for the roots of the two factors using the quadratic formula.
Approximate methods
The methods described above are, in principle, exact root-finding methods. It is also possible to use successive approximation methods which iteratively converge towards the roots, such as the Durand–Kerner method. Iterative methods are the only ones available for quintic and higher-order equations, beyond trivial or special cases.
See also
References
Notes
- ^ "Lodovico Ferrari".
- ^ Stewart, Ian, Galois Theory, Third Edition (Chapman & Hall/CRC Mathematics, 2004)
- ^ Chávez-Pichardo, Mauricio; Martínez-Cruz, Miguel A.; Trejo-Martínez, Alfredo; Martínez-Carbajal, Daniel; Arenas-Resendiz, Tanya (July 2022). "A Complete Review of the General Quartic Equation with Real Coefficients and Multiple Roots". Mathematics. 10 (14): 2377. doi:10.3390/math10142377. ISSN 2227-7390.
- ^ Chávez-Pichardo, Mauricio; Martínez-Cruz, Miguel A.; Trejo-Martínez, Alfredo; Vega-Cruz, Ana Beatriz; Arenas-Resendiz, Tanya (March 2023). "On the Practicality of the Analytical Solutions for all Third- and Fourth-Degree Algebraic Equations with Real Coefficients". Mathematics. 11 (6): 1447. doi:10.3390/math11061447. ISSN 2227-7390.
- ^ Carstensen, Jens, Komplekse tal, First Edition, (Systime 1981), ISBN 87-87454-71-8. (in Danish)