How to find x value for a known Y in array?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Zeyad Elreedy
el 11 de Dic. de 2022
Comentada: Zeyad Elreedy
el 12 de Dic. de 2022
I have x and y arrays for a sine wave. I am trying to find the x value for when y is equal to 0, since the y array does not contain a value of 0. How can I do so?
0 comentarios
Respuesta aceptada
Torsten
el 11 de Dic. de 2022
Editada: Torsten
el 11 de Dic. de 2022
x = 0.1:0.1:4*pi-0.1;
y = sin(x);
i = find(y(1:end-1).*y(2:end) <= 0)
x_root = x(i)-y(i).*(x(i+1)-x(i))./(y(i+1)-y(i))
[pi,2*pi,3*pi]
4 comentarios
Torsten
el 11 de Dic. de 2022
Editada: Torsten
el 11 de Dic. de 2022
I determine x(i) and x(i+1) between which y changes sign. Then I approximate the zero between x(i) and x(i+1) by linear interpolating between the points (x(i),y(i)) and (x(i+1),y(i+1)) and determining the x_root value as the x-value where this line crosses the x-axis.
So interp1 is implicitly used in the line
x_root = x(i)-y(i).*(x(i+1)-x(i))./(y(i+1)-y(i))
Más respuestas (0)
Ver también
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!