Find roots of a first order differential equation

3 visualizaciones (últimos 30 días)
Elena Boschet
Elena Boschet el 21 de Oct. de 2021
Comentada: Star Strider el 21 de Oct. de 2021
Hello
I have a created a function in matlab:
function [fx] = Function(x, r)
fx = r - 2*cos(x);
end
Now I would like to find the zero points of the function for r = 1 and x between - 2pi and 2pi.
Thank you!

Respuesta aceptada

Star Strider
Star Strider el 21 de Oct. de 2021
Try this —
r = 1;
x = linspace(-2*pi, 2*pi, 25);
y = Function(x,r);
zxidx = find(diff(sign(y))); % Indices Of Approximate Zero-Crossings
for k = 1:numel(zxidx)
x0(k) = fzero(@(x)Function(x,r),x(zxidx(k)));
end
x0(:)
ans = 4×1
-5.2360 -1.0472 1.0472 5.2360
figure
plot(x, y, '-b', x0,zeros(size(x0)),'or')
grid
function [fx] = Function(x, r)
fx = r - 2*cos(x);
end
.
  2 comentarios
Elena Boschet
Elena Boschet el 21 de Oct. de 2021
Thank you so much, real MVP! :)
Star Strider
Star Strider el 21 de Oct. de 2021
As always, my pleasure!
Thank you!
.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by