% 思路:将曲线等分为n多小段,则每一段近似为直线,可以使用直线长度公式求出每一段长度,然后求总和
>> clear;
>> dx=0.1; % 等分间距为0.1
>> x = 1:dx:10; % 生成每一份的x坐标
>> f = @(x) x.^3+x.^2-5*x; % 曲线
表达式函数
>> y1 = f(x(1:length(x)-1)); % 第1到n-1个点的y坐标
>> y2 = f(x(2:length(x))); % 第2到n个点的y坐标
>> l = sum(sqrt(dx^2+(y2-y1).^2)) % 求出每一段长度并求总和
l =
1.053249398296283e+003
可以使用曲线积分 验证此结果:
>> quad(@(x)sqrt(1+(3*x.^2+2*x-5).^2),1,10)
ans =
1.053253012192356e+003