MATLAB: How can I solve two equations with two unknown variable using matlab

#equationsolver

I want to solve two equations with two unknown variables I have two equations (-x)*(x1 – x) + (r – y)*(y1 – y) = 0, (x1 – x)^2 + (y1 – y)^2 = z^2, where, x1,y1,r and z are known values. The values can be used as the inputs to the program.
what I tried is,
syms x y
eqns = [x^2 +y^2 - x*point_x - y*point_y + r*point_y - r*y == 0 ,...
(point_x - x)^2 + (point_y - y)^2 == length_tang^2];
vars = [x y];
[a,b] = solve(eqns,vars);
but it takes too much time and then gives no values.

Best Answer

point_x = 2;
point_y = 4;
length_tang = 1
r = 5;
syms x y
E = [(-x)*(point_x - x) + (r - y)*(point_y - y) == 0, (point_x - x)^2 + (point_y - y)^2 == length_tang^2];
S = solve(E,x,y)
S = 
  struct with fields:
      x: [2×1 sym]
      y: [2×1 sym]
S.x
ans =
   2
 6/5
S.y
ans =
    5
 17/5

Too slow? It came back virtually instantaneously.

timeit(@() solve(E,x,y))
ans =
      0.19394

0.2 seconds is too slow?

Note that it is probably possible for SOME sets of inputs, there is no real valued solution at all.