vpasolve is a NUMERICAL solver in general. As such, it can generate only one solution to a general nonlinear equation. That solution will be based on where it starts looking.
However, with true polynomials, it can do better. for a polynomial with non-negative integer exponents, vpasolve will find all of the roots. Once you introduce polynomial-like forms but with non-integer exponents, everything goes out the window, and vpasolve is reduced to being only able to find ONE root, based on the starting value it used.
Sorry. While it may LOOK vaguely like a polynomial, once you have fractional exponents in there, things are no longer so easy.
Your final question is if there is any way in MATLAB to remove those fractional exponents. An issue is that sometimes, such a transformation of a problem can introduce spurious solutions that were not solutions to the original problem. So at the very least, you need to verify if that has happened, and discard any garbage that has crept into the solution.
For simple square roots, we can do this.
F1 = simplify(subs(F0,x,y^2),'ignoreanalyticconstraints',true)
Now, we can solve them both using vpasolve.
0.77136987720146542405968841240509 + 2.1125592027732234578638207589021i
- 0.27136987720146542405968841240509 - 1.3060423854087985932930685734426i
- 0.27136987720146542405968841240509 + 1.3060423854087985932930685734426i
0.77136987720146542405968841240509 + 2.1125592027732234578638207589021i
0.77136987720146542405968841240509 - 2.1125592027732234578638207589021i
And we see that ONE of those roots does match what vpasolve found for F0. Are they all true solutions to the original problem?
0.26421020446393276194223113955307 - 1.4176822469931786079840946486996i == 3
0.26421020446393276194223113955307 + 1.4176822469931786079840946486996i == 3
3.0 - 7.346839692639296924804603357639e-40i == 3
3.0 + 7.346839692639296924804603357639e-40i == 3
So indeed, the transformation found 4 roots, two of which are not apparently solutions at all. How interesting. Oh. Yeah. I said that might happen.
Of course, things get exceedingly nasty if the fractional exponents are not simple things. Thus if your original problem had been
F2 = x^3.123456789 - x^2 + x == 3
then it gets more difficult yet. While it may look like a simple polynomial, it is not really so.
2 Comments
Direct link to this comment
https://ch.mathworks.com/matlabcentral/answers/706358-solutions-via-vpasolve-of-an-irradical-equation#comment_1238363
Direct link to this comment
https://ch.mathworks.com/matlabcentral/answers/706358-solutions-via-vpasolve-of-an-irradical-equation#comment_1238363
Direct link to this comment
https://ch.mathworks.com/matlabcentral/answers/706358-solutions-via-vpasolve-of-an-irradical-equation#comment_1242803
Direct link to this comment
https://ch.mathworks.com/matlabcentral/answers/706358-solutions-via-vpasolve-of-an-irradical-equation#comment_1242803
Sign in to comment.