请问我的solve怎么改才好啊

【matlab】求帮忙指点,感激不尽!
命令窗口报错:

ok
错误使用 sym/solve (第 266 行)
Specify the variable to solve for.
出错 ok (第 31 行)
a=solve(fxa);

clear
x0=[12;10]; %初始点
xk=x0; %当前迭代点
ideal_error=10^(-7); %设置收敛精度
actural_error=1; %实际收敛精度
d=zeros(2,2);  %初始化搜索方向
d(:,1)=[1;0];
d(:,2)=[0;1];
Inc=zeros(2,1); %初始化增量方向
k=0; %初始化迭代变量
MaxLoopNum=100; %初始化最大迭代次数
while(actural_error>ideal_error && kxktemp=xk;
    fun1=fun(x1,x2);
    fun1=inline(fun1);
    f0=feval(fun1,xk(1),xk(2));
    F0=f0; %求初始点处函数值
    if k>0
        F0=eval(F0);
    end
    syms a; %沿d1方向进行一维搜索
    syms xl;
    syms x2;
    xk1=xk+a*d(:,1);
    xl=xk1(1);
    x2=xk1(2);
    fun1=fun(x1,x2);
    fxa=diff(fun1,'a');
    a=solve(fxa);
    xk1=inline(xk1);
    xk1=feval(xk1,a);
    xk1(1)=eval(xk1(1));
    xk1(2)=eval(xk1(2));
    syms xl;
    syms x2;
    fun1=fun(x1,x2);
    fun1=inline(fun1);
    f1=feval (fun1,xk1(1),xk1(2));
    f1=eval(f1);
    Inc(1)=f0-f1;

    syms a; %沿d2方向进行一维搜索
    syms xl;
    syms x2;
    xk2=xk1+a*d(:,2);
    x1=xk2(1);
    x2=xk2(2);
    fun1=fun(x1,x2);
    fxa=diff(fun1,'a');
    a=solve(fxa);
    xk2=inline(xk2);
    xk2=feval(xk2,a);
    xk2(1)=eval(xk2(1));
    xk2(2)=eval(xk2(2));
    syms xl;
    syms x2;
    fun1=fun(x1,x2);
    fun1=inline(fun1);
    f2=feval(fun1,xk2(1), xk2(2));
    f2=eval(f2);
    F2=f2;
    Inc(2)=f1-f2;
    [Incm,row]=max(Inc);

    x3=2*xk2-xk; %计算映射点
    syms xl;
    syms x2;
    fun1=fun(x1,x2);
    fun1=inline(fun1);
    f3=feval(fun1,x3(1),x3(2));
    f3=eval(f3);
    F3=f3;
    templ=(F0-2*F2+F3)*(F0-F2-Incm)^2;
    temp2=0.5*Incm*(F0-F3)^2;

    if (F3xk=xk2+a*d(:,row)
        xl=xk(1);
        x2=xk(2);
        fun1=fun(x1,x2);
        fxa=diff(fun1,'a');
        a=solve(fxa);
        xk=inline(xk);
        xk=feval(xk,a);
    else if F2xk=xk2;
         else
            xk=x3;
         end
    end
    xkerror=eval(xk2-xktemp);
    actural_error=norm(xkerror);
    k=k+1;
end
x=eval(xk);
function f=fun(x1,x2)
f=3*(x1+x2-2)^2+(x1-x2)^2;
end