gusucode.com > 高等数学问题求解源码程序 > CH07/Rolle.m

    function varargout=Rolle(fun,range)
%ROLLE   验证函数在某个区间上是否满足罗尔定理
% ROLLE(FUN,RANGE)  以图形的方式演示函数在某个区间上的罗尔定理
% TF=ROLLE(FUN,RANGE)  以图形的方式演示函数在某个区间伤的罗尔定理,
%                          并返回表征函数是否满足罗尔定理的量,TF=1满足;TF=0不满足
% [TF,XI]=ROLLE(FUN,RANGE)  返回表征函数在指定区间上是否满足罗尔定理的量TF和一个罗尔点
%
% 输入参数:
%     ---FUN:函数的MATLAB描述,可以是匿名函数、内联函数和M文件
%     ---RANGE:指定的区间
% 输出参数:
%     ---TF:表征是否满足罗尔定理的量
%     ---XI:罗尔点
%
% See also fzero

fab=subs(fun,range);
tf=0;
if fab(1)~=fab(2)
    disp('函数fun在区间range上不满足罗尔定理.')
    return
else
    tf=1;
end
df=diff(fun);
while 1
    xi=fzero(inline(df),rand);
    if prod(xi-range)<=0
        break
    end
end
if nargout==2 && tf==1
    varargout{1}=tf;
    varargout{2}=xi;
else
    varargout{1}=tf;
    ezplot(fun,range)
    hold on
    plot([xi-diff(range)/10,xi+diff(range)/10],[0,0],'k--')
    title(['\xi=',num2str(xi)])
end
web -broswer http://www.ilovematlab.cn/forum-221-1.html