Matlab - Encontrar máximos y mínimos de una función

 
Vista:

Encontrar máximos y mínimos de una función

Publicado por Pablo (1 intervención) el 13/03/2019 16:12:12
Muy buenas compañer@s,

Tengo un problema con Matlab, ya que me dan una función con diferentes valores y tengo que encontrar los máximos y mínimos. He pensado calcular la derivada de la función y guardar los valores de x de esta en los que la derivada dé 0. Luego, derivar estos valores y ver si son >0 o <0 para saber si son máximos o mínimos. La cosa es que no sé cómo programarlo con Matlab. ¿Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Encontrar máximos y mínimos de una función

Publicado por Daniel (354 intervenciones) el 14/03/2019 09:22:12
Hola,

La idea es buena pero no tiene en cuenta que mediante una derivada numérica es complicado que aparezca un cero. Para identificar la posición de los extremos es necesario buscar los puntos en los que la derivada cambia de signo. Afortunadamente Matlab incluye la función diff para calcular la derivada numérica. Así para buscar los máximo y mínimos se puede utilizar el siguiente método.

1
2
3
4
5
6
7
8
9
x = 0:0.01:2;
y = sin(pi * x);
 
dy = diff(y);
pos_min = find(diff(sign(dy)) == 2);
pos_max = find(diff(sign(dy)) == -2);
 
x(pos_min + 1)
x(pos_max + 1)

En este dy es la diferenciación numérica de y. Posteriormente se buscan los puntos donde el signo de la derivada numérica es 2 para los máximos y -2 para los mínimos.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar