Finding length of curve created using 'fit' function
    2 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
So I've created a polynomial curve using the 'fit' function based on a range of coordinates. Is there any way of finding the length of the curve that has been created?
line1 = fit(middle_points(:,1),middle_points(:,2),'poly3');
plot(line1);
Thanks for the help in advance.
0 Kommentare
Antworten (2)
  Star Strider
      
      
 am 23 Mai 2014
        
      Bearbeitet: Star Strider
      
      
 am 24 Mai 2014
  
      Using the techniques in Arc Length (and every calculus book I’ve seen), I would use the x and y line coordinates from the line you have already calculated, create in integrand using hypot and then trapz to do the integration:
p = [3 -5 -7 -11];                % Polynomial
x = linspace(0,5);                % Independent variable
y = polyval(p,x);                 % Calculate y-values
CLF = hypot(diff(x), diff(y));    % Calculate integrand from x,y derivatives
CL = trapz(CLF)                   % Integrate to calculate arc length
Using cumtrapz is also a possibility if you are interested in the intermediate values of the arc length.
0 Kommentare
  John D'Errico
      
      
 am 23 Mai 2014
        I'll make some fake data.
x = linspace(-pi/2,pi/2,20);
y = sin(x);
% fit a quintic (degree 5) polynomial
P5 = polyfit(x,y,3);
% differentiate the polynomial
P5der = polyder(P5);
fun = @(x) sqrt(1 + polyval(P5der,x).^2);
integral(fun,-pi/2,pi/2)
ans =
     3.8224
Note that I've also got a function called arclength on the file exchange that will return the arc length, WITHOUT needing to go through the intermediate of a polynomial fit. That polynomial fit may introduce errors that are unacceptable.
Siehe auch
Kategorien
				Mehr zu Smoothing finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


