Solving an Equation 5th degree

19 Ansichten (letzte 30 Tage)
IlPadrino
IlPadrino am 2 Jul. 2018
Bearbeitet: John D'Errico am 2 Jul. 2018
Hi Guys, After i have done some research i need still a little bit explanation and help. I hope that sb can help me.
I have an Equation of 5th degree. I solved this equation with the command solve and i get 5 Solution with roots(...,z)
My Questions:
1. Is there any posibility to get an explicit Solution (like MaxDegree, 5) --> I think not.
2. How can i solve these roots without symbolic Toolbox ? I used vpa() but i don*t want to use the symbolic Toolbox.
3. I think that maybe with an numerical approximation these roots could be solved.Is that right ? Are there any numerical function from Matlab which could be used for that? or which are special for this problem ?
4.Is there any way how i could solve the roots without Symbolic Toolbox or Numeric approximation ? Maybe with a function of Matlab or an self created solver ?

Antworten (2)

James Tursa
James Tursa am 2 Jul. 2018
Bearbeitet: James Tursa am 2 Jul. 2018
5th order polynomials cannot be solved symbolically in general. E.g., see this:
You could get all of the solutions numerically with the roots() function. You could also write your own code to get the roots, but I don't know why you would want to.
EDIT
If you don't want to use the roots() function for some reason, you could pick some method to get one of the guaranteed real roots (e.g. even a simple bisection method will work), then do a polynomial divide using this real root to reduce the 5th order polynomial to 4th order, then calculate the remaining roots explicitly using known formulae. E.g., see general formula for roots of a quartic here:
That being said, I have no idea how much time this will save, or how well/poorly behaved the explicit formulae will be numerically for the specific coefficients you will be using vs the eigenvalue method used by roots().

IlPadrino
IlPadrino am 2 Jul. 2018
Bearbeitet: IlPadrino am 2 Jul. 2018
Thanks JamesTursa for the answer. Do you think maybe it is possible to solve the 5th order polynomial with setting constrains ? For Example i am only interested in Solution which are positive and real.
The problem is that an explicit Solution would ideal:/ The reason is the runtime... If i have an explicit with parameters... i just have to add the parameters to the explicit Solution and i can calculate my result. If i want to do it numerical i have the problem hat if i am changing the parameters i have always to run the approximation again :/ Also i am not allowed to use the symbolic Toolbox in my final skript
  5 Kommentare
John D'Errico
John D'Errico am 2 Jul. 2018
Bearbeitet: John D'Errico am 2 Jul. 2018
You CANNOT have a symbolic, explicit solution. No matter how badly you want it, the mathematically impossible is still just impossible.
Constraints are irrelevant. You cannot just decide that you want only to solve for the real roots analytically. There is no simple way around the mathematical facts.
Anyway, roots is not that slow. In fact, it is pretty fast, certainly so compared to any code that you would write yourself.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by