www.gusucode.com > 高等数学问题求解源码程序 > CH08/ArcLength.m

    function L=ArcLength(varargin)
%ARCLENGTH   计算平面曲线的弧长
% L=ARCLENGTH(FUNX,FUNY,T,ALPHA,BETA,'dicarl')  计算直角坐标系下由参数方程
%                                                        所描述的平面曲线的弧长
% L=ARCLENGTH(FUN,T,ALPHA,BETA,'polar')  计算极坐标系下有FUN所描述的曲线的弧长
%
% 输入参数:
%     ---FUNX,FUNY:直角坐标系下平面曲线的参数方程
%     ---FUN:平面曲线的极坐标方程
%     ---ALPHA,BETA:积分的下限与上限
%     ---TYPE:坐标系类型,TYPE有以下两种取值:
%               1.'dicarl'或'd'或1:直角坐标系
%               2.'polar'或'p'或2:极坐标系
% 输出参数:
%     ---L:返回的平面曲线的弧长
%
% See also int

args=varargin;
type=args{end};
switch lower(type)
    case {1,'d','dicarl'}
        [funx,funy,t,alpha,beta]=deal(args{1:5});
    case {2,'p','polar'}
        [fun,t,alpha,beta]=deal(args{1:4});
        funx=fun*cos(t);
        funy=fun*sin(t);        
    otherwise
        error('Illegal options.')
end
dfx=diff(funx,t);
dfy=diff(funy,t);
L=simple(int(sqrt(dfx^2+dfy^2),t,alpha,beta));
web -broswer http://www.ilovematlab.cn/forum-221-1.html