Você está na página 1de 17

mailxmail - Cursos para compartir lo que sabes

Algoritmos de Programacin Cientfica


Autor: Jose Enrique Garcia Loro

mailxmail - Cursos para compartir lo que sabes

Presentacin del curso


Este curso realizado por el mismo autor a partir de la asignatura de Clculo Numrico de la carrera Ingeniera Tcnica en Informtica de Sistemas. Con l conocers distintos mtodos para aplicar a los conocimientos obtenidos a lo largo de todo el curso.

mailxmail - Cursos para compartir lo que sabes

1. Interpolacin
Mtodo de Lagrange Mtodo de interpolacin con espaciado irregular que calcula directamente el nuevo punto (sin necesidad de hallar un polinomio intermedio). Util cuando queremos interpolar un solo punto o muy pocos.

Mtodo de Aiken-Neville Mtodo recursivo de Interpolacin con espaciado irregular. Al igual que Lagrange, devuelve directamente el nuevo punto. Poco til para interpolar muchos puntos.

Mtodo de Newton (Diferencias divididas) Mtodo recursivo de Interpolacin con espaciado irregular. Calcula los coeficientes de un polinomio que se ajusta a los puntos dados. Una vez hallado se aplicar Horner para cada punto que queramos interpolar.

Mtodo de Diferencias Finitas Progresivas Mtodo recursivo de interpolacin con espaciado regular. Mismo procedimiento que Diferencias divididas.

Mtodo de Diferencias Finitas Regresivas

mailxmail - Cursos para compartir lo que sabes


Mtodo recursivo de interpolacin con espaciado regular.

Mtodo de Mejor ajuste (mixto) Elige cual de los dos mtodos de diferencias finitas es el ms adecuado.

mailxmail - Cursos para compartir lo que sabes

2. Integrales
De aqu en adelante hay dos valores interrelacionados que adquieren gran importancia: h: Tamao de un intervalo distancia entre 2 puntos consecutivos. Cuanto menor tamaao distacia, ms preciso ser el algoritmo. n: Nmero de intervalos o veces que iterar el algoritmo.

Si no nos dieran o no supieramos n (el numero de intervalos), deberamos calcularlo de h mediante un proceso de normalizacin. Consiste en hacer que n sea un nmero entero (el que resulte, truncado sumndole uno) y recalcular h con el nuevo n. Algoritmo del trapecio

Algoritmo de Simpson mixto (1/3 y 3/8) Si el nmero de puntos es impar utiliza en los primeros 3 puntos Simpson 3/8, el resto se calcula mediante Simpson 1/3.

Mtodo de Romberg Mtodo recursivo para calcular integrales. Hay 2 maneras de aplicar este mtodo, una sabiendo el nmero de puntos o veces que se va a iterar y otra sabiendo el error mnimo o precisin. Dado un nmero de puntos (n):

mailxmail - Cursos para compartir lo que sabes

Sabiendo el error mnimo o precision con que queremos calcular la integral (eps):

mailxmail - Cursos para compartir lo que sabes

3. Cortes con los ejes / Resolucin de ecuaciones


Mtodo de la Biseccin Normalmente este mtodo se repite 3 o 4 veces y si no se ha encontrado el punto de corte se llama a otro mtodo. Requiere que el punto de corte se encuentre entre los dos valores iniciales (a y b).

Mtodo Regula Falsi (Interpolacin Lineal) Este mtodo tiene en cuenta la forma de la funcin para calcular el nuevo punto intermedio, de forma que se acerca ms rpido al punto de corte.

Mtodo de Newton (tangentes) Slo se necesita un punto a partir del cual se va acercando al punto de corte. Es el ms rpido pero presenta dos problemas. El primero es que necesitamos conocer la derivada o la funcin. El segundo es que en puntos mximos y mnimos (derivada=0) el mtodo se para y adems se podra producir una divisin por cero.

Mtodo de la Secante Se necesitan dos puntos pero la raiz no tiene porqu estar entre ellos.

mailxmail - Cursos para compartir lo que sabes


Se necesitan dos puntos pero la raiz no tiene porqu estar entre ellos.

mailxmail - Cursos para compartir lo que sabes

4. Sistemas de ecuaciones lineales


Es un conjunto de ecuaciones lineales que describen el mismo sistema y comparten las mismas variables. - Mtodos directos o exactos Devuelven resultados exactos. Son apropiados para Sistemas de Ecuaciones con pocas incgnitas (4 o 5) y con pocos coeficientes nulos. Mtodo de Gauss Consiste en hacer ceros por debajo de los pivotes.

Mtodo de Gauss-Jordan Consiste en hacer ceros por encima y por debajo. En este mtodo tiene sentido normalizar (hacer que los pivotes sean 1) solo si vamos a devolver las soluciones en la propia matriz, de manera que no se requiere un bucle especfico para resolver las incgnitas.

mailxmail - Cursos para compartir lo que sabes

Las soluciones quedan en la columna de los trminos independientes ( mat(i,n+1) ). - Mtodos indirectos, iterativos o aproximados A partir de unos valores iniciales se van aproximando a la solucin. Devuelven, por tanto, valores aprximados, con la precisin que deseemos. Estos mtodos son adecuados para sistemas con ms de 5 incgnitas o ms de 35% o 40% de coeficientes nulos. Mtodo de Jacobi Calcula los valores de las variables a partir de los valores obtenidos en la iteracin anterior segn la frmula:

El algoritmo usa dos vectores, uno para los valores actuales (que se estan calculando) y otro para los anteriores (anterior iteracin). El resultado queda en el vector de los valores actuales.

10

mailxmail - Cursos para compartir lo que sabes

Mtodo de Gauss-Seidel Bsicamente es lo mismo que Jacobi. Pero este mtodo aprovecha los ltimos valores calculados de las variables anteriores en la misma iteracin, para calcular las nuevas variables. Esta variacin simplifica ligeramente el algoritmo (no se necesitan dos vectores) y hace que se aproxime ms rpidamente a las soluciones.

11

mailxmail - Cursos para compartir lo que sabes

5. Sistemas de ecuaciones no lineales


Una ecuacin lineal es aquella en la que sus incgnitas estn solas (con su coeficiente) y tienen exponente 1. La que no cumpla estas condiciones es una ecuacin no lineal. Mtodo de Gauss-Seidel Es necesario despejar cada variable manualmente y codificarla como una funcin. El resto del algoritmo es bsicamente igual que en sistemas de ecuaciones lineales. Este mtodo no es muy apropiado si la funcin es relativamente compleja.

Mtodo de Newton-Rapson Partiendo del desarrollo en serie de Taylor, este mtodo reduce el sistema de ecuaciones no lineales a uno con ecuaciones lineales en las que aparecen derivadas de las funciones originales como nuevos coeficientes y las funciones originales (con signo negativo) como trminos independientes. Ser necesario codificar las funciones (ecuaciones) originales y sus derivadas (que se calcularn a mano) en funciones individuales. El algoritmo resuelve el nuevo sistema de ecuaciones iterativamente, de forma que en cada iteracin se aproxima ms a la solucin.

La solucion del algoritmo queda en el vector xvect. El procedimiento RellenarMat(mat, xvect) ser:

12

mailxmail - Cursos para compartir lo que sabes


Se produce aqu un pequeo cambio de variable. Las incgnitas del nuevo sistema de ecuaciones lineales ya no son las iniciales (supongamos x). De forma que:

O sea, hi es la diferencia entre la variable xi de la iteracin anterior y la actual.

13

mailxmail - Cursos para compartir lo que sabes

6. Ajuste de curvas
Algoritmo de Mnimos Cuadrados Consiste en hallar los coeficientes de la curva (polinomio) que cumple que el cuadrado de la suma de los errores entre todos los puntos dados y esta es mnima. La frmula es:

N es el nmero de puntos que tenemos n es el grado del polinomio que vamos a hallar Calculando la derivada de E para cada ai se construye un sistema de ecuaciones lineales donde los coeficientes (ai) de dicho polinomio son las incgnitas. Cdigo para calcular los 2n sumatorios distintos:

Rellenar la matriz de coeficientes:

Resolver el sistema de ecuaciones:

Una vez resuelto el sistema, ya conocemos el polinomio. Podemos utilizar Horner entonces. El algoritmo de mnimos cuadrados por s solo no es til a no ser que sepamos de qu grado deber ser el polinomio que vamos a calcular. Si no es as, se nos

14

mailxmail - Cursos para compartir lo que sabes


presentan dos casos segn los datos que tengamos: No conociendo el error ni el grado del polinomio:

Consiste en ir aplicando mnimos cuadrados con grado 1, 2.... n y calculando la frmula anterior hasta que se cumpla un criterio estadstico.

Conociendo el error en las mediciones:

15

mailxmail - Cursos para compartir lo que sabes

7. Ecuaciones diferenciales
Son ecuaciones en las que aparece la variable independiente , la dependiente (de la independiente) y alguna de sus derivadas. - Ecuaciones diferenciales de orden 1 Son ecuaciones en las que aparece la variable independiente , la dependiente (de la independiente) y la primera derivada. Mtodo de Euler Se basa en el punto inicial y su derivada (pendiente tangente), que es lo que conocemos para ir calculando puntos intermedios hasta llegar al que queremos. Ser tanto ms preciso cuanto mayor sea el nmero de intervalos (n) o puntos intermedios, o lo que es lo mismo, cuanto menor sea h.

Este mtodo devuelve un nuevo punto. Tiene un error de orden h. Mtodo de Euler Mejorado Igual que el mtodo de euler pero ahora usa como pendiente la media de las pendientes de dos puntos consecutivos.

Devuelve el nuevo punto en y(n). El error es del orden de h2. Mtodo de Runge-Kutta Es un conjunto de mtodos. Los mtodos anteriores no son ms que un caso particular de ste. Tiene la siguiente forma:

16

mailxmail - Cursos para compartir lo que sabes


Si igualamos esta frmula de orden n con la del desarrollo en serie de Taylor de orden n, llegamos a un sistema de ecuaciones lineales con infinitas soluciones. Hay algunas soluciones concretas que son las que se utilizan en la frmula para cada orden: orden 3:

orden 4:

El algoritmo consiste simplemente en hacer esos clculos n veces. Ejemplo para orden 4:

17