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

时间:2015-10-28 06:12:34

标签: 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})  
% The coordinates that correspond with the greatest and smallest values  
% above are the maximum and minimum, respectively. 

然而,当我运行它时,我得到四个错误:

  

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

     

sym.getEqnsVars出错(第62行)       checkVariables(VARS);

     

解决错误> getEqns(第450行)[eqns,vars] =   sym.getEqnsVars(argv的{:});

     

求解时出错(第225行)[eqns,vars,options] = getEqns(varargin {:});

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

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

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