solutions via vpasolve of an irradical equation

조회 수: 4 (최근 30일)
Himanshu SINGLA
Himanshu SINGLA 2021년 1월 1일
댓글: Himanshu SINGLA 2021년 1월 4일
S = vpasolve(x^(6/4) - x^2 == 3, x)
S = 0.77136987720146542405968841240509 + 2.1125592027732234578638207589021i
>> S = vpasolve(x^4 - x^3 +6*x^2 +9 == 0, x)
S= - 0.27136987720146542405968841240509 - 1.3060423854087985932930685734426i
- 0.27136987720146542405968841240509 + 1.3060423854087985932930685734426i
0.77136987720146542405968841240509 + 2.1125592027732234578638207589021i
0.77136987720146542405968841240509 - 2.1125592027732234578638207589021i
When I apply VPASOLVE on irradical equation i get only one solution. And when i Removed radical by squaring it, it turned in to polynomial and giving me 4 roots, out of which one root is same as that of original irradical equation.
Why vpasolve of irradical equation result in to one solution? It may be possible that a given irradical equation can contain more that one solution.
And if There are more than two solutions of irradical equation then how to verify (via some command) which roots of polynomial will satisfy original irradical equation?
And is there any way to matlab to remove radicals and change the irradical equation in to polynomial.
  댓글 수: 2
John D'Errico
John D'Errico 2021년 1월 1일
Sigh, PLEASE STOP POSTING duplicate questions. This is not any different from the last one you posted and got an answer to.
Himanshu SINGLA
Himanshu SINGLA 2021년 1월 4일
In that question,actually there were no irradicals in equation. As i mistakenely square the terms in matrix .

댓글을 달려면 로그인하십시오.

채택된 답변

John D'Errico
John D'Errico 2021년 1월 1일
편집: John D'Errico 2021년 1월 1일
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.
syms x y
F0 = x^(6/4) - x^2 == 3;
F1 = simplify(subs(F0,x,y^2),'ignoreanalyticconstraints',true)
F1 =
y^4 + 3 == y^3
Now, we can solve them both using vpasolve.
vpasolve(F0)
ans =
0.77136987720146542405968841240509 + 2.1125592027732234578638207589021i
x1sol = vpasolve(F1).^2
x1sol =
- 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?
subs(F0,x,x1sol)
ans =
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.
  댓글 수: 1
Himanshu SINGLA
Himanshu SINGLA 2021년 1월 4일
편집: Himanshu SINGLA 2021년 1월 4일
Okay, Thankyou so much.
In my problem, I have an equation (result of 5 by 5 matrix) containing irradicals. I manually squared it four timesand removed all irradicals like in above example.
But while running the program, some terms exceed more than 25000 characters and program get stuck.
how to deal with this?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Descriptive Statistics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by