三.求曲线长度 【例5-4-3】设曲线方程及定义域为: f(x)=V1-x2,-1≤x≤1 用计算机做如下工作: ()按给定区间画出曲线,再按n=2,4,8份分割并画出割线。 (b)求这些线段长度之和,作为弧长的近似值。 (©)用积分来估算弧长,并与用割线计算的结果比较。 解:◆原理:先按分区间算割线长度的方法编程,然后令 分段数不断增加求得其精密的结果,最后可以与解析结果 进行比较。因此编程应该县有普遍性,能由用户设定段数, 并在任何分段数下算出结果
三.求曲线长度 【例5-4-3】设曲线方程及定义域为: 用计算机做如下工作: (a) 按给定区间画出曲线,再按n=2,4,8份分割并画出割线。 (b) 求这些线段长度之和,作为弧长的近似值。 (c) 用积分来估算弧长,并与用割线计算的结果比较。 解:◆原理:先按分区间算割线长度的方法编程,然后令 分段数不断增加求得其精密的结果,最后可以与解析结果 进行比较。因此编程应该具有普遍性,能由用户设定段数, 并在任何分段数下算出结果。 2 f x x x ( ) 1 , 1 1 = − −
求曲线长度的程序exn543 n=input('分段数日n=),%输入分段数目 x=linspace(-1,1,n+1); %设定x向量 y=sqrt(1-x.^2); %求y向量 plot(x,y),hold on %绘图并保持 Dx=dif(X);%求各段割线的x方向长度 %x向量长度为n+1,Dx是相邻x元素的差,其元素数为n Dy=diff(y); %Dy是相邻两个y元素的差 Ln=sqrt(Dx.^2+Dy.^2); %求各割线长度 L=sum(Ln) %求n段割线的总长度
求曲线长度的程序exn543 n=input('分段数目n= '), % 输入分段数目 x=linspace(-1,1,n+1); % 设定x向量 y=sqrt(1-x.^2); % 求y向量 plot(x,y), hold on % 绘图并保持 Dx=diff(x); % 求各段割线的x方向长度 % x向量长度为n+1,Dx是相邻x元素的差,其元素数为n Dy=diff(y); % Dy是相邻两个y元素的差 Ln=sqrt(Dx.^2+Dy.^2); % 求各割线长度 L=sum(Ln) % 求n段割线的总长度
程序exn543的运行结果 ·程序运行后得到图5-32,在不同的n下,其数值结果为: n=2, L=2.82842712474619 ·n=4, L=3.03527618041008 ·n=8, L=3.10449606777484 ·n=1000L=3.14156635621648 ·我们已经可以大致猜测出它将趋向于π,精确的极限值可 用下列符号数学语句导出。 >x=syms x,y=sqrt(1-x2),L=int(sqrt(1+diff(y)^2),-1,1) 这个程序其实有相当的通用性,不同的被积函数,只要改 变其中的一条函数赋值语句,并相应地改变自变量的赋值 范围就行了
程序exn543的运行结果 • 程序运行后得到图5-32,在不同的n下,其数值结果为: • n=2, L = 2.82842712474619 • n= 4, L = 3.03527618041008 • n= 8, L = 3.10449606777484 • n= 1000 L = 3.14156635621648 • 我们已经可以大致猜测出它将趋向于π,精确的极限值可 用下列符号数学语句导出。 • >> x=syms x,y= sqrt(1-x^2),L=int(sqrt(1+diff(y)^2),-1,1) • 这个程序其实有相当的通用性,不同的被积函数,只要改 变其中的一条函数赋值语句,并相应地改变自变量的赋值 范围就行了