MATLAB Answers


error using Solve with inequality

Asked by Shan Chu on 7 Jun 2019
Latest activity Commented on by Shan Chu on 10 Jun 2019
Hi all,
I am facing a strange problem with using Solve with inequality.
Could you please help?


on 7 Jun 2019
Why strange ?
4^2-4*4+3 > 0 and 0^2-4*0+3 > 0
as well as
e^2-4*e+3 < 0 and 2^2-4*2+3 < 0
I thought that the solve function would give me the intervals where the inequality is valid.
Instead, it gave me 2 specific values inside those intervals. (of course they are correct).
I saw the document about solve in matlab website. Why shoudn't it give me the intervals like in the website. I included the pics below

Sign in to comment.

1 Answer

Answer by John D'Errico
on 10 Jun 2019
Edited by John D'Errico
on 10 Jun 2019
 Accepted Answer

You did not follow the example carefully.
syms x
>> S = solve(x^2 - 4*x + 3 < 0,'returnconditions',true)
S =
struct with fields:
x: [2×1 sym]
parameters: [1×2 sym]
conditions: [2×1 sym]
>> S.conditions
ans =
1 < x & x < 3
in(y, 'real')
Note the use of returnconditions. Without that, it gives a solution, but not the interval that you desire. So if I drop that property, we get a solution. It is valid, as you say. But just a solution.
S = solve(x^2 - 4*x + 3 < 0)
S =

  1 Comment

Oh I see it now. Thank John.

Sign in to comment.