How do we allocate equidistant points on a sinusoidal curve?

14 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

Matt J
Matt J il 19 Ott 2021
Modificato: Matt J il 19 Ott 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

Più risposte (1)

Matt J
Matt J il 19 Ott 2021

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by