what is wrong with this?

im trying to use lagrange multipliers to find mins and maxs and this is the code i wrote
syms x y L; f=(x^2)*y; g=x+(y^2)-16;
T=jacobian(f,[x y])-L*jacobian(g,[x y]);
[xsoln,ysoln,Lsoln]=solve(T,g)
im getting the following error messages:
Error using sym.getEqnsVars>checkVariables (line 92)
The second argument must be a vector of symbolic variables.
Error in sym.getEqnsVars (line 62)
checkVariables(vars);
Error in solve>getEqns (line 450)
[eqns, vars] = sym.getEqnsVars(argv{:});
Error in solve (line 225)
[eqns,vars,options] = getEqns(varargin{:});

 采纳的回答

KSSV
KSSV 2016-10-20
编辑:KSSV 2016-10-20
You have to specify for what variable in T has to be solved.
Use
[xsoln,ysoln,Lsoln]=solve(T,[L,x,y])
The above solves for L,x,y
[xsoln,ysoln]=solve(T,[x,y])
The above solves for x,y, in terms of L.
Read the documentation part.

1 个评论

If you were thinking that you were solving for g, then you cannot do that: it is only possible to solve for variables, not for expressions.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by