Anda di halaman 1dari 112

Análisis

Numérico
Intensivo 2010

Ing. Sergio Velásquez


Ing. Sergio Velásquez
Análisis Numérico.
Ing. Sergio Velásquez
Análisis Numérico.

Índice
Índice ................................................... 3
INTERPOLACION ........................................... 31
INTERPOLACION: ...................................... 32
INTERPOLACION LINEAL ................................ 32
Interpolación polinómica. ........................... 33
Mínimos Cuadrados ................................... 35
Interpolación de LaGrange ........................... 36
Interpolación de Newton ............................. 37
Trazadores cúbicos (Splines) ........................ 38
Raíces de Ecuaciones .................................... 46
Raíces de Ecuaciones .................................. 47
Método de la bisección .............................. 50
Algoritmo Método de la bisección: .................. 51
Método de la Falsa Posición ......................... 51
Algoritmo Método falsa posición: .................. 52
Regla falsa Modificada .............................. 53
Algoritmo Regula Falsi Modificada: ................. 53
Método Newton ....................................... 56
Algoritmo Método de Newton: ....................... 60
Método de la Secante ................................ 60
Algoritmo Método de la Secante: .................... 60
Punto Fijo .......................................... 61
Algoritmo Punto Fijo: .............................. 61
ECUACIONES LINEALES ..................................... 65
ECUACIONES LINEALES ................................... 66
Eliminación hacia adelante ......................... 68
Sustitución hacia atrás ............................ 71
Algoritmo de Gauss aplicado al determinante de una
matriz ............................................. 72
METODO GAUSS - JORDAN ............................... 72
La inversa por el método Gauss Jordan .............. 77
Método de Gauss Seidel ............................. 83
DESCOMPOSICIÓN LU ................................... 84
Integración ............................................. 90
Fórmula de Trapecios .................................. 91
Ing. Sergio Velásquez
Análisis Numérico.

Fórmula de Simpson .................................... 93


Fórmula 1/3 de Simpson extendida .................... 93
Fórmula 3/8 de Simpson .............................. 95
Integración de Romberg .............................. 95
Solución Numérica de Ecuaciones Diferenciales Ordinarias100
Método de Euler ...................................... 101
Métodos de Taylor de orden superior .................. 102
Métodos de Runge - Kutta ............................. 102
Método de Runge - Kutta de orden 2 ................. 103
Método de Runge - Kutta de orden 4 ................. 104
Métodos Multipaso ................................. 104
Método de Adams - Moulton de dos pasos: ............ 107
Método de Adams - Moulton de tres pasos ............ 107
Método Predictor- Corrector de Adams de cuatro pasos 108
Predictor (Adams - Bashforth de cuatro pasos) ...... 108
Corrector (Adams - Moulton de tres pasos) .......... 108
Ecuaciones Diferenciales de Orden Superior ........... 109
Resolución de Sistemas de Ecuaciones Diferenciales
Ordinarias ......................................... 110
Ing. Sergio Velásquez
Análisis Numérico.

Introducción
Ing. Sergio Velásquez
Análisis Numérico.

Introducción

La ciencia y la tecnología describen los fenómenos


reales mediante modelos matemáticos. El estudio de estos
modelos permite un conocimiento más profundo del fenómeno,
así como de su evolución futura.

La matemática aplicada es la rama de las matemáticas


que se dedica a buscar y aplicar las herramientas más
adecuadas a los problemas basados en estos modelos.
Desafortunadamente, no siempre es posible aplicar métodos
analíticos clásicos por diferentes razones:

No se adecúan al modelo concreto.


Su aplicación resulta excesivamente compleja.
La solución formal es tan complicada que hace imposible
cualquier interpretación posterior.

Simplemente no existen métodos analíticos capaces de


proporcionar soluciones al problema.

En estos casos son útiles las técnicas numéricas, que


mediante una labor de cálculo más o menos intensa, conducen
a soluciones aproximadas que son siempre numérica. El
importante esfuerzo de cálculo que implica la mayoría de
estos métodos hace que su uso esté íntimamente ligado al
empleo de computadores.

De hecho, sin el desarrollo que se ha producido en el


campo de la informática resultaría difícilmente imaginable
el nivel actual de utilización de las técnicas numéricas en
ámbitos cada día más diversos1.

6
Ing. Sergio Velásquez
Análisis Numérico.

Errores

7
Ing. Sergio Velásquez
Análisis Numérico.

Errores

El concepto de error es consustancial con el cálculo


numérico. En todos los problemas es fundamental hacer un
seguimiento de los errores cometidos a fin de poder estimar
el grado de aproximación de la solución que se obtiene.

Los errores asociados a todo cálculo numérico tienen su


origen en dos grandes factores:

Aquellos que son inherentes a la formulación del


problema. Los que son consecuencia del método empleado para
encontrar la solución del problema.

Dentro del grupo de los primeros, se incluyen aquellos


en los que la definición matemática del problema es sólo
una aproximación a la situación física real. Estos errores
son normalmente despreciables; por ejemplo, el que se
comete al obviar los efectos relativistas en la solución de
un problema de mecánica clásica.

En aquellos casos en que estos errores no son realmente


despreciables, nuestra solución será poco precisa
independientemente de la precisión empleada para encontrar
las soluciones numéricas.

Otra fuente de este tipo de errores tiene su origen en


la imprecisión de los datos físicos: constantes físicas y
datos empíricos. En el caso de errores en la medida de los
datos empíricos y teniendo en cuenta su carácter
generalmente aleatorio, su tratamiento analítico es
especialmente complejo pero imprescindible para contrastar
el resultado obtenido computacional-mente.

8
Ing. Sergio Velásquez
Análisis Numérico.

En lo que se refiere al segundo tipo de error (error


computacional), tres son sus fuentes principales:

Equivocaciones en la realización de las operaciones


(errores de bulto). Esta fuente de error es bien conocida
por cualquiera que haya realizado cálculos manualmente o
empleando una calculadora.

El empleo de computadores ha reducido enormemente la


probabilidad de que este tipo de errores se produzcan. Sin
embargo, no es despreciable la probabilidad de que el
programador cometa uno de estos errores (calculando
correctamente el resultado erróneo).

Más aún, la presencia de bugs no detectados en el


compilador o en el software del sistema no es inusual.
Cuando no resulta posible verificar que la solución
calculada es razonablemente correcta, la probabilidad de
que se haya cometido un error de bulto no puede ser
ignorada.

Sin embargo, no es esta la fuente de error que más nos


va a preocupar. El error causado por resolver el problema
no como se ha formulado, sino mediante algún tipo de
aproximación.

Generalmente está causado por la sustitución de


un infinito (sumatorio o integración) o un infinitesimal
(diferenciación) por una aproximación finita. Algunos
ejemplos son:
-El cálculo de una función elemental (por ejemplo,
Seno x) empleando sólo n términos de los infinitos que
constituyen la expansión en serie de Taylor.

9
Ing. Sergio Velásquez
Análisis Numérico.

-Aproximación de la integral de una función por una


suma finita de los valores de la función, como la empleada
en la regla del trapezoide.

-Resolución de una ecuación diferencial reemplazando


las derivadas por una aproximación (diferencias finitas).

-Solución de la ecuación f(x) = 0 por el método de


Newton-Raphson: proceso iterativo que, en general, converge
sólo cuando el número de iteraciones tiende a infinito.

-Denominaremos a este error, en todas sus formas,


como error por truncamiento, ya que resulta de truncar un
proceso infinito para obtener un proceso finito.
Obviamente, estamos interesados en estimar, o al menos
acotar, este error en cualquier procedimiento numérico.

-Por último, la otra fuente de error de importancia es


aquella que tiene su origen en el hecho de que los cálculos
aritméticos no pueden realizarse con precisión ilimitada.

Muchos números requieren infinitos decimales para ser


representados correctamente, sin embargo, para operar con
ellos es necesario redondearlos. Incluso en el caso en que
un número pueda representarse exactamente, algunas
operaciones aritméticas pueden dar lugar a la aparición de
errores (las divisiones pueden producir números que deben
ser redondeados y las multiplicaciones dar lugar a más
dígitos de los que se pueden almacenar).

El error que se introduce al redondear un número se


denomina error de redondeo.

10
Ing. Sergio Velásquez
Análisis Numérico.

Definiciones
Ahora que disponemos de una idea correcta de qué es el
error y de cuál es su origen, podemos formalizar el
concepto de error. Generalmente, no conocemos el valor de
una cierta magnitud y hemos de conformarnos con un valor
aproximado x. Para estimar la magnitud de este error
necesitamos dos definiciones básicas:

Error absoluto
de x:

( )= Ec. 1.

Error relativo
de x:
( )
( )= ; ( 0) Ec. 2.

En la práctica, se emplea la expresión:


( )
( )= ; ( 0) Ec. 3.

En general, no conocemos el valor de este error, ya que


no es habitual disponer del valor exacto de la magnitud,
sino sólo de una acotación de su valor, esto es, un número
), tal que:
| ( )| ( ) Ec. 4.

o bien:
| ( )| ( ) Ec. 5.

De acuerdo con este formalismo, tenemos que un número


se representará del siguiente modo:
= ± ( ) Ec. 6.
= (1 ± ( )) Ec. 7.

Dígitos significativos

Sea x un número real que, en general, tiene una


representación decimal infinita.

11
Ing. Sergio Velásquez
Análisis Numérico.

Podemos decir que x ha sido adecuadamente redondeado a


un número con d decimales, al que denominaremos x(d), si el
error de redondeo, es tal que:
1 Ec. 8.
= 10
2

Ejemplo 1:

Exprese el número x=35.47846 correctamente redondeado a


cuatro (x(4)) y tres (x(3)) decimales. Calcular el error
cometido.
Solución: en el primer caso obtenemos:
(4) = 35.4785
1
= |35.47846 35.4785| = 4.0 10 10
2

En el segundo caso, la aproximación correcta es:


(3) = 35.478
1
= |35.47846 35.478| = 4.6 10 10
2

y no la siguiente:
(3) = 35.478
1
= |35.47846 35.479| = 5.4 10 10
2

Es decir, no es correcto redondear por exceso cuando el


dígito anterior es 5 y proviene de un acarreo previo.
Otra forma de obtener el número de cifras
significativas es mediante truncamiento, en donde
simplemente se eliminan los dígitos de orden inferior. El
error cometido en este caso es:

= 1 10 Ec. 9.

y que, en general, conduce a peores resultados que el


método anterior.

12
Ing. Sergio Velásquez
Análisis Numérico.

Ejemplo 2: Exprese el número x=35.47846 truncado a


cuatro (x(4)) y tres (x(3)) decimales. Calcular el error
cometido.

Solución:
(4) = 35.4784
= |35.47846 35.4784| = 6.0 10 1 10

(3) = 35.478
= |35.47846 35.478| = 4.6 10 1 10

Propagación de errores

Cuando se resuelve un problema matemático por métodos


numéricos y aunque las operaciones se lleven a cabo
exactamente, obtenemos una aproximación numérica del
resultado exacto. Es importante tratar de conocer el efecto
que sobre el resultado final del problema tiene cada una de
las operaciones realizadas.
Para estudiar cómo se propaga en error, veamos cual es
el efecto que cada una de las operaciones básicas tiene
sobre el error final cuando se aplican sobre dos números
) y ) :
( + 2) ( )+ ( 2) Ec. 10.
( 2) ( )+ ( 2) Ec. 11.
( 2) ( )+ ( 2) Ec. 12.

( ) ( )+ ( 2) Ec. 13.
2

Cuando el problema consiste en calcular el


resultado y = f(x)tenemos la siguiente fórmula aproximada
de propagación del error:

( ) = | ( )| ( ) Ec. 14.

13
Ing. Sergio Velásquez
Análisis Numérico.

En el caso más general, en que una función depende de


más de una variable ( , ,….. )), la fórmula
aproximada de propagación del error máxima es:

( )= ( , 2, … . . , ) ( ) Ec. 15.

Ejemplo 3:

Determinar el error máximo cometido en el


cálculo y = x1 x22 para = 2.0 ± 0.1 y = 3.0 ± 0.2.
Solución: El error cometido, de acuerdo con la Ec. 15,
se puede calcular mediante:

( )= 2 ( )+ 2 ( )
, 2 , 2

( )= ( )+ 2 , , ( )

Sustituyendo valores, obtenemos:


= 2.0 (3.0) = 18.00
( ) = (3.0) 0.1 + 2 2.0 3.0 0.2 = 3.3

Por lo que el resultado final se debe expresar como:


= 18 ± 3
Ejemplo 4: Sea el siguiente sistema de ecuaciones
lineales:
=5
+2

en donde = 1.000 ± 0.002 ; b = 1 / a y d = b – a


¿Con qué exactitud podemos determinar el producto xy?
Solución: Primero resolveremos el sistema de ecuaciones
por reducción:
(10 )
=
(2 )
)
=
(2 )

14
Ing. Sergio Velásquez
Análisis Numérico.

Ecuaciones que conducen a la siguiente expresión para


el producto:

(10 )( 5 ) Ec. 16.


=
(2 )

Resolveremos ahora el problema por dos métodos.


Primero, calcularemos el error asociado a cada una de las
variables y los términos de la expresión anterior:

= 1000 ( ) = 0.002
1 ( )
= =1 ( )= ( )
=0 ( ) ( ) ( )=2 ( )
= (10 ) = 10 ( ) ( ) ( )=2 ( )
=( ) 5 ( ) ( )+5 ( ) = 7 ( )
= (2 ) =1 ( ) 2 ( ) + 2 ( ) + 4 ( ) + 4 ( ) = 12 ( )
50 ( ) ( ) ( ) = 80 ( )
= 50 ( ) ( )
( )= + = 680 ( )

Sustituyendo valores, obtenemos el siguiente resultado:


50.0 ± 1.4

Una forma mucho más adecuada de resolver este problema


consiste en sustituir en la expresión los valores
de b y d por sus correspondientes expresiones en función
de a. Sustituyendo y operando, obtenemos que el producto y
el error asociado vienen dados por:
36
+ 13 + )
36
( ) = (| | + 13 + ( )

que, sustituyendo valores, conduce al resultado:

50.00 ± 0.10

Si ambos resultados son correctos ¿Por qué el error es


mucho menor en el segundo caso que en el primero? La

15
Ing. Sergio Velásquez
Análisis Numérico.

respuesta es simple: en el segundo caso hemos eliminado


operaciones intermedias, permitiendo que algunos errores se
cancelen mutuamente. En general, cuanto menor sea el número
de pasos intermedios que efectuemos para alcanzar la
solución, menor será el error cometido.

Aritmética de computadores

Los computadores no almacenan los números con precisión


infinita sino de forma aproximada empleando un número fijo
de bits (apócope del término inglés Binary Digit)
o bytes (grupos de ocho bits). Prácticamente todos los
computadores permiten al programador elegir entre varias
representaciones o 'tipos de datos'. Los diferentes tipos
de datos pueden diferir en el número de bits empleados,
pero también (lo que es más importante) en cómo el número
representado es almacenado: en formato fijo (también
denominado 'entero') o en punto flotante2 (denominado
'real').

ARITMÉTICA DE PUNTO FIJO

Un entero se puede representar empleando todos los bits


de una palabra de computadora, con la salvedad de que se
debe reservar un bit para el signo. Por ejemplo, en una
máquina con longitud de palabra de 32 bits, los enteros
están comprendidos entre -(231 - 1) y 231 - 1 = 2147483647.
Un número representado en formato entero es 'exacto'. Las
operaciones aritméticas entre números enteros son también
'exactas' siempre y cuando:
- La solución no esté fuera del rango del número entero
más grande o más pequeño que se puede representar
(generalmente con signo). En estos casos se dice que se
comete un error de desbordamiento por exceso o por defecto

16
Ing. Sergio Velásquez
Análisis Numérico.

(en inglés: Overflow y Underflow) y es necesario recurrir a


técnicas de escalado para llevar a cabo las operaciones.
-La división se interpreta que da lugar a un número
entero, despreciando cualquier resto.
Por estos motivos, la aritmética de punto fijo se
emplea muy raramente en cálculos no triviales.

Números en punto flotante


NOTACIÓN CIENTÍFICA NORMALIZADA

En el sistema decimal, cualquier número real puede


expresarse mediante la denominada notación científica
normalizada.
Para expresar un número en notación científica
normalizada multiplicamos o dividimos por 10 tantas veces
como sea necesario para que todos los dígitos aparezcan a
la derecha del punto decimal y de modo que el primer dígito
después del punto no sea cero. Por ejemplo:

732.5051 = 0.7325051 10
0.005612 = 0.5612 10

En general, un número real x distinto de cero, se


representa en notación científica normalizada en la
forma:
= ± × 10 Ec. 17.

en donde r es un número tal que


1 y n es un entero (positivo, negativo o
cero).

Exactamente del mismo modo podemos utilizar la notación


científica en el sistema binario. En este caso, tenemos
que:

17
Ing. Sergio Velásquez
Análisis Numérico.

=± ×2 Ec. 18.

donde m es un entero.
El número q se denomina mantisa y el
entero m exponente.
En un ordenador binario tanto q como m estarán
representados como números en base 2.
Puesto que la mantisa q está normalizada, en la
representación binaria empleada se cumplirá que:

1 Ec. 19.
| | 1
2

REPRESENTACIÓN DE LOS NÚMEROS EN PUNTO FLOTANTE

En un ordenador típico los números en punto


flotante se representan de la manera descrita en el
apartado anterior, pero con ciertas restricciones
sobre el número de dígitos de q y m impuestas por la
longitud de palabra disponible (es decir, el número
de bits que se van a emplear para almacenar un
número).
Para ilustrar este punto, consideraremos un
ordenador hipotético que denominaremos MARC-32 y que
dispone de una longitud de palabra de 32 bits (muy
similar a la de muchos ordenadores actuales).
Para representar un número en punto flotante,
los bits se acomodan del siguiente modo:

Signo del número real x: 1 bit

Signo del exponente m: 1 bit

18
Ing. Sergio Velásquez
Análisis Numérico.

Exponente (entero |m|): 7 bits

Mantisa (número real |q|): 23 bits

En la mayoría de los cálculos en punto flotante


las mantisas se normalizan, es decir, se toman de
forma que el bit más significativo (el primer bit)
sea siempre '1'. Por lo tanto, la mantisa q cumple
siempre la ecuación (21).

Dado que la mantisa siempre se representa normalizada,


el primer bit en q es siempre 1, por lo que no es
necesario almacenarlo proporcionando un bit significativo
adicional. Esta forma de almacenar un número en punto
flotante se conoce con el nombre de técnica del 'bit
fantasma'.

Se dice que un número real expresado como aparece en la


ecuación (21) y que satisface la ecuación (22) tiene la
forma de punto flotante normalizado. Si además puede
representarse exactamente con |m| ocupando 7 bits y |q|
ocupando 24 bits, entonces es un número de máquina en
el MARC-32. La restricción de que |m| no requiera más de 7
bits significa que:
| | (1111111) = 2 1 = 127

Ya que 2 10 , la pc puede manejar números tan


pequeños como 10-38 y tan grandes como 1038.

Este no es un intervalo de valores suficientemente


generoso, por lo que en muchos casos debemos recurrir a
programas escritos en aritmética de doble precisión e
incluso de precisión extendida.

19
Ing. Sergio Velásquez
Análisis Numérico.

Como q debe representarse empleando no más de 24 bits


significa que nuestros números de máquina tienen una
precisión limitada cercana a las siete cifras decimales, ya
que el bit menos significativo de la mantisa representa
unidades de 2 10 . Por tanto, los números expresados
mediante más de siete dígitos decimales serán objeto
de aproximación cuando se almacenen en el ordenador.

Por ejemplo: 0.5 representado en punto flotante en


el MARC-32 (longitud de palabra de 32 bits) se almacena en
la memoria del siguiente modo:
| | | |
1
= 0 0 0000000 0000000000000000000000000
2 | | | |

Ejemplo 5:
Suponga un ordenador cuya notación de punto fijo
consiste en palabras de longitud 32 bits repartidas del
siguiente modo: 1 bit para el signo, 15 bits para la parte
entera y 16 bits para la parte fraccionaria. Represente
los números 26.32, 1234 × 10 y 12542.29301 en base 2
empleando esta notación de punto fijo y notación de punto
flotante con 32 bits. Calcule el error de almacenamiento
cometido en cada caso.

Solución:
El número 26.32 en binario se escribe del siguiente
modo:
26.32 = 11010. 01010001111010111000

Empleando las representaciones comentadas, obtenemos:


26.32 = 0 000000000011010.0101000111101011
= 0 10000101 10100101000111101011100

20
Ing. Sergio Velásquez
Análisis Numérico.

Si expresamos el error como la diferencia entre el


valor y el número realmente almacenado en el ordenador,
obtenemos:
( ) = 8 × 10 ( ) = 3 × 10
( ) = 1.3 × 10 ( ) = 1.2 × 10

En cuanto a los otros dos números, obtenemos:

= 0 0000000000.00000000000001000; ( ) = 1.1 × 10
1.234 × 10
= 0 01110100 10000001011001001110111; ( ) = 1.7 × 10
12542.29301 = 0 011000011111110.0100101100000010; ( ) = 9 × 10
= 0 1000111011000011111110010010110 ; ( ) = 3 × 10

Antes de entrar con detalle en la aritmética de los


números en punto flotante, es interesante notar una
propiedad de estos números de especial importancia en los
cálculos numéricos y que hace referencia a su densidad en
la línea real. Supongamos que p, el número de bits de la
mantisa, sea 24.

En el intervalo , 1) (exponente f = 0) es posible

representar 224 números igualmente espaciados y separados

por una distancia .

De modo análogo, en cualquier intervalo [2 , 2 ) hay


224 números equiespaciados, pero su densidad en este caso

es .

Por ejemplo, entre 2 = 1048576 y 2 = 2097152

hay 2 = 16777216 números, pero el espaciado entre dos

números sucesivos es de sólo .

De este hecho se deriva inmediatamente una regla


práctica: cuando es necesario comparar dos números en punto

21
Ing. Sergio Velásquez
Análisis Numérico.

flotante relativamente grandes, es siempre preferible


comparar la diferencia relativa a la magnitud de los
números. En la Figura 1 se representa gráficamente la
separación entre dos números consecutivos en función del
exponente f en el rango f = [20,30].

Figura 1. Evolución de la separación entre dos números


consecutivos en función del exponente, f, de la representación
en punto flotante de un número real.

NÚMEROS DE MÁQUINA APROXIMADOS

Estamos interesados en estimar el error en que se


incurre al aproximar un número real positivo x mediante un
número de máquina. Si representamos el número mediante:
=( … …) ×2

en donde cada es 0 ó 1 y el bit principal


es = 1. Un número de máquina se puede obtener de
dos formas:

Truncamiento: descartando todos los bits excedentes


… El número resultante, x' es siempre menor que x (se
encuentra a la izquierda de x en la recta real).

22
Ing. Sergio Velásquez
Análisis Numérico.

Redondeo por exceso: Aumentamos en una unidad el último


bit remanente y después eliminamos el exceso de bits
como en el caso anterior.
Todo lo anterior, aplicado al caso expuesto previamente
de 32 bits, se resume diciendo que si x es un número real
distinto de 0 dentro del intervalo de la máquina, entonces
el número de máquina x* más cercano a x satisface la
desigualdad:
Ec. 20.
= 2

que se puede escribir de la siguiente forma:

= (1 + ) | | 2

Ejemplo 6: ¿Cómo se expresa en binario el


número x = 2/3? ¿Cuáles son los números de
máquina x' y x'' próximos en el MARC-32?

El número 2/3 en binario se expresa como:


2
= (0. 10)
3

Los dos números de máquina próximos, cada uno


con 24 bits, son:
= (0.101010 … 1010)
= (0.101010 … 1011)

en donde x' se ha obtenido por truncamiento


y x'' mediante redondeo por exceso. Calculamos ahora
las diferencias x - x' y x'' - x para estimar cual
es el error cometido:
2
× 10
3
1
× 10
3

23
Ing. Sergio Velásquez
Análisis Numérico.

Por tanto, el número más próximo es fl(x) = x''


y los errores de redondeo absoluto y relativo son:

| ( ) | 1
× 10
3
( ) 2 <2

LAS OPERACIONES BÁSICAS

Vamos a analizar el resultado de operar sobre dos


números en punto flotante normalizado de l-dígitos de
longitud, x e y, que producen un resultado normalizado
de l-dígitos. Expresaremos esta operación como:
( )

en donde op es +, -, x ó /. Supondremos que en


cada caso la mantisa del resultado es primero
normalizada y después redondeada (operación que
puede dar lugar a un desbordamiento que requeriría
renormalizar el número).

El valor de la mantisa redondeada a p bits, qr,


se define como (de una forma más rigurosa que en el
caso anterior):
1
2 2 +
2 >0
1 <0
2 2
2
en donde la función redondeo por defecto es
el mayor entero menor o igual a x y la
función redondeo por exceso es el menor entero
mayor o igual a x. Para números enteros, esta
función se traduce en la bien conocida regla de

24
Ing. Sergio Velásquez
Análisis Numérico.

sumar 1 en la posición p + 1. Teniendo en cuenta


sólo la mantisa, redondear de este modo da lugar a
un intervalo máximo del error de:
1
| | 2 Ec. 21.

y un error relativo máximo en el intervalo:


2 Ec. 22.
| | =2
1/2

Analizaremos ahora el error generado por cada una de


las operaciones básicas:

Multiplicación.
La operación de multiplicar dos números expresados en
punto flotante implica sumar los exponentes y multiplicar
las mantisas.
Si la mantisa resultante no está normalizada, se
recurre a renormalizar el resultado ajustando adecuadamente
el exponente.
Después, es necesario redondear la mantisa a p bits.
Para analizar el error de esta operación supongamos dos
números:
= 2 ; = 2

Tenemos entonces que el producto será:


= 2

en donde el valor de la mantisa se encontrará en el


rango:
1
<1
4

25
Ing. Sergio Velásquez
Análisis Numérico.

ya que tanto x como y satisfacen la ecuación (). Por


tanto, la normalización del producto qx qy implica un
desplazamiento a la derecha de, como máximo, una posición.
La mantisa redondeada será entonces uno de estos dos
posibles valores:
= + ó =2 +

en donde , que es el error de redondeo, cumple la


ecuación . Tenemos entonces:
1
+ 2
( × )= 2
1 1
2 >
2 4
1
1+
2
= 2
1 1
1+ >
2 4

= 1+

en donde, de acuerdo con la ecuación (22), tenemos:


2| | 2

Por tanto, la cota del error relativo en la


multiplicación es la misma que la que surge por redondear
la mantisa.

División.
Para llevar a cabo la división en punto flotante, se
divide la mitad de la mantisa del numerador por la mantisa
del denominador (para evitar cocientes mayores de la
unidad), mientras que los exponentes se restan. Esto es:

26
Ing. Sergio Velásquez
Análisis Numérico.

/2 +1
= 2

El valor del cociente estará acotado entre los límites:

1
<1
4 2

Aplicando un análisis similar al empleado en el caso de


la multiplicación, obtenemos:

1
/2 + 2 /2
( / )= 2
1 1
/ 2 > /2
2 4
1
1+ /2
/2 2
= / 2
1 1
1+ > /2
2 4

= 1+

en donde, de acuerdo con la ecuación de , tenemos:


| | 2| | 2

Es decir, la cota máxima del error relativo en la


división, como en el caso anterior, es la misma que la que
surge por redondear la mantisa.

Adición y sustracción.
La operación de suma o resta se realiza del siguiente
modo: se toma la mantisa del operando de menor magnitud
(supongamos que es y) y se desplaza fx - fy posiciones a la
derecha. La mantisa resultante es sumada (o restada) y el
resultado se normaliza y después se redondea. Es decir:

= 2 2

27
Ing. Sergio Velásquez
Análisis Numérico.

El análisis del error cometido en esta operación es más


complejo que los estudiados hasta ahora, por lo que no lo
vamos a ver en detalle. Sin embargo, el resultado final
indica que la cota máxima del error cometido en la adición
y la sustracción viene dado por:
| | 2| | 2

En conclusión, en todas las operaciones aritméticas


elementales en punto flotante, el error absoluto del
resultado es no mayor de 1 en el bit menos significativo de
la mantisa.

Sin embargo, los errores de redondeo se acumulan a


medida que aumenta el número de cálculos. Si en el proceso
de calcular un valor se llevan a cabo N operaciones
aritméticas es posible obtener, en el mejor de los casos,
un error de redondeo total del orden de (que coincide
con el caso en que los errores de redondeo están
aleatoriamente distribuidos, por lo que se produce una
cancelación parcial).

Desafortunadamente, este error puede crecer muy


rápidamente por dos motivos:
Es muy frecuente que la regularidad del cálculo o las
peculiaridades del computador den lugar a que el error se
acumule preferentemente en una dirección; en cuyo caso el
error de redondeo se puede aproximar a .

En circunstancias especialmente desfavorables pueden


existir operaciones que incremente espectacularmente el
error de redondeo. Generalmente, este fenómeno se da cuando
se calcula la diferencia entre dos números muy próximos,
dando lugar a un resultado en el cual los únicos bits

28
Ing. Sergio Velásquez
Análisis Numérico.

significativos que no se cancelan son los de menor orden


(en los únicos en que difieren).

Puede parecer que la probabilidad de que se de dicha


situación es pequeña, sin embargo, algunas expresiones
matemáticas fomentan este fenómeno.

Veamos con un ejemplo los problemas comentados


anteriormente.
Hay dos formas de calcular las soluciones de la
familiar ecuación cuadrática:
ax2 + bx + c = 0
que son:
±
= Ec. 23.

= Ec. 24.
±

Cualquiera de estas dos expresiones da problemas


cuando a, c o ambos, son pequeños. En estos casos, el valor

del discriminante es muy próximo al valor de b:

b por lo que la diferencia | | viene afectada de


un error de redondeo importante.

La solución del problema pasa por emplear una expresión


mejor condicionada. En este caso, es preferible calcular
previamente:
1 Ec. 25.
q= b + signo( ) 4
2

y las dos raíces a partir de valor de q como:


q c Ec. 26.
x = y x =
a q

29
Ing. Sergio Velásquez
Análisis Numérico.

Ejemplo: Calcular las raíces de la siguiente ecuación


cuadrática:
ax2 + bx + c = 0
siendo:
= 1.0; = 1.343 × 10 ; 3.764 × 10

Solución: Empleando la ecuación (23),


obtenemos:
x 0.13430 × 10
x = 0.44676 × 10

Sin embargo, empleando la expresión (24):


x
x 0.28027 × 10

Por último, empleando las expresiones (25) y (26) se


obtienen ambas soluciones correctas:
x 0.13430 × 10
x 0.28027 × 10

30
Ing. Sergio Velásquez
Análisis Numérico.

INTERPOLACION

31
Ing. Sergio Velásquez
Análisis Numérico.
INTERPOLACION:

En forma general significa estimar valores intermedios


entre valores conocidos, determinando la magnitud de estos
valores, siendo el método más común para este propósito el
de la interpolación polinomial.
Sabiendo que la formula general de un polinomio de n-
ésimo orden es:
F(x) = a + a X + a X + … … . . +a X Ec. 27.

Para n + 1 puntos, existen uno y solo un polinomio de n


ésimo orden o menor que pasa a través de todos los puntos.
Por ejemplo, hay solo una línea recta (es decir un
polinomio de primer orden) que conecta dos puntos. El
polinomio de interpolación consiste en determinar el único
polinomio de n ésimo orden que se ajusta a la n + 1 puntos
dados. Este polinomio proporciona una fórmula para calcular
los valores intermedios.

INTERPOLACION LINEAL
Es la fórmula más simple de interpolación y consiste en
conectar dos puntos con un polinomio de grado uno (una
línea recta), es decir se ajusta una línea a dos puntos
datos.
y
f(a)

y=f(x)
y=g(x)

f(b)

a b x
Figura 2. Interpolación lineal

32
Ing. Sergio Velásquez
Análisis Numérico.

Sea f(x) una función para la cual se conocen sus


valores f(a) y f(b) en los puntos a y b. La aproximación
más simple a los valores de f(x) para cualquier x
perteneciente al intervalo [a, b] es considerar el
polinomio de primer grado:

= ( )+ ( ) Ec. 28.
+

Ejemplo:
La corriente directa a través de un diodo está dada en
función de la temperatura en la siguiente tabla, es de
interés conocer la corriente para 33 ºC.

T (ºC) 25 30 35 40
Id (A) 0.20059939 0.16076958 0.12977740 0.10547891
Tabla 1. corriente directa a través de un diodo

En Matlab:
T=[25 30 35 40];
Id=[0.20059939 0.16076958 0.12977740 0.10547891];
Tx=33;
Idx=(T(3)-Tx)*Id(2)/(T(3)-T(2))+(Tx-T(2))*Id(3)/(T(3)-T(2))
Idx =
0.14217428

O de otra manera:
Idx=interp1(Tx, Id, T, 'linear')
Idx =
0.14217428

El valor verdadero para las mismas condiciones es:


0.14126556. Lo cual da para esta interpolación un error
relativo porcentual de 0.6433

INTERPOLACIÓN POLINÓMICA.
En este caso se ajustan los n puntos a un único
polinomio cuyo grado es n - 1, si se considera el polinomio
de grado 1 se estará aplicando la interpolación lineal,

33
Ing. Sergio Velásquez
Análisis Numérico.
este polinomio proporciona una fórmula para calcular los
valores intermedios.
Supongamos que tenemos n puntos de datos:
x1 x2 .... xn
y1 y2 .... yn
Tabla 2. Tabla de datos
El polinomio de orden n - 1 que pasa por los n puntos
será de la forma:
g(x) = a X + a X + a X + … … . . +a Ec. 29.

Si hacemos g(xi) = yi para cada uno de los n puntos


obtenemos n ecuaciones lineales:
X X 1 a Y
X X 1 a2 Y2
… . . 1 . = .
X X 1 an Yn

Representado en forma matricial Xa = y, resolviendo


este sistema se hallan los coeficientes del polinomio.

Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No. 1, para un polinomio de grado 3:
» x(1,:)=[T(1)^3 T(1)^2 T(1)^1 T(1)^0];
» x(2,:)=[T(2)^3 T(2)^2 T(2)^1 T(2)^0];
» x(3,:)=[T(3)^3 T(3)^2 T(3)^1 T(3)^0];
» x(4,:)=[T(4)^3 T(4)^2 T(4)^1 T(4)^0];

polinomio=(x\Id')';
Idx=polyval(polinomio,Tx)
Idx =
0.14125097
O de otra manera
polinomio=polyfit(T,Id,3)
Idx= polyval(polinomio,Tx)
Idx =
0.14125097

Este valor se aproxima más al valor verdadero con un


error relativo porcentual de 0.0103.

34
Ing. Sergio Velásquez
Análisis Numérico.
MÍNIMOS CUADRADOS
En este caso se ajustan los n puntos a un polinomio
cuyo grado puede variar entre 1 y n - 1, si se considera el
polinomio de grado 1 se estará aplicando la interpolación
lineal. Supóngase el siguiente polinomio:
f(x) = a X + a X + a X + … … . . +a
Como el polinomio no puede ajustarse a todos los
puntos, este se determina minimizando entre el polinomio y
los datos, la desviación del polinomio respecto de los
puntos esta definida por:
ri =yi – f(xi) Ec. 30.

La suma de las desviaciones elevada al cuadrado es:

R= r Ec. 31.

El mínimo de R ocurre cuando las derivadas parciales R


respecto aj son cero:
R
=0 Ec. 32.
a

Expresado de otra forma:

x a = x y Ec. 33.

para k 0 1, 2, 3, .... n+1.


Expresado en forma matricial:

n n n n
x i2(n 1)
x i2(n 1) 1
x ni 1
x ni 1y i
i 1 i 1 i 1 a1 i 1
n n n
x i2( n 1) 1
x ni 2 a2 x ni 2 y i
i 1 i 1
: i 1
: : :
n n an 1
n
x ni 1
x i0 yi
i 1 i 1 i 1

35
Ing. Sergio Velásquez
Análisis Numérico.
Resolviendo el sistema se obtienen los coeficientes del
polinomio y luego se evalúa para obtener el valor buscado

Una forma mas rápida de formar el sistema anterior es


considerando el siguiente sistema matricial Xa=y:
X X 1 a Y
X X a
1 2 Y2
… . . 1 . = .
X X 1 an Yn

En donde (X'X)a = X'y que es el mismo sistema


representado con las sumatorias y que se resuelve por
cualquier método matricial:

Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No. 1, para un polinomio de grado 3:

x(1,:)=[T(1)^3 T(1)^2 T(1)^1 T(1)^0];


» x(2,:)=[T(2)^3 T(2)^2 T(2)^1 T(2)^0];
» x(3,:)=[T(3)^3 T(3)^2 T(3)^1 T(3)^0];
» x(4,:)=[T(4)^3 T(4)^2 T(4)^1 T(4)^0];
» a=(x'*x)\(x'*Id');
» Idx=polyval(a,Tx)

Idx =

0.1413

La ventaja de este método con respecto al anterior es


que puede ajustar los n datos a cualquier polinomio de
grado 1 hasta n – 1.

INTERPOLACIÓN DE LAGRANGE
La fórmula de interpolación de LaGrange de orden n
será:

g(x) = h (x)y Ec. 34.

36
Ing. Sergio Velásquez
Análisis Numérico.
En donde:
(x x )(x x ) … (x x ) (x x)
h (x) = = Ec. 35.
(x x )(x x ) … (x x ) (x x)
,

Por ejemplo para una tabla de 4 pares de datos el grado


del polinomio será 3, generándose la siguiente ecuación:
(x - x 2 )(x - x 3 )(x - x 4 ) (x - x 1 )(x - x 3 )(x - x 4 ) (x - x 1 )(x - x 2 )(x - x 4 )
g(x) y1 y2 y3
(x 1 - x 2 )(x 1 - x 3 )(x 1 - x 4 ) (x 2 - x 1 )(x 2 - x 3 )(x1 - x 4 ) (x 3 - x 1 )(x 3 - x 2 )(x1 - x 4 )
(x - x 1 )(x - x 2 )(x - x 3 )
y4
(x 4 - x 1 )(x 4 - x 2 )(x 4 - x 3 )

Ejemplo
Calcular el valor de Id usando los datos del ejemplo No

k=(Tx-T(1))*(Tx-T(2))*(Tx-T(3))*(Tx-T(4));
h(1)=k/(T(1)-T(2))/(T(1)-T(3))/(T(1)-T(4))/(Tx-T(1));
h(2)=k/(T(2)-T(1))/(T(2)-T(3))/(T(2)-T(4))/(Tx-T(2));
h(3)=k/(T(3)-T(1))/(T(3)-T(2))/(T(3)-T(4))/(Tx-T(3));
h(4)=k/(T(4)-T(1))/(T(4)-T(2))/(T(4)-T(3))/(Tx-T(4));
Idx=sum(h.*Id)
Idx =
0.14125097

INTERPOLACIÓN DE NEWTON
Si se tienen n pares de datos la fórmula para la
interpolación de Newton con diferencias dividas hacia
delante genera el siguiente polinomio de grado n - 1:

P (x) = ( ) + a, (x x) Ec. 36.

Muchos autores presentan la interpolación de Newton con


diferencias hacia delante hacia atrás o centradas, también
hacen referencia a que los datos tienen que tener la misma
separación, pero por lo que se observa en la formula
anterior, esto no tiene que ser estrictamente necesario,
desarrollando la formula anterior para 4 pares de datos
será:

P (x) = f(x ) + a (x x ) + a (x x )a (x x ) Ec. 37.


+ a (x x )(x x )(x x )

37
Ing. Sergio Velásquez
Análisis Numérico.
La coeficientes a(i,j) pertenecen a la matriz de
diferencias divididas que se construye de la siguiente
manera:

f(x2 ) f ( x1 )
0 0
x2 x1
f(x3 ) f(x2 ) a 21 a11
A 0
x3 x2 x 3 x1
f (x 4 ) f (x 3 ) a 31 a 21 a 32 a 22
x4 x3 x4 x2 x 4 x1

Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No.

A(:,1)=[(Id(2)-Id(1))/(T(2)-T(1));
(Id(3)-Id(2))/(T(3)-T(2));
(Id(4)-Id(3))/(T(4)-T(3))];
A(:,2)=[0;(A(2,1)-A(1,1))/(T(3)-T(1));(A(3,1)-A(2,1))/(T(4)-
T(2))];
A(:,3)=[0; 0; (A(3,2)-A(2,2))/(T(4)-T(1))]
A =
-0.00796596122740 0 0
-0.00619843524540 0.00017675259820 0
-0.00485969835570 0.00013387368897 -0.00000285859395
Idx=Id(1)+A(1,1)*(Tx-T(1))+A(2,2)*(Tx-T(1))*(Tx-T(2))+A(3,3)*(Tx-
T(1))*(Tx-T(2))*(Tx-T(3))

Idx =
0.14125097225137

TRAZADORES CÚBICOS (SPLINES)

Es frecuente que un número grande de datos tengan que


ajustarse a una única curva, pero la interpolación de
LaGrange, de Newton o con polinomios de orden alto no son
adecuados para este propósito, ya que los errores de un
único polinomio tienden a crecer en forma drástica al hacer
mayor el orden.
Un enfoque alternativo consiste en dividir el intervalo
de interpolación en una colección de subintervalos y
construir polinomios interpolantes para cada subintervalo.

38
Ing. Sergio Velásquez
Análisis Numérico.
Esta técnica se conoce con el nombre de aproximación
polinómica segmentaria.
Obviamente la aproximación más cruda es la
interpolación lineal segmentaria, en la que simplemente se
unen puntos sucesivos del conjunto de datos con una serie
de líneas rectas, pero esto sería una aproximación muy
burda, por lo tanto se usa una aproximación polinómica
entre punto y punto usando un polinomio de grado tres.

Sea el polinomio cubico de grado tres para el i-ésimo


intervalo dado de la siguiente manera:

y = ai(x - xi)3 + bi(x - xi)2 + ci(x - xi) + di

Sea hi = xi+1 - xi
Entonces yi e yi +1 vendrán dada por:
yi = di
yi +1 =aihi3 + bihi2 + cihi + di

Hallando la primera y segunda derivada del polinomio


que une a los puntos

y' = 3ai(x - xi)2 + 2bi(x - xi) + ci


y'' = 6ai(x - xi) + 2bi

Sea Si la representación de la segunda derivada en el


punto (xi,yi) y Si+1 en el punto (xi+1,yi+1), entonces:

Si = 6ai(xi - xi) + 2bi = 2bi


Si+1 = 6ai(xi+1 - xi) + 2bi = 6aihi + 2bi

De las ecuaciones anteriores se obtiene:


bi = Si/2
ai = (Si+1 - Si)/6hi

39
Ing. Sergio Velásquez
Análisis Numérico.
Si introducimos los valores calculados de ai, bi, y di
en la ecuación de yi +1 quedara:

ci = (yi +1 - yi)/hi – (2hiSi + hiSi+1)/6

Consideremos las pendientes de dos polinomios que se


unen en el punto (xi,yi), para el i-ésimo intervalo la
pendiente evaluada en x = xi quedara y'i = ci.

En el intervalo anterior, de xi-1 a xi, la pendiente en


su extremo derecho será:

y'i = 3ai-1(xi - xi-1)2 + 2bi-1(xi - xi-1) + ci-1


y'i = 3ai-1hi-12 + 2bi-1hi-1 + ci-1

Igualando estas dos pendientes y sustituyendo a, b, c,


y d en términos de S, se obtiene:

y'i = (yi +1 - yi)/hi – (2hiSi + hiSi+1)/6 =


3((Si - Si-1)/6hi-1)hi-12 + 2(Si-1/2)hi-1 + (yi +1 - yi)/hi –
(2hiSi + hiSi+1)/6

Simplificando y reordenando se obtiene:

hi-1Si-1 + 2(hi-1 + hi)Si + 2)hi-1 + hiSi+1 = 6((yi +1 - yi)/hi


– (yi - yi-1)/hi-1)

Esta ultima ecuación se aplica a cada punto interno


desde i = 2 hasta i = n – 1, siendo n el número total de
puntos. Esto genera un conjunto de n –2 ecuaciones que
relacionan los n valores de Si.
Expresando el sistema anterior en forma matricial se
obtiene:

40
Ing. Sergio Velásquez
Análisis Numérico.

S1 y3 y2 y2 y1
h1 2(h1 h2 ) h2 0 0 0 0 S2 h2 h1
y4 y3 y3 y2
0 h2 2(h2 h3 ) h3 0 0 0 S3
h3 h2
0 0 h3 2(h3 h4 ) h4 S4 6 y5 y4 y4 y3
: :
h4 h3
: :
:
0 0 0 0 hn 2 2(hn 2 hn 1 ) hn 1 Sn 1 yn yn 1 yn 1 yn 2
Sn hn 1 hn 2

El sistema matricial anterior sólo hay n – 2


ecuaciones, pero se tiene n incógnitas. Se puede eliminar
dos incógnitas (S1 y Sn) utilizando la suposición de que
los extremos de los polinomios cúbicos se tornan lineales
en los extremos, es decir, S1 = Sn = 0. Cabe mencionar que
existen otras dos condiciones que aquí no se estudian.

El sistema matricial anterior se convierte en un


sistema de n –2 ecuaciones con n –2 incógnitas que se
resuelve con cualquiera de los métodos conocidos. Para
luego así hallar los valores de a, b, c y d en el intervalo
que se deseen conocer y luego hallar el valor buscado.
y3 y2 y2 y1
2(h1 h2 ) h2 0 0 0 0 S2 h2 h1
y4 y3 y3 y2
h2 2(h2 h3 ) h3 0 0 0 S3
S4 h3 h2
0 h3 2(h3 h4 ) h4 0 0 6 y5 y4 y4 y3
: :
h4 h3
: :
:
0 0 0 0 hn 2 2(hn 2 hn 1 ) Sn 1 yn yn 1 yn 1 yn 2

hn 1 hn 2

Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No:

h=[T(2)-T(1) T(3)-T(2) T(4)-T(3)];


» A=[2*(h(1)+h(2)) h(2) ; h(2) 2*(h(2)+h(3))];
» Y=6*[(Id(3)-Id(2))/h(2)-(Id(2)-Id(1))/h(1) (Id(4)-Id(3))/h(3)-
(Id(3)-Id(2))/h(2)];

41
Ing. Sergio Velásquez
Análisis Numérico.
» S=A\y';
» S=[0 s' 0];
» a2=(S(3)-S(2))/(6*h(2));
» b2=S(2)/2;
» c2=(Id(3)-Id(2))/h(2)-(2*h(2)*S(2)+h(2)*S(3))/6;
» d2=Id(2);
» pol=[a2 b2 c2 d2];
» x= Tx-T(2);
» Idx=polyval(pol,x)

Idx =

0.1411

Ejemplos

%EL PRESENTE PROGRAMA ILUSTRA LA INTERPOLACIÓN EN DOS DIMENSIONES


% UTILIZANDO LA INSTRUCCIÓN:
% y = interp2(xm,ym,zm,xi,yi,'método')
%% DONDE:
%% xm = MATRIZ MALLA, CUADRADA (a X a),
% FORMADA CON EL VECTOR (x), DE (1 X a)
% Ym = MATRIZ MALLA, CUADRADA (b X b),
% FORMADA CON EL VECTOR (y), DE (1 X b)
% zm = MATRIZ DE (b X a), FORMADA CON VALORES
% RELACIONADOS BIDIMENSIONALMENTE
% CON LOS VECTORES (x) Y (y)
% xi = VALOR DE (x) AL CUAL SE DESEA
% INTERPOLAR LA TABLA BIDIMENSIONAL
% FORMADA POR LA MATRIZ (zm)
% yi = VALOR DE (y) AL CUAL SE DESEA INTERPOLAR
% LA TABLA BIDIMENSIONAL FORMADA POR LA MATRIZ (zm)
% y = VALOR INTERPOLADO DE LA TABLA BIDIMENSIONAL,
% FORMADA POR LA MATRIZ (zm)
%% método = TÉCNICA UTILIZADA PARA LA INTERPOLACIÓN,
% LA CUAL PUEDE SER:
%% 'nearest' - nearest neighbor interpolation
% 'linear' - bilinear interpolation
% 'cubic' - bicubic interpolation
% 'spline' - spline interpolation
%
% IMPORTANTE:
%% LOS VECTORES (x) Y (y) DEBEN SER MONÓTONOS
% CRECIENTES O DECRECIENTES
% TAMBIÉN PUEDEN SER UNIFORME O NO UNIFORMEMENTE ESPACIADOS
% EN LAS INTERPOLACIONES FUERA DE RANGO
% SE DARÁ COMO RERSULTADO: NaN
%% METODOLOGÍA
%% 1) SE TIENE UNA TABLA DE DATOS (MATRIZ zm), LOS CUALES DEPENDEN
DE DOS VARIABLES (x) Y (y)
% 2) SE TIENE A LA VARIABLE (x), COMO UN VECTOR
% 3) SE TIENE A LA VARIABLE (Y), COMO UN VECTOR
% 4) SE GENERAN LAS MATRICES MALLA, A PARTIR DE LOS VECTORES
% (x) Y (y) MEDIANTE LA INSTRUCCIÓN: [xm,ym]=meshgrid(x,y)
% 5) SE GRAFICAN LOS VALORES DE LA TABLA (zm)
% VERSUS LAS MALLAS (xm) Y (ym)
% ESTE PASO ES OPCIONAL, PERO ES CONVENIENTE

42
Ing. Sergio Velásquez
Análisis Numérico.
% OBSERVAR TRIDIMENSIONALMENTE LOS DATOS DE LA
% TABLA (zm) VERSUS (X) Y (y)
% 6) SE FIJAN LOS VALORES DE (x) y (y), LOS CUALES
% SE QUIERE INTERPOLAR, EN LA TABLA (zm),
% ESTOS VALORES DEBEN SER UBICADOS EN LAS VARIABLES
% (xi) Y (yi). EN ESTE PUNTO EXISTEN TRES CASOS:
%% CASO 1)
% xi = UN NÚMERO
% yi = UN NÚMERO
%% CASO 2)
% xi = VECTOR DE VARIOS VALORES NÚMERICOS, DE TAMAÑO (1 X a)
% yi = VECTOR DE VARIOS VALORES NÚMERICOS, DE TAMAÑO (1 X b)
%% IMPORTANTE: ESTOS VECTORES DEBEN SER DE IGUAL TAMAÑO O EN SU
% DEFECTO DEBEN SER VECTORES CON DIFERENTES
% ORIENTACIONES, UNO VECTOR COLUMNA Y EL OTRO
% VECTOR FILA
%% CASO 3)
% xi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (a X b)
% yi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (c X d)
%
% IMPORTANTE: EN ESTE CASO, SE DEBEN GENERAR LA MATRICES MALLAS
% (xim) Y (yim) CON LA INSTRUCCIÓN:
% [xim,yim]=meshgrid(xi,yi);
% LA INTERPOLACIÓN SE REALIZA COLUMNA POR COLUMNA
%
%
% 7) SE APLICA LA INSTRUCCIÓN DE INTERPOLACIÓN
% EN DOS DIMENSIONES, SEGÚN:
%% CASO 1) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO: zi = UN NÚMERO
%
% CASO 2) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO:
% zi = UNA MATRIZ, PARA VECTORES DE DIFERENTES TAMAÑOS
% zi = UN VECTOR, PARA VECTORES DE IGUAL TAMAÑO
%%
% CASO 3) zi=interp2(xm,ym,zm,xim,yim)
% RESULTANDO: zi = UNA MATRIZ
%%NOTA:PARA TODOS LOS CASOS SE DEBE ESCOGER EL MÉTODO A UTILIZAR
%% EJEMPLO
%EN ESTE EJEMPLO SE MUESTRA LA DIFERENCIA ENTRE LOS MÉTODOS DE
%INTERPOLACIÓN,
% APLICADOS AL CASO (1)
%% PARA LA TABLA DE VALORES, INTERPOLAR PARA LOS SIGUIENTES
VECTORES
%
% xi = [1:0.5:91] VECTOR DE TAMAÑO (1 x 31)
% yi = [1:0.5:196] VECTOR DE TAMAÑO (66 X 1)
%
% UTILIZANDO TODOS LOS MÉTODOS DE INTERPOLACIÓN
%
% EN ESTE EJEMPLO NO SE MUESTRAN LOS RESULTADOS NUMÉRICOS, YA QUE
LAS
% MATRICES SON MUY GRANDE. SOLO SE MOSTRARÁN LAS GRÁFICAS QUE
ILUSTRAN
% LA INTERPOLACIÓN

close all
clear
clc

43
Ing. Sergio Velásquez
Análisis Numérico.
% TABLA:
zm=[0.1256 0.9551 1.3189 1.1203 0.6148 0.1792
0.0099
1.0178 1.5842 1.5552 1.0463 0.4373 0.0674 -
0.0087
1.6882 1.8680 1.4524 0.7442 0.1644 -0.0591 -
0.0253
1.9906 1.7445 1.0330 0.2799 -0.1442 -0.1728 -
0.0364
1.8591 1.2408 0.3885 -0.2455 -0.4215 -0.2487 -
0.0396
1.3223 0.4666 -0.3408 -0.7173 -0.6069 -0.2705 -
0.0342
0.4973 -0.4093 -0.9957 -1.0328 -0.6600 -0.2333 -
0.0213
-0.4362 -1.1960 -1.4336 -1.1231 -0.5692 -0.1452 -
0.0037
-1.2745 -1.7220 -1.5590 -0.9686 -0.3543 -0.0255
0.0146
-1.8351 -1.8726 -1.3446 -0.6030 -0.0622 0.0998
0.0298
-1.9956 -1.6150 -0.8370 -0.1059 0.2434 0.2033
0.0385
-1.7211 -1.0054 -0.1470 0.4143 0.4960 0.2625
0.0388
-1.0714 -0.1766 0.5750 0.8441 0.6405 0.2645
0.0306
-0.1882 0.6907 1.1717 1.0900 0.6453 0.2088
0.0158];

% VARIABLES (x) Y (y)


x=[ 1,16,31,46,61,76,91];
y=[1,16,31,46,61,76,91,106,121,136,151,166,181,196 ];
[xm,ym]=meshgrid(x,y);
surfl(xm,ym,zm) % GRÁFICA DE LA TABLA VERSUS (x) Y (y)
colormap(winter)
xlabel('VALORES DE X')
ylabel('VALORES DE Y')
zlabel('VALORES DE LA TABLA')
% VALORES DONDE SE REALIZARÁ LA INTERPOLACIÓN
xi = [1:3:91]; % VECTOR FILA
yi = [1:2.5:196]'; % VECTOR COLUMNA
zin=interp2(xm,ym,zm,xi,yi,'nearest');
zil=interp2(xm,ym,zm,xi,yi,'linear');
zic=interp2(xm,ym,zm,xi,yi,'cubic');
zis=interp2(xm,ym,zm,xi,yi,'spline');
% PARA EFECTOS DE COMPARACIÓN, LA TABLA UTILIZADA EN LA
INTERPOLACIÓN
% FUE GENERADA MEDIANTE LA SIGUIENTE FUNCIÓN:
% zc=sin((xi+yi)*pi/m).*(1+cos((xi)*pi/m));
% POR LO TANTO, ES POSIBLE DETERMINAR EL VALOR CALCULADO DE LA
FUNCIÓN
% Y COMPARARLO CON LOS VALORES INTERPOLADOS:
% FUNCIÓN PARA GENERAR LA TABLA
m=100;
[xim,yim]=meshgrid(xi,yi);
zc=sin((xim+yim)*pi/m).*(1+cos((xim)*pi/m));
% A CONTINUACIÓN SE GRAFICAN LOS VALORES INTERPOLADOS Y LOS
CALCULADOS
figure
surfl(xim,yim,zin)

44
Ing. Sergio Velásquez
Análisis Numérico.
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO NEAREST')
figure
surfl(xim,yim,zil)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO LINEAR')
figure
surfl(xim,yim,zis)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO SPLINE')
figure
surfl(xim,yim,zic)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO CUBIC')
figure
surfl(xim,yim,zc)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES CALCULADOS')
title('CALCULADOS')

45
Ing. Sergio Velásquez
Análisis Numérico.

Raíces de Ecuaciones

46
Ing. Sergio Velásquez
Análisis Numérico.
Raíces de Ecuaciones

El problema de búsqueda de raíces consiste en encontrar


aquellos valores de x que satisfagan la ecuación f(x)=0. A
estos valores de x se les da el nombre de ceros o raíces de
la ecuación.

Hallar las raíces de una ecuación es un problema


frecuente en la solución de muchos problemas de ingeniería,
en la mayoría de los casos las soluciones pueden
determinarse analíticamente, tal es el caso de
AX2 + BX + C = 0,porque es una ecuación lineal.

Existen procedimientos que son especialmente útiles


cuando no podemos encontrar los ceros recurriendo a las
técnicas analíticas usuales, debido a que a la ecuación que
se le desea encontrar las raíces no es lineal.

La razón principal para resolver ecuaciones no lineales


a través de procedimientos computacionales es que esas
ecuaciones carecen de soluciones exactas, en la mayoría de
los casos, y en la vida real el modelaje de sistemas en
ingeniería da como resultado ecuaciones no lineales.

Es importante conocer la ecuación que se le desean


hallar las raíces, para que la raíz encontrada por el
método aproximado sea la correcta. Este conocimiento se
puede basar en tener una gráfica de f(x) para tener una
idea de sus ceros, por ejemplo:
La respuesta natural del voltaje en el condensador de
un circuito RLC serie seria:
Vc = (-10cos(7000t) + 5sen(1000t))e-1000t
Donde la gráfica será:

47
Ing. Sergio Velásquez
Análisis Numérico.
RLC Respuesta Step
8

Volt en volts
-2

-4

-6

-8

-10
0 0.5 1 1.5 2 2.5
Tempo segs -3
x 10

Figura 3. Grafica de Respuesta de un circuito RLC

En la gráfica anterior se puede observar que en el


intervalo 0 y 2·10-3 existen 4 raíces de la función Vc(t),
la primera raíz esta en el intervalo de 0 a 0,5·10-3 la
segunda raíz esta en el intervalo de 0,5·10-3 a 1·10-3 y
así sucesivamente.
Otra técnica empleada es la de tener datos tabulados de
t respecto a Vc(t) con incrementos constantes de t para
observar los cambios de signos para los valores de Vc(t),
que indican que en esos cambios podría haber al menos una
raíz de la ecuación, por ejemplo:
t Vc(t) 0.0010 -3.9819
0.0000 -10.0000 0.0011 -2.1552
0.0001 -9.8351 0.0012 0.2771
0.0002 -5.4257 0.0013 2.1480
0.0003 0.5426 0.0014 2.7463
0.0004 5.1932 0.0015 2.0425
0.0005 6.7437 0.0016 0.5786
0.0006 5.0823 0.0017 -0.8714
0.0007 1.5132 0.0018 -1.6798
0.0008 -2.0666 0.0019 -1.6117
0.0009 -4.0993 0.0020 -0.8554
Tabla 3. Tabla Vc(t) en Circuito RLC.

48
Ing. Sergio Velásquez
Análisis Numérico.
En la tabla anterior se observa 4 cambios de signo para
Vc(t) en el intervalo de t que va de 0 a 0,002 segundos, lo
cual es una evidencia clara de que la ecuación tiene cuatro
raíces en ese intervalo.

Hay condiciones especiales en la cual un cambio de


signo de f(x) no necesariamente representa que allí haya
raíces, tal es el caso de la siguiente función:
f(x)
1
1
( )=
0.8

+ 64 0.6

0.4

0.2
f(3,5) = -0.0473 0
2.5 3 3.5 4 4.5 5 5.5 6 x
-0.2
f(4,5) = 0.0369
-0.4

-0.6

-0.8

-1

Figura 4. Caso particular

El cambio de signo de f(x) para x = 3,5 y x = 4,5 lo


que indica es que hay una singularidad de la función y no
una raíz por lo tanto habrá que verificar que un cambio de
signo en la función no sea una singularidad.

Otro caso especial es aquel donde hay raíces dobles,


tal es el caso de la siguiente función:
( ) = (6 ) f(x)
10

f(5) 1 9

f (7) = 1 7

0
Figura 5.
0 2 4 6 8 10 12 x

Figura 6. Caso especial

49
Ing. Sergio Velásquez
Análisis Numérico.
Se puede observar que no hay cambio de f(x) para x = 5
y x = 7, pero observando la gráfica nos damos cuenta que en
ese intervalo existen dos raíces para esa función.

MÉTODO DE LA BISECCIÓN

Dada F(x) como una función continua en un intervalo [a,


b] con F(a) y F(b) de signos opuestos, se puede decir que
existe al menos un p entre el intervalo a b tal que F(p)=0,
es decir existe al menos una raíz de la función entre a y
b.

Sea c el punto medio del intervalo [a, b], se halla


F(c), se compara F(c) con F(a) y F(b) y se toma el nuevo
intervalo en los extremos ([a, c] o [c, b]) que contenga
signos distintos porque este es el que contiene a p.

Con el nuevo intervalo se calcula un nuevo punto


intermedio y se toma el nuevo intervalo en los extremos que
contenga signos distintos, este proceso se continua hasta
conseguir un c próximo al punto p con la precisión p que
se desee.

f(x)
f(x)
b a f(b)
c a f (a)
f (b) f (a)

f(c) a c p b
f(b) f(a)
y f(a) (c a) f(a)
b a

Figura 7. Método de bisección

50
Ing. Sergio Velásquez
Análisis Numérico.
Algoritmo Método de la bisección:
Inicio
Declarar: F(x), a, b, c, error, x
Leer: F(x), a, b, error
Hacer: Mientras (1/2)*|a - b| >= error
Hacer: c = (1/2)*(a + b)
Si F(c)*F(a) < 0 Entonces
Hacer: b = c
Si No
Hacer: a = c
Fin de si
Fin de Mientras
Mostrar: c
Fin

Si existiera más de una raíz en el intervalo [a, b],


entonces, o bien una de ellas queda aislada, o bien en
algún momento del procedimiento iterativo aparecerán los
dos Valores f(a) y f(b) con el mismo signo.

En ese caso se debe detener las iteraciones y buscar un


nuevo intervalo para volver a comenzar el procedimiento.
Para descartar casos como el de la Gráfica No. 2,
también es útil verificar que:

F(b ) f (a ) 0
Un inconveniente de este método es que es de
convergencia lenta, aunque es simple y robusto, además de
fácil de implementar.

MÉTODO DE LA FALSA POSICIÓN

Este método es análogo al anterior en que el intervalo


de trabajo se reduce con cada iteración.

Sin embargo, en lugar de bisectar el intervalo, lo que


se hace es una interpolación lineal con los puntos extremos
del intervalo, a fin de encontrar una aproximación a la
raíz.

51
Ing. Sergio Velásquez
Análisis Numérico.

f(x) f(x)
f(b)

c1 x
c2
a p b
f(a)

Figura 8. Método falsa posición

Se comienza el proceso iterativo con dos aproximaciones


iniciales a y b de la raíz de la ecuación f(x)=0. La
siguiente aproximación c1 se determina por la intersección
de la recta que pase por (a, f(a)) y (b, f(b)) con el eje
x, y así sucesivamente. La función lineal que pasa por los
puntos (a, f(a)) y (b, f(b)) es:
Entonces, el valor de x para el cual y = 0 es:

Algoritmo Método falsa posición:

Inicio
Declarar: F(x), a, b, c0, c, xd, it, error
Leer: F(x), a, b, error
Hacer: xd = 1+error
Hacer: Mientras xd >=error
Hacer: c0=c
Hacer: c = a + ((b - a) *f(a))/(f(b) - f(a))
xd = |c-c0|
Si F(c)*F(a) < 0 Entonces
Hacer: b = c
Si No
Hacer: a = c
Fin de si
Fin de Mientras
Mostrar: c
Fin

52
Ing. Sergio Velásquez
Análisis Numérico.
REGLA FALSA MODIFICADA

Un inconveniente que suele presentar este método es la


aparición de extremos fijos que hacen más lenta la
convergencia del proceso iterativo. Por ejemplo, en la
gráfica 5 el extremo b se ha repite en las 2 primeras
iteraciones, y por lo que se puede apreciar, continuará
haciéndolo. Para evitar este tipo de inconvenientes y
acelerar la convergencia, siempre que un extremo se haya
repetido más de 2 veces, en la iteración siguiente se
efectúa la interpolación con la mitad del valor funcional
correspondiente a ese extremo (en el caso de la figura se
tomaría f(b)/2).

f(x) f(x)
f(b)

f(b)/2
c1 c2 x
a p b
f(a)

Figura 9. Regula Falsi Modificada

La elección guiada del intervalo representa una


ventaja respecto al método de la secante ya que inhibe la
posibilidad de una divergencia del método.

Por otra parte y respecto al método de la bisección,


mejora notablemente la elección del intervalo (ya que no se
limita a partir el intervalo por la mitad).

53
Ing. Sergio Velásquez
Análisis Numérico.

f(x) f(x)
f(b)

X0 X2 X1 x

f(x)

f(b)

X2
X0
x
X1

Figura 10. Modificación del método de la falsa


posición propuesta por Hamming. La aproximación a la
raíz se toma a partir del punto de intersección con el
eje X de la recta que une los puntos ( x0,f(x0)/2) y
(x1,f(x1)) si la función es convexa en el intervalo
(figura a) o bien a partir de la recta que une los
puntos (x0,f(x0)) y (x1, f(x1)/2) si la función es
cóncava en el intervalo (figura b).

Sin embargo, el método de la falsa posición tiene una


convergencia muy lenta hacia la solución. Efectivamente,
una vez iniciado el proceso iterativo, uno de los extremos
del intervalo tiende a no modificarse (ver figura (10)).

Para obviar este problema, se ha propuesto una


modificación del método, denominada método de Hamming.

54
Ing. Sergio Velásquez
Análisis Numérico.
Según este método, la aproximación a una raíz se
encuentra a partir de la determinación del punto de
intersección con el eje X de la recta que une los puntos
( x0,f(x0)/2) y (x1,f(x1)) si la función es convexa en el
intervalo o bien a partir de la recta que une los puntos
(x0,f(x0)) y (x1, f(x1)/2) si la función es cóncava en el
intervalo. En la figura (10) se representa gráficamente el
método de Hamming.

Como hemos comentado, el método de Hamming requiere


determinar la concavidad o convexidad de la función en el
intervalo de iteración.

Un método relativamente sencillo para determinar la


curvatura de la función consiste en evaluar la función en
el punto medio del intervalo, f(xm) (en donde xm se calcula
como en el método de la bisección) y comparar este valor
con la media de los valores de la función en los extremos
del intervalo, =( ( ) ))/2. Tenemos entonces que:

( )

Algoritmo Regula Falsi Modificada:

Inicio
Declarar: F(x), a, b, c, yb, ya, yc, ca, cb, error, c0, xd
Leer: F(x), a, b, error
Hacer: xd = 1+error
Hacer: yb = f(b)
Hacer: ya = f(a)
Hacer: Mientras xd >= error
Hacer: c0 = c
Hacer: c = a + (b - a) *ya/(yb - ya)
hacer: xd = |c – c0|
Hacer: yc = f(c)
Si F(c)*F(a) < 0 Entonces
Hacer: yb = yc
Hacer: b = c
Hacer: cb = cb + 1

55
Ing. Sergio Velásquez
Análisis Numérico.
Hacer: ca = 0
Si cb > 1 entonces Hacer: ya = ya/2
Si No
Hacer: ya = yc
Hacer: a = c
Hacer: ca = ca + 1
Hacer: cb = 0
Si ca > 1 entonces Hacer: yb = yb/2
Fin de si
Fin de Mientras
Mostrar: c
Fin

MÉTODO NEWTON
Dada f(x) como una función continua derivable dos veces
en un intervalo cerrado [a, b] y sea x1 una aproximación
inicial a la solución exacta p de la ecuación f(x)=0 en ese
mismo intervalo.

F(x)
F(x1)

F(x(1))
F(X2)
F(X3)
x
p X3 X2 X1
X1 - X2

Figura 11. Método de Newton

Se traza por el punto (x1, f(x1))una recta tangente a


la función f(x), su intersección con el eje x dará un nuevo
punto x2 que se toma como la nueva aproximación a p, luego
el proceso se repite para el punto (x2, f(x2)) y así
sucesivamente, se obtienen una serie de aproximaciones x1
x2 x3 que convergerán a la raíz exacta p, analíticamente:
f ( x1 ) F( x 1 )
Tan F' ( x 1 ) x2 x1
x1 x 2 de aquí que F' ( x 1 ) en forma
F( x n 1 )
xn xn 1
general F' ( x n 1 )

56
Ing. Sergio Velásquez
Análisis Numérico.
Este método parte de una aproximación
inicial x0 y obtiene una aproximación mejor, x1, dada
por la fórmula:

Ec. 38.

La expresión anterior puede derivarse a partir de un


desarrollo en serie de Taylor. Efectivamente, sea r un
cero de f y sea x una aproximación a r tal que r=x+h.
Si f'' existe y es continua, por el teorema de Taylor
tenemos:

0 = f(r) = f(x+h) = f(x) + hf'(x) + O(h2) Ec. 39.

en donde h=r-x. Si x está próximo a r (es decir hes


pequeña), es razonable ignorar el término O(h2):

0 = f(x) + hf'(x) Ec. 40.

por lo que obtenemos la siguiente expresión para h:

Ec. 41.

A partir de la ecuación (41) y teniendo en


cuenta que r=x+h es fácil derivar la ecuación (38).

57
Ing. Sergio Velásquez
Análisis Numérico.

F(x)

X1 x
X2 X0

Figura 12. Interpretación geométrica del método de Newton.

El método de Newton tiene una interpretación geométrica


sencilla, como se puede apreciar del análisis de la figura
(12).

De hecho, el método de Newton consiste en


una linealización de la función, es decir, f se reemplaza
por una recta tal que contiene al punto (x0,f(x0)) y cuya
pendiente coincide con la derivada de la función en el
punto, f'(x0).

La nueva aproximación a la raíz, x1, se obtiene de la


intersección de la función linear con el eje X de
ordenadas.
Veamos cómo podemos obtener la ecuación (38) a partir
de lo dicho en el párrafo anterior. La ecuación de la recta
que pasa por el punto (x0,f(x0)) y de pendiente f'(x0) es:

y - f(x0) = f'(x0)(x-x0) Ec. 42.

de donde, haciendo y=0 y despejando x obtenemos la


ecuación de Newton-Raphson (42).

58
Ing. Sergio Velásquez
Análisis Numérico.

F(x)

X1 x
X0
A
F(x)

x
X0 X1
B

Figura 13. Dos situaciones en las que el método de


Newton no funciona adecuadamente: (a) el método no alcanza
la convergencia y (b) el método converge hacia un punto
que no es un cero de la ecuación.

El método de Newton es muy rápido y eficiente ya que la


convergencia es de tipo cuadrático (el número de cifras
significativas se duplica en cada iteración).

Sin embargo, la convergencia depende en gran medida de


la forma que adopta la función en las proximidades del
punto de iteración.

En la figura (13) se muestran dos situaciones en las


que este método no es capaz de alcanzar la convergencia

59
Ing. Sergio Velásquez
Análisis Numérico.
(figura (13a)) o bien converge hacia un punto que no es un
cero de la ecuación (figura (13b)).

Algoritmo Método de Newton:


Inicio
Declarar: F(x), xd, error, X(it), h
Leer: F(x), x(1), error
Hacer: h= 0.0001
Hacer: xd = 1+error
Hacer: it = 1
Hacer: Mientras xd >= error
Hacer: it = it + 1
Hacer: X(it) =X(it - 1) - f(X(it - 1))/((f(x(it – 1))+h) -
f(x(it – 1)))/h
Hacer: xd = |X(it) – X(it -1)|
Fin de Mientras
Mostrar: X(it)
Fin

MÉTODO DE LA SECANTE
Un inconveniente del método de Newton es la necesidad
de evaluar la derivada primera de la función, lo cual puede
llegar a resultar engorroso. Una forma de evitar el cálculo
de f'(x) consiste en considerar como aproximación a la
derivada la recta que pasa por los valores de 2 iteraciones
sucesivas. Se comienza el proceso iterativo con dos
aproximaciones iniciales x1 y x2 de la raíz de la ecuación
f(x)=0. La siguiente aproximación x3 se determina por la
intersección de la recta que pase por los puntos (x1,
f(x1)) y (x2, f(x2)) con el eje x, y así sucesivamente.
xn 1 xn 2
xn xn 1 f(xn 1) *
f (x n 1 ) f (x n 2 )

Algoritmo Método de la Secante:


Inicio
Declarar: F(x), xd, error, X(i)
Leer: F(x), x(1), x(2), error
Hacer: it = 2
Hacer xd = 1 + error
Hacer: Mientras xd >= error
Hacer: it = it + 1
Hacer: X(it) =X(it-1) – f(x(it-1))*((x(it-1) - x(it-
2))/(f(x(it-1)) - f(x(it-2))))

60
Ing. Sergio Velásquez
Análisis Numérico.
Hacer: xd = |X(it+1) – X(it)|
Fin de Mientras
Mostrar: X(it)
Fin

PUNTO FIJO
Dada una función F(x) siempre podrá escribirse de la
forma x = G(x).

Se elige una aproximación inicial arbitraria x1 a la


raíz x, luego se halla G(x1), que representa una nueva
aproximación x2, es decir, x2 = G(x1), luego x3 = G(x2) y
así sucesivamente se calculan los demás valores xn = G(xn-1)
hasta conseguir un xn próximo al punto p con la precisión
que se desee.

Dado que x = G(x) no es única, se puede asegurar la


convergencia de una sucesión de valores si se cumple que
|g’(x)| 1.

Y Y=x
p
G(x2 Y=G(x)
G(x
) 1
)

G(x0
)

x
X1 X2 X3 x

Figura 14. Método de Punto Fijo

Algoritmo Punto Fijo:


Inicio
Declarar: G(x), x(it), it, error, xd
Leer: G(x), error, x(1)
Hacer: xd = 1 + error
Hacer: it = 1
Hacer: Mientras xd >= error

61
Ing. Sergio Velásquez
Análisis Numérico.
Hacer: it = it + 1
Hacer: X(it) = G(x(it - 1))
Hacer: xd = |x(it - 1) - x(it)|
Fin de Mientras
Mostrar; x(it)
Fin

Ejemplo

% EL PRESENTE PROGRAMA ILUSTRA LA INTERPOLACIÓN


% EN DOS DIMENSIONES UTILIZANDO LA INSTRUCCIÓN:
% y = interp2(xm,ym,zm,xi,yi)
% DONDE:
% xm = MATRIZ MALLA, CUADRADA (a X a),
% FORMADA CON EL VECTOR (x), DE (1 X a)
% Ym = MATRIZ MALLA, CUADRADA (b X b),
% FORMADA CON EL VECTOR (y), DE (1 X b)
% zm = MATRIZ DE (b X a), FORMADA CON VALORES
% RELACIONADOS BIDIMENSIONALMENTE
% CON LOS VECTORES (x) Y (y)
% xi = VALOR DE (x) AL CUAL SE DESEA
% INTERPOLAR LA TABLA BIDIMENSIONAL
% FORMADA POR LA MATRIZ (zm)
% yi = VALOR DE (y) AL CUAL SE DESEA INTERPOLAR
% LA TABLA BIDIMENSIONAL FORMADA POR LA MATRIZ (zm)
% y = VALOR INTERPOLADO DE LA TABLA BIDIMENSIONAL,
% FORMADA POR LA MATRIZ (zm)
% IMPORTANTE:
%
% LOS VECTORES (x) Y (y) DEBEN SER MONÓTONOS
% CRECIENTES O DECRECIENTES
% TAMBIÉN PUEDEN SER UNIFORME O NO UNIFORMEMENTE ESPACIADOS
% EN LAS INTERPOLACIONES FUERA DE RANGO
% SE DARÁ COMO RERSULTADO: NaN
% METODOLOGÍA
% 1) SE TIENE UNA TABLA DE DATOS (MATRIZ zm), LOS CUALES DEPENDEN
% DE DOS VARIABLES (x) Y (y)
% 2) SE TIENE A LA VARIABLE (x), COMO UN VECTOR
% 3) SE TIENE A LA VARIABLE (Y), COMO UN VECTOR
% 4) SE GENERAN LAS MATRICES MALLA, A PARTIR DE LOS VECTORES
% (x) Y (y) MEDIANTE LA INSTRUCCIÓN: [xm,ym]=meshgrid(x,y)
% 5) SE GRAFICAN LOS VALORES DE LA TABLA (zm)
% VERSUS LAS MALLAS (xm) Y (ym)
% ESTE PASO ES OPCIONAL, PERO ES CONVENIENTE
% OBSERVAR TRIDIMENSIONALMENTE LOS DATOS DE LA
% TABLA (zm) VERSUS (X) Y (y)
% 6) SE FIJAN LOS VALORES DE (x) y (y), LOS CUALES
% SE QUIERE INTERPOLAR, EN LA TABLA (zm),
% ESTOS VALORES DEBEN SER UBICADOS EN LAS VARIABLES
% (xi) Y (yi). EN ESTE PUNTO EXISTEN TRES CASOS:
%
% CASO 1)
% xi = UN NÚMERO
% yi = UN NÚMERO
%
% CASO 2)
% xi = VECTOR DE VARIOS VALORES NÚMERICOS, DE TAMAÑO (1 X a)
% yi = VECTOR DE VARIOS VALORES NÚMERICOS, DE TAMAÑO (1 X b)
%

62
Ing. Sergio Velásquez
Análisis Numérico.
% IMPORTANTE: ESTOS VECTORES DEBEN SER DE IGUAL TAMAÑO O EN SU
% DEFECTO DEBEN SER VECTORES CON DIFERENTES
% ORIENTACIONES, UNO VECTOR COLUMNA Y EL OTRO
% VECTOR FILA
%
% CASO 3)
% xi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (a X b)
% yi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (c X d)
%
% IMPORTANTE: EN ESTE CASO, SE DEBEN GENERAR LA MATRICES MALLAS
% (xim) Y (yim) CON LA INSTRUCCIÓN:
% [xim,yim]=meshgrid(xi,yi);
% LA INTERPOLACIÓN SE REALIZA COLUMNA POR COLUMNA
%
%
% 7) SE APLICA LA INSTRUCCIÓN DE INTERPOLACIÓN
% EN DOS DIMENSIONES, SEGÚN:
%
% CASO 1) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO: zi = UN NÚMERO
%
% CASO 2) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO:
% zi = UNA MATRIZ, PARA VECTORES DE DIFERENTES TAMAÑOS
% zi = UN VECTOR, PARA VECTORES DE IGUAL TAMAÑO
%
%
% CASO 3) zi=interp2(xm,ym,zm,xim,yim)
% RESULTANDO: zi = UNA MATRIZ
%
%
% EJEMPLO
%
% EN ESTE EJEMPLO SE ILISTRARÁ EL CASO (1)
%
% PARA LA SIGUIENTE TABLA DE VALORES, INTERPOLAR PARA:
%
% xi = 35
% yi = 50

close all
clear all
clc

% TABLA:
zm=[0.1256 0.9551 1.3189 1.1203 0.6148 0.1792
0.0099
1.0178 1.5842 1.5552 1.0463 0.4373 0.0674 -
0.0087
1.6882 1.8680 1.4524 0.7442 0.1644 -0.0591 -
0.0253
1.9906 1.7445 1.0330 0.2799 -0.1442 -0.1728 -
0.0364
1.8591 1.2408 0.3885 -0.2455 -0.4215 -0.2487 -
0.0396
1.3223 0.4666 -0.3408 -0.7173 -0.6069 -0.2705 -
0.0342
0.4973 -0.4093 -0.9957 -1.0328 -0.6600 -0.2333 -
0.0213
-0.4362 -1.1960 -1.4336 -1.1231 -0.5692 -0.1452 -
0.0037

63
Ing. Sergio Velásquez
Análisis Numérico.
-1.2745 -1.7220 -1.5590 -0.9686 -0.3543 -0.0255
0.0146
-1.8351 -1.8726 -1.3446 -0.6030 -0.0622 0.0998
0.0298
-1.9956 -1.6150 -0.8370 -0.1059 0.2434 0.2033
0.0385
-1.7211 -1.0054 -0.1470 0.4143 0.4960 0.2625
0.0388
-1.0714 -0.1766 0.5750 0.8441 0.6405 0.2645
0.0306
-0.1882 0.6907 1.1717 1.0900 0.6453 0.2088
0.0158];
% VARIABLES (x) Y (y)
x=[ 1,16,31,46,61,76,91];
y=[1,16,31,46,61,76,91,106,121,136,151,166,181,196 ];
[xm,ym]=meshgrid(x,y);
mesh(xm,ym,zm) % GRÁFICA DE LA TABLA VERSUS (x) Y (y)
colormap(jet)
xlabel('VALORES DE X')
ylabel('VALORES DE Y')
zlabel('VALORES DE LA TABLA')
b=-1;
brighten(b)
% VALORES DONDE SE REALIZARÁ LA INTERPOLACIÓN
xi = 35;
yi = 50;
zi=interp2(xm,ym,zm,xi,yi);
% PARA EFECTOS DE COMPARACIÓN, LA TABLA UTILIZADA
% EN LA INTERPOLACIÓN
% FUE GENERADA MEDIANTE LA SIGUIENTE FUNCIÓN:
% zc=sin((xi+yi)*pi/m).*(1+cos((xi)*pi/m));
% POR LO TANTO, ES POSIBLE DETERMINAR
% EL VALOR CALCULADO DE LA FUNCIÓN
% Y COMPARARLO CON EL VALOR INTERPOLADO:
% FUNCIÓN PARA GENERAR LA TABLA
m=100;
zc=sin((xi+yi)*pi/m).*(1+cos((xi)*pi/m));
disp(' ')
disp(' ')
disp(' RESULTADO DE LA INTERPOLACIÓN ')
disp(' ')
fprintf(' VALOR INTERPOLADO zi = %2.6f\n',zi)
disp(' ')
fprintf(' VALOR CALCULADO zc = %2.6f\n',zc)

64
Ing. Sergio Velásquez
Análisis Numérico.

ECUACIONES LINEALES

65
Ing. Sergio Velásquez
Análisis Numérico.
ECUACIONES LINEALES

Considerare un conjunto de ecuaciones con n incógnitas


dado por

a11 x1 + a12 x2 +....+ a1n xn = y1


a21 x1 + a22 x2 +....+ a2n xn = y2
:
:
:
am1 x1 + am2 x2 +....+ amn xn = ym

Donde aij son coeficientes conocidos, xi son incógnitas


y yi términos conocidos que se denominan términos no
homogéneos
Las ecuaciones lineales anteriores se pueden expresar
de forma matricial como
A X = Y

Donde A, X y Y están definidos, respectivamente, por

a 11 a 12 ···· a 1n x1 y1
a 21 a 22 ···· a 2n x2 y2
A : : : X Y
: :
: : : xm ym
a m1 a m 2 ···· a mn

Donde A es una matriz de n por m coeficientes, X es un


vector de términos independientes e Y es el vector de
incógnitas, objetivo de nuestro problema.

Un sistema de ecuaciones no homogéneo, es decir cuando


siquiera uno de los yi es distinto de cero; el sistema
posee tres soluciones posibles: una única solución X,
infinitas soluciones o ninguna solución posible, pero para

66
Ing. Sergio Velásquez
Análisis Numérico.
el caso de un sistema homogéneo solo existen dos soluciones
posibles: X = 0 (solución trivial) o infinitas soluciones.

Las ecuaciones lineales expresadas anteriormente se


pueden agrupar en los siguientes tres casos:
Caso 1: m = n, es el más común, con él numero de
ecuaciones igual al número de incógnitas.
Caso 2: m < n, el número de ecuaciones es menor que el
de incógnitas, y tenemos lo que se conoce como un problema
sub determinado, con infinitas soluciones.
Caso 3: m > n, el número de ecuaciones es mayor que el
de incógnitas, y se tiene un problema sobre determinado.

Al trabajar con este sistema de ecuaciones lineales


(Ax=y) se utilizara la Matriz aumentada, que no es más que
una representación matricial del sistema, es decir:

a 11 a12 ···· a 1n y1
a 21 a 22 ···· a 2n y2
AY : : : :
: : : :
a m1 a m 2 ···· a mn ym

En la matriz aumentada se pueden realizar las


siguientes operaciones entre filas:
Sustitución de una ecuación por la misma ecuación
multiplicada por un escalar: * Fi Fi
Sustitución de una ecuación por la combinación lineal
de la ecuación original con otra ecuación del sistema:
Fj + *Fi Fi
Intercambio de dos ecuaciones del sistema (cambiamos el
orden de las ecuaciones en el sistema): Fj Fi

MÉTODO DE GAUSS
Este es un método de eliminación, que trabaja sobre
sistemas de ecuaciones lineales donde él número de

67
Ing. Sergio Velásquez
Análisis Numérico.
ecuaciones es igual al número de incógnitas, cuyo fin es el
de hallar la matiz incógnita X.
La eliminación de Gauss está constituida por dos pasos:
Eliminación hacia delante y La sustitución hacia atrás.

Eliminación hacia adelante

Este paso consiste en transformar la matriz aumentada


en una matriz triangular superior; para ello se utilizara
las operaciones entre filas para eliminar los elementos
ubicados por debajo de la diagonal principal.

Aunque es muy fácil la reducción de la matriz aumentada


sin la necesidad de intercambiar filas o " pivotear ",
existe un problema computacional con este método.

Si se divide entre un numero pequeño que sé a


redondeado, el resultado puede contener un error de
redondeo significativo.

Por ejemplo 1/ 0.00074 1351 mientras que 1/ 0.0007


1479.

Para evitar este problema, se usa un método en el cual


la idea es siempre la de dividir entre el elemento más
grande, en valor absoluto.

El método se describirá con un ejemplo sencillo.


>>A=[1 0 0 0; 0 1 –1 0; -4 6 30, -24; 0 0 –24 36]

1 0 0 0
0 1 -1 0
-4 6 30 -24
0 0 -24 36

68
Ing. Sergio Velásquez
Análisis Numérico.
Luego se define la matriz de términos independiente que
se llamara B
>>Y=[15;45;210;180]
15
45
210
180

Se forma la matriz aumentada que se llamara AY


>>AY=[A Y]

1 0 0 0 15
0 1 -1 0 45
-4 6 30 -24 210
0 0 -24 36 180

Nuestro primer paso sera seleccionar el elemento de la


primera columna con el valor absoluto mayor, el cual sera
nuestro primer pivote; es decir 4,para luego intercambiar
la primera fila con la que contenga al pivote.
Comenzamos intercambiando la fila uno con la tres (F1
F3)
>>AUX=AY(1,:);
>>AY(1,:)=AY(3,:);
>>AY(3,:)=AUX

-4 6 30 -24 210
0 1 -1 0 45
1 0 0 0 15
0 0 -24 36 180

Ahora se procede a colocar en cero los elementos de la


columna uno diferentes del elemento a11, llamado primer
pivote
A la fila tres se le suma la fila uno multiplicada por
un cuarto (F3 = F3 + (1/4)*F1)

69
Ing. Sergio Velásquez
Análisis Numérico.
>>AY(3,:)=AY(3,:)+(1/4)*AY(1,:)

-4 6 30 -24 210
0 1 -1 0 45
0 3/2 15/2 -6 135/2
0 0 -24 36 180

Se intercambia la fila dos con la tres (F2 F3)


>>AUX=AY(2,:);
>>AY(2,:)=AY(3,:);
>>AY(3,:)=AUX

-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 1 -1 0 45
0 0 -24 36 180

A la fila tres se le resta la fila dos multiplicada por


dos tercios (F3 = F3 - (2/3)*F2)
>>AY(3,:)=AY(3,:)-(2/3)*AY(2,:)

-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 0 -6 4 0
0 0 -24 36 180

Se intercambia la fila tres con la cuatro (F3 F4)


>>AUX=AY(3,:);
>>AY(3,:)=AY(4,:);
>>AY(4,:)=AUX

-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 0 -24 36 180
0 0 -6 4 0

70
Ing. Sergio Velásquez
Análisis Numérico.
A la fila cuatro se le resta la fila tres multiplicada
por un cuarto (F4 = F4 - (1/4)*F3)
>>AY(4,:)=AY(4,:)-(1/4)*AY(3,:)

-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 0 -24 36 180
0 0 0 -5 -45

Sustitución hacia atrás


Luego de la eliminación hacia delante nuestro sistema
de ecuaciones se ha transformado en sistema donde las
incógnitas son simples de hallar, es decir:

a11 x1 + a12 x2 +....+ a1n xn = y1


a22 x2 +....+ a2n xn = y2
:
:
ann xn = yn

donde se observa que él termino xn = yn / ann , luego


los pasos subsecuentes serán hallar las incógnitas una por
una en función de los valores obtenidos con anterioridad.
Xn-1 = ( yn-1 – an-1, n xn ) / an-1 , n-1

:
:
x1 = ( y1 - a1,i xi ) / y1,1

De donde:
A=AY(:,[ 1 2 3 4]);
Y=AY(:,[5]);

x4 = y4/a44 =-45/(-5) = 9
x3 =(y3- a34*x4)/a33 =( 180 – 36*9)/(-24) = 6
x2=(y2-(a24*x4+a23*x3))/a22 =
(135/2-(-6*9+6*(15/2)))/(3/2) = 51

71
Ing. Sergio Velásquez
Análisis Numérico.
x1=(y1-(a14*x4+a13*x3+a12*x2))/a22=
(210-(-24*9+30*6+6*51))/(-4) = 15

Algoritmo de Gauss aplicado al determinante de una matriz


Se aplica las operaciones con filas a la matriz A hasta
obtener una matriz diagonal superior, luego se multiplican
los coeficientes de la diagonal principal por –1 elevado a
la cantidad de pivoteos (intercambio de filas) que se
realizaron
determinante =(-1)3*((-4)*(3/2)*(-24)*(-5)) = 720

METODO GAUSS - JORDAN

Este método es similar al anterior pero con alguna


diferencia sustancial, para lograr diagonalizar la matriz
A, según los siguientes pasos:
Se forma la matriz aumentada.
Se escoge el pivote de la columna como el número con el
módulo más grande.
Se usa operaciones entre filas para hacer cero los
elementos por debajo y luego por encima del pivote.
Y por ultimo se aplica las operaciones entre filas para
hacer el pivote uno.

Esto lleva a 1 el coeficiente ann y en la posición yn


aparece el elemento xn del vector solución X . Al final la
matriz obtenida es de la siguiente forma

1 0 ···· 0 x1
0 1 ···· 0 x2
A : : : :
1
: : : :
0 0 ···· 1 xn

Realmente se está obteniendo una matriz de la

72
Ing. Sergio Velásquez
Análisis Numérico.
forma[I X], donde los Xn representan la solución del
sistema.

Algoritmo de Gauss-Jordan aplicado a la inversión de


matrices

Si partimos de una matriz ampliada [A I], en la que


hemos sustituido el vector y por una matriz identidad de
igual dimensión que la matriz A, y aplicamos el método de
Gauss-Jordan a esta matriz, entonces llegamos a una matriz
ampliada donde a la izquierda aparece la matriz identidad y
a la derecha la inversa de la matriz [I A-1], a
continuación se ilustra un ejemplo basado en el sistema
anterior.

>>AY=[A B]

1 0 0 0 15
0 1 -1 0 45
-4 6 30 -24 210
0 0 -24 36 180

Comenzamos usando el pivote de la fila tres,


intercambiando la fila uno con la tres (F1 F3).

>>AUX=AY(1,:);
>>AY(1,:)=AY(3,:);
>>AY(3,:)=AUX;

-4 6 30 -24 210
0 1 -1 0 45
1 0 0 0 15
0 0 -24 36 180

A la fila tres se le suma la fila uno multiplicada por


un cuarto (F3 = F3 + (1/4)*F1)

73
Ing. Sergio Velásquez
Análisis Numérico.
>>AY(3,:)=AY(3,:)+(1/4)*AY(1,:);

-4 6 30 -24 210
0 1 -1 0 45
0 3/2 15/2 -6 135/2
0 0 -24 36 180

La fila uno se divide entre menos cuatro (F1 = (-


1/4)*F1)
>>AY(1,:)=(-1/4)*AY(1,:)

1 -3/2 -15/2 6 -105/2


0 1 -1 0 45
0 3/2 15/2 -6 135/2
0 0 -24 36 180

Se intercambiando la fila tres con la dos (F3 F2).


>>AUX=AY(2,:);
>>AY(2,:)=AY(3,:);
>>AY(3,:)=AUX

1 -3/2 -15/2 6 -105/2


0 3/2 15/2 -6 135/2
0 1 -1 0 45
0 0 -24 36 180

A la fila uno se le suma la fila dos (F1 = F1 + F2)


>>AY(1,:)=AY(1,:)+AY(2,:)

1 0 0 0 15
0 3/2 15/2 -6 135/2
0 1 -1 0 45
0 0 -24 36 180

A la fila tres se le resta la fila dos multiplicada por


dos tercios (F3 = F3 – (2/3)*F2)
>>AY(3,:)=AY(3,:)-(2/3)*AY(2,:)

74
Ing. Sergio Velásquez
Análisis Numérico.

1 0 0 0 15
0 3/2 15/2 -6 135/2
0 0 -6 4 0
0 0 -24 36 180

La fila dos se multiplica por dos tercios (F2=(2/3)*F2)


>>AY(2,:)=(2/3)*AY(2,:)

1 0 0 0 15
0 1 5 -4 45
0 0 -6 4 0
0 0 -24 36 180

Se intercambiando la fila tres con la dos (F3 F4).


>>AUX=AY(3,:);
>>AY(3,:)=AY(4,:);
>>AY(4,:)=AUX

1 0 0 0 15
0 1 5 -4 45
0 0 -24 36 180
0 0 -6 4 0

A la fila cuatro se le resta la fila tres multiplicada


por un cuarto (F4 = F4 - (1/4)*F3)
>>AY(4,:)=AY(4,:)-(1/4)*AY(3,:)

1 0 0 0 15
0 1 5 -4 45
0 0 -24 36 180
0 0 0 -5 -45

A la fila dos se le suma la fila tres multiplicada por


(5/24) (F2 = F2 + (24/4)*F3)
>>AY(2,:)=AY(2,:)+(5/24)*AY(3,:)

75
Ing. Sergio Velásquez
Análisis Numérico.

1 0 0 0 15
0 1 0 7/2 165/2
0 0 -24 36 180
0 0 0 -5 -45
La fila tres se multiplica por (-1/24) (F3=(-1/24)*F3)
>>AY(3,:)=(-1/24)*AY(3,:)

1 0 0 0 15
0 1 0 7/2 165/2
0 0 1 -3/2 -15/2
0 0 0 -5 -45

A la fila dos se le suma la fila cuatro multiplicada


por (7/10) (F2 = F2 + (7/10)*F4)
>>AY(2,:)=AY(2,:)+(7/10)*AY(4,:)

1 0 0 0 15
0 1 0 0 51
0 0 1 -3/2 -15/2
0 0 0 -5 -45

A la fila tres se le resta la fila cuatro multiplicada


por (3/10) (F2 = F2 - (3/10)*F4)
>>AY(3,:)=AY(3,:)-(3/10)*AY(4,:)

1 0 0 0 15
0 1 0 0 51
0 0 1 0 6
0 0 0 -5 -45

La fila cinco se multiplica por (-1/5) (F3 = (-1/5)*F3)


>>AY(4,:)=(-1/5)*AY(4,:)

1 0 0 0 15
0 1 0 0 51

76
Ing. Sergio Velásquez
Análisis Numérico.
0 0 1 0 6
0 0 0 1 9

X=AY(:,[5]);

La inversa por el método Gauss Jordan

Se forma la matriz aumentada que se llamara AU


>>T=size(A);
>>I=eye(T);
>>AU=[A I]

1 0 0 0 1 0 0 0
0 1 -1 0 0 1 0 0
-4 6 30 -24 0 0 1 0
0 0 -24 36 0 0 0 1

Comenzamos usando el pivote de la fila tres,


intercambiando la fila uno con la tres (F1 F3).

>>AUX=AU(1,:);
>>AU(1,:)=AU(3,:);
>>AU(3,:)=AUX

-4 6 30 -24 0 0 1 0
0 1 -1 0 0 1 0 0
1 0 0 0 1 0 0 0
0 0 -24 36 0 0 0 1

A la fila tres se le suma la fila uno multiplicada por


un cuarto (F3 = F3 + (1/4)*F1)

>>AU(3,:)=AU(3,:)+(1/4)*AU(1,:) ;

-4 6 30 -24 0 0 1 0
0 1 -1 0 0 1 0 0

77
Ing. Sergio Velásquez
Análisis Numérico.
0 3/2 15/2 -6 1 0 1/4 0
0 0 -24 36 0 0 0 1

La fila uno se divide entre menos cuatro (F1=(-1/4)*F1)

>>AU(1,:)=(-1/4)*AU(1,:)

1 -3/2 -15/2 6 0 0 -1/4 0


0 1 -1 0 0 1 0 0
0 3/2 15/2 -6 1 0 1/4 0
0 0 -24 36 0 0 0 1

Se intercambiando la fila tres con la dos (F3 F2).


>>AUX=AU(2,:);
>>AU(2,:)=AU(3,:);
>>AU(3,:)=AUX

1 -3/2 -15/2 6 0 0 -1/4 0


0 3/2 15/2 -6 1 0 1/4 0
0 1 -1 0 0 1 0 0
0 0 -24 36 0 0 0 1

A la fila uno se le suma la fila dos (F1 = F1 + F2)


>>AU(1,:)=AU(1,:)+AU(2,:)

1 0 0 0 1 0 0 0
0 3/2 15/2 -6 1 0 1/4 0
0 1 -1 0 0 1 0 0
0 0 -24 36 0 0 0 1

A la fila tres se le resta la fila dos multiplicada por


dos tercios (F3 = F3 – (2/3)*F2)
>>AU(3,:)=AU(3,:)-(2/3)*AU(2,:)

1 0 0 0 1 0 0 0
0 3/2 15/2 -6 1 0 1/4 0

78
Ing. Sergio Velásquez
Análisis Numérico.
0 0 -6 4 -2/3 1 -1/6 0
0 0 -24 36 0 0 0 1

La fila dos se multiplica por dos tercios (F2 =


(2/3)*F2)
>>AU(2,:)=(2/3)*AU(2,:)

1 0 0 0 1 0 0 0
0 1 5 -4 2/3 0 1/6 0
0 0 -6 4 -2/3 1 -1/6 0
0 0 -24 36 0 0 0 1

Se intercambiando la fila tres con la dos (F3 F4).


>>AUX=AU(3,:);
>>AU(3,:)=AU(4,:);
>>AU(4,:)=AUX

1 0 0 0 1 0 0 0
0 1 5 -4 2/3 0 1/6 0
0 0 -24 36 0 0 0 1
0 0 -6 4 -2/3 1 -1/6 0

A la fila cuatro se le resta la fila tres multiplicada


por un cuarto (F4 = F4 - (1/4)*F3)
>>AU(4,:)=AU(4,:)-(1/4)*AU(3,:)

1 0 0 0 1 0 0 0
0 1 5 -4 2/3 0 1/6 0
0 0 -24 36 0 0 0 1
0 0 0 -5 -2/3 1 -1/6 -1/4

A la fila dos se le suma la fila tres multiplicada por


(5/24) (F2 = F2 + (24/4)*F3)
>>AU(2,:)=AU(2,:)+(5/24)*AU(3,:)

1 0 0 0 1 0 0 0
0 1 0 7/2 2/3 0 1/6 5/24

79
Ing. Sergio Velásquez
Análisis Numérico.
0 0 -24 36 0 0 0 1
0 0 0 -5 -2/3 1 -1/6 -1/4

La fila tres se multiplica por (-1/24) (F3 = (-


1/24)*F3)
>>AU(3,:)=(-1/24)*AU(3,:)

1 0 0 0 1 0 0 0
0 1 0 7/2 2/3 0 1/6 5/2
0 0 1 -3/2 0 0 0 -1/2
0 0 0 -5 -2/3 1 -1/6 -1/4

A la fila dos se le suma la fila cuatro multiplicada


por (7/10) (F2 = F2 + (7/10)*F4)
>>AU(2,:)=AU(2,:)+(7/10)*AU(4,:)

1 0 0 0 1 0 0 0
0 1 0 0 1/5 7/10 1/20 1/30
0 0 1 -3/2 0 0 0 -1/24
0 0 0 -5 -2/3 1 -1/6 -1/4

A la fila tres se le resta la fila cuatro multiplicada


por (3/10) (F2 = F2 - (3/10)*F4)
>>AU(3,:)=AU(3,:)-(3/10)*AU(4,:)

1 0 0 0 1 0 0 0
0 1 0 0 1/5 7/10 1/20 1/30
0 0 1 0 1/5 -3/10 1/20 1/30
0 0 0 -5 -2/3 1 -1/6 -1/4

La fila cinco se multiplica por (-1/5) (F3 = (-1/5)*F3)


>>AU(4,:)=(-1/5)*AU(4,:)

1 0 0 0 1 0 0 0
0 1 0 0 1/5 7/10 1/20 1/30
0 0 1 0 1/5 -3/10 1/20 1/30

80
Ing. Sergio Velásquez
Análisis Numérico.
0 0 0 1 2/15 -1/5 1/30 1/20

Se extrae la matriz inversa de la matriz AU de las


columnas 5, 6, 7 y 8
AINV=AU(:,[ 5 6 7 8])

1 0 0 0
1/5 7/10 1/20 1/30
1/5 -3/10 1/20 1/30
2/15 -1/5 1/30 1/20

Este resultado obtenido se puede verificar en Matlab


realizando la operación:
>>inv(A)

MÉTODO DE JACOBI

Este método tiene aplicabilidad en problemas donde el


número de incógnitas es muy grande y los coeficientes de la
matriz son pocos. Es aquí donde el método resulta eficiente
desde el punto de vista en la utilización de memoria, ya
que otros métodos como la eliminación gaussiana podrían
exceder el límite de memoria.
Para la aplicación del método es necesario tener un
valor inicial ya sea aproximado o sea el vector nulo, el
cual es utilizado para calcular un nuevo vector solución
mediante la expresión de Jacobi y así sucesivamente se
repetirá el proceso hasta un error estimado.

Para poder aplicar el método iterativo de Jacobi se


debe tener una estimación inicial del vector solución X, si
no se tiene la estimación se debe tomar como vector
solución inicial el vector nulo, esto es porque siempre se
necesita el valor inicial de X para poder comenzar las

81
Ing. Sergio Velásquez
Análisis Numérico.
iteraciones, entre más cercano sea el valor inicial a valor
real, mas rápido converge a la solución.
Una condición suficiente para que el método de Jacobi
converja es:
N
ai , j a i, j
j 1, j i
para toda i

Esto quiere decir que cada elemento de la diagonal de


la matriz A sea mayor o igual que la suma de los otros
elementos de la matriz, excluyendo los elementos de la
diagonal. El método iterativo de Jacobi se resuelve por
medio de su expresión
N
Yi ( a i , j ) * X (jt 1)

j 1, j i
X i(t )
a i ,i

donde t indica el orden de la iteración, para X(0) es la


aproximación ó estimación inicial. Un ejemplo para el
sistema anterior seria:

X1 - X2 + 0 X3 = 45
6 X1 + 30 X2 - 24 X3 = 210
0 X1 + -24 X2 + 36 X3 = -180

El nuevo sistema se convierte en:


X1 = X2 + 45
X2 = - (6/30) X1 + (24/30) X3 + (210/30)
X3 = (24/36) X2 -(180/36)

Para X1 =0; X2 =0; X3 =0;


X1 = 0 + 45 = 45
X2 = - (6/30) 0 + (24/30) 0 + (210/30) = 7
X3 = (24/36) 0 -(180/36) = -5

82
Ing. Sergio Velásquez
Análisis Numérico.

Para X1 =45; X2 =7; X3 =-5;


X1 = 7 + 45 = 52
X2 = - (6/30) 45 + (24/30) (-5) + (210/30) = -37/5
X3 = (24/36) 7 -(180/36) = -1/3

Para X1 =52; X2 =-37/5; X3 =-1/3;


X1 = -37/5 + 45 = 188/5
X2 = - (6/30) 52 + (24/30) (-1/3) + (210/30) = -37/5
X3 = (24/36) (-37/5) -(180/36) = -1/3

Y así sucesivamente hasta una cota de error o un máximo


de iteraciones.

Método de Gauss Seidel

Es parecido al método de Jacobi a diferencia que cada


valor encontrado se sustituye en la siguiente ecuación,
partiendo del sistema anterior, cada iteración está dada
por:

i 1 n
1
xi( k ) bi aij x (jk ) aij x (jk 1)

aii j 1 j i 1

El criterio de detención el que si en alguna norma, la


matriz de iteración M del esquema satisface ||M|| < 1,
entonces el método converge y el error en el paso (k+1)
puede estimarse mediante:
M
x(k 1)
x x (k 1)
x (k )
1 M

y, a su vez, la norma de la matriz de iteración ||M||


puede estimarse paso a paso mediante:

83
Ing. Sergio Velásquez
Análisis Numérico.

x( j 1)
x( j)
M máx
1 j k x ( j) x( j 1)

Ejemplo basado en el sistema anterior. El nuevo sistema


se convierte en:

X1 = X2 + 45
X2 = - (6/30) X1 + (24/30) X3 + (210/30)
X3 = (24/36) X2 -(180/36)

Para X1 =0; X2 =0; X3 =0;


X1 = 0 + 45 = 45
X2 = - (6/30) 45 + (24/30) 0 + (210/30) = -2
X3 = (24/36) (-2) -(180/36) = -19/3

Para X1 =45; X2 =-2; X3 =-19/3;


X1 = -2 + 45 = 43
X2 = - (6/30) 43 + (24/30) (-19/3) + (210/30) = -20/3
X3 = (24/36) (-20/3) -(180/36) = -85/9

Para X1 =43; X2 =-20/3; X3 =-85/9;


X1 = -20/3 + 45 = 115/3
X2 = - (6/30) (115/3) + (24/30) (-85/9) + (210/30) = -
74/9
X3 = (24/36) (-74/9) -(180/36) = -283/27

Y así sucesivamente hasta una cota de error o un máximo


de iteraciones.

DESCOMPOSICIÓN LU
El esquema de descomposición LU es una transformación
de una matriz A como el producto de dos matrices,
A = L U

84
Ing. Sergio Velásquez
Análisis Numérico.
Donde L es una matriz triangular inferior y U es una

a1.1 a1.2 a1.3 1 0 0 u1.1 u1.2 u1.3


a2.1 a2.2 a2.3 l2.1 1 0 0 u2.2 u2.3
a3.1 a3.2 a3.3 l3.1 l3.2 1 0 0 u3.3
matriz triangular superior. La descomposición LU para una
matriz de 3 x 3 se ilustra de la manera siguiente:

Conviene observar que los elementos de la diagonal de L


valen 1. Para evaluar Ui.j y Li.j en la ecuación anterior sin
pivoteo, primero multiplicamos el primer renglón de L por
cada columna de U y comparamos el resultado con el primer
renglón de A. Tenemos entonces que el primer renglón de U
es idéntico al de A:
u1.j = a1.j, j = 1 a 3

Multiplicamos la segunda y tercera fila de L por la


primera columna de U respectivamente, y lo comparamos con
el lado izquierdo para obtener
a2,1 = l2,1 u1,1, a3,1 = l3,1 u1,1

o en forma equivalente
l2,1 = a2,1/ u1,1, l3,1 = a3,1/ u1,1

Multiplicamos la segunda fila de L por la segunda y


tercera columnas de U y las comparamos con el lado
izquierdo para obtener
a2,2 = l2,1 u1,2 + u2,2 , a2,3 = l2,1 u1,3 + u2,3

o bien
u2,2 = u2,2 - l2,1 u1,2 , u2,3 = u2,3 - l2,1 u1,3

Multiplicamos la tercera fila de L por la segunda fila


de U y tenemos
a3,2 = l3,1 u1,2 + l3,2 u2,2

85
Ing. Sergio Velásquez
Análisis Numérico.

o, en forma equivalente,
l3,2 = [a3,2 - l3,1 u1,2]/ u2,2

Finalmente, l3,3 se obtiene multiplicando la ultima


columna de U por la última columna de L y lo igualamos a
a3,3 como sigue:
l3,1u1,3 + l3,2 u2,3 + u3,3 = a3,3

o bien
u3,3 = a3,3 - l3,1u1,3 - l3,2 u2,3
Ejemplo
% RESOLUCION ITERATIVA
% la resolución iterativa de ecuaciones lineales no es aplicable
% a todos los problemas, pero resulta de gran utilidad para
% sistemas cuyos numeros de incognitas es muy grande y la matriz
% de coeficiente esta despoblada.
% Existen tres metodos iterativos:
% 1) Metodo de Jacobi
% 2) Metodo de Gauss - Seidel
% 3) metodo de Sobre Relajacion Sucesiva (SOR)
% Consideremos una ecuacion lineal:
% a * x = y
% Donde:
% (a) es la matriz cuadrada de los coeficientes
% (x) es el vector de las incognitas
% (y) es el vector de los terminos independientes
% Todos los metodos requieren una estimacion inicial, la cual
% denotaremos con x(t), donde t = numero de iteracion
% se puede comenzar con el vector nulo, todos los valores
% iniciales de X(t=0) son cero.
% Una condicion suficiente para que la resolucion iterativa
% converja es:
% n
% |a(i,i)|>= sumatoria(|a(i,j)|), para todo i
% j=1,j~=i
%
% La solucion por el metodo de Jacobi se expresa:
% n
% x(i) = (y(i)-sumatoria(a(i,j)*x(j)))/a(i,i)
% j=1,j~=i
%
% La solucion por el metodo de Gauss - siedel se expresa:
%
% i-1 n
%x(i) =(y(i)-sumatoria(a(i,j)*x(j))-sumatoria(a(i,j)*x(j))/a(i,i)
% j=1 j=i+1
% La solucion por el metodo de SOR se expresa:
%
% i-1 n
% x(i) = w*(y(i)-sumatoria(a(i,j)*x(j))-
sumatoria(a(i,j)*x(j))/a(i,i)+(1-w)*x(i)

86
Ing. Sergio Velásquez
Análisis Numérico.
% j=1 j=i+1
%Donde(w)es un parametro de sobre relajacion que satisface la
expresion:
%
% 1 <= w < 2
%
% Como regla empirica se puede asignar un valor a (w) entre 1.2 y
1.7
% El siguiente ejemplo ilustra como se puede resolver un sistema
de
% ecuaciones lineales utilizando el metodo GAUSS - SEIDEL
% y luego para efectos de comparacion se aplican los metodos
% anteriormente explicados.
% El sistema de ecuaciones es el siguiente:
%% 4x1 = 12
% 5x2 + 19x3 = 0
% 14x3 = 15
%% Escribiendo la matriz, tendremos:
%% a =
% 4 0 0
% 0 5 19
% 0 0 14
%
% y =
% 12
% 0
% 15
%
% Solucion:
clc
close all
clear all

a=[4,0,0;0,5,19;0,0,14]
y=[12,0,15]'
x=zeros(1,3)';
for elem=1:50
error=0;
for i=1:3
s=0; xb=x(i);
for j=1:3
if i~=j,s=s+a(i,j)*x(j);end
end
x(i)=(y(i)-s)/a(i,i);
error=error+abs(x(i)-xb);
end
fprintf('elem. num. =%3.0f,error = %7.2e\n',elem,error)
if error/3<0.001,break;end
end
x
disp('solucion por la via tradicional')
disp('************************************************************
')
disp('Determinacion de las incognitas:')
disp('************************************************************
')
disp('')
disp('solucion tipo A')
disp('************************************************************
')
x=a\y;

87
Ing. Sergio Velásquez
Análisis Numérico.
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(x)
disp('************************************************************
')
disp('')
disp('solucion tipo B')
disp('************************************************************
')
z=y'/a';
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(z)
disp('************************************************************
')
disp('')
disp('solucion tipo C')
disp('************************************************************
')
x=inv(a)*y;
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(x)
disp('************************************************************
')
disp('')
disp('solucion tipo D')
disp('************************************************************
')
x=a^(-1)*y;
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(x)
disp('************************************************************
')
disp('')
disp('solucion tipo E')
disp('************************************************************
')
z=y'*inv(a');
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(z)

Ejemplo
Dado el siguiente circuito: Plantee el sistema de ecuaciones,
calcule la inversa y el determinante de la matriz A y resuelva el
sistema
10 1 20 V

I2
10

2 0 20

I1 5 A
50 20
I3
100 V

25 5

88
Ing. Sergio Velásquez
Análisis Numérico.

El sistema de ecuaciones resultante del análisis de las corrientes


de mallas es:

-1I1+0I2+1I3+0I4=5
-20I1+60I2-20I3=-120
95I1-40I2+45I3=100

Llevándolo al sistema matricial (AX=B):

A=[-1 0 1;-20 60 -20;95 -40 45]

A =
-1 0 1
-20 60 -20
95 -40 45

B=[0;-120;100]
B =
0
-120
100

La inversa de la matriz A es:

inver1(A)

ans =
-0.2794 0.0059 0.0088
0.1471 0.0206 0.0059
0.7206 0.0059 0.0088

El determinante de la matriz A es:

deter1(A)

ans =
-6800

Solución del Sistema:

jordan1(A,B)
ans =
0.1765 -1.8824 0.1765

Los valores de corrientes de mallas son:

I1=0.1765 A
I2=-1.8824 A
I3=0.1765 A

89
Ing. Sergio Velásquez
Análisis Numérico.

Integración

90
Ing. Sergio Velásquez
Análisis Numérico.
Fórmula de Trapecios

Figura 15. Trapecios

Es el esquema más simple.

Sea un intervalo [a,b] donde queremos integrar una


función f(x).

Podemos suponer, como aproximación burda, un


comportamiento lineal de f(x) en ese intervalo.

La integral queda entonces:

donde E es el error cometido por emplear una


interpolación lineal.

91
Ing. Sergio Velásquez
Análisis Numérico.

Figura 16. Interpolación lineal


Obviamente el error puede ser mayor si el intervalo es
amplio.

Para mejorar la aproximación podemos subdividir el


intervalo [a,b] y aplicar trapecios en cada uno de los
subintervalos.
De esta manera la fórmula extendida queda:

N es el número de intervalos, es decir que tenemos N+1


puntos donde la función es evaluada.
Ejemplo no. 1

x=[0 0.0982 0.1963 0.2945 0.3927 0.4909 0.5890 0.6872 0.7854


0.8836 0.9817 1.0799 1.1781 1.2763 1.3744 1.4726 1.5708 1.6690 1.7671
1.8653 1.9635 2.0617 2.1598 2.2580 2.3562 2.4544 2.5525 2.6507 2.7489
2.8471 2.9452 3.0434 3.1416];

y =[0 0.0980 0.1951 0.2903 0.3827 0.4714 0.5556 0.6344 0.7071


0.7730 0.8315 0.8819 0.9239 0.9569 0.9808 0.9952 1.0000 0.9952 0.9808
0.9569 0.9239 0.8819 0.8315 0.7730 0.7071 0.6344 0.5556 0.4714 0.3827
0.2903 0.1951 0.0980 0.0000];

n=length(x);
h=(x(np)-x(1))/n
i=h/2*(y(1)+y(n)+2*(sum(y)-y(1)-y(n)))

92
Ing. Sergio Velásquez
Análisis Numérico.

i =

1.9984

Fórmula de Simpson
En la fórmula de trapecios hicimos una interpolación
lineal para aproximar a la función en el intervalo [a,b].

Figura 17. Fórmula de Simpson

Si usamos un polinomio de segundo grado para aproximar


la función y luego integramos ese polinomio, tenemos la
regla simple 1/3 de Simpson

FÓRMULA 1/3 DE SIMPSON EXTENDIDA

Así como extendimos la fórmula de Trapecios para N


subintervalos uniformemente espaciados, también podemos
extender la fórmula 1/3 de Simpson. El único requisito que

93
Ing. Sergio Velásquez
Análisis Numérico.
debe cumplirse es que, como empleamos 3 puntos para
construir cada polinomio interpolante de grado 2, el número
de subintervalos h debe ser par

Figura 18. Simpson en un número par de intervalos


En la figura adjunta vemos un ejemplo de como se aplica
Simpson en un número par de intervalos (número impar de
puntos uniformemente espaciados)

que reordenando queda

Observamos que, salvo los valores funcionales de los


extremos (f(x0) y f(xn)), los f(xi) van multiplicados por 4
si i es impar o por 2 si i es par. Resulta muy fácil pues
escribir una fórmula general para la regla 1/3 de Simpson
compuesta

b (n / 2 ) 1 n/2
h
f ( x )dx f (a ) 2 f ( x 2 j ) 4 f ( x 2 j 1 ) f (b)
a
3 j 1 j 1

n=length(x);

94
Ing. Sergio Velásquez
Análisis Numérico.
h=(x(np)-x(1))/n;
sumap=0;
for i = 1: length(x)/2-1
sumap = sumap + y(2*i);
end
sumai=0;
for i = 1: length(x)/2
sumai = sumai + y(2*i-1);
end
I=h/3*(y(1)+2*sumap+4*sumai+y(n))

I =

1.9904

FÓRMULA 3/8 DE SIMPSON

La fórmula 1/3 de Simpson fue construida a partir de un


polinomio interpolante de grado 2. Podemos hacer lo mismo
pero partiendo esta vez de un polinomio de grado 3 usando 4
puntos. Asi llegamos a lo que se conoce como fórmula o
regla 3/8 de Simpson

donde x0=a < x1 < x2 < x3=b

Fórmula 3/8 de Simpson extendida

b
3h
f ( x )dx f (a) 3f ( x 1 ) 3f ( x 2 ) 2f ( x 3 ) 3f ( x 4 ) 3f ( x 5 ) 2f ( x 6 ) ........ f (b)
a
8

INTEGRACIÓN DE ROMBERG

Este esquema de integración en realidad corresponde a


una corrección a la regla o fórmula de Trapecios.
Supongamos que llamamos I1,1 al resultado de integrar
b a
por trapecios a una función con h1,1 e I2,1 al resultado
21
b a
de integrar usando h 2,1 en general la integral In,1 al
22

95
Ing. Sergio Velásquez
Análisis Numérico.
b a
resultado de integrar usando h n,1 de allí se forma la
22
matriz:
I1,1
I2,1
:
In,1

Luego se procede a calcular el término I2,2 = I2,1 +


(1/3)(I1,1 - I2,1 ), de esa forma se procede a calcular el
resto d los términos por la formula general
Ii,j = Ii,j-1 + (1/3)(Ii,j-1 – Ik-1,j-1 )
Formando la matriz:
I1,1
I2,1 I2,2
: I3,2 I3,3
In,1 In,2 In,3 In,n

En donde In,n Es el valor buscado de la integral.

Ejemplo
% intgra1
% ESTE PROGRAMA ILUSTRA COMO SE PUEDE INTEGRAR EN FORMA
% DEFINIDA, ENTRE DOS VALORES, UNA FUNCIÓN UTILIZANDO
% EL MÉTODO INTERACTIVO ADAPTADO DE LA REGLA DE SIMPSON.
% MEDIANTE LA INSTRUCCIÓN: QUAD
%
% Q = QUAD('nombre de la función',a,b)
%
% DONDE:
%
% Q = VALOR DE LA INTEGRAL ENTRE LOS LÍMITES DE INTEGRACIÓN
%
% 'nombre de la función' = sin, cos, abs, sinh, sqrt, etc
%
% a = LÍMITE INFERIOR DE INTEGRACIÓN
%
% b = LÍMITE SUPERIOR DE INTEGRACIÓN
%

%
% EJEMPLO
%
clc
close all
clear all

96
Ing. Sergio Velásquez
Análisis Numérico.
%
% EVALUAR LA INTEGRAL DEL SENO ENTRE 0 Y pi

a=0;
b=pi;
q=quad('sin',a,b); % RESPUESTA NUMÉRICA
%
% LA RESPUESTA ANLÍTICA A LA INTEGRAL DE LA FUNCIÓN ES :
%
% qa = -cos entre: a,b
%
% EVALUANDO LA RESPUESTA ANALÍTICA

qa=-cos(b)-(-cos(a));
disp(' ')
disp(' RESPUESTA')
disp('-----------------------------------------------------')

fprintf(' LÍMITE INFERIOR a = %f \n LÍMITE SUPERIOR b =


%f \n ',a,b);
disp('______________________________________')

fprintf('\n RESPUESTA NUMÉRICA = %f \n RESPUESTA ANALÍTICA =


%f \n ',q,qa);
disp('______________________________________')

function [y] = itgfun(x)


% funcion creada para el progranma intgra11.m
y=sec(x).*tan(x);

Ejemplo

% intgra10
% ESTE PROGRAMA ILUSTRA COMO SE PUEDE INTEGRAR EN FORMA
% DEFINIDA, ENTRE DOS VALORES, UNA FUNCIÓN UTILIZANDO
% EL MÉTODO INTERACTIVO ADAPTADO DE LA REGLA DE LONGITUD 8
% DE NEWTON - COTES
% MEDIANTE LA INSTRUCCIÓN: QUAD8
%
% Q = QUAD8('nombre de la función',a,b)
%
% DONDE:
%
% Q = VALOR DE LA INTEGRAL ENTRE LOS LÍMITES DE INTEGRACIÓN
%
% 'nombre de la función' = sin, cos, abs, sinh, sqrt, etc
%
% a = LÍMITE INFERIOR DE INTEGRACIÓN
%
% b = LÍMITE SUPERIOR DE INTEGRACIÓN
%
clc
close all
clear all
close all hidden
%
% EJEMPLO : QUAD8 ES MEJOR QUE QUAD PARA EL MANEJO DE
SINGULARIDADES

97
Ing. Sergio Velásquez
Análisis Numérico.
% PERO AMBOS MÉTODOS NO MANEJAN BIEN LAS FUNCIONES
SINGULARES.
% EN ESTE EJEMPLO VEREMOS EL USO DE LOS ARGUMENTOS
% TOL Y TRACE en quad8
%
% tol ES LA TOLERANCIA CON QUE MATLAB EJECUTA LAS ITERACIONES.
% LAS ITERACIOENES SE REALIZAN MIENTRAS SE CUMPLA LO SIGUIENTE,
% HASTA UN LIMITE DE 10 ITERACIONES:
%
% ERROR = (CÁLCULO PREVIO - CÁLCULO ACTUAL)/CÁLCULO PREVIO <
TOL
%
% POR DEFECTO tol = 1.0 E-3
%
% TRACE ES UN PARÁMETRO QUE CUANDO ES DIFERENTE DE CERO MUESTRA
% UNA GRÁFICA CON EL PROGRESO DE LA INTEGRACIÓN
%
% EN ESTE EJEMPLO UTILIZAREMOS UNA TOLERANCIA DE tol = 1.e-5
%
% EVALUAR LA INTEGRAL DE LA SIGUIENTE FUNCIÓN =
%
% SQRT(x)
%
% ENTRE LOS SIGUIENTES LÍMITES:
%
% LÍMITE INFERIOR a = 0 EN ESTE RANGO LA FUNCIÓN ES
% DISCONTINUA ( SINGULAR )
% LÍMITE SUPERIOR b = 1
%

a=0;
b=1;
tol=1.e-2;
q=quad('sqrt',a,b,tol,1); % RESPUESTA NUMÉRICA

q8=quad8('sqrt',a,b,tol,1); % RESPUESTA NUMÉRICA

% LA RESPUESTA ANALÍTICA A LA INTEGRAL DE LA FUNCIÓN ES :


%
% qa = (2/3)*x^(3/2) entre: a,b
%
% EVALUANDO LA RESPUESTA ANALÍTICA

qa=(2/3)*b^(3/2)-(2/3)*a^(3/2);
disp(' ')
disp(' RESPUESTA')
disp('-----------------------------------------------------')
fprintf(' LÍMITE INFERIOR a = %f \n LÍMITE SUPERIOR b =
%f \n ',a,b);
disp('______________________________')

fprintf('\n RESPUESTA NUMÉRICA ( QUAD ) = %f \n RESPUESTA


ANALÍTICA = %f \n ',q,qa);
disp('______________________________')

fprintf('\n RESPUESTA NUMÉRICA ( QUAD8 ) = %f \n RESPUESTA


ANALÍTICA = %f \n ',q8,qa);
disp('______________________________')

98
Ing. Sergio Velásquez
Análisis Numérico.
function yf=itgfun3(x)
% funcion que se utiliza en el programa intgra15.m
xe=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
ye=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.36,11.12];
n=length(xe)-5;
p=polyfit(xe,ye,n);

a6=p(1,1);
a5=p(1,2);
a4=p(1,3);
a3=p(1,4);
a2=p(1,5);
a1=p(1,6);
a0=p(1,7);

yf=a6*x.^6+a5*x.^5+a4*x.^4+a3*x.^3+a2*x.^2+a1*x+a0;

99
Ing. Sergio Velásquez
Análisis Numérico.

Solución Numérica de
Ecuaciones Diferenciales
Ordinarias

100
Ing. Sergio Velásquez
Análisis Numérico.
Método de Euler

Este método rara vez se usa en la práctica, debido a


que es el menos preciso de los métodos que veremos. Sin
embargo su derivación es tan simple que permite ilustrar
las técnicas que normalmente se utilizan en la construcción
de métodos más avanzados.

Pretendemos resolver

dy
f ( t, y ) ,a t b, con y(a) =
dt

A través de la solución numérica lo que obtendremos es


una aproximación a la función y para algunos puntos
pertenecientes al intervalo [a, b].

Una vez que tenemos estos puntos, podemos encontrar el


valor aproximado de la solución en otros puntos, empleando
alguna de las técnicas de interpolación que ya vimos.

Supondremos además que los puntos que calculamos están


uniformemente distribuidos en el intervalo [a, b], es decir
b a
ti= a + ih i = 0, 1, 2, .... , N donde h
N
es el paso o tamaño del intervalo.

Se Puede desarrollar la función y(t) en una serie de


Taylor alrededor del punto ti de manera de poder encontrar
y(t i+1)

El método de Euler consiste en truncar esta serie al


primer orden, y recordando que , podemos
generar una sucesión de valores aproximados

101
Ing. Sergio Velásquez
Análisis Numérico.
Métodos de Taylor de orden superior

El método de Euler surge de truncar la serie de Taylor


al primer orden. Si truncamos al orden n entonces tenemos
el método de Taylor de orden n

donde

Como se pude fácilmente deducir, el error de


truncamiento local en el método de Taylor de orden n es
O(hn)

Estos métodos, si bien tienen la propiedad deseable de


presentar un error de truncamiento local de orden grande,
requieren del cálculo de las derivadas de f(t, y). Por ello
estos métodos se usan poco en la práctica.

Métodos de Runge - Kutta

Consideremos nuevamente la ecuación diferencial


ordinaria

Para calcular yi+1 en ti+1 = ti + h, dado un valor de yi,


podemos integrar la ecuación anterior en el intervalo [t i

, t i+1]

102
Ing. Sergio Velásquez
Análisis Numérico.
Los diferentes métodos de Runge - Kutta surgen de las
diferentes aproximaciones tomadas para calcular la integral
de f(y, t)

MÉTODO DE RUNGE - KUTTA DE ORDEN 2

Obsérvese que en cada punto de la sucesión {wi}, se


emplea la derivada de y(t) del punto anterior. Si aplicamos
la regla del trapecio para integrar la sucesión
de valores aproximados a la solución real es ahora:

Este método es conocido con el nombre de "Método de


Euler Modificado".

El problema con este método es que del lado derecho


aparece que es lo que queremos encontrar. Si f(t, y)
es lineal en y entonces podemos despejar .

Si aproximamos a mediante el método de


Euler, entonces tenemos el Método de Runge - Kutta de orden
2

Este método suele aparecer en los libros bajo lo que se


conoce como notación canónica, que es la siguiente

103
Ing. Sergio Velásquez
Análisis Numérico.

MÉTODO DE RUNGE - KUTTA DE ORDEN 4

Este es el método más empleado en la práctica. Surge de


aproximar la integral de f(yn, tn) por la regla 1/3 de
Simpson

Dependiendo del número de pasos intermedios empleados


para calcular la derivada, es que surgen los métodos de
Runge - Kutta de tercer y cuarto orden. Este último, en
notación canónica se escribe como

Este método coincide con un desarrollo de Taylor de la


solución exacta hasta el cuarto orden, por lo que el error
por truncamiento local es O(h5).

Métodos Multipaso

Los métodos vistos hasta el momento son métodos de un


paso, ya que para evaluar un punto usan solo la información
del punto anterior. Los métodos que usan más de un punto
anterior para determinar la aproximación en el punto
siguiente se conocen como métodos multipaso.

104
Ing. Sergio Velásquez
Análisis Numérico.
En términos generales podemos definir a un método
multipaso como aquel que para encontrar una aproximación
yi+1 a la solución exacta en el punto ti+1, usa m puntos
anteriores en una ecuación del tipo

dados los valores iniciales


y

Cuando bm = 0, el método se dice que explícito o


abierto y la aproximación yi+1 se determina explícitamente a
partir de los puntos anteriores. Si bm 0, el método se
llama implícito o cerrado, ya que yi+1 aparece a ambos lados
de la ecuación.

Como vimos anteriormente, la resolución numérica de la


EDO pasa por encontrar una solución aproximada a la
integral de f(y, t) de la expresión siguiente

Como no podemos integrar f(y(t), t) sin conocer y(t),


vimos en los métodos de Runge - Kutta como podíamos
aproximar esta integral mediante la regla de trapecio o la
regla de Simpson. La alternativa que vamos a plantear ahora
pasa por integrar un polinomio interpolante, P(t),
determinado por los puntos por
lo que la integral queda

105
Ing. Sergio Velásquez
Análisis Numérico.
Si tomamos un polinomio de Newton con diferencias hacia
atrás, tenemos

Si hacemos el cambio de variable t = ti + sh, dt = hds,


tenemos

donde

En la tabla siguiente se dan los valores de Ik para


diferentes valores de k
k 0 1 2 3 4 5

Ik 1 1/2 5/12 3/8 251/720 95/288

Como ejemplo presentaremos la deducción de la técnica


explícita de Adams - Bashforth de tres pasos. Considerando
m = 3, la fórmula de la integral queda

que requiere de los valores iniciales

Como generalmente solo se dispone de una única


condición inicial, y0 = , en estos métodos necesitamos
generar los m - 1 valores restantes recurriendo a algún

106
Ing. Sergio Velásquez
Análisis Numérico.
otro método. Usualmente se arranca con un método de un solo
paso (Runge - Kutta de cuarto orden, por ejemplo), y una
vez generados los m - 1 valores iniciales que faltaban, se
sigue con el método multipaso.
De la misma manera se puede deducir el método de Adams
- Bashforth de cuatro pasos

En el caso de los métodos implícitos, se incluye al


punto como un nodo de interpolación
adicional en el cálculo aproximado de la integral de f(y,
t). A continuación listamos los métodos más comunes, cuya
deducción es similar a la expuesta anteriormente para los
métodos explícitos:

MÉTODO DE ADAMS - MOULTON DE DOS PASOS:

MÉTODO DE ADAMS - MOULTON DE TRES PASOS

Se puede demostrar que un método multipaso explícitos


de orden m tienen un error por truncamiento local del mismo
orden que un método implícito de orden (m - 1).
Además, los métodos implícitos son más estables (es
decir, el error acumulado crece más lentamente) que los

107
Ing. Sergio Velásquez
Análisis Numérico.
métodos explícitos. Sin embargo presentan la desventaja de
tener que llevar el método a una representación explícita
para yi+1 (ya que aparece en el término derecho).

En la práctica los métodos implícitos no se usan solos,


sino combinados con un método explícito, de manera de
mejorar la aproximación obtenida con este último. Esta
combinación de una técnica explícita con una implícita se
conoce con el nombre de Método Predictor - Corrector

MÉTODO PREDICTOR- CORRECTOR DE ADAMS DE CUATRO PASOS

El método Predictor - corrector consiste pues en


encontrar una primera aproximación a yi+1 (que llamaremos
y(0)i+1), con la fórmula predictora, y luego mejoramos esa
aproximación con la fórmula implícita correctora,
obteniendo y(1)i+1. A su vez esta fórmula correctora se puede
aplicar en forma iterativa tantas veces sea necesario hasta
llegar a convergencia en yi+1.

Valores iniciales
, y3 = 3

PREDICTOR (ADAMS - BASHFORTH DE CUATRO PASOS)

CORRECTOR (ADAMS - MOULTON DE TRES PASOS)

Las ventajas de los métodos Predictor - corrector


frente a los métodos de un solo paso como Runge - Kutta son
los siguientes:
Los métodos multipaso son más estables (el error
acumulado crece más lentamente) que en los métodos de un

108
Ing. Sergio Velásquez
Análisis Numérico.
solo paso, por lo que son mejores cuando el número de
puntos que hay que evaluar es grande.
En los métodos multipaso se aprovechan cálculos
anteriores de f(y, t), solo hay que evaluar f(yi, ti) en
cada iteración. En cambio en Runge - Kutta, por ejemplo,
hay que realizar varias evaluaciones de f(y, t) para
calcular los ki en cada iteración.
La desventaja que presentan es que deben inicializarse
recurriendo a algún método de un solo paso, con el que se
generan los primeros puntos.

Ecuaciones Diferenciales de Orden Superior

Hasta ahora solo vimos métodos que nos permiten


resolver EDO de primer orden. Para poder resolver
numéricamente EDO de orden superior tenemos que transformar
nuestra ecuación en un sistema de ecuaciones diferenciales
de primer orden, y luego resolver este sistema de
ecuaciones simultáneas empleando alguno de los métodos ya
vistos.

Plantearemos el caso general de una EDO de orden m y


aplicaremos para su resolución el método de Runge Kutta de
cuarto orden.

Sea el problema

sujeta a las condiciones iniciales

Se puede transformar este problema en un sistema de m


ecuaciones diferenciales

109
Ing. Sergio Velásquez
Análisis Numérico.

RESOLUCIÓN DE SISTEMAS DE ECUACIONES DIFERENCIALES


ORDINARIAS

Sea el siguiente sistema de m ecuaciones diferenciales


de orden 1

en el intervalo sujeta a las condiciones

Usaremos la notación wi,j para denotar la i - ésima


solución ui(tj) para el j - ésimo punto de la red tj. Por lo
tanto las condiciones iniciales pasan a ser

Supongamos que tenemos una aproximación a las


soluciones para tj,

Para calcular una aproximación a la solución en tj+1 ,


debemos aplicar Runge - Kutta simultáneamente a las m
ecuaciones:

110
Ing. Sergio Velásquez
Análisis Numérico.

y finalmente

Podemos reescribir estas ecuaciones usando una notación


vectorial

Ejemplo

% ESTE PROGRAMA ILUSTRA COMO SE PUEDE RESOLVER


% UNA ECUACIÓN DIFERENCIAL UTILIZANDO LA INSTRUCCIÓN:
% [t,y] = ode45('función',[t_inicial,t_final],y_inicial,options)
% ode45 resuelve una ecuación diferencial ordinaria utilizando
% el método de Runge-Kutta de cuarto y quinto orden
% Donde:
% VARIABLES DE RETORNO:
% t = variable de integración (vector columna)
% y = resultado de integración (vector columna)
% VARIABLES DE ENTRADAS:
% función = nombre de la función almacenada en MATLAB
% t_inicial = valor de la variable (t) donde inicia la integración
% t_final = valor de la variable (t) donde finaliza la integración
% y_inicial = valor inicial de la función ( vector columna )
% options = para establecer parámetros como son:
% la tolerancia (error deseado para la iteración),
% por defecto: tol = 1.e-3
% y el estatus de la integración
% En este ejemplo se resuelve la siguiente ecuación diferencial:

111
Ing. Sergio Velásquez
Análisis Numérico.
% dy/dx = 3x^2
% La ecuación diferencial está definida en la función (odefun1.m),
% la cual se encuentra almacenada en la librería de MATLAB
clc
close all
clear all

% SOLUCIÓN MATLAB
[x,y]=ode45('odefun1',[2,4],0.5);
% NOTE QUE: y_inicial = 0.5 CUANDO t_inicial = 2.0
% SOLUCIÓN ANALÍTICA
% para comparar la solución numérica con la solución analítica
% tenemos la solución analítica de la ecuación diferencial
% la cual es la siguiente:
% ya = x.^3 - 7.5
% Evaluación de la solución analítica
y_analitica = x.^3 - 7.5;
plot(x,y,'ro',x,y,'r-',x,y_analitica,'*') % Gráfica simultanea de
la solución
% MATLAB y la solución analítica
legend('SOLUCIÓN MATLAB','SOLUCIÓN MATLAB','SOLUCIÓN ANÁLITICA');
xlabel('VARIABLE x')
ylabel('VARIABLES (y) y (y analitica)')
clc
disp( ' ')
disp( 'A CONTINUACIÓN SE MUESTRA LA FUNCIÓN "odefun1" ')
disp( 'LA CUAL CONTIENE A LA ECUACIÓN DIFERENCIAL A SER INTEGRADA.
')
type odefun1

function dy= odefun1(x,y);


dy=3*x^2;
% LA ECUACIÓN DIFERENCIAL ES:
% dy/dx = 3*x^2

112

Anda mungkin juga menyukai