Maximos Mínimos y Puntos
Críticos de una función
Con cierta frecuencia nos encontramos con la necesidad de buscar la mejor forma
de hacer algo. En muchas ocasiones a través de los poderosos mecanismos
de calculo diferencial es posible encontrar respuesta a
estos problemas, que de otro modo parecería imposible su
solución.
Por el contrario, si una función continua es decreciente en cierto
intervalo hasta un punto en el cual empieza a
ascender, a este punto lo llamamos punto crítico mínimo relativo,
o simplemente mínimo.
Los maximos y mínimos de una función conocidos como
extremos de una función, son valores mas grandes (maximos) o
mas pequeños (mínimos) que toma una función en un
punto situado ya sea dentro de una región en particular de la curva o en
el dominio de función en su totalidad.
Entre los valores q puede tener una función (Y) puede haber
uno que sea el mas grande y otro que sea el mas pequeño. A estos valores se les llama respectivamente punto
maximo y punto mínimo absolutos.
Si una función continua es ascendente en un intervalo y a partir de un
punto cualquiera empieza a decrecer, a ese punto se le conoce como punto
crítico maximo relativo, aunque comúnmente se le llama
solo maximo.
Calcular Maximos y Mínimos
Pasos:Hallar la primera derivada de la función
Buscar números para sustituir en la variable, tales que f(x)=0
Se realiza la segunda derivada
Se sustituye x por los valores encontrados en el punto 2, se mira el resultado
y si:
f^'' (x)>0 Tenemos un mínimo.
f^'' (x) 0
Ejemplos de puntos críticos
Ejemplo # 1
Y = x^2 - 2x +7
Y’ = 2x - 2 Derivando
Igualando a 0 para los puntos criticos
2x-2 = 0
X = 2/2 Resolviendo
X = 1
Ejemplo # 2
Y = 3x^2 – 4x – 9 (1)
Y’ = 6x – 4 Derivando
Puntos crriticos ( igualando a 0 )
6x – 4 = 0
X = 2/3
Ejemplos de Maximos y Mínimos
Ejemplo # 1
f(x) = x^2 – 10 x + 28
f’(x) = 2x – 10 Primera Derivada
Puntos críticos (igualando a 0)
X = 5
Segunda Derivada:
f’’(x) = 2
f(5) = 5^2 – 10(5) + 28 = 3 > 0 (valor mínimo)
Ejemplo # 2
f(x) = x^2 – 6x + 3
f’(X) = 2x - 6 Primera Derivada
Puntos críticos (igualando a 0)
2x – 6 = 0 Resolviendo
X = 3
Segunda Derivada:
2. Se toma el segundo elemento y se lo compara con los otros elementos viendo
si se cumple o no la misma condición que el anterior, hasta el
último de la lista a ordenarse.
Procedimiento:
for (i=1; i<limite; i++)
for j=0; j<limite - 1; j++)
if (vector[j] > vector [j+1])
temp = vector[j];
vector[j] = vector [j+1];
vector [j+1] = temp;
método merge sort
este algoritmo consiste basicamente en dividir en partes iguales la
lista de números y luego mezclarlo comparandolos,
dejandolos ordenados.
El método quicksort divide la estructura en dos y ordena cada mitad
recursivamente. El caso del mergesort es el opuesto, es
decir, en éste método se unen dos estructuras ordenadas para
formar una sola ordenada correctamente.
Tiene la ventaja de que utiliza un tiempo proporcional
a: n log (n), su desventaja radica en que se requiere de un espacio extra para
el procedimiento.
Este tipo de ordenamiento es útil cuando se tiene una estructura
ordenada y los nuevos datos a añadir se
almacenan en una estructuratemporal para después agregarlos a la
estructura original de manera que vuelva a quedar ordenada.
Procedimiento mergesort
/*recibe el arreglo a ordenar un índice l que indica el límite
inferior del arreglo a ordenar y un índice r que indica el límite
superior*/
void mergesort (int a [], int l, int r)
}
a =
a,e,e,l,m,p,x}
a =
el algoritmo de ordenamiento por mezcla (mergesort) se divide en dos procesos,
primero se divide en partes iguales la lista:
public static void mergesort(int[ ] matrix, int init, int n)
}
y el algoritmo que nos permite mezclar los elementos según corresponda:
private static void merge(int[ ] matrix, int init, int n1, int n2)
while (temp1 < n1)
buffer[temp++] = matrix[init + (temp1++)];
while (temp2 < n2)
buffer[temp++] = matrix[init + n1 + (temp2++)];
for (i = 0; i < n1+n2; i++)
matrix[init + i] = buffer[i];
}
metodo rapido o quicksort
sin duda, este algoritmo es uno de los mas eficientes. Este
método es el mas rapido gracias a sus llamadas recursivas,
basandose en la teoría de divide y venceras.
Lo que hace este algoritmo es dividir recurvisamente
el vector en partes iguales, indicando un elemento de inicio, fin y un pivote
(ocomodín) que nos permitira segmentar nuestra lista. Una vez
dividida, lo que hace, es dejar todos los mayores que el pivote a su derecha y
todos los menores a su izq. Al finalizar el algoritmo,
nuestros elementos estan ordenados.
Ejemplo no1
si tenemos 3 5 4 8 basicamente lo que hace el algoritmo es dividir la
lista de 4 elementos en partes iguales, por un lado 3,
por otro lado 4 8 y como
comodín o pivote el 5. Luego pregunta, 3 es mayor o
menor que el comodín? Es menor, entonces lo
deja al lado izq. Y como se acabaron los elementos de
ese lado, vamos al otro lado. 4 es mayor o menor que el
pivote? Menor, entonces lo tira a su izq. Luego
pregunta por el 8, al ser mayor lo deja donde esta, quedando algo así
3 4 5 8
en esta figura se ilustra de mejor manera un vector con mas elementos, usando como
pivote el primer elemento:
el algoritmo es el siguiente:
public void _quicksort(int matrix[], int a, int b)
while(matrix[to] > pivot)
if(from <= to)
}while(from <= to);
if(a < to)
if(from < b)
this. Matrix = matrix;
el algoritmo fundamental es el siguiente:
* elegir un elemento de la lista de elementos a ordenar, al que
llamaremospivote.
* resituar los demas elementos de la lista a
cada lado del
pivote, de manera que a un lado queden todos los menores que él, y al
otro los mayores. Los elementos iguales al pivote pueden ser colocados tanto a
su derecha como
a su izquierda, dependiendo de la implementación deseada. En
f(3)= 3^2– 6(3)+ 3 = - 6 0 (Minimo)