i cannot find all x values from abs(x) using solve() function

2 views (last 30 days)
syms x
y=abs(x);
r=solve(y==1,x);
ans=
r = 1
but x can be 1 as well as -1,why doesnt they show -1 as well

Answers (1)

Steven Lord
Steven Lord on 30 Sep 2021
Tell solve to show you the parameterized solution and the conditions that those parameters need to satisfy in order for the parameterized solution to be valid.
syms x
y=abs(x);
r=solve(y==1,x, 'ReturnConditions', true)
r = struct with fields:
x: exp(y*2i) parameters: y conditions: y <= pi & 0 <= y
x isn't the set [1, -1]. But that's because there are complex solutions.
yy = exp(1i/2) % This is r.x with parameter y = 1/4
yy = 0.8776 + 0.4794i
abs(yy)
ans = 1
Or if you only want real solutions tell solve that:
r=solve(y==1,x, 'ReturnConditions', true, 'Real', true)
r = struct with fields:
x: [2×1 sym] parameters: [1×0 sym] conditions: [2×1 sym]
r.x
ans = 

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!