Matlab求一元函数极值

版权声明:本文为Cantjie原创文章,转载需获得博主许可 https://blog.csdn.net/cantjie/article/details/70474008

MATLAB求一元函数极值

命令介绍

此次用的是机房的R2010版本

命令:
1、x=fminbnd(fun,x1,x2) 求出目标函数fun在区间[x1,x2]上的极小值点x;
2、[x,fmin]=fminbnd(fun,x1,x2)求出极小值点x和极小值fmin
3、fminbnd算法基于黄金分割法和二次插值法,要求fun必须是连续函数
4、fun可以用字符串定义也可以用inline函数定义,也可以用.m问加你定义。
但是用M文件时,要在前面加上 句柄操作符 @
[x,fmin]=fminbnd(@fun,x1,x2);

附:ezplot用法:
一元:ezplot(f,[xmin,xmax])

%p191task1.m
%求函数fx=2*exp(-x)*sin(x)在(0,8)内的最大值和最小值
clc,clear;
f='2*exp(-x)*sin(x)';
ezplot(f,[0,8])
%由图 fmax在x=1附近,fmin在x=4附近
[xmin,fmin]=fminbnd(f,3,5);
% f1='-2*exp(-x)*sin(x)';
[xmax,fmax]=fminbnd(['-',f],0,4);
fmax=-fmax
fmin

运行结果:运行结果

%p191task2_1.m
%求[1,8]之间 min(3*sin(x)+x);
clc,clear;
f='3*sin(x)+x';
ezplot(f,[1,8])
[x,fmin]=fminbnd(f,1,8)

运行结果

猜你喜欢

转载自blog.csdn.net/cantjie/article/details/70474008