MATLAB: Solve function not working

solve

Well here my code:
clear all
clear vars
syms x y
y=1+(x).^(2)
x=-1
a=subs(y)
x=3
b=subs(y)
c=(b-a)./(4)
yy=diff(y)
disp(yy)
ans=solve(yy==c,x)
disp(ans)
And according to me 2x=2 and hence x=1 therefore a solution must exist but the output is Empty sym: 0-by-1

Best Answer

You have
x=3
so when you do
ans=solve(yy==c,x)
that is the same as
ans=solve(yy==c,3)
and 3 is never equal to 0, so the system is unsolvable.
I recommend that you avoid this problem in future by never assigning a value to a symbolic variable that has been used in an expression -- not unless you proceed to immediately overwrite the expression with the new variation on the variable. Use the three-parameter version of subs() instead.
x1=-1
a=subs(y,x,x1)
x2=3
b=subs(y,x,x2)
Now x is still a symbolic variable.