How do we allocate equidistant points on a sinusoidal curve?

14 visualizaciones (últimos 30 días)
The analytic equation is given below.
y=-25*sin((2*pi/50)*x);
Graph of above equation is given below.
What I exactly want is to allocate discrete equidistant points on this sinusoid curve. The step distance is 0.004. Basically, I have to solve the below equation starting from initial (x,y)=(0,0) point and use next point to calculate further point one by one.
(x-x_p).^2+(y-y_p).^2=(0.004)^2
=> (x-x_p).^2+(-25*sin(2*pi/50)*x)+25*sin(2*pi/50)*x_p)).^2=(0.004)^2
Here (x_p,y_p) is the previous point. But above equation is a trancendental equation. I am unable to solve it.
Thanks in advance!

Respuesta aceptada

Matt J
Matt J el 19 de Oct. de 2021
Editada: Matt J el 19 de Oct. de 2021
You can use fzero,
x_p=0;
y=@(x) -25*sin((2*pi/50)*x);
fun=@(d) d.^4+( y(x_p+d^2)-y(x_p)).^2 - 0.004^2;
x=x_p+fzero(fun,0).^2
x = 0.0012
Check:
norm([x-x_p, y(x)-y(x_p)])
ans = 0.0040

Más respuestas (1)

Matt J
Matt J el 19 de Oct. de 2021

Categorías

Más información sobre Programming en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by