使用fsolve求解方程,未知数不能使用多个变量符号,而是应该把多个未知数写成一个向量。
例如,对于你现在的两个问题,应该用x(1)表示x,x(2)表示y:
>> f=@(x)[x(1)*2+3*x(2)+1;x(2)*2+4*x(1)+1];
>> fsolve(f,[1 1])
ans =
-0.1250 -0.2500
>> fun=@(x)([x(1).^2+x(2).^2-1,x(1)-2*x(2)]);
>> fsolve(fun,[1 1])
ans =
0.8944 0.4472
不过,对你现在这两个方程组来说,都可以使用solve函数求精确解:
>> syms x y
>> vb=x*2+3*y+1;
>> vc=y*2+4*x+1;
>> [x,y]=solve(vb,vc)
x =
-1/8
y =
-1/4
>> syms x y
>> [x,y]=solve(x.^2+y.^2-1,x-2*y)
x =
(2*5^(1/2))/5
-(2*5^(1/2))/5
y =
5^(1/2)/5
-5^(1/2)/5
尤其第二组方程,有多个解,用solve函数可以直接求出来。