Algoritmos de Metnum

26
SOLUCION DE ECUACIONES TRASCENDENTES METODO DE BISECCIONES SUCESIVAS La representación del método se tiene a continuación: El algoritmo del método es: Inicio Definir f(x) Leer x 1 , x 2 , ε Repetir x med = Si f(x 1 ) f(x med ) < 0 entonces x 2 = x med Si_no x 1 = x med Fin_si Hasta |x 2 – x 1 | < ε raiz = Imprimir raiz

description

Seudo codigo para metodos numericos

Transcript of Algoritmos de Metnum

Page 1: Algoritmos de Metnum

SOLUCION DE ECUACIONES TRASCENDENTES

METODO DE BISECCIONES SUCESIVAS

La representación del método se tiene a continuación:

El algoritmo del método es:

InicioDefinir f(x)Leer x1, x2, ε

Repetir

xmed =

Si f(x1) f(xmed) < 0 entoncesx2 = xmed

Si_nox1 = xmed

Fin_siHasta |x2 – x1| < ε

raiz =

Imprimir raiz Terminar

Page 2: Algoritmos de Metnum

METODO DE FALSA POSICIÓN

Para que tenga convergencia el método, es suficiente que se cumpla con las siguientes condiciones:

( i ) f(x1) f(x2) < 0( ii ) f(x1) f”(x1) > 0( iii ) f”(xi) ≠ 0 xi [x1, x2]

Recuérdese que si f”(x) > 0, la concavidad es hacia arriba; si f”(x) < 0, la concavidad es hacia abajo. Por lo tanto, las condiciones tienen el siguiente significado:

( i ). Significa que hay una raíz en el intervalo. Al menos una; ya que pueden haber raíces múltiples, pero en una cantidad impar. La posibilidad de raíces múltiples se anula si la función y = f(x) es monótona en un intervalo trabajado.

( ii ). Asegura que se tome el punto x1 (el pivote) de manera adecuada. Tomar de manera inadecuada el pivote podría provocar una divergencia en la sucesión generada.

( iii ). Asegura que no se dé un caso extremo de divergencia. Este caso provocaría una divergencia en la sucesión y se debe al hecho de encontrarse más de una raíz en el intervalo o un cambio de concavidad.

El Algoritmo del método es:

InicioDefinir f(x)Leer x1, x2, ε

Repetir

xi =

delta = |x2 – xi|x2 = xi

Hasta delta < εraiz = xi

Imprimir raiz Terminar

Page 3: Algoritmos de Metnum

METODO DE NEWTON-RAPSHON

La representación gráfica del método es:

A continuación tenemos el algoritmo estructurado para el método de Newton – Raphson:

InicioDefinir f(x)Leer x, εRepetir

xi =

delta = |x – xi|x = xi

Hasta delta < εraiz = xi

Imprimir raiz Terminar

Page 4: Algoritmos de Metnum

SOLUCION DE ECUACIONES POLINOMIALES

METODO DE BIRGE-VIETA

El método tiene el siguiente procedimiento:

1. Escribir la ecuación en orden descendente de potencias de x.2. Separar las raíces nulas.3. Aplicar la regla de los signos de Descartes.4. Establecer las posibles raíces racionales.5. Probarlas por división sintética o teorema del resto.6. Sacar las raíces irracionales.7. Reducir la ecuación y volver al paso 6, hasta hallar todas las raíces.

A continuación se presenta el algoritmo estructurado para el método

InicioLeer grado, εm = grado + 1Para i = 1 hasta m

Leer ai

fin_para

Para raices = 1 hasta gradox = 1Repetir

b1 = a1

Para i = 2 hasta mbi = ai + x * bi-1

fin_parac1 = b1

Para i = 2 hasta m-1ci = bai + x * ci-1

fin_para

xi =

delta = |x1 – x|x = x1

Hasta delta < εImprimir raices, x

Terminar

Page 5: Algoritmos de Metnum

SOLUCION DE SISTEMAS DE ECUACIONES

METODO DE GAUSS-JORDAN

Este método se basa en la aplicación de las transformaciones elementales de filas y puede emplearse para encontrar la inversa de matrices y resolver sistemas de ecuaciones lineales.

A continuación se tiene el algoritmo del método:

InicioLeer nm = n + 1Para i = 1 hasta n

Para j = 1 hasta mLeer aij

fin_parafin_paraPara i = 1 hasta n

Pivote = aij

Para j = 1 hasta maij = aij/pivote

fin_paraPara k = 1 hasta n

Si k ≠ i entoncescero = aki

Para j = 1 hasta makj = akj - cero * aij

fin_parafin_si

fin_parafin_paraPara i = 1 hasta n

Imprimir aim

fin_para Terminar

Page 6: Algoritmos de Metnum

METODO DE JACOBI

Es un método iterativo y para que tenga convergencia, es necesario que el elemento de la diagonal de la matriz del sistema en valor absoluto sea mayor que la suma de los valores absolutos de los demás elementos de la fila correspondiente.

A continuación se presenta el algoritmo para el método:

InicioLeer n, εPara i = 1 hasta n

Para j = 1 hasta n+1Leer aij

fin_parafin_paraPara i = 1 hasta n

xi = 0fin_paraRepetir

fin = verdaderoPara i = 1 hasta n

yi = ai,n+1

Para j = 1 hasta nSi i ≠ j entonces

yi = yi – aij*xj

fin_sifin_parayi = yi/aii

delta = |xi – yi|Si delta > ε entonces

fin = falsofin_si

fin_paraPara i = 1 hasta n

xi = yi

fin_parahasta finPara i = 1 hasta n

Imprimir xi

fin_para Terminar

Page 7: Algoritmos de Metnum

METODO DE GAUSS - SEIDEL

Este método es iterativo y es similar al método de Jacobi con la salvedad de que cada valor que se obtiene se emplea inmediatamente en la misma iteración. Esto hace que el método converja con mayor rapidez que el de Jacobi.

El algoritmo correspondiente al método es:

Inicio Leer n, ε

Para i = 1 hasta nPara j = 1 hasta n+1

Leer aij

fin_parafin_paraPara i = 1 hasta n

xi = 0fin_paraRepetir

fin = verdaderoPara i = 1 hasta n

y = ai,n+1

Para j = 1 hasta nSi i ≠ j entonces

y = y – aij*xj

fin_sifin_paray = y/aij

delta = |xi – y|Si delta > ε entonces

fin = falsofin_sixi = y

fin_parahasta finPara i = 1 hasta n

Imprimir xi

fin_para Terminar

Page 8: Algoritmos de Metnum

METODO MONTANTE

Este método maneja exclusivamente valores enteros, lo cual reduce la complejidad de las operaciones y los errores de cálculo por truncamiento y redondeo. Se emplea para obtener la inversa de una matriz, calcular el valor del determinante, así como para resolver sistemas de ecuaciones.

PROCEDIMIENTO:( 1 ) Elegir un PIVOTE como un elemento sobre la diagonal principal.( 2 ) Mantener la fila del PIVOTE sin cambios.( 3 ) Convertir a ceros todos los elementos desde la primera columna hasta la

columna del PIVOTE, excepto los elementos de la diagonal principal, los cuales serán iguales al PIVOTE.

( 4 ) Calcular los elementos restantes, según la fórmula:aij = (aij*akk – aik*akj)/pivotant a kk = Pivote actual

NOTA.- Si se trata de la primera iteración, el pivote anterior es la unidad( 5 ) El procedimiento se repite hasta obtener por el lado izquierdo de la matriz aumentada, una matriz diagonal.

NOTAS: Si se trabaja una matriz aumentada (A, B) se obtiene una matriz (D, Y), donde D es una matriz diagonal cuyos elementos son iguales al determinante de A y Y/d es la solución del sistema.

Si se trabaja una matriz aumentada (A, I) se obtiene una matriz (D, Adj), donde Adj

es la matriz adjunta de A y Adj/d es la inversa de esta.

El algoritmo correspondiente al método es: Inicio

Leer nPara i = 1 hasta n

Para j = 1 hasta n+1Leer aij

fin_parafin_parapivotant = 1Para k = 1 hasta n

Para i = 1 hasta nSi i ≠ k entonces

Para j = k+1 hasta n+1aij = (aij*akk – aik*akj)/pivotant

fin_parafin_si

fin_parapivotant = ak-1,k-1

fin_paraPara i = 1 hasta n

Imprimir ai,n+1/ann

fin_para Terminar

Page 9: Algoritmos de Metnum

INTERPOLACIÓN Y AJUSTE POLINOMIAL

METODO DE INTERPOLACIÓN DE NEWTON

El método tiene la siguiente fórmula general:

El algoritmo estructurado del método es el siguiente:

InicioLeer nPara i = 1 hasta n

Leer xi, yi

fin_paraPara j = 1 hasta n-1

Para i = 1 hasta n - jΔij = Δi+1,j-1 – Δi,j-1

fin_parafin_paraLeer xk = (x – x1)/(x2 – x1)y = 0Para i = 1 hasta n

num = 1j = 0Mientras j ≤ i -2 hacer

num = num * (k – j)j = j + 1

fin_mientrasy = y + num/(i – 1)! * ∆1,i-1

fin_paraImprimir y

Terminar

Page 10: Algoritmos de Metnum

METODO DE INTERPOLACIÓN DE LAGRANGE

La fórmula del método es:

y la abreviada sería:

con i ≠ j

donde ∏ representa una serie de productos, así como ∑ representa una serie de sumas.

A continuación se tiene el algoritmo estructurado para trabajar con este método:

InicioLeer nPara i = 1 hasta n

Leer xi, yi

fin_paraLeer xy = 0Para i = 1 hasta n

num = 1den = 1Para j = 1 hasta n

Si i ≠ j entoncesnum = num * (x - xj)den = den * (xi – xj)

fin_sifin_paray = y + num/den * yi

fin_paraImprimir x, y

Terminar

Page 11: Algoritmos de Metnum

METODO DELOS MINIMOS CUADRADOS

El método consiste en determinar la ecuación de la curva suave que se pueda aproximar a los puntos dados en la tabla de valores. La fórmula del método es:

Dando a j los valores de: j = 0, 1, 2, . . ., m ( m = grado de la curva suave ), se tienen las siguientes ecuaciones:

Para j = 0:

Para j = 1:

El algoritmo del método es:

InicioLeer n, ma0 = nb0 = 0Para i = 1 hasta n

Leer xi, yi

b0 = b0 + yi

Para j = 1 hasta m * 2aj = aj + xi

j

fin_paraPara j = 1 hasta m

bj = bj + yi * xij

fin_parafin_paraPara i = 1 hasta m+1

Para j = 1 hasta m+1cij = ai+j-2

fin_paraci,m+2 = bi-1

fin_paraLlamar Gauss (cij)Para i = 1 hasta m+1

Imprimir ci,m+2

fin_para Terminar

Page 12: Algoritmos de Metnum

TRANSFORMACIONES

Aplicando el método de los Mínimos Cuadrados, se intenta encontrar la ecuación de la Recta que mas se aproxime a los puntos dados en la tabla de valores, para lo cual se deben transformar los valores a otro sistema de ejes coordenados.

Las transformaciones más comunes de aplicación son:

X, Log (Y)Log (X), YLog (X), Log (Y)

Siendo los logaritmos siempre en base 10.

La función debe transformarse de nuevo a los términos x, y; excepto para el caso (log x, y), de la siguiente manera:

( 1 ) Para el caso (x, log y), se tiene:

log y = a + b xy = 10a+bx = 10ª (10b)x

Sea α = 10ª y β = 10b

y = α βx

( 2 ) Para el caso (log x, log y), se tiene:

log y = a + b * log xy = = 10ª (xb)Sea α = 10ª y β = by = α xβ

Page 13: Algoritmos de Metnum

DIFERENCIACIÓN E INTEGRACION

DERIVACIÓN POR LIMITES

Por los cursos de Cálculo se sabe que:

siendo éste un límite en el que se manejan números muy pequeños, se puede trabajar de la siguiente manera:

f’(x) = [f(x+h) – f(x)] k donde k = h-1

Se puede tomar h = 0.1n con n = 1, 2, 3, . . ., ya que h → 0si n → ∞. Se toma, además, el criterio de Cauchy como criterio de paro en el cálculo de la integral. Para este método se da a continuación el algoritmo estructurado:

El algoritmo para calcular una derivada por medio de límites es:

InicioDefinir f(x)Leer x, εn = 1da = 1 x 1010

Repetir

k =

d = [f(x + 0.1n) – f(x)] * kdelta = |da – d|da = dn = n + 1

Hasta delta < εImprimir d

Terminar

Page 14: Algoritmos de Metnum

DERIVACIÓN POR DIFERENCIAS FINITAS

Dada la función f(x) definida por:

x yx0 y0

x1 y1

x2 y2

. . . . . .xn yn

de la interpolación de Newton se sabe que:

es un polinomio de grano n+1 que pasa por todos los puntos. Así, hallando la derivada de la fórmula anterior, se halla la derivada para cualquier punto tabulado.

Tomando en cuenta que x = x0 + k hy por lo tanto: k h = x – x0

se tiene: k =

y también.

La anterior es la fórmula de derivación de primer orden. Una forma alterna de calcular la derivada es calcular la función siguiendo el método de Newton y derivando ésta; así, sustituyendo se obtiene:

la cual es una función derivable.

Page 15: Algoritmos de Metnum

METODO DE INTEGRACIÓN DEL TRAPECIO

En la Figura se tiene: B = f(xi+1)

b = f(xi) h = xi+1 – xi

Así, se tiene:

Para cubrir un intervalo [a, b], se divide éste en n subintervalos, los cuales deben cumplir con h = xi+1 – xi y también con a = x1, x2, x3, . . ., xn = b. Así:

En la ecuación anterior cada integral cumple con:

Por lo tanto se tiene:

Page 16: Algoritmos de Metnum

De manera resumida:

A continuación se presentan dos algoritmos estructurados para éste método; el primero asume el conocimiento de la función a integrar y el segundo trabaja con una tabla de valores.

Inicio InicioDefinir f(x) Leer n, hLeer a, b, n Para i = 1 hasta nh = (b – a)/(n – 1) Leer yi

x = a fin_parai = 1 área = y1 + yn

Repetir Para i = 2 hasta n – 1yi = f(x) área = área + 2 * yi

i = i + 1 fin_parax = x + h área = área * h/2

Hasta x > b Imprimir áreaárea = y1 + yn TerminarPara i = 2 hasta n – 1

área = área + 2 * yi

fin_paraárea = área * h/2Imprimir área

Terminar

Page 17: Algoritmos de Metnum

METODO DE INTEGRACIÓN SIMPSON 1/3

Si en lugar de tomar un trapecio se hace pasar una Parábola por tres puntos consecutivos de la función, la fórmula de aplicación del método queda:

Este método es aplicable sólo cuando n es par (número par de áreas o subintervalos ). De manera similar al método anterior, se presentan a continuación sus dos algoritmos estructurados.

Inicio InicioDefinir f(x) Leer n, hLeer a, b, n Para i = 1 hasta nh = (b – a)/(n – 1) Leer yi

x = a fin_parai = 1 área = y1 + yn

Repetir Para i = 2 hasta n – 1yi = f(x) Si i mod 2 = 0i = i + 1 entonces área = área + 4 * yi

x = x + h si_no área = área + 2 * yi

Hasta x > b fin_siárea = y1 + yn fin_paraPara i = 2 hasta n – 1 área = área * h/3 Si i mod 2 = 0 entonces Imprimir área

área = área + 4 * yi Terminar si_no

área = área + 2 * yi

fin_sifin_paraárea = área * h/3Imprimir área

Terminar

Page 18: Algoritmos de Metnum

METODO DE INTEGRACIÓN SIMPSON 3/8

Para hacer aún más exacto el cálculo de la integral, se hace pasar una cúbica entre tres puntos consecutivos de la función, de tal manera que la fórmula del método queda:

con i = múltiplos de 3; j = resto de ordenadas.

Este método es aplicable sólo cuando n es múltiplo de 3, lo cual asegura que se tiene un múltiplo de 3 como número de áreas. De manera similar a los métodos anteriores, se presentan a continuación sus dos algoritmos estructurados.

Inicio InicioDefinir f(x) Leer n, hLeer a, b, n Para i = 1 hasta nh = (b – a)/(n – 1) Leer yi

x = a fin_parai = 1 área = y1 + yn

Repetir Para i = 2 hasta n – 1yi = f(x) Si (I – 1) mod 3 = 0 entoncesi = i + 1 área = área + 2 * yi

x = x + h si_no área = área + 3 * yi

Hasta x > b fin_siárea = y1 + yn fin_paraPara i = 2 hasta n – 1 área = 3 * área * h/8 Si (i – 1) mod 3 = 0 entonces Imprimir área

área = área + 2 * yi Terminar si_no

área = área + 3 * yi

fin_sifin_paraárea = 3 * área * h/8Imprimir área

Terminar

Page 19: Algoritmos de Metnum

ECUACIONES DIFERENCIALES ORDINARIAS

METODO DE EULER

Este método se emplea para resolver una Ecuación Diferencial Ordinaria, siendo su fómula:

yi+1 = yi + y’ Δx

o también:yi+1 = yi + f(x,y) Δx

Esto constituye el Método de Euler y es la forma más sencilla, aunque también la más inexacta, de evaluar una Ecuación Diferencial Ordinaria. Para este método se tiene el siguiente algoritmo:

InicioDefinir f(x,y)Leer x1, y1, Δx, nPara i = 1 hasta n

y’ = f(x1, y1)y2 = y1 + y’ Δx

Imprimir y2

x1 = x1 + Δx

y1 = y2

fin_para Terminar

Page 20: Algoritmos de Metnum

METODO PREDICTOR – CORRECTOR

La fórmula del método queda como:

devolviendo a y’ su nombre de función se tiene:

Esta fórmula es conocida como Método de Gauss; sin embargo, surge un problema con el método. Para calcular el valor de yi+1 se requiere conocer el valor de yi+1. Para solucionar este problema se utilizan los dos métodos en conjunto prediciendo un valor de y i+1 con el método de Euler y corrigiendo después con el método de Gauss (de aquí los nombres de Método Predictor – Corrector y Método de Euler – Gauss con los que se conoce este método). Además, el método de Gauss permite corregir el valor calculado de yi+1 tanto como se quiera de acuerdo a una ε predefinida, de la siguiente manera:

( a ) Si | yi+1c – yi+1

p | < ε, entonces yi+1c es la aproximación buscada.

( b ) Si | yi+1c – yi+1

p | > ε, entonces se calcula de nuevo yi+1c, utilizando yi+1

c como yi+1

p.

Para este método se tiene el siguiente algoritmo:

InicioDefinir f(x,y)Leer x1, y1, Δx, n, εPara i = 1 hasta n

y’ = f(x1, y1)yp = y1 + y’ Δx

x1 = x1 + Δx

Repetiry’2 = f(xi, yp)yc = y1 + (y’ + y’2) Δx/2d = | yc – yp |yp = yc

hasta d < εImprimir yc

y1 = yc

fin_para Terminar

Page 21: Algoritmos de Metnum

METODO DE RUNGE – KUTTA

Tanto el método de Euler como el método Predictor-Corrector pertenecen a la familia de métodos de Ru8nge_kutta. El método de la familia que resulta más accesible y de menor error es el llamado Método de Runge – Kutta de Cuarto Orden (conocido simplemente como Método de Runge – Kutta) y está dado, por la fórmula siguiente:

yi+1 = yi + h Φ(xi, yi)

donde: Φ(xi, yi) = (k1 + 2 k2 + 2 k3 + k4) / 6

y en la cual: k1 = f(x, y)

k4 = f(x + h, y + h k3)

Para este método se tiene el siguiente algoritmo:

InicioDefinir f(x,y)Leer x1, y1, Δx, nPara i = 1 hasta n

k1 = f(x, y)k2 = f(x + Δx/2, y + Δx k1/2)k3 = f(x + Δx/2, y + Δx k2/2)k4 = f(x + Δx, y + Δx k3)Φ = (k1 + 2 k2 + 2 k3 + k4) / 6y = y + Δx Φx = x + Δx

Imprimir x, yfin_para

Terminar