Solving an Equation 5th degree
26 ビュー (過去 30 日間)
古いコメントを表示
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 ?
0 件のコメント
回答 (2 件)
James Tursa
2018 年 7 月 2 日
編集済み: James Tursa
2018 年 7 月 2 日
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().
0 件のコメント
IlPadrino
2018 年 7 月 2 日
編集済み: IlPadrino
2018 年 7 月 2 日
5 件のコメント
John D'Errico
2018 年 7 月 2 日
編集済み: John D'Errico
2018 年 7 月 2 日
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.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!