请问如何用matlab求函数u = x*y^2*z^3的最值,其中x^2+2*y^2 + z^2 = 1(x > 0; y > 0; z>0)求函数u = x*y^2*z^3的最值,其中x^2 + 2*y^2 + z^2 = 1(x > 0; y > 0; z > 0).我自己编的代码如下syms x y z tu=x*(y^2)*(z^3)v=x^2+2*(y^2)+(z^2
来源:学生作业帮助网 编辑:作业帮 时间:2024/10/05 23:11:11
请问如何用matlab求函数u = x*y^2*z^3的最值,其中x^2+2*y^2 + z^2 = 1(x > 0; y > 0; z>0)求函数u = x*y^2*z^3的最值,其中x^2 + 2*y^2 + z^2 = 1(x > 0; y > 0; z > 0).我自己编的代码如下syms x y z tu=x*(y^2)*(z^3)v=x^2+2*(y^2)+(z^2
请问如何用matlab求函数u = x*y^2*z^3的最值,其中x^2+2*y^2 + z^2 = 1(x > 0; y > 0; z>0)
求函数u = x*y^2*z^3的最值,其中x^2 + 2*y^2 + z^2 = 1(x > 0; y > 0; z > 0).
我自己编的代码如下
syms x y z t
u=x*(y^2)*(z^3)
v=x^2+2*(y^2)+(z^2)-1;
L=u-t*v;
Lx=diff(L,x);
Ly=diff(L,y);
Lz=diff(L,z);
[t x y z]=solve(Lx,Ly,Lz,v);
n=length(x);
for i=1:n
if (x(i)>0)&(y(i)>0)&(z(i)>0)
disp(['函数u=xyz在(',num2str(x(i)),',',num2str(y(i)),',',...num2str(z(i)),')处取得极 值,为',num2str(x(i)*(y(i)^2)*(z(i)^3))]);
end
end
但是报出了?Undefined function or method 'gt' for input arguments of type 'sym'错误,很苦恼不知道该如何修改
请问如何用matlab求函数u = x*y^2*z^3的最值,其中x^2+2*y^2 + z^2 = 1(x > 0; y > 0; z>0)求函数u = x*y^2*z^3的最值,其中x^2 + 2*y^2 + z^2 = 1(x > 0; y > 0; z > 0).我自己编的代码如下syms x y z tu=x*(y^2)*(z^3)v=x^2+2*(y^2)+(z^2
我复制了一下你的程序报错是在z1上,这是solve解法的一个常见错误,你可以用fzero或者fsolve而不要单纯的solve.用matlab做符号运算是不太合适的,matlab都是划分网格数值运算.
如果你用mathematica可以用符号运算解
此外,你这个解法有点太粗糙了.我个人建议你先用lagrange multiplier matlab作为关键词搜索一下例程,比如用jabocian来代替diff都会好很多