Algoritmos numéricos.

Documentos relacionados
5. Aproximación de funciones: polinomios de Taylor y teorema de Taylor.

ELEMENTOS DE ÁLGEBRA MATRICIAL

Una serie de potencias puede ser interpretada como una función de x. f(x) = n=0

Capítulo 2. Operadores

1 Sucesiones. Ejemplos. a n = n a n = n! a n = n n. a n = p n. a n = 2n3 + n n a n = ln(n)

Señales y sistemas discretos (1) Transformada Z. Definiciones

TEMA 2.- MODELOS DE PROGRAMACION LINEAL. SOLUCION GRAFICA. En los problemas de Programación Lineal nos encontraremos con:

Fórmula de Taylor. Si f es continua en [a,x] y derivable en (a,x), existe c (a,x) tal que f(x) f(a) f '(c) = f(x) = f(a) + f '(c)(x a)

Transformaciones Lineales

Tema 6. Sucesiones y Series. Teorema de Taylor

Transformada Z. Transformada Z. Señales y sistemas discretos (1) Señales y sistemas discretos (2)

TEMA 5: INTERPOLACIÓN

Medidas de Tendencia Central

Por: Lic. Eleazar J. García. República Bolivariana de Venezuela Tinaco.- Estado Cojedes. INTEGRALES INDEFINIDAS

Figura 1. Se dice que un subespacio vectorial F de E es A-invariante si los vectores u de F siguen estando en F al transformarse por A, esto es,

PRIMERA SESIÓN. l. Se considera la sucesión de números reales definida por la relación de recurrenc1a: U n+l = a Un + ~ U n-1, con n > O

UNIDAD Nº 2. Leyes financieras: Interés simple. Interés compuesto. Descuento.

Sucesiones numéricas.

Polinomios. Definición de polinomio y sus propiedades. Grado de un polinomio e igualdad de polinomios

Gradiente, divergencia y rotacional

denomina longitud de paso, que en un principio se considera que es constante,

BINOMIO DE NEWTON página 171 BINOMIO DE NEWTON

Matemáticas I - 1 o BACHILLERATO Binomio de Newton

GUÍA DE ESTUDIO ÁLGEBRA LINEAL

Análisis de Señales y Sistemas Digitales. Concepto Algoritmo Implementación

Figura 9.1: Respuesta típica al escalón unitario de un sistema de control. Análisis de Sistemas Lineales 95 Ing. Eduardo Interiano

2. LEYES FINANCIERAS.

Dada una secuencia g[n] se define su transformada Z (TZ) directa G(z), como. La relación entre la secuencia y su transformada se denota por:

LA TRANSFORMADA Z { } CAPÍTULO SEIS. T n n. 6.1 Introducción

1.1. Campos Vectoriales.

La volatilidad implícita

Práctica 6: Vectores y Matrices (I)

en. Intentemos definir algunas operaciones en

Análisis en el Dominio de la Frecuencia. Análisis en el Dominio de la Frecuencia. Sistemas de Control. Análisis en el Dominio de la Frecuencia

Solución del examen de Investigación Operativa de Sistemas de septiembre de 2004

APUNTES DE MATEMÁTICAS

PRUEBAS DE ACCESO A LA UNIVERSIDAD L.O.G.S.E

Guía de Cálculo Numérico. Elaborada por: Ramón Medina Copyright 1998 Todos los Derechos Reservados

A = 1. Demuestra que P (1) es cierta. 2. Demuestra que si P (h) es cierta, entonces P (h + 1) es cierta.

SOLUCIONES DE LOS PROBLEMAS DE LA OME 49ª. 1. Sean a, b y n enteros positivos tales que a b y ab 1 n. Prueba que

MC Fco. Javier Robles Mendoza Primavera 2009

1. Lección 11 - Operaciones Financieras a largo plazo - Préstamos (Continuación)

IES Fco Ayala de Granada Sobrantes de 2008 (Modelo 3 Junio) Solución Germán-Jesús Rubio Luna 12 2 = , es decir

REVISIÓN DE ALGUNOS INDICADORES PARA MEDIR LA DESIGUALDAD XAVIER MANCERO CEPAL

DISTRIBUCION DE FRECUENCIA (DATOS AGRUPADOS)

APLICACIONES LINEALES.

Apuntes De Análisis Numérico.

OBJETIVOS. Objetivos Generales. Objetivos Específicos. Profesora: María Martel Escobar. Una función f es creciente (estrictamente) si x, y Dom(f), con

Correo electrónico:


CRITERIOS DE DECISIÓN EN LA EVALUACION DE PROYECTOS

OPCIÓN A EJERCICIO 1_A

LOGARITMOS. Ejercicio 1 Determine los respectivos dominios de existencia de las siguientes funciones: 2

CONCEPTOS BÁSICOS DE PRESTAMOS.

CADENAS DE MARKOV. Métodos Estadísticos en Ciencias de la Vida

Progresiones. Objetivos. Antes de empezar. 1.Sucesiones.. pág. 74 Definición. Regla de formación Término general

OPERACIONES ALGEBRAICAS FUNDAMENTALES

Cálculo para la ingeniería Tomo II. Salvador Vera

MATEMÁTICAS 1214, PARCIAL 3 PROBLEMAS PARA PRACTICAR SOLUCIONES. 1. Para cada sucesión infinita abajo, determine si converge o no a un valor finito.

Métodos Estadísticos de la Ingeniería Tema 9: Inferencia Estadística, Estimación de Parámetros Grupo B

ANEXO F CRITERIOS DE EVALUACIÓN ECONÓMICA DE LAS OPCIONES DE PML TÉCNICAMENTE VIABLES

Programación Entera (PE)

Espacio vectorial ESPACIO VECTORIAL. 8.- Intersección y suma de subespacios vectoriales

= Adj(A ) = 0 1-2/8 3/ /8 3/8 1-2/8 3/

DEPARTAMENTO DE MATEMÁTICAS Mate1203 Cálculo Diferencial Parcial 3 (27/10/2010)

TEMA 3.- OPERACIÓN FINANCIERA

Propuesta A. { (x + 1) 4. Se considera la función f(x) =

Análisis en el Dominio del Tiempo para Sistemas Discretos

ANEXO I ANEXO I CONCEPTOS SÍSMICOS BÁSICOS

Tema 9 Teoría de la formación de carteras

UNIDAD 8 MODELO DE ASIGNACIÓN. características de asignación. método húngaro o de matriz reducida.

Soluciones Hoja de Ejercicios 2. Econometría I

MODELO PARA EL ESTUDIO DEL REEMPLAZO DE UN EQUIPO PRODUCTIVO

Teorías de falla bajo cargas estáticas

Planificación contra stock

ASIGNATURA: MATEMATICAS FINANCIERAS

DEPARTAMENTO DE MATEMÁTICA UNIVERSIDAD TECNICA FEDERICO SANTA MARIA 1. INTRODUCCIÓN

Estimación puntual y por intervalos de confianza

ESTADÍSTICA DESCRIPTIVA: UNA VARIABLE Julián de la Horra Departamento de Matemáticas U.A.M.

Ley de los números grandes

11. TRANSFORMADOR IDEAL

Ejercicios Resueltos ADC / DAC

SELECTIVIDAD ANDALUCÍA MATEMÁTICAS CCSS SOBRANTES 2008 (MODELO 5)

ANÁLISIS MATEMÁTICO I - EXAMEN FINAL - 16 de julio de 2015 APELLIDO Y NOMBRE:... CORRIGIÓ:...REVISÓ:...

SUCESIONES Y SERIES página 205 SUCESIONES Y SERIES Una sucesión es un conjunto de números ordenados bajo cierta regla específica.

MATEMÁTICAS FINANCIERAS

8 Funciones, límites y continuidad

Sucesiones y ĺımite de sucesiones

Análisis de datos en los estudios epidemiológicos II

Tema 3. Polinomios y otras expresiones algebraicas (Estos conceptos están extraídos del libro Matemáticas 1 de Bachillerato.

IES Fco Ayala de Granada Sobrantes 2014 (Modelo 2 ) Soluciones Germán-Jesús Rubio Luna

1. Demuestra que si p es un natural y p es compuesto, entonces existe un divisor m de p con 1 < m p.

Límite de una función

MEDIDAS DE RESUMEN. Jorge Galbiati Riesco

7.2. Métodos para encontrar estimadores

MARTINGALAS Rosario Romera Febrero 2009

Ejemplos y ejercicios de. Análisis Exploratorio de Datos. 2 Descripción estadística de una variable. Ejemplos y ejercicios.

Límite de una función

Sistemas Automáticos. Ing. Organización Conv. Junio 05. Tiempo: 3,5 horas

Tema 9. Inferencia Estadística. Intervalos de confianza.

Transcripción:

Capítulo 3 Algoritmos uméricos. 3.. Solució de sistema simultáeo de ecuacioes lieales. Si se aplica método odal co modificacioes, para tratar fuetes de voltajes cotroladas e idepedietes, se obtiee u sistema de ecuacioes, del tipo: A x b Dode A es la matriz odal aumetada, x es el vector de icógitas y b el vector de excitacioes. Existe dos esquemas geerales para resolver sistemas lieales de ecuacioes: Métodos de elimiació directa y Métodos Iterativos. Los métodos directos, está basados e la técica de elimiació de Gauss, que mediate la aplicació sistemática de operacioes sobre los regloes trasforma el problema origial de ecuacioes e uo más simple de resolver. De etre los variados esquemas, basados e la elimiació de Gauss, el método de descomposició e submatrices triagulares (LU, de Lower y Upper) es preferetemete empleado e implemetacioes computacioales, para sistemas de meos de 300 ecuacioes. Para sistemas de u mayor úmero de ecuacioes se emplea métodos iterativos. La mayoría de estos procedimietos está basados e el método de Gauss Seidel, co aceleracioes para la covergecia. 3... Descomposició LU. Está basado e descompoer la matriz de coeficietes e dos matrices triagulares L y U, segú: A L U Dode L es ua matriz triagular iferior (lower), y U es ua matriz triagular superior (upper). El sistema origial de ecuacioes, queda: L U x b Que puede ser iterpretado como dos sistemas de ecuacioes: Profesor Leopoldo Silva Bijit 0-0-00

Estructuras de Datos y Algoritmos L d U x b d Los dos sistemas ateriores so secillos de resolver, como se verá más adelate. El sistema co matriz L, puede ser resuelto por substitucioes hacia adelate; el sistema co matriz U se resuelve por substitucioes hacia atrás. El procedimieto está basado e obteer las matrices L y U, a partir de A; luego e obteer el vector d; y fialmete e calcular la solució e el vector x. Existe varias formas de efectuar la descomposició, el método de Doolittle asiga uos a los elemetos de la diagoal pricipal de L. Veremos a través de u ejemplo, las pricipales ideas, itetado obteer u algoritmo para el cálculo. Se tiee la matriz A de 4x4 y se desea obteer L y U. A a a a a 0 0 0 u u u u 3 4 3 4 a a a a l 0 0 0 u u u 3 4 3 4 a a a a l l 0 0 0 u u 3 3 33 34 3 3 33 34 a a a a l l l 0 0 0 u 4 4 43 44 4 4 43 44 Efectuado la multiplicació de las matrices L y U, se obtiee: A u u u u 3 4 l u l u u l u u l u u 3 3 4 4 l u l u l u l u l u u l u l u u 3 3 3 3 3 3 3 33 3 4 3 4 34 l u l u l u l u l u l u l u l u l u u 4 4 4 4 3 4 3 43 33 4 4 4 4 43 34 44 El primer regló de A permite, por comparació, determiar el primer regló de U. u a; u a ; u 3 a3 ; u4 a 4 Ua vez coocido u, la primera columa de A permite determiar el primer regló de L, se obtiee: l a / u; l3 a3 / u; l4 a4 / u Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 3 El segudo regló de A, permite calcular el segudo regló de U, ua vez coocidos los elemetos del primer regló de U, se tiee: lu u a; lu3 u3 a3; lu4 u4 a 4 Despejado los elemetos del segudo regló de U, se obtiee: u a l u u a l u 3 3 3 u a l u 4 4 4 La seguda columa de A, permite calcular la seguda columa de L. l3u l3u a3; l4u l4u a 4 Despejado los elemetos de la seguda columa de L. se obtiee: l ( a l u ) / u 3 3 3 l ( a l u ) / u 4 4 4 Del tercer regló de A, resulta: l3u3 l3u3 u33 a33; l3u4 l3u4 u34 a 34 Las que permite despejar los elemetos del tercer regló de U: u a l u l u 33 33 3 3 3 3 u a l u l u 34 34 3 4 3 4 De la tercera columa de A, se puede calcular la tercera columa de L: l43 ( a43 l4u3 l4u3) / u 33 Fialmete, el cuarto regló de A, permite calcular el cuarto regló de U. u44 a44 l4u4 l4u4 l43u 34 Si bie se ha desarrollado para ua matriz de 4x4, de las expresioes obteidas puede iducirse relacioes geerales, como veremos a cotiuació: Co N es el úmero de regloes y columas de A. Profesor Leopoldo Silva Bijit 0-0-00

4 Estructuras de Datos y Algoritmos Para:,..., N ; l, La diagoal de L, se obtiee por defiició de la descomposició de Doolittle. El -avo regló de U se obtiee segú: Para: i,..., N ;, i, i, k k, i k u a l u Y la -ava columa de L co: Para: j,..., N l j, a j, l j, kuk, / u, k A cotiuació se obtiee el algoritmo para la substitució hacia delate: De la relació: Se obtiee: L d b l l l 0 0 0 d b 0 0 d b l l l 0 d b 3 3 33 3 3 l l l l 4 4 43 44 4 4 d b Efectuado las multiplicacioes, e el lado derecho, se tiee: l d l d l d l d l d l d 3 3 33 3 3 l d l d l d l d 4 4 43 3 44 4 4 b b b b Las compoetes del vector d, se obtiee segú: Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 5 d b / l d ( b l d ) / l d ( b l d l d ) / l 3 3 3 3 33 d ( b l d l d l d ) / l 4 4 4 4 43 3 44 Ua vez obteido d, se substituye e la expresió siguiete para calcular d ; co d y d, se puede calcular d 3 ; y así sucesivamete. Por esta razó, al procedimieto se lo deomia substitució hacia adelate (forward). El vector d, puede recalcularse para diferetes valores del vector b, que es la situació que se produce e u barrido DC. Debido a que e el método de Gauss se ocupa, desde el iicio de las operacioes, los valores de b; el efectuar cálculos co b variable lo realiza co vetajas el método de descomposició triagular. La relació aterior, permite deducir ua expresió para calcular los d i, e ua matriz de orde N. i l d ( b l d ) / l i i ij j ii j Para: i,,, N E la descomposició de Doolittle, los l ii so uos. El algoritmo para la substitució hacia atrás se obtiee de maera similar a las ateriores. Para la triagular superior: Se tiee: U x d u u u u 3 4 0 u u u x d x d 3 4 0 0 u u x d 33 34 3 3 0 0 0 u x d 44 4 4 Efectuado las multiplicacioes, se obtiee: Despejado los x i, se obtiee: u x u x u x u x 3 3 4 4 u x u x u x 3 3 4 4 u x d d d 33 3 34 4 3 u x u x d 44 4 4 Profesor Leopoldo Silva Bijit 0-0-00

Estructuras de Datos y Algoritmos x d / u 4 4 44 x ( d u x ) / u 3 3 34 4 33 x ( d u x u x ) / u 3 3 4 4 x ( d u x u x u x ) / u 3 3 4 4 Que etrega la solució del sistema de ecuacioes. Nótese que primero se obtiee x 4 ; y luego x 3, que se calcula e térmios de x 4 ; y así sucesivamete. Por esta razó a este algoritmo se lo deomia substitució hacia atrás (back). E geeral: x d / u x N N NN i d N i ij j j i u ii u x Para: i ( N ),( N ),,3,, La observació cuidadosa de la geeració de las matrices L y U, muestra que o es ecesario emplear espacio adicioal para éstas. Los valores que se va calculado puede almacearse e la matriz A. Tampoco es ecesario almacear los elemetos de la diagoal pricipal de L, ya que so uos por defiició. Etoces luego de la descomposició, la matriz origial queda, e el caso del ejemplo de 4x4: A u u u u 3 4 l u u u 3 4 l l u u 3 3 33 34 l l l u 4 4 43 44 void ludcmp(float **a, it N) /*Dada a[..n][..n], la reemplaza por la descomposició LU Doolittle.*/ { it,i,j,k; float sum; for (=; <=N; ++) { for (i=; i<=n; i++) { sum=0; for (k=; k<=(-); k++) sum += a[][k]*a[k][i]; a[][i]-=sum; u a l u, i, i, k k, i k Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 7 for (j=+; j<=n; j++) { sum=0; for (k=; k<=(-); k++) sum += a[j][k]*a[k][]; a[j][]=(a[j][]-sum)/a[][]; /*Realiza substitucioes hacia adelate y hacia atrás. a[..n][..n] es de etrada y debe coteer la descomposició L y U. b[..n] el vector de excitació. Retora e b la solució. a o es modificada y puede realizarse sucesivos llamados co diferetes valores de b. */ void lufwbksb(float **a, it N, float b[]) { it i,j; float sum; for (i=; i<=n; i++) { sum=0; for (j=; j<=(i-); j++) sum += a[i][j]*b[j]; b[i]-=sum; //l[i][i]=. //se geera vector d e el espacio ocupado por b. b[n]/=a[n][n]; for (i=(n-); i>=; i--) { sum=0; for (j=(i+); j<=n; j++) sum += a[i][j]*b[j]; b[i]=(b[i]-sum)/a[i][i]; //se almacea solució x e el espacio ocupado por b. Ejemplo de uso. //Resuelve el sistema de ecuacioes lieales a X = b. ludcmp(a, ); lufwbksb(a,, b); 3... Métodos iterativos. Para deducir expresioes geerales que permita escribir algoritmos iterativos, cosideremos el sistema lieal de tres ecuacioes: a a a x b 3 a a a x b 3 a a a x b 3 3 33 3 3 l j, a j, l j, kuk, / u, k i l d ( b l d ) / l i i ij j ii j x d / u x N N NN i d N i ij j j i u ii u x Profesor Leopoldo Silva Bijit 0-0-00

8 Estructuras de Datos y Algoritmos Despejado de la primera ecuació, la variable x ; de la seguda x ; y de la tercera x 3, obteemos: x ( b a x a x ) / a 3 3 x ( b a x a x ) / a 3 3 x ( b a x a x ) / a 3 3 3 3 33 Si cosideramos coocidos los valores de las variables del lado derecho, podremos estimar u uevo valor para las variables del lado izquierdo de las ecuacioes. Podemos aotar lo aterior, mediate: x [ ] ( b a x [ ] a x [ ]) / a 3 3 x [ ] ( b a x [ ] a x [ ]) / a 3 3 x [ ] ( b a x [ ] a x [ ]) / a 3 3 3 3 33 Dode xi[ ] es el valor de xi e la iteració (i+); y xi[ ] es el valor obteido e la iteració aterior. Durate el proceso iterativo se verifica la covergecia calculado el mayor cambio relativo etre ua iteració y la siguiete, y comparado el valor absoluto de esta diferecia co la toleracia deseada. x [ ] x [ ] toleracia i i Si el error es meor que la exactitud requerida el proceso termia; e caso cotrario se realiza ua ueva iteració. Si se tiee N variables, puede geeralizarse las iteracioes segú: j i j N x [ ] ( b a x [ ] a x [ ]) / a i i ij j ij j ii j j i El esquema aterior se recooce como método de Jacobi. Si el cálculo de las variables se realiza e orde, desde x hasta vez obteido x puede usarse este valor para calcular x N, puede observarse que ua x ; y así sucesivamete. Etoces e el cálculo x i se puede emplear los uevos valores de las variables desde x hasta x i. Etoces el esquema iterativo puede platearse: Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 9 j i j N x [ ] ( b a x [ ] a x [ ]) / a i i ij j ij j ii j j i El que se deomia método de Gauss Seidel. Mejores resultados se logra calculado las variables e orde decreciete de los valores de la diagoal pricipal. Ua mejora otable de la covergecia se logra empleado u promedio poderado de los resultados de las dos últimas iteracioes para obteer el uevo valor. Esto se deomia método de sucesivas sobre relajacioes (SOR Successive Over-Relaxatio). Co: 0 a xi[ ] axi[ ] ( a) xi[ ] Si a es, se tiee la fórmula de Gauss Seidel. Co a>, el uevo valor, e la iteració (+), tiee mayor importacia. Co a<, se tiee subrelajació. La elecció de este valor, y su ifluecia e la covergecia debería aclararse e u curso de aálisis umérico. La recurrecia para ecotrar el uevo valor por el método SOR: j i x [ ] ( a) x [ ] a( b a x [ ] a x [ ]) / a i i i ij j ij j ii j j i j N El algoritmo descrito e pseudo código: SOR. Dados: N, a, b, x[0], tol, max. for =, max do Comieza iteracioes for i =,... N do j i y [ ] ( a) x [ ] a( b a y [ ] a x [ ]) / a i i i ij j ij j ii j j i ed for i y i x for j =,.. N do x y j ed for i if ( tol ) stop ed for j i j N Profesor Leopoldo Silva Bijit 0-0-00

0 Estructuras de Datos y Algoritmos /*Dados a[..n][..n], b[..n] calcula x[..n] Co max iteracioes y factor de relajació alfa. Retora solució e x[..n]*/ it sor(float **a, it N, float *x, float *b, it max, float alfa) { it, i, j, ad; float sumi, sums; float *y; y=vector(, N); //vector de flotates for (=; <=max; ++) { for(i=; <=N; i++) { sumi=0; for (j=; j<=(i-); j++) sumi += a[i][j]*y[j]; sums=0; for (j=i+; j<=n; j++) sums += a[i][j]*x[j]; y[i]=(.-alfa)*x[i] + alfa*(b[i]-sumi-sums)/a[i][i]; ad=; for(j=; j<=n; j++) { ad = ad && (fabs(y[j]-x[j]) < tol*(fabs(x[j])); //error relativo if( ad==0) break; for(j=; j<=n; j++) x[j]=y[j]; if (ad) break; //putchar('.'); free_vector(y,, N); retur (); E lugar de emplear errores absolutos: (fabs(y[j]-x[j]) < tol), es preferible utilizar errores relativos: (fabs(y[j]-x[j]) < tol*(fabs(x[j]) ); 3.. Solució umérica de sistemas de ecuacioes difereciales. Ua ecuació diferecial de primer orde puede resolverse uméricamete mediate itegració. Si se tiee: dr() t Ft () dt Etoces: t r( t) r(0) F( ) d Ft () cosidera la variació de r(t) y de las excitacioes que produce la respuesta r(t). 0 Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos Ua maera simple y aproximada de realizar la itegració es calcular el área mediate la suma de rectágulos, que estudiaremos como el método de Euler. Ua mejor aproximació se logra sumado trapecios, si se desea mayor precisió se emplea aproximació por segmetos parabólicos, co la regla de Simpso. Para dismiuir la acumulació de errores se emplea el método de Ruge-Kutta. 3... Formulació de ecuacioes de estado. La formulació de las ecuacioes de ua red eléctrica e térmios de las variables de estado permite ecotrar la solució de u sistema de ecuacioes difereciales de primer orde e el domiio del tiempo. La solució umérica, que veremos a cotiuació, puede extederse a sistemas o lieales. La represetació se logra co u sistema de ecuacioes difereciales de primer orde: dx dt Ax Bu Dode x es el vector de estado, u es el vector de etrada o de excitacioes. El resto de las variables del sistema puede expresarse e térmios del estado, segú: y Cx Du Dode y es el vector de salida. A se deomia matriz de estado del sistema, B es la matriz de etrada, C es la matriz de salida, y D se deomia matriz de alimetacioes directas (feedforward). 3... Método de Euler. A partir de la expasió e serie de Taylor, para ua variable escalar x, se tiee: dx( t) dx ( t) ( ) ( )... x t t x t t t dt dt La relació aterior, puede geeralizarse cosiderado a x como el vector de estado. Puede calcularse, aproximadamete, los valores de las variables de estado e el istate siguiete (k+), a partir de los valores e el istate k-ésimo, mediate: dxi( tk) xi[ k ] xi[ k] t dt Este procedimieto iterativo se deomia esquema simple de Euler. Profesor Leopoldo Silva Bijit 0-0-00

Estructuras de Datos y Algoritmos Los valores de las derivadas, e u istate determiado, se obtiee mediate la matriz de estado. j j x [ k ] x [ k] ( a x [ k] b u [ k]) t Para: i,,, i i ij j ij j j j A partir de la ecuació de estado se determia el valor de las derivadas e u puto. La siguiete fució calcula e la matriz x, los valores de las variables de estado e putos separados e itervalos de tiempo Delta. No se cosidera la matriz b, i el vector u de excitacioes. Esto equivale a resolver u sistema de ecuacioes difereciales lieales homogéeas y de primer orde. void euler(float **a, it N, float **x, float *ic, it putos, float Delta) /*Dados a[..n][..n], ic[..n] calcula x[..n][..putos]*/ { it i, j, k; float sum, t=0.; for(i=; i<=n; i++) x[i][]=ic[i]; //codicioes iiciales. for (k=; k<putos; k++) { t= t+delta; for(i=; i<=n; i++) { sum=0; for (j=; j<=n; j++) sum += a[i][j]*x[j][k]; x[i][k+]= x[i][k]+sum*delta; Ua alterativa de diseño es geerar u archivo de datos e lugar de almacear los putos e ua matriz. Co el archivo de datos se puede geerar formas de odas. La siguiete fució ilustra la geeració de u archivo de datos compatible co el comado poitplot de Maple. Geerado los putos (t[k], x[i][k]) para la variable x i. void geseq(float **a, it N, float **x, it putos, float Delta, it i) /*Dados a[..n][..n], ic[..n] y x[..n][..putos] geera seq compatible para gráficos de tipo poitplot e Maple.*/ { it k; float t=0.; pritf("seq:=["); for (k=; k<=putos; k++, t=t+delta) { pritf("[%g,%g]\", t, x[i][k]); if (k<putos) putchar(','); putchar(']'); putchar('\'); Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 3 Ejemplo de uso: =;putos=0; a=matrix(,,, ); //pide espacio a[][]=0.; a[][]=.; a[][]=-3.; a[][]=-.; ic=vector(, ); ic[]=.;ic[]=0.; x=matrix(,,, putos); //pide espacio //Resuelve sistema ecuacioes difereciales. euler(a,,x,ic,putos,0.); geseq(a,,x,putos,0.,); La última ivocació geera para la variable x : Seq:=[[0,],[0.,],[0.,0.97],[0.3,0.9],[0.4,0.8437],[0.5,0.75838],[0.,0.483],[0.7,0.5708],[0.8,0.498],[0.9,0.37374],[,0.8334],[.,0.997],[.,0.448],[.3,0.05859],[.4,0.004004],[.5,-0.045735],[.,-0.0834903],[.7,-0.3],[.8,-0.3883],[.9,-0.459] ] Debido a la acumulació de errores o suele emplearse el algoritmo de Euler. 3..3. Algoritmo de Euler. Para el caso de ua variable, teemos: dy() t dt f ( t, y( t)) Se puede obteer los valores sucesivos de y, mediate: Si defiimos: Se realiza la itegració mediate: y y hf ( t, y( t )) k hf ( t, y ) y y k Se tiee que f ( t, y ) es la derivada de la fució yt (), y k es el área del rectágulo bajo la curva de f ( t, y ), y tambié el icremeto de la ordeada. Las relacioes se muestra e la Figura, para la variable yt (). Profesor Leopoldo Silva Bijit 0-0-00

4 Estructuras de Datos y Algoritmos y y k tg f t y ( ) (, ) t t h y + f(t +,y + ) y k f(t,y ) t t h + t t h + Figura 3.. Método de Euler. 3..4. Algoritmo trapezoidal. Ua mejor aproximació para el área bajo la curva de f ( t, y) es mediate el trapecio etre las paralelas t y t. y + f(t +,y + ) y (k + k )/ f(t,y ) t t h + t t h + Figura 3.. Método trapezoidal. Etoces: Co: h y y ( f ( t, y) f ( t, y )) k hf ( t, y ) k hf ( t, y ) Se realiza la itegració trapezoidal mediate: Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 5 y y ( k k ) E cada paso de itegració es preciso evaluar dos veces la fució: f ( t, y ). La determiació de y que se emplea e el cálculo de k, puede determiarse, aplicado Euler, segú: y y k 3..5. Algoritmo de Simpso. Para refiar el cálculo del área, se defie u puto detro del itervalo, de este modo puede calcularse el área bajo ua parábola que pasa por los tres putos: f ( t0, y 0), f ( t, y ), f ( t, y ), co t t 0 h / y t t 0 h. y y + (k 0 +4 k + k )/ f(t +h/, y(t +h/)) f(t,y ) f(t +,y + ) f a (t) t t h + t t h + Figura 3.3. Método de Simpso. Si la ecuació de la parábola que aproxima el área bajo la curva de f ( t, y) es: Se tiee: f t at bt c a () f at bt c 0 0 0 f at bt c f at bt c Que permite calcular abc,,, coociedo: f0, f, f, t0, t, t. Luego se realiza la itegral: t t A f () t dt t t0 a Profesor Leopoldo Silva Bijit 0-0-00

Estructuras de Datos y Algoritmos Aplicado que t t 0 h / y t t 0 h, se obtiee: h A ( f0 4 f f ) Co: k hf ( t, y ) 0 k hf ( t h /, y( t h / )) k hf ( t h, y( t h)) El paso de itegració puede realizarse segú: y y ( k0 4 k k ) E cada paso de itegració es preciso evaluar tres veces la fució: f ( t, y ). Los valores de las ordeadas itermedias, puede calcularse, segú: y( t h / ) y k h / y( t h) y k h 0 0 La fórmula aterior permite deducir la coocida fórmula para la aproximació de Simpso. Si se tiee cico valores de tiempos para los cuales se calcula la itegral, se tiee el área acumulada, segú: Area ( k0 4 k k) ( k 4 k3 k 4) La cual puede simplificarse a: Area ( k0 4 k k 4 k3 k 4 ) Co + putos e total, se tiee e geeral: h Area ( f0 4 f f 4 f3... f 4 f f ) double SimpsoItegral(double a, double b, it ) { double h, suma, sumap, sumai; it i; if (%==) ++; //deja a como úmero par. h=(b-a)/; suma=f(a)+f(b); //suma los extremos for(i=, sumap=0; i<; i+=){ sumap+=f(a+i*h); //acumula impares Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 7 for(it i=, sumai=0; i<; i+=){ sumai+=f(a+i*h); //acumula pares. retur ((suma+4*sumap+*sumai)*h/3); 3.4.. Métodos multietapas. Existe métodos más elaborados para efectuar u paso de itegració, E éstos la fució se evalúa e varias etapas etre dos putos. Los putos de las etapas sólo se emplea para el cálculo del uevo valor. Cosiste e defiir ua fució e la cual se escoge los parámetros de tal modo de miimizar los errores. Sea la fució y, t ; h, etoces, la itegració se realiza mediate: y y h y, t; h El método de Euler es: y, t; h f ( y, t ) El siguiete esquema es de Ruge-Kutta, de segudo orde, co cuatro parámetros. Co: k f y, t k f y hk, t h y y h ak bk y t, t af y( t), t bf y( t) hf y( t), t, t h Dode debe determiarse: ab,,, por cosideracioes de exactitud. Si se defie el error de la aproximació por: T y t h y t h y t, t Para el primer térmio de T, por expasió de Taylor de y(t), resulta: Como se tiee: 3 3 dy( t) h d y( t) h d y( t) y t h y t h O h 3 dt! dt 3! dt 4 ( ) Profesor Leopoldo Silva Bijit 0-0-00

8 Estructuras de Datos y Algoritmos dy dt f y t, t La seguda derivada de y, se obtiee segú: d y d f f dy f f, t y f y t t f f f f dt dt t y dt t y Las derivadas parciales de f se ha represetado, e forma abreviada, mediate subídices. Para la tercera derivada, se tiee: d 3 y d f f d f d f f df f ( ) ( ) f 3 dt dt t y dt t dt y y dt La cual permite obteer: 3 d y f f f f f f f 3 dt t t y y t y y t y f f f f Fialmete para la tercera derivada: 3 d y f ( ) ( ) 3 tt f yt f f yt f yy f f f y ft f y f dt Reemplazado las derivadas obteidas, e la expasió de Taylor, se logra: h h y t h y t hf f f f f f f f f f f f f O h! 3! 3 4 ( t y ) ( tt ty yy y t y ) ( ) Dode se ha empleado: f f y t, t Para el segudo térmio de T, se requiere expadir el térmio que está multiplicado por b. Para esto se emplea la expasió de Taylor de dos variables de f y y, t t, co: y hf, t h. Como está multiplicado por h, sólo es ecesario cosiderar hasta los térmios de segudo orde. Etoces; Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 9 f y y, t t f y, t f ( y, t) f ( y, t) f ( y, t) f ( y, t) f ( y, t) y t y y t t y t y y t t Reemplazado e la aterior, los valores de los icremetos y empleado otació abreviada para las derivadas parciales de f, se logra: f y y, t t f y, t f hf f h f hf f hf h f h O h 3 y ( ) t ( ) yy ( ) yt ( )( ) tt ( ) ( ) Reemplazado la expresió aterior e: y t, t af y( t), t bf y( t) hf y( t), t, t h Se obtiee: y t, t af b( f f hf f h f ( hf ) f ( hf ) h f h ) O h 3 y t yy yt tt Dode las fucioes y las derivadas parciales está evaluadas e t. Se tiee fialmete para el error: h h T h f ft ff y ftt fty f f yy f f y ft f y f 3! fyy f ftt 4 y t yt h af b f ( f f f ) h h f fh h O( h ) Los parámetros: ab,,, hacerse cero los coeficietes de h y 3 h., se escoge del tal modo de miimizar el error. E este caso puede Profesor Leopoldo Silva Bijit 0-0-00 h, pero o es posible elimiar la parte que depede de Para elimiar la parte proporcioal a h, se debe cumplir: f af bf 0 Para elimiar la parte proporcioal a h, se debe cumplir: ( f ff ) / bf f bf 0 t y y t De la primera se obtiee: a b De la seguda, debe cumplirse: ft( b ) ff y( b ) 0, de la que se desprede: b b

0 Estructuras de Datos y Algoritmos Co a, b 0 se tiee el método de Euler. No puede ajustarse,. Por esta razó puede decirse que el algoritmo de Euler perteece a la familia Ruge-Kutta de segudo orde. 3.4... Método de Heu. Cosidera:, 0, a b que satisface las dos relacioes ateriores. Se realiza la itegració mediate: h y y k k Co: k f y t 3.4... Método del puto medio. Cosidera:, k f y k h t h,, a 0, b que satisface las dos relacioes ateriores. Co: y y hk k f y t, kh h k f y, t La pediete de y está dada ahora por el valor de f e el puto medio del itervalo. y y + hk f(t,y ) f(t +h/,y +k h/) f(t +,y + ) t t h + t t h + 3.4..3. Método de Ralsto. Cosidera: 3 4 Figura 3.4. Método del puto medio. a, b que satisface las dos relacioes ateriores. 3 3 Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos Se itegra mediate: h y y ( k k ) 3 Co: k f y t, 3kh 3h 4 4 k f y, t E los algoritmos del método de Ruge-Kutta de segudo orde, debe evaluarse dos veces la fució: f y( t), t, para obteer el siguiete puto de la fució. 3.4.7. Métodos de Ruge-Kutta de cuarto orde. Para derivar el algoritmo de cuarto orde de Ruge Kutta, se defie los 0 parámetros: a, b, a, b, a, b, w, w, w, w. Los cuales debe elegirse de tal modo de elimiar los errores 3 3 3 4 proporcioales hasta la cuarta potecia del itervalo temporal h. Co: k hf y, t k hf y b k, t a h k hf y b k, t a h 3 k hf y b k, t a h 4 3 3 3 y y w k w k w k w k 3 3 4 4 y t, t w f y, t w f y b k, t a h w f y b k, t a h w f y b k, t a h 3 4 3 3 3 La expresió para el error es: T y y h y t, t Ates se obtuviero las tres primeras derivadas de y. Se requiere calcular la cuarta derivada de y, se tiee: 4 d y d ( ) 4 f tt f ty f f yy f f y f t f y f dt dt Derivado, se obtiee: Profesor Leopoldo Silva Bijit 0-0-00

Estructuras de Datos y Algoritmos 4 d y dy dy d y dy dy (( f ) ) 4 yyy f yyt f yy f yyt f ytt dt dt dt dt dt dt 3 dy d y d y dy dy d y dy yy yt y 3 yyt ytt yt ytt ttt ( f f ) f ( f f ) f f f dt dt dt dt dt dt dt Reemplazado la primera derivada de y: d y dt d y (( f f f ) f f f f f ) f dt 4 4 yyy yyt yy yyt ytt d y 3 d y d y yy yt y 3 yyt ytt yt ytt ttt ( f f f ) f ( f f f ) f f f f f dt dt dt Reemplazado la seguda derivada de y, se tiee: 4 d y dt 4 (( f f f ) f f ( f f f ) f f f ) f yyy yyt yy t y yyt ytt 3 d y yy yt t y y 3 yyt ytt yt t y ytt ttt ( f f f )( f f f ) f ( f f f ) f f ( f f f ) f f f dt Reemplazado la tercera derivada de y, se obtiee: 4 d y (( f ) ( ) ) 4 yyy f f yyt f f yy ft f y f f yyt f f ytt f dt ( f f f )( f f f ) f ( f f f ( f f f ) f yy yt t y y tt ty yt yy f ( f f f )) ( f f f ) f f ( f f f ) f f f y t y yyt ytt yt t y ytt ttt Reemplazado las derivadas obteidas, e la expasió de Taylor, se logra la serie: 3 h h y t h y t hf ( ft f y f ) ( ftt fty f f yy f f y ft f y f )! 3! 4 h 3 ( f yyy f 3f yyt f 4f yy f y f 3f yy ft f 3f yyt f 5f yt f y f 4! 3 5 3 f f f f f f f f f ) O( h ) yt t y y t y tt ttt Dode se ha empleado: f f y t, t La seguda compoete del error, requiere calcular: Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 3 h y t, t w k w k w k w k 3 3 4 4 Se emplea la expasió de Taylor de dos variables de f y y, t t, co los diferetes y, t. Como está multiplicado por h, sólo es ecesario cosiderar hasta los térmios de tercer orde. Etoces; f y y, t t f y, t f y y ft t f yy y f yt y t ftt t f y f y t f y t f t 3 3 yyy yyt ytt ttt Reemplazado e la aterior, los valores de los icremetos y empleado otació abreviada para las derivadas parciales de f, se logra: k hf k = b 3 f 3 fyyy b f fyyt a fyy b f b f fyt a b f a fytt a3 fttt h 4 ftt a h 3 ( fy b f ft a ) h h f k3 = fy b fyy b f b f fyt a b ( fy b f ft a ) fyt a h 4 fy b ( fy b f ft a ) ( fy b f ft a ) h h f ftt a fyy b f ( fy b f ft a ) b f fyyt a b f a fytt b 3 f 3 fyyy ftt a fyy b f b f fyt a h 3 a 3 fttt k4 = h f a3 3 fttt fyy b3 f ( fy b f ft a ) fy b3 fy b ( fy b f ft a ) ftt a b3 3 f 3 fyyy fyy b f b3 f a3 fytt b f fyt a Profesor Leopoldo Silva Bijit 0-0-00

4 Estructuras de Datos y Algoritmos b3 ( fy b f ft a ) fyt a3 fyy b3 f ftt a3 ( fy b3 f ft a3 ) h b3 f fyyt a3 h 4 fy b3 ( fy b f ft a ) b3 f fyt a3 h 3 Reemplazado las expresioes ateriores e: y t, t Se obtiee: h y t, t w b 3 f 3 fyyy b f fyyt a fyy b3 f ( fy b f ft a ) fy b3 fy b ( fy b f ft a ) b3 ( fy b f ft a ) fyt a3 fy b fyy b f b f fyt a b ( fy b f ft a ) fyt a h 4 w4 fyy b3 f w fyy b f b f fyt a w3 fy b ( fy b f ft a ) b f a fytt b3 3 f 3 fyyy ftt a a 3 fttt w4 b3 f a3 fytt fyy b f b f fyt a a33 fttt b3 f fyyt a3 w3 ftt a fyy b f ( fy b f ft a ) b f fyyt a ftt a3 ftt a ftt a b f a fytt b 3 f 3 fyyy fy b3 ( fy b f ft a ) b3 f fyt a3 fyy b f b f fyt a h 3 ( w4 ( fy b3 f ft a3 ) w ( fy b f ft a ) w3 ( fy b f ft a ) ) h ( w f w f w4 f w3 f ) h a 3 fttt Dode las fucioes y las derivadas parciales está evaluadas e t. Deducir los valores de los parámetros para elimiar térmios e la expresió para el error de la aproximació resulta complejo. Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 5 La geeració automática de la fució, se logra co el segmeto: > restart; > tmv:=mtaylor(f(y,t),[y=y,t=t],4): > sus:={d[,](f)(y,t)=fyy,d[,](f)(y,t)=fyt,d[](f)(y,t)=ft, D[](f)(y,t)=fy,D[,](f)(y,t)=ftt,f(y,t)=f, D[,,](f)(y,t)=fyyt,D[,,](f)(y,t)=fytt, D[,,](f)(y,t)=fttt,D[,,](f)(y,t)=fyyy: > tmv:=subs(sus,tmv): > k:=h*f: > k:=h*eval(tmv,{y-y=b*k,t-t=a*h):collect(k,h): > k3:=h*eval(tmv,{y-y=b*k,t-t=a*h):k3:=collect(k3,h): > temp3:=k3: for i from 5 to 3 do temp3:=eval(temp3,h^i=0) od: collect(temp3,h): > k4:=h*eval(tmv,{y-y=b3*k3,t-t=a3*h): k4:=collect(k4,h): temp4:=k4: for i from 5 to 40 do temp4:=eval(temp4,h^i=0) od: > temp:=collect(w*k+w*k+w3*k3+w4*k4,h): > for i from 5 to 40 do temp:=eval(temp,h^i=0) od: Phi:=collect(temp,h): La geeració del primer térmio del error, puede geerarse automáticamete co: > restart; > y:=taylor(y(t),t=t,5):y:=subs({t-t=h,y): > sus0:={y(t)=0,d(y)(t)=f,`@@`(d,)(y)(t)=d,`@@`(d,3)(y)(t)=d3,`@@` (D,4)(y)(t)=d4: F:=subs(sus0,y): > d:=diff(f(y(t),t),t): > d3:=diff(d,t): > d4:=diff(d3,t): > sus:={d[,](f)(y(t),t)=fyy,d[,](f)(y(t),t)=fyt,d[](f)(y(t),t)=ft, D[](f)(y(t),t)=fy, D[,](f)(y(t),t)=ftt,f(y(t),t)=f,D[,,](f)(y(t),t)=fyyy,D[,,](f) (y(t),t)=fyyt, D[,,](f)(y(t),t)=fytt,D[,,](f)(y(t),t)=fttt: sus:={diff(y(t),t)=f: sus3:={diff(y(t),`$`(t,))=fy*f+ft: sus4:={diff(y(t),`$`(t,3))=(fyy*f+fyt)*f+fy*(fy*f+ft)+fyt*f+ftt: > d:=subs(sus,d):d:=subs(sus,d): d3:=subs(sus,d3):d3:=subs(sus3,d3):d3:=subs(sus,d3):d3:=expad(d3): Profesor Leopoldo Silva Bijit 0-0-00

Estructuras de Datos y Algoritmos d4:=subs(sus,d4):d4:=subs(sus4,d4):d4:=subs(sus3,d4):d4:=subs(sus,d4 ):d4:=expad(d4): > F; Efectuado la comparació de los coeficietes del error, de tal forma de aular hasta la potecia cuarta de h, se obtiee 9 ecuacioes: Para elimiar el térmio del error proporcioal a h: e := w w w3 w4 Para elimiar el térmio del error proporcioal a h : e := w4 b3 w b w3 b e3 := w4 a3 w a w3 a Para elimiar el térmio del error proporcioal a h 3 : w b e4 := w4 b3 w3 b e5 := w4 b3 a3 w b a w3 b a e := w4 b3 b w3 b b w3 a e7 := w4 b3 a w3 b a w4 a3 e8 := w a Para elimiar el térmio del error proporcioal a h 4 : 3 w b 3 ec9 := w b a ec0 := ec := w4 b3 b w4 b3 3 w3 b 3 4 w4 b3 a3 w3 b a 8 b3 b w3 b b b b ec := w4 b3 a w3 b a w b a ec3 := w4 b3 a3 8 w3 b a 8 Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 7 ec4 := w4 ( b3 b a b3 b a3 ) w3 ( b b a b b a ) ec5 := w4 b3 a a3 w3 b a a ec := w4 b3 b b 4 ec7 := w4 b3 b a 4 w4 b3 a w3 b a ec8 := 4 w a 3 w4 a3 3 w3 a 3 ec9 := 4 Se tiee 9 ecuacioes para 0 icógitas, si embargo cosiderado que: Las ecuacioes y 7, implica que a = b. Las ecuacioes y 7, co a = b, implica: a = b Las ecuacioes y 3, co a = b, y a = b implica: a 3 = b 3 8 5 4 Las ecuacioes y 5 implica, co a = b, a = b que a 3 = b 3. las ecuacioes y 5. Por lo tato o se requiere Las ecuacioes 9, 0, 3 y 9, co a = b, a = b y a 3 = b 3 so idéticas. Sólo se requiere cosiderar ua de ellas. Las ecuacioes 4, 5 y 8, co a = b, a = b y a 3 = b 3 so idéticas. Sólo se requiere cosiderar ua de ellas. Las ecuacioes y implica la ecuació 8. Por lo tato o se requiere emplear la ecuació. Las ecuacioes y 4 implica la ecuació 8. Por lo tato o se requiere emplear la ecuació 4. Lo aterior reduce el sistema a 0 ecuacioes e 0 icógitas (a, a, a3, b, b, b3, w, w, w3, w4). Las 0 ecuacioes so las umeradas:,, 3,, 7,, 7, 4, 9, 8. > ecc:={e,e,e3,e,e7,ec,ec7,e4,ec9,ec8: > sol:=[solve(ecc)]:sol[]; { b,,,,,,,,, a w a3 b3 a w3 3 w 3 b w4 Puede comprobarse que la solució satisface las 9 ecuacioes, y que el error queda: Profesor Leopoldo Silva Bijit 0-0-00

8 Estructuras de Datos y Algoritmos T O h 5 ( ) Etoces el algoritmo de Ruge Kutta de cuarto orde resulta: k hf y, t k hf y, t k3 hf y, t 4 3 k h k h k hf y k, t h y y k k k k 3 4 Se calcula cuatro valores de la fució, para obteer el siguiete puto. Existe umerosos algoritmos e los que se varía el itervalo de tiempo etre putos. 3.3. Solució de ecuació o lieal. El problema cosiste e ecotrar la raíz de la ecuació o lieal: f( x ) 0 Normalmete la solució de f( x ) 0, puede ser difícil de ecotrar aalíticamete, pero como veremos es secilla de resolver iterativamete. 3.3.. Método de Newto-Raphso. Para resolver f( x ) 0, se parte de u valor x 0 y se geera ua serie de iteracioes x i que se acerque a la solució x s, dode f( x s ) 0. E cursos de aálisis umérico se respode las pregutas: Cuádo la secuecia x i coverge a la solució correcta? Cuá rápido se coverge? La covergecia depede del iteto iicial x? Cuádo deteer las iteracioes?. 0 El método de Newto-Raphso cosiste e reemplazar, mediate la expasió de Taylor, la fució por su versió lieal, e toro a la solució: df f ( x) f ( xs ) ( xs )( x xs ) dx Para u puto cualquiera se obtiee: Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 9 df f ( xk ) f ( xk ) ( xk )( xk xk ) dx Efectuado: f( x k ) 0, se obtiee la fórmula de la iteració de Newto-Raphso, despejado x k : x k x k f( xk ) df ( xk ) dx Podemos iterpretar la fórmula de la iteració, plateado la relació aterior e x 0, y calculado x. Situació que se ilustra e la Figura 3.5. f(x) f(x ) f(x 0 ) x s 0 x x x 0 Figura 3.5. Iteració Newto-Raphso. Resulta, de la iterpretació gráfica de la derivada e x 0 : df f( x0 ) tg( 0) ( x0) dx x x 0 Despejado x, se obtiee el primer valor de aproximació del método de Newto-Raphso: df x x0 ( x0 ) f ( x0 ) dx Nótese que f( x ) o es cero, lo cual implica que x es ua aproximació de x s. Tambié debe otarse que para calcular la siguiete aproximació debe calcularse la fució y la derivada e el puto aterior. El proceso debe repetirse hasta que: xk xk toleracia Dode el valor de toleracia debe ser u valor lo suficietemete pequeño, para que la solució se cosidere aceptable. Co úmeros reales de precisió simple (float e C), u valor razoable Profesor Leopoldo Silva Bijit 0-0-00

30 Estructuras de Datos y Algoritmos de toleracia es 0 -, que es el valor del úmero real más pequeño represetable, e el formato itero ormalizado IEEE754. Si el valor iicial es adecuado coviee limitar el úmero máximo de iteracioes, de este modo si o existe covergecia se asegura que el algoritmo termie. Tambié puede verificarse que la ordeada e los putos sucesivos esté detro de cierto rago: f ( x ) k toleracia Para evitar oscilacioes o ciclos o covergetes se limita el úmero de iteracioes. Puede producirse e u caso como el que se ilustra e la Figura 3.. Figura 3.. Oscilació. Se emplea u itervalo [x..x] e el cual se busca la raíz, para evitar la o covergecia debido a máximos o míimos detro del itervalo. Si e ua iteració se ecuetra u puto co derivada casi horizotal e el itervalo, el valor para el uevo x se aleja de la raíz, como se ilustra e la Figura 3.7. Para preveir esta situació se verifica que la ueva aproximació de la raíz permaezca detro del itervalo. Figura 3.7. Divergecia. Se detiee toleracia. las iteracioes si los dos últimos valores obteidos difiere e determiada La siguiete fució iteta ecotrar ua raíz e el itervalo [x, x]. El primer argumeto es u putero a fució co u argumeto flotate y que retora u flotate. Cuado se ivoca a NewtoRaphso el argumeto actual es el ombre de la fució que calcula el cuociete de la fució co su derivada evaluada e el x actual. Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 3 #defie max 0 //Máximo úmero de Iteracioes. float NewtoRaphso(float (*pfucio)(float), float x, float x, float toleracia) { it k; float dx, x; x=0.5*(x+x); //Iteto iicial. for (k=; k<=max; k++) { dx=(*pfucio)(x); //se ivoca a la fució cuyo ombre se pasa como primer argumeto. x -= dx; //uevo valor if ((x<x) (x>x)) {pritf("salta fuera del itervalo"); exit(); if (fabs(dx) < toleracia) retur (x); //Coverge. pritf("no coverge e %d iteracioes.\", max); exit(); retur (0.0); //Para evitar warig. La siguiete fució, para u poliomio, defie la derivada y retora el cuociete etre la fució y su derivada. Nótese que la fució recibe u argumeto flotate y retora u flotate. De este modo, su ombre fi es u putero costate compatible co el primer argumeto de NewtoRaphso. float fu(float x) { float fucio, derivada; fucio=.*pow(x,4)-*pow(x,3)+x+7; //fució de x, evaluada e x; derivada=.8*pow(x,3)-*pow(x,)+; //derivada de f evaluada e x; retur (fucio/derivada); La fució: f ( x) 4 0.x 3 x x 7, tiee dos raíces reales, como se ilustra e la Figura 3.8. La solució co fsolve de Maple, etrega:.7489875, 9.93994 Profesor Leopoldo Silva Bijit 0-0-00

3 Estructuras de Datos y Algoritmos Figura 3.8. Empleado la fució NewtoRaphso, puede obteerse las raíces mediate: pritf("valor de la raíz = %f\", NewtoRaphso(fu,,,e- )); pritf("valor de la raíz = %f\", NewtoRaphso(fu,9,,e- )); 3.3.. Geeralizació para sistemas de ecuacioes o lieales. Para u sistema de ecuacioes o lieales, se emplea la expasió de Taylor para varias variables. La expasió es ua liealizació e toro a la solució: F( x) F( xs ) J ( xs )( x x s ) Las catidades Fx ( ) y ( x x s ) se expresa como vectores, y J( x s ) como ua matriz, deomiada Jacobiao. Para u puto cualquiera, co aproximació de primer orde, se tiee: F( x ) F( x ) J ( x )( x x ) k k k k k Para eteder la relació aterior se ilustra la forma que ella toma para dos fucioes de dos variables x y x, se tiee: F ( x, x ) F ( x, x ) k k k k F ( x, x ) F ( x, x ) x x x x k k k k k k F ( x, x ) F ( x, x ) F ( x, x ) F ( x, x ) x x k k k k k k k k k k x x Ua explicació del cambio de la fució de dos variables, puede efectuarse cosiderado el plao tagete a la superficie, e el puto (x 0, x 0 ) que pasa tambié por el puto (x, x ). Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 33 Dode el puto 0 es el iicial, y el puto, se obtiee pasado u plao tagete a la superficie e el puto 0. x 0 F x x F x x x x x 0 Figura 3.9. Iterpretació del Jacobiao de dos variables. Aplicado la iterpretació geométrica de las derivadas parciales, se tiee: tg( ) x tg( ) x El cambio total de la fució, resulta: F ( x 0, x 0) F x x x x 0 F ( x 0, x 0) F x x x x 0 F ( x 0, x 0) F ( x 0, x 0) F x F x ( x 0 x ) ( x0 x ) x x Aplicado el método de Newto-Raphso, que cosiste e asumir que el plao tagete pasa por el puto que es ua aproximació a la solució. Esto equivale a efectuar: F ( x, x ) k k F ( x, x ) k k 0 Etoces la fórmula de iteració, resulta: F ( x, x ) F ( x, x ) k k k k x x F ( x, x ) F ( x, x ) k k k k x x x x F ( x, x ) k k k k x x F ( x, x ) k k k k Fialmete, despejado el uevo puto: Profesor Leopoldo Silva Bijit 0-0-00

34 Estructuras de Datos y Algoritmos F( x k, x k ) F( x k, x k ) xk x k x x F( x k, x k ) x x F ( x, x ) F ( x, x ) F ( x, x ) k k k k k k k k x x La que expresada e térmios de vectores y la matriz iversa del Jacobiao, resulta e geeral, para variables: x x J x F x k k ( k ) ( k ) Ua mejor visualizació de la suma de los icremetos, se logra observado los triágulos semejates e la Figura 3.0. Por el puto iicial (,, 0) se pasa el plao z=x+3y que tambié pasa por el puto (0, 0, 0). Se ha dibujado además los plaos de z costate, z=4 y z=. z x z, 3 y z x x z 4, y y Figura 3.0. Variació total de fució de dos variables. Volviedo al caso de dos variables, cosiderado el álgebra de matrices, se tiee: a b x by dx c d y ad bc cx ay Etoces las fórmulas de iteració de Newto-Raphso para u sistema de ecuacioes o lieales de dos variables, resulta: x x k k F( k) F( k) ( F( k) F( k)) x x F ( k) F ( k) F ( k) F ( k) x x x x Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 35 x x k k F( k) F( k) ( F( k) F( k)) x x F ( k) F ( k) F ( k) F ( k) x x x x E caso de mayores órdees debe ivertirse el Jacobiao, o alterativamete resolverse el sistema lieal de ecuacioes, para las icógitas x k : J( x )( x x ) F( x ) k k k k Dode el vector de las fucioes y el Jacobiao debe evaluarse para cada x k Referecias. Numerical Recipes I C: The Art of Scietific Computig. Cambridge Uiversity Press. 99. Profesor Leopoldo Silva Bijit 0-0-00

3 Estructuras de Datos y Algoritmos Ídice geeral. CAPÍTULO 3... ALGORITMOS NUMÉRICOS.... 3.. SOLUCIÓN DE SISTEMA SIMULTÁNEO DE ECUACIONES LINEALES.... 3... Descomposició LU.... 3... Métodos iterativos.... 7 3.. SOLUCIÓN NUMÉRICA DE SISTEMAS DE ECUACIONES DIFERENCIALES.... 0 3... Formulació de ecuacioes de estado.... 3... Método de Euler.... 3..3. Algoritmo de Euler.... 3 3..4. Algoritmo trapezoidal.... 4 3..5. Algoritmo de Simpso.... 5 3.4.. Métodos multietapas.... 7 3.4... Método de Heu.... 0 3.4... Método del puto medio.... 0 3.4..3. Método de Ralsto.... 0 3.4.7. Métodos de Ruge-Kutta de cuarto orde.... 3.3. SOLUCIÓN DE ECUACIÓN NO LINEAL.... 8 3.3.. Método de Newto-Raphso.... 8 3.3.. Geeralizació para sistemas de ecuacioes o lieales.... 3 REFERENCIAS.... 35 ÍNDICE GENERAL.... 3 ÍNDICE DE FIGURAS.... 37 Profesor Leopoldo Silva Bijit 0-0-00

Algoritmos uméricos 37 Ídice de figuras. FIGURA 3.. MÉTODO DE EULER.... 4 FIGURA 3.. MÉTODO TRAPEZOIDAL.... 4 FIGURA 3.3. MÉTODO DE SIMPSON.... 5 FIGURA 3.4. MÉTODO DEL PUNTO MEDIO.... 0 FIGURA 3.5. ITERACIÓN NEWTON-RAPHSON.... 9 FIGURA 3.. OSCILACIÓN.... 30 FIGURA 3.7. DIVERGENCIA... 30 FIGURA 3.8.... 3 FIGURA 3.9. INTERPRETACIÓN DEL JACOBIANO DE DOS VARIABLES.... 33 FIGURA 3.0. VARIACIÓN TOTAL DE FUNCIÓN DE DOS VARIABLES.... 34 Profesor Leopoldo Silva Bijit 0-0-00