How to find zeros of a function?
Mostrar comentarios más antiguos
For instance,
x = -3.55:0.1:3.55;
y = x.^2 - 4;
Obviously, when x=2 or -2, y=0.
But I want to know how to use matlab to find zeros of a function y = f(x) when x is a matrix defined by the user like the above case.
3 comentarios
Mark Sherstan
el 17 de Dic. de 2018
Akira Agata
el 17 de Dic. de 2018
If your function is always polynomial, you can use roots function to do this task. Please look at the following help page.
Respuestas (3)
Alexander
el 25 de Feb. de 2024
If it's not a function but meassured data I would go like this in a first try:
x = -3.55:0.0001:3.55; % assuming 10 kHz sample frequency
y = x.^2 - 4;
yS = sign(y);
dyS = diff(yS);
Z=find(dyS ~= 0);
x(Z)
1 comentario
DAVID
el 20 de Sept. de 2024
This was really elegant, thanks!
Wenjie
el 17 de Dic. de 2018
3 comentarios
Walter Roberson
el 17 de Dic. de 2018
However this is not suitable for the case where x is a matrix like you asked in your Question.
fzero() itself is also not suitable for the case where you have an array-valued (probably multivariate) function: you need fsolve() from the Optimization Toolbox for that.
Nico
el 25 de Feb. de 2024
What does the @(x) and the 3 mean? Sorry I'm university student with no experience...
Dyuman Joshi
el 25 de Feb. de 2024
Editada: Dyuman Joshi
el 25 de Feb. de 2024
Walter Roberson
el 17 de Dic. de 2018
0 votos
x(y==0)
Note that this can miss an indefinite number of zeroes of a function if the x do not happen to sample at the right places . It also will not detect zero crossings between x values . You could make use of the results to get hints about zero crossings .
Categorías
Más información sobre Mathematics en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!