domingo, 1 de marzo de 2020

Métodos numéricos: Ecuaciones lineales

Ecuaciones lineales

Existen muchos métodos comprobados para resolver sistemas de ecuaciones lineales como por ejemplo: Método gráfico, Uso de determinantes y la regla de Cramer, Eliminación de Gauss simple, Eliminación de Gauss-Jordan, Gauss-Seidel, entre otras.

Existen herramientas de cómputo para resolver estos sistemas, paquetes especializados o la hoja de cálculo de EXCEL, y con esta última se puede resolver utilizando las herramientas: Solver o funciones de multiplicación e inversión de matrices.

Es importante recordar que la forma de determinar la solución de las ecuaciones lineales está determinada de la siguiente forma:

Las funciones de EXCEL a utilizar son: =minversa() y =mmult()

El procedimiento operacional de solución se ilustra de la siguiente manera:

1. Hacer la matriz de coeficientes de las variables, esta es la matriz A y el vector B.
2. Calcular la matriz inversa de A como =minversa() para eso se realiza lo siguiente:
    Windows
    a. Marcar el rango que debe ocupar la matriz de respuesta.
    b.Oprimir la tecla F2.
    c.oprimir las teclas CTRL-SHIFT-ENTER.
    Mac
    a. Marcar el rango que debe ocupar la matriz de respuesta.
    b. Presionar Ctrl + U
    c. Presionar cmd + Enter
3. Multiplicar la matriz inversa de A por el vector B, mediante la función =mmult() con el procedimiento anterior.



Algunos ejercicios de aplicación de la herramienta son las siguientes:

Ejercicio 1
 Ejercicio 2
 Ejercicio 3
 Ejercicio 4

jueves, 27 de febrero de 2020

Métodos numéricos y optimización: Método de la sección dorada


Este método de optimización es similar al método de Fibonacci, con la excepción que en el método de Fibonacci, el número total de experimentos a realizarse debe especificarse antes de iniciar el cálculo y para el cálculo de estos se utiliza la serie de números de Fibonacci.

En este método se inicia con N, el cual se asume como el número de experimentos que se han de llevar a cabo, hasta que se cumpla el diferencial establecido.

Procedimiento
1. Determinar el valor inicial XL y el valor final XU. Donde XL es el punto inferior del intervalo de búsqueda y XU es el punto superior. [XL, XU]

2. Calcular los puntos interiores X1 y X2 del intervalo de búsqueda.
X1=XL+d
X2=XU-d
d=0.618*(XU-XL)

0.618 es conocido como una de las soluciones de la proporción dorada o número áureo. De aquí proviene el nombre del método.

3. Evaluar la FO en X1 y en X2.

4. Repetir el método hasta |f(x1)-f(x2)|<error

En cada iteración se deben aplicar estas reglas para reducir el intervalo de búsqueda del punto óptimo.

Si f(x1)>f(x2) entonces el dominio de x a la izquierda de X2, [XL, X2] se puede eliminar, ya que no contiene el máximo. En este caso X2 será el nuevo XL en la siguiente iteración.

Si f(x2)>f(x1) entonces el dominio de x a la derecha de X1, [X1, XU] se puede eliminar, ya que no contiene el máximo. En este caso X1 será el nuevo XU en la siguiente iteración.

El siguiente ejercicio ejemplifica el uso del método utilizando EXCEL:

Considere la función: F(x)= 2*sen(x)-(x^2)/10 en el intervalo [0,4] con error=0.2




Métodos numéricos y optimización: Newton-Kantorovich

El método de Newton es un método numérico que se utiliza para encontrar ceros de una función. Sea F una función con dominio en todos los reales. Un punto x también perteneciente al dominio de los reales será un cero de F si: F(x)=0

El pseudocódigo para el método de Newton-Kantorovich es el siguiente:

Tomado de: https://www.u-cursos.cl/ingenieria/2010/2/MA3701/1/material_docente/bajar?id_material=329674

El siguiente ejercicio ejemplifica el uso del método: Considerese la siguiente función :
F(x)=(x^2)/2-Sen(x) con punto inicial X0=0.5 y con Error=0.00001

La plantilla de EXCEL con las ecuaciones y los resultados obtenidos es la siguiente:




Este método se puede aplicar a la búsqueda de los ceros del gradiente de una función con dominio en todos los reales. Es decir, se buscan los puntos estacionarios de la función.






Métodos numéricos y optimización: Técnica de búsqueda multivariable


Técnicas de búsqueda multivariable

Sea f(x1, x2,…, xn) donde x1, x2, ... y xn son variables de decisión, la técnica de búsqueda multivariable hace lo siguiente:

1. Se le asignan valores iniciales (x1, x2,..., xn) a las variables de decisión, configurando el punto inicial de salida.
Configurandose (x10, x20,…, xn0) como puntos iniciales.

2. Buscar por medio de un tanteo o aleatoriamente, valores desde el punto de partida hasta llegar a valores que optimicen la función objetivo.

3. Dependiendo del objetivo el cual puede ser: maximizar, minimizar, encontrar los ceros de la función, se asignan nuevos valores y se comparan las funciones objetivo, así:
Sí: 
f(x10, x20, x30)<= f(x11,x21,x31) 
f(x10, x20, x30)>= f(x11,x21,x31)

Se tiene el siguiente ejemplo en VBA:
Se quiere encontrar los puntos y el valor de la FO que maximizan la siguiente función:
f(x1,x2,x3)= (10 / 3) * x1 - (3 * x1 * x2) + (5 * x3 ^ 2) + (4 * x2)

Se puede programar el código VBA para hallar un basto conjunto de puntos en el espacio de la función de la siguiente manera:



La plantilla de EXCEL a utilizar estaría construida de la siguiente manera:


En este caso, bajo las condiciones del programa VBA, se generarían un total de 218 registros.

Este método analiza un rango amplio de datos que dependen de los intervalos de las variables en los ciclos FOR_NEXT.

En caso que se requiera encontrar el mínimo se debe programar la línea de reemplazo:
Application.WorksheetFunction.Min(Range("A3:D1000000"))

miércoles, 19 de febrero de 2020

Método para el planteamiento y desarrollo de problemas de programación

Desarrollo de un programa (software)

  1. Metodologías tradicionales: con énfasis en la planificación y el control en procesos predictivos y fijos.
  2. Metodologías ágiles: Se sugieren cuando los requisitos son desconocidos o cambiantes, se requieren en procesos adaptativos.
Etapas:

1. Identificación y delimitación del problema: Entendimiento de las necesidades del cliente.

Capturar los requisitos y requerimientos del software.
Elicitación de requisitos, entendido como el traspaso de información entre personas por medio de un lenguaje natural).

2. Diseño del programa: Codificar en lenguaje estructurado los requisitos (fase previa de desarrollo de software).

3. Desarrollo o codificación en un entorno de programación: Se debe garantizar que el programa diseñado este limitado, es decir con pasos finitos y definido, quiere decir que al ejecutar el programa en la mismas condiciones debe arrojar el mismo resultado.

4. Pruebas o Testing: Simulaciones del comportamiento de un algoritmo que permiten determinar la validez del mismo.


Programación estructurada

Programación estructurada:Técnicas para desarrollar algoritmos fáciles de escribir, verificar, leer y modificar. Utiliza:

  • Diseño descendente: etapas, de lo general al detalle.
  • Recursos abstractos: descomposición del problema.
  • estructuras básicas: secuenciales, selectivas, repetitivas y anidadas.
1. Estructuras secuenciales: Una acción se ejecuta detrás de la otra.

Pseudocódigo:
<acción 1>
<acción 2>
<acción 3>
<acción 4>
...
<acción N>

2. Estructuras selectivas: Una acción o acciones que deben cumplir una condición. Son de tipo:
  • Simples: Se cumple una condición, si no salta las acciones.
Pseudocódigo:
Si <Condición> entonces
     <Acción>
Fin Si
  • Dobles: Se evalúa una condición como verdadero o falso.
Pseudocódigo:
Si <Condición> entonces
     <Acción 1>
Si no
     <Acción 2>
Fin Si
  • Múltiples: Se ejecutarán una acciones u otras según el resultado que se obtenga al evaluar una expresión.
Pseudocódigo:
Según sea <Expresión> hacer
     <acción 1>
     <acción 2>
     <acción 3>
     <acción 4>
Si no
     <Acción N>
Fin Según

3. Estructuras repetitivas: Las acciones se repiten mientras o hasta que se cumpla una condición. Las cuales son:
  • Mientras: Las acciones del bucle se realizan cuando la condición es cierta. Además, se pregunta por la condición al principio, de donde se deduce que dichas acciones se podrían ejecutar N veces.
Pseudocódigo:
Mientras <Expresión lógica> hacer
     <Acciones>
Fin mientras
  • Hasta: Las acciones del interior del bucle se ejecutan una vez y continúan repitiendose mientras que la condición sea falsa. Se interroga por la condición al final del bucle.
Pseudocódigo:
Repetir
     <Acciones>
Hasta que <Expresión lógica>
  • Desde: Se utiliza cuando se conoce el número de veces que se va a iterar. La estructura "desde" comienza con un valor inicial y las acciones se ejecutan a menos que el valor inicial sea mayor que el valor final.
Pseudocódigo:
Desde valor<---valor inicial hasta valor final hacer
     <Acciones>
Fin desde

4. Estructuras anidadas: Tanto las estructuras selectivas como repetitivas pueden ser anidadas, e introducidas una al interior de otras.

Pseudocódigo:
Si <Condición 1> entonces
     <Acción 1>
Si no
     Si <Condición 2> entonces
          <Acción 2>
     Si no
          Si <Condición 3> entonces
              <Acción 3>
          Si no
             <Acción n>
         Fin Si
     Fin Si
Fin Si

jueves, 13 de febrero de 2020

Métodos numéricos y optimización: Método de la secante

Método de la secante

El método de Newton para minimizar F utiliza la segunda derivada de F, de esta forma:
Si la segunda derivada no esta disponible, se puede intentar aproximar utilizando la información. En particular, se puede aproximar la segunda derivada con:


A esto se le conoce como el método de la secante, note que la ecuación requiere 2 puntos iniciales para empezar, para lo cual se denota X(-1) y X0, el algoritmo puede ser representado como:

El método de la secante usa la secante entre el punto (k-1) y el punto k para determinar el punto (k+1).

Ejercicio de aplicación
1. Utilizar el método de la secante para encontrar el punto mínimo de la función:
F(X)=X^3-12,2X^2+7,45X+42
Los valores iniciales son X0=12 y X(-1)=13 con una precisión de 10^(-5)

Como estrategia de solución de problemas a través del método de la secante, se recomienda construir la siguiente tabla en EXCEL para aplicar la técnica.


Una propuesta en VBA para solucionar el ejercicio con base en la plantilla sugerida puede ser la siguiente:





Covid 19 Práctica Rmarkdown

covid covid Julian Uribe 2023-12-05 ## ── Attaching core tidyverse...