MATLAB Answers

Problems with Solving inequalities in matlab

28 views (last 30 days)
Erik Börjesson
Erik Börjesson on 1 Jan 2021
Answered: Walter Roberson on 2 Jan 2021
Hello, I have a question on how to solve in matlab.
I have tried the following code:
syms x;
f = (sqrt(x+1)-1)/x;
sol = solve(f<(sqrt(2)-1)/2,x);
but I only get the following error:
sol =
Empty sym: 0-by-1
Warning: Unable to find explicit solution. For options, see help.
Is there someone out there who could help?

  0 Comments

Sign in to comment.

Answers (2)

John D'Errico
John D'Errico on 1 Jan 2021
Edited: John D'Errico on 1 Jan 2021
That is not an error. It is a warning message, telling you there is a problem with what you have posed to solve.
There is no explicit solution found, because there are infinitely many solutions.
syms x;
f = (sqrt(x+1)-1)/x;
fplot(f,[-5,100])
yline((sqrt(2)-1)/2);
A solution exists for ALL x, such that the curve is less than the horizontal line drawn. That is to say, whenever x strictly exceeds
xmin = solve(f == (sqrt(2)-1)/2)
xmin = 
vpa(xmin)
ans = 
13.65685424949237156668015607393

Walter Roberson
Walter Roberson on 2 Jan 2021
solve() is pretty inconsistent as to whether it can handle inequalities. When it succeeds and you do not use returnconditions then it picks a representative solution instead of showing the inequality boundaries. For example if the range of solution was 3 to 15 it might say 9, but if it were -1 to 15 it might say 0

  0 Comments

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!