Effacer les filtres
Effacer les filtres

How do we allocate equidistant points on a sinusoidal curve?

7 vues (au cours des 30 derniers jours)
Satyajit Ghosh
Satyajit Ghosh le 19 Oct 2021
Commenté : Satyajit Ghosh le 20 Oct 2021
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!

Réponse acceptée

Matt J
Matt J le 19 Oct 2021
Modifié(e) : Matt J le 19 Oct 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

Plus de réponses (1)

Matt J
Matt J le 19 Oct 2021

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by