MATLAB Answers

Explicit solution could not be found. using solve command

3 views (last 30 days)
Atique Khan
Atique Khan on 20 Dec 2019
Commented: Dyuman Joshi on 22 Dec 2019
b= solve ('(b^2 + a)^(3/2)*(2* b^3 - a^3 - 1) - b^3 - a^3*b^3 + 2* a^3=0','b')
Warning: Explicit solution could
not be found.
KINDLY HELP WHY I AM GETTING THIS ERROR
THANKS

  0 Comments

Sign in to comment.

Answers (1)

Dyuman Joshi
Dyuman Joshi on 21 Dec 2019
Instead of using '=' operator in the solve command, use '==' operator.
Also, it would be better to include the whole first term in a parenthesis .
syms a b
b = solve (((b^2 + a)^(3/2))*(2*b^3 - a^3 - 1) - b^3 - a^3*b^3 + 2*a^3==0,'b')
'=' is used to assign a value to a variable, while '==' is used for determining equality of any two variables.
(variables meaning numbers/elements/rows/columns/matrices etc)

  4 Comments

Show 1 older comment
Dyuman Joshi
Dyuman Joshi on 21 Dec 2019
That is why I have used the updated syntax for using the 'solve' in-built function as referred in the webpage.
Walter Roberson
Walter Roberson on 21 Dec 2019
Since R2018b you would need to use b or sym('b') as the second parameter of solve(), instead of 'b'
R2013b was just not able to deal with these kinds of equations.
Current MATLAB are able to do more than R2013b could do, if you do
syms a b real
S = solve (((b^2 + a)^(3/2))*(2*b^3 - a^3 - 1) - b^3 - a^3*b^3 + 2*a^3==0, b, 'returnconditions', true);
Sch = children(S.conditions);
p = collect(Sch(2), S.parameters);
pc = coeffs(lhs(p), S.parameters, 'all')
p is now a polynomial of degree 12, and pc is the vector of coefficients in descending order, suitable for passing to roots()

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!