MATLAB solve函数报错

问题遇到的现象和发生背景

算圆外一点与圆的切点坐标

问题相关代码,请勿粘贴截图
function [x,y]=qiedian_old(A,B,r)
[b, k]=solve(['(k*' num2str(B(1)) '-' num2str(B(2)) '+b)^2=' num2str(r) '^2*(1+k^2)'],['(k*' num2str(A(1)) '-' num2str(A(2)) '+b)=0']);
['(k*' num2str(B(1)) '-' num2str(B(2)) '+b)^2=' num2str(r) '^2*(1+k^2)'];
['(k*' num2str(A(1)) '-' num2str(A(2)) '+b)=0'];
k=double(k);
b=double(b);

for i=1:length(k)
    ['x*' num2str(k(i)) '-y+' num2str(b(i)) '=0'];
    ['(y-' num2str(B(2)) ')*' num2str(k(i)) '=' num2str(B(1)) '-x'];
    [x(i), y(i)]=solve(['x*(' num2str(k(i)) ')-y+(' num2str(b(i)) ')=0'],...
        ['(y-(' num2str(B(2)) '))*(' num2str(k(i)) ')=(' num2str(B(1)) ')-x']);
end
x=double(x);y=double(y);

运行结果及报错内容


A = [0 0];
B = [30 30];
R = 10;
调用后报错

img

我的解答思路和尝试过的方法

看不懂这个函数,想知道大概逻辑,和改进方法

我想要达到的结果

解符号方程先申明符号,再进行求解

syms x
solve(x^2-2*x+1, x)

结果:

ans =
 
 1
 1