matlab 求单/多元函数极值
单元函数极值:
平时如果手算的话,就会先求导数,再求驻点,最终代值算出极值,如果用matlab代码求的话,就可以减少很多不必要的计算。
fun=inline('0.5-x.*exp(-x.^2)');
ezplot(fun,[0,2]);
hold on
[x0,y0]=fminbnd(fun,0,2);
plot(x0,y0,'o')
多元函数极值:
fun=inline('2*x(1).^3+4*x(1).*x(2).^3-10*x(1)*x(2)+x(2).^2');
x=fminsearch(fun,[0,0])
z=fun(x)
多元函数极值(作图):
g=inline('2*x.^3+4*x.*y.^3-10*x.*y+y.^2')
[x1,y1]=meshgrid(-1:0.2:2);
z1=g(x1,y1);
mesh(x1,y1,z1);
x10=x(1);
y10=x(2);
hold on
plot3(x10,y10,z,'ro')