Borrar filtros
Borrar filtros

How to find x value for a known Y in array?

4 visualizaciones (últimos 30 días)
Zeyad Elreedy
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?

Respuesta aceptada

Torsten
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)
i = 1×3
31 62 94
x_root = x(i)-y(i).*(x(i+1)-x(i))./(y(i+1)-y(i))
x_root = 1×3
3.1416 6.2832 9.4248
[pi,2*pi,3*pi]
ans = 1×3
3.1416 6.2832 9.4248
  4 comentarios
Torsten
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))
Zeyad Elreedy
Zeyad Elreedy el 12 de Dic. de 2022
I understand now. Thanks a lot!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by