www.gusucode.com > 高等数学问题求解源码程序 > CH07/Extremum.m
function [X,FVAL,TYPE]=Extremum(fun,range) %EXTREMUM 求函数在指定区间上的极值点及极值 % X=EXTREMUM(FUN,RANGE) % [X,FVAL]=EXTREMUM(...) % [X,FVAL,TYPE]=EXTREMUM(...) % % 输入参数: % ---FUN:函数的符号表达式 % ---RANGE:求值区间 % 输出参数: % ---X:极值点 % ---FVAL:极值 % ---TYPE:极值类型描述 % % See also diff, solve x=sym('x','real'); s=symvar(fun); if length(s)>1 error('函数fun必须只包含一个符号变量.') end if ~isequal(x,s) fun=subs(fun,s,x); end df=diff(fun); x0=unique(double(solve(df))); d2f=diff(df); N=length(x0); X=[]; for kk=1:N if prod(x0(kk)-range)<=0 X=[X,x0(kk)]; end end FVAL=subs(fun,X); D=subs(d2f,X); TYPE=cell(1,N); for k=1:N if D(k)==0 TYPE{k}='不确定'; elseif D(k)>0 TYPE{k}='极小值'; else TYPE{k}='极大值'; end end web -broswer http://www.ilovematlab.cn/forum-221-1.html