Solve not finding trivial zero
Show older comments
I have a symbolic function
syms x
f = -25*x*(- 32*x^10 + 660*x^8 + 27400*x^6 + 304500*x^4 + 900000*x^2 - 2671875)
I want to solve for the zeros...
solve(f == 0,x)
and it returns an empty set. For some weird reason, if I divide f(x) by -25x, it spits out 10 complex roots as expected.
solve(f/(-25*x) == 0,x)
6.6919693149784015130684514768684
1.3248772524381469976203144660927
-1.3248772524381469976203144660927
-6.6919693149784015130684514768684
1.1011196125836762425306399367927 - 3.1220589588466888838496981405409*i
- 1.1011196125836762425306399367927 - 3.1220589588466888838496981405409*i
1.1011196125836762425306399367927 + 3.1220589588466888838496981405409*i
- 1.1011196125836762425306399367927 + 3.1220589588466888838496981405409*i
2.9737480666733788426010418554987*i
-2.9737480666733788426010418554987*i
If I recall, a 10th order polynomial is to large for an analytic solution, but I can not figure out why Matlab fails to find the trivial root x=0 ??? The reason why I ask this is because I'm trying to make plots for an arbitrary order polynomial. You give me an polynomial and I make the plot with a red X at the root locations. In the case above, I can see the roots exists in the plot, but unfortunately, Matlab fails to find the roots in my script using the solve command. How do fix this such that my script is more robust?
Accepted Answer
More Answers (0)
Categories
Find more on Conversion Between Symbolic and Numeric in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!