Matlab 具有两个输入的fsolve匿名函数
我有以下功能:Matlab 具有两个输入的fsolve匿名函数,matlab,Matlab,我有以下功能: Eq = @(x1, x2) [x1-6, x2+3]; fsolve(Eq, [4 1]) 但会出现以下错误: ??? Input argument "x2" is undefined. Error in ==> @(x1,x2)[x1-6,x2+3] Error in ==> fsolve at 193 fuser = feval(funfcn{3},x,varargin{:}); Error in ==> Untitled at 6 fs
Eq = @(x1, x2) [x1-6, x2+3];
fsolve(Eq, [4 1])
但会出现以下错误:
??? Input argument "x2" is undefined.
Error in ==> @(x1,x2)[x1-6,x2+3]
Error in ==> fsolve at 193
fuser = feval(funfcn{3},x,varargin{:});
Error in ==> Untitled at 6
fsolve(Eq, [4, 1])
当我将函数更改为单输入函数时,它可以完美地工作。有人知道这里发生了什么吗?您将向量[4 1]作为
x1
参数传入
改为这样做:
Eq = @(x) [x(1)-6, x(2)+3];
fsolve(Eq, [4 1])
fsolve
要求函数具有一个参数(向量或矩阵),因此具有两个参数的函数无法工作 在不改变我的方程的情况下,你可以写另一个函数g=@(z)Eq(z(1),z(2))
和dofsolve(g,[41])
。但最终,您必须将单个参数函数传递给fsolve
。