Given a n by m matrix representing m vectors in n dimensions. Calculate the arc length of the closed loop curve going though these points in the order that they are given. The parametric curve, c(t) , between points p(k) and p(k+1) is defined as,
c(t) = p(k-1) * (-t/2+t^2-t^3/2) + p(k) * (1-5/2*t^2+3/2*t^3) + p(k+1) * (t/2+2*t^2-3/2*t^3) + p(k+2) * (-t^2/2+t^3/2),
where t goes from 0 to 1. These interpolation polynomials can also be found using the constraints c(0)=p(k), c(1)=p(k+1), c'(0)=(p(k+1)-p(k-1))/2 and c'(1)=(p(k+2)-p(k))/2.
For example for the points
points = [[1; 0] [0; 1] [-1; 0] [0; -1]];
would yield to following curve:
Solution Stats
Problem Comments
Solution Comments
Show commentsProblem Recent Solvers5
Suggested Problems
-
3737 Solvers
-
Find and replaces spaces from a input string with *
171 Solvers
-
70 Solvers
-
183 Solvers
-
Sum the real and imaginary parts of a complex number
144 Solvers
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
How confident are you that your answers are correct to the tolerances you have specified?
Have not tried the problem yet but tolerances seem below eps(dist_correct) in several cases, could you perhaps just relax these a bit?
I relaxed the tolerances in the test suite.