使用拉格朗日乘数时的MATLAB错误?

使用拉格朗日乘数时的MATLAB错误?,matlab,Matlab,我有一段代码,在运行时,应该正确地使用拉格朗日乘数来查找函数的最大值/最小值: clear all syms x y L; f = x^4+2*y^4; g = x^2+5*y^2+2*y^2-10; firstpart=jacobian(f,[x y])-L*jacobian(g,[x y]); [Lsoln,xsoln,ysoln]=solve(firstpart,x^2+5*y^2+2*y^2-10); subs(f,{x,y},{xsoln,ysoln}) %

我有一段代码,在运行时,应该正确地使用拉格朗日乘数来查找函数的最大值/最小值:

clear all  
syms x y L;  
f = x^4+2*y^4;  
g = x^2+5*y^2+2*y^2-10;  
firstpart=jacobian(f,[x y])-L*jacobian(g,[x y]);  
[Lsoln,xsoln,ysoln]=solve(firstpart,x^2+5*y^2+2*y^2-10);  
subs(f,{x,y},{xsoln,ysoln})  
% The coordinates that correspond with the greatest and smallest values  
% above are the maximum and minimum, respectively. 
但是,当我运行它时,会出现四个错误:

第二行使用sym.getEqnsVars>checkVariables时出错 参数必须是符号变量的向量

sym.getEqnsVars第62行出错 checkVariablesvars

solve>getEqns第450行[eqns,vars]中出错= sym.getEqnsVarsargv{:}

解算第225行[eqns,vars,options]中的错误=getEqnsvarargin{:}


有人能帮忙吗?

你要传递两个方程作为单独的参数来求解,这是不可能的。您必须将两者都放入一个数组中

 [Lsoln,xsoln,ysoln]=solve([firstpart,x^2+5*y^2+2*y^2-10] );