clases
Short Description
Download clases...
Description
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
generalmente
y
teniendo
aleatorio,
su
en
cuenta
tratamiento
su
carácter
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
programador
despreciable
cometa
uno
de
la
probabilidad
estos
de
errores
que
el
(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
sustitución
de
aproximación.
Generalmente
está
causado
un infinito (sumatorio
o
(diferenciación)
una
por
por
integración)
la o
aproximación
un infinitesimal finita.
Algunos
ejemplos son: -El Seno x)
cálculo
de
empleando
una
función
elemental
sólo n términos
de
los
(por
ejemplo,
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
Obviamente,
estamos
para
obtener
interesados
en
un
proceso
estimar,
o
finito. 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 aproximado x.
Para
y hemos de conformarnos con un valor estimar
la
magnitud
de
este
error
necesitamos dos definiciones básicas: Error absoluto de x: ( )=
Ec. 1.
Error relativo de x: ( )=
( )
( )=
( )
;
(
0)
Ec. 2.
0)
Ec. 3.
En la práctica, se emplea la expresión: ;
(
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.
| ( )|
( )
Ec. 5.
o bien:
De acuerdo con este formalismo, tenemos que un número se representará del siguiente modo: =
±
= (1 ±
( )
Ec. 6.
( ))
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 10 2
=
Ejemplo 1:
Ec. 8.
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
= |35.47846
35.4785| = 4.0 10
1 10 2
En el segundo caso, la aproximación correcta es: = |35.47846
y no la siguiente:
= |35.47846
(3) = 35.478
35.478| = 4.6 10 (3) = 35.478
35.479| = 5.4 10
1 10 2 1 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
significativas
de es
obtener
el
número
mediante truncamiento,
de en
cifras 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: = |35.47846
(4) = 35.4784 35.4784| = 6.0 10
= |35.47846
(3) = 35.478 35.478| = 4.6 10
1 10 1 10
Propagación de errores Cuando se resuelve un problema matemático por métodos numéricos
y
aunque
exactamente,
las
obtenemos
operaciones una
se
aproximación
lleven
a
cabo
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)
) :
( )+ ( )+
2)
( )
( )+
2
Cuando
( )+
el
problema
( 2)
Ec. 10.
( 2)
Ec. 11.
( 2)
Ec. 13.
( 2)
consiste
Ec. 12.
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
(
,…..
,
aproximada de propagación del error máxima ( )=
(
, 2, … . .
,
)
)),
la
fórmula
es:
( )
Ec. 15.
Ejemplo 3:
Determinar
el
error
máximo
= 2.0 ± 0.1
cálculo y = x1 x22 para
cometido
y
en
el
= 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: Ejemplo
4:
lineales:
en donde
Sea
el
= 18 ± 3 siguiente +2
sistema
de
ecuaciones
=5
= 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
)(
(2
Resolveremos
5 )
)
ahora
Ec. 16.
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: ( ) = 0.002 ( ) ( )=
= 1000 1 = =1
( ( ( ( (
=0 ) = 10 = (10 ) =( 5 = (2 ) =1 50 =
50
(
) ) ) )
( )
( )=2 ( ) ( ) ( )=2 ( ) ( ) ( )+5 ( ) = 7 ( ) 2 ( ) + 2 ( ) + 4 ( ) + 4 ( ) = 12 ( ) ( ) = 80 ( ) ( ) ) ( ) ( ) )= + = 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:
(
) = (|
+ 13 +
| + 13 +
36
36
)
( )
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 o bytes (grupos
del de
término
ocho bits).
inglés Binary Prácticamente
Digit)
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 denominado
es
almacenado:
'entero')
o
en
en
formato
punto
fijo
(también
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
(generalmente con signo).
que
se
puede
representar
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
expresarse
decimal,
mediante
la
cualquier
número
real
denominada notación
puede
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:
En
general,
representa
en
732.5051 = 0.7325051 10 0.005612 = 0.5612 10
un
número
notación
real x distinto
científica
de
cero,
normalizada
en
se la
forma: = ± × 10
en
Ec. 17.
donde r es 1 y n es
un
un entero
número (positivo,
tal negativo
que 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 2
| |
Ec. 19.
1
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
consideraremos
un
número). Para
ilustrar
este
punto,
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. flotante
Esta
se
forma
conoce
de
con
almacenar el
nombre
un
número
de técnica
en
punto
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
el MARC-32.
bits,
entonces
es
un número
de
máquina en
La restricción de que |m| no requiera más de 7
bits significa que: | | Ya
que
2
(1111111) = 2
10 ,
1 = 127
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
mediante
más
de
10 . Por tanto, los números expresados 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 = 2
0
| |
0
| |
0000000 0000000000000000000000000 | |
| |
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. los
números
26.32, 1234 × 10
y 12542.29301
Represente 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 ) = 1.3 × 10
) = 3 × 10 ) = 1.2 × 10
En cuanto a los otros dos números, obtenemos: = 0 0000000000.00000000000001000; ( ) = 1.1 × 10 = 0 01110100 10000001011001001110111; ( ) = 1.7 × 10 12542.29301 = 0 011000011111110.0100101100000010; ( ) = 9 × 10 = 0 1000111011000011111110010010110 ; ( ) = 3 × 10 1.234 × 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 hay 2
ejemplo, = 16777216
entre 2
números,
números sucesivos es de sólo
De
este
hecho
se
= 1048576
pero
el
y
2
espaciado
= 2097152
entre
dos
.
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
comparar
la
diferencia
relativa
a
números.
En
la
Figura
1
se
siempre la
representa
preferible
magnitud
de
gráficamente
los 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: =(
en donde cada es
…
…) ×2
es 0 ó 1 y el bit principal
= 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 + )
Ejemplo número x =
6:
¿Cómo
2/3?
2
se
¿Cuáles
expresa son
máquina x' y x'' próximos en el
en
los
binario números
el de
MARC-32?
El número 2/3 en binario se expresa como: 2 3
= (0. 10)
Los dos números de máquina próximos, cada uno con 24 bits, son:
en
donde x'
se
= (0.101010 … 1010) = (0.101010 … 1011)
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 0 2
1+
1+
1 4 1 4
en donde, de acuerdo con la ecuación (22), tenemos:
Por
tanto,
la
cota
2| |
del
2
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 4
2
1 2
/2
/2
1 2
/2
1 > 2
1 4
/2
1 4
en donde, de acuerdo con la ecuación de | |
2| |
Es decir, la cota máxima
, tenemos:
2
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:
En
conclusión,
elementales
en
en
punto
| |
2| |
todas
2
las
flotante,
operaciones el
error
aritméticas
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 con
el
caso
aleatoriamente
en
que
los
distribuidos,
errores por
lo
(que coincide
de
redondeo
que
se
están
produce
una
crecer
muy
cancelación parcial).
Desafortunadamente,
este
error
puede
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 existir
circunstancias operaciones
especialmente
que
incremente
. desfavorables
pueden
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
problemas
comentados
matemáticas fomentan este fenómeno. Veamos
con
un
ejemplo
los
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: q=
1 b + signo( ) 2
4
Ec. 25.
y las dos raíces a partir de valor de q como: x =
q c y x = a q
Ec. 26.
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:
Solución:
= 1.0; = 1.343 × 10 ; 3.764 × 10
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 x
0.13430 × 10 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,
polinomio
de
hay
solo
primer
una
orden)
línea que
recta
conecta
(es dos
decir
un
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 Figura 2.
b x 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
perteneciente
los al
valores
de
intervalo
f(x)
[a,
para
b]
es
cualquier
considerar
x 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
X
X X
X
…
.
Y 1 a Y2 1 a2 . 1 . = . Yn 1 an
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 x(2,:)=[T(2)^3 x(3,:)=[T(3)^3 x(4,:)=[T(4)^3
T(1)^2 T(2)^2 T(3)^2 T(4)^2
T(1)^1 T(2)^1 T(3)^1 T(4)^1
T(1)^0]; T(2)^0]; T(3)^0]; 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
Como
el
+ a X
polinomio
+ a X
no
puede
+ … … . . +a
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=
Ec. 31.
r
El mínimo de R ocurre cuando las derivadas parciales R respecto aj son cero: R =0 a
Ec. 32.
Expresado de otra forma: x
a =
para
x
Ec. 33.
y
k 0 1, 2, 3, .... n+1.
Expresado en forma matricial:
n
n
n
x i2(n
x i2(n
1) i 1
i 1 n
x i2( n
x ni
1) 1
x ni i 1
i 1
:
:
n
n
x ni i 1
1
x i0 i 1
x ni 1y i
a1
i 1 n
1) 1
n
1
2
i 1 n
a2
x ni 2 y i
: an
i 1
1
n
: yi
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
X X En
donde
representado
X
X
(X'X)a con
las
… =
. X'y
Y 1 a a Y2 1 2 . 1 . = . Yn 1 an que
sumatorias
y
es
que
el
mismo
se
sistema
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: h (x) =
(x (x
x )(x x )(x
x ) … (x x ) … (x
x ) = x )
,
(x
(x
x)
Ec. 35.
x)
Por ejemplo para una tabla de 4 pares de datos el grado del polinomio será 3, generándose la siguiente ecuación: g(x)
(x - x 2 )(x - x 3 )(x - x 4 ) y1 (x 1 - x 2 )(x 1 - x 3 )(x 1 - x 4 )
(x - x 1 )(x - x 3 )(x - x 4 ) y2 (x 2 - x 1 )(x 2 - x 3 )(x1 - x 4 )
(x - x 1 )(x - x 2 )(x - x 4 ) y3 (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 interpolación
de
Newton
de con
datos
la
fórmula
diferencias
para
dividas
la
hacia
delante genera el siguiente polinomio de grado n - 1: (x) = ( ) +
P
a,
(x
Ec. 36.
x)
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 + a (x x )(x x )(x
x )a (x x )
x )
Ec. 37.
37
Ing. Sergio Velásquez Análisis Numérico. La
coeficientes
diferencias
a(i,j)
divididas
que
pertenecen se
construye
a
la
de
la
matriz
de
siguiente
manera:
A
f(x2 ) x2 f(x3 ) x3 f (x 4 ) x4
f ( x1 ) x1 f(x2 ) x2 f (x 3 ) x3
0
0
a 21 a11 x 3 x1 a 31 a 21 x4 x2
0 a 32 a 22 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)*(TxT(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 ci = (yi
+1
+1
quedara:
- 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. h1 2(h1 h2 ) 0
h2
0
0
0
0
0
0
h3
0
0
0
S3
h2 2(h2
h3 )
h3
0
El
0
S1 S2
2(h3
0
sistema
h4 )
0
h4 : : hn 2 2(hn
matricial
y3 y4
S4 :
6
y3
y5
y1 h1
y3
y2 h2
y4
y4
h4
y3 h3
:
hn 1 ) hn 1 Sn 1 Sn
anterior
y2
h3
: 2
y2 h2
yn
sólo
yn 1 hn 1
yn 1 yn hn 2
hay
n
2
–
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 2(h1 h2 ) h2 0
h2
0
0
0
0
2(h2 h3 ) h3 0 h3 2(h3 h4 ) h4
0 0
0 0
:
: : 0
0
0
0
S2 S3 S4
hn
2
2(hn
2
: hn 1 ) Sn 1
y2
y2
y3
y3
h2 y4 6
h1
h3 y5
y1 y2 h2
y4
y4
h4
y3 h3
: yn
yn 1 hn 1
yn 1 yn hn 2
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.0099 1.0178 0.0087 1.6882 0.0253 1.9906 0.0364 1.8591 0.0396 1.3223 0.0342 0.4973 0.0213 -0.4362 0.0037 -1.2745 0.0146 -1.8351 0.0298 -1.9956 0.0385 -1.7211 0.0388 -1.0714 0.0306 -0.1882 0.0158];
0.9551
1.3189
1.1203
0.6148
0.1792
1.5842
1.5552
1.0463
0.4373
0.0674
-
1.8680
1.4524
0.7442
0.1644
-0.0591
-
1.7445
1.0330
0.2799
-0.1442
-0.1728
-
1.2408
0.3885
-0.2455
-0.4215
-0.2487
-
0.4666
-0.3408
-0.7173
-0.6069
-0.2705
-
-0.4093
-0.9957
-1.0328
-0.6600
-0.2333
-
-1.1960
-1.4336
-1.1231
-0.5692
-0.1452
-
-1.7220
-1.5590
-0.9686
-0.3543
-0.0255
-1.8726
-1.3446
-0.6030
-0.0622
0.0998
-1.6150
-0.8370
-0.1059
0.2434
0.2033
-1.0054
-0.1470
0.4143
0.4960
0.2625
-0.1766
0.5750
0.8441
0.6405
0.2645
0.6907
1.1717
1.0900
0.6453
0.2088
% 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
6
4
2
Volt en volts
0
-2
-4
-6
-8
-10
0
0.5
1
1.5
2
Tempo segs
Figura 3.
2.5 -3
x 10
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: 1 + 64
( )=
f(x)
1 0.8 0.6 0.4 0.2
f(3,5) = -0.0473
0 2.5
3
-0.2
f(4,5) = 0.0369
4
3.5
4.5
5
5.5
6
x
-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(5) 1
)
f(x) 10 9 8
f (7) = 1
7 6 5 4 3 2 1 0
Figura 6.
Figura 5. 0
2
4
6
8
10
12
x
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.
c a
b a f (a) f (b) f (a)
f(b)
f(x)
f(x)
x f(c)
a
c
p
f(b) f(a) y f(a) (c a) f(a) b a Figura 7.
b
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 ) Un
inconveniente
de
este
0
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(b)
f(x)
f(x)
c1 a
x
c2 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
convergencia
extremos del
fijos
proceso
que
hacen
iterativo.
Por
más
lenta
ejemplo,
la
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(b)
f(x)
f(x)
c1
f(b)/2
c2
a
x
p
b
f(a) Figura 9.
La
elección guiada del
Regula Falsi Modificada
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(b)
f(x)
f(x)
X0
X1
X2
x
A
f(x) f(b) X2
X0
x
X1
B 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 encuentra
este a
método,
partir
de
la
aproximación
la
determinación
a
una del
raíz
se
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 Si No Hacer: Hacer: Hacer: ca = ca + 1 Hacer: cb = 0 Si ca > 1 entonces Fin de si Fin de Mientras Mostrar: c Fin
Hacer: ya = ya/2 ya = yc a = c
Hacer: yb = yb/2
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) p X3
x
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:
Tan
F' ( x 1 )
xn general
xn
1
f ( x1 ) x1 x 2
x2 de
aquí
que
x1
F( x 1 ) F' ( x 1 )
en
forma
F( x n 1 ) 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 cero
en
de f y
serie
de
Taylor.
sea x una
Efectivamente,
aproximación
a r tal
sea r un
que r=x+h.
Si f'' existe y es continua, por el teorema de Taylor tenemos: Ec. 39.
0 = f(r) = f(x+h) = f(x) + hf'(x) + O(h2)
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): Ec. 40.
0 = f(x) + hf'(x)
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)
Figura 12.
x
X1
X2
X0
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: Ec. 42.
y - f(x0) = f'(x0)(x-x0) 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)
x
X1 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
xn
1
f(xn 1) *
xn 1 xn 2 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) 2))/(f(x(it-1)) - f(x(it-2))))
-
x(it-
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 G(x ) 1 )
Y=G(x)
G(x0 )
x X1
X2 Figura 14.
X3
x
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.0099 1.0178 0.0087 1.6882 0.0253 1.9906 0.0364 1.8591 0.0396 1.3223 0.0342 0.4973 0.0213 -0.4362 0.0037
0.9551
1.3189
1.1203
0.6148
0.1792
1.5842
1.5552
1.0463
0.4373
0.0674
-
1.8680
1.4524
0.7442
0.1644
-0.0591
-
1.7445
1.0330
0.2799
-0.1442
-0.1728
-
1.2408
0.3885
-0.2455
-0.4215
-0.2487
-
0.4666
-0.3408
-0.7173
-0.6069
-0.2705
-
-0.4093
-0.9957
-1.0328
-0.6600
-0.2333
-
-1.1960
-1.4336
-1.1231
-0.5692
-0.1452
-
63
Ing. Sergio Velásquez Análisis Numérico. -1.2745
-1.7220
-1.5590
-0.9686
-0.3543
-0.0255
-1.8351
-1.8726
-1.3446
-0.6030
-0.0622
0.0998
-1.9956
-1.6150
-0.8370
-0.1059
0.2434
0.2033
-1.7211
-1.0054
-0.1470
0.4143
0.4960
0.2625
-1.0714
-0.1766
0.5750
0.8441
0.6405
0.2645
0.0146 0.0298 0.0385 0.0388 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
A
están
a 11 a 12 ···· a 21 a 22 ···· : : : : a m1 a m 2 ····
definidos, respectivamente, por
a 1n a 2n : : a mn
x1 x2
X
: xm
y1 Y
y2 : ym
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 posee
tres
soluciones
es distinto de cero; el sistema 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 Las
(solución trivial) o infinitas soluciones.
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:
AY
En
la
matriz
a 11 a12 ···· a 21 a 22 ···· : : : : a m1 a m 2 ····
aumentada
se
a 1n a 2n : : a mn
y1 y2 : : ym
pueden
realizar
las
siguientes operaciones entre filas: Sustitución
de
una
ecuación
multiplicada por un escalar:
* Fi
por
la
misma
ecuación
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
redondeado,
el
entre
un
resultado
numero
puede
pequeño
contener
un
que
sé
error
a 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
-1
0
0
1
-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
0
1
-1
0
45
1
0
0
0
15
0
0
-24
-24
210
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
0
1
0 3/2 0
30 -1 15/2
0
-24 0 -6
-24
210 45
135/2
36
180
Se intercambia la fila dos con la tres (F2
F3)
>>AUX=AY(2,:); >>AY(2,:)=AY(3,:); >>AY(3,:)=AUX
-4 0
6 3/2
30 15/2
0
1
0
0
-24
210
-6 -1
-24
135/2 0
36
45 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 0
6 3/2
30 15/2
0
0
0
0
-24 -6
-6 -24
210 135/2 4
36
0 180
Se intercambia la fila tres con la cuatro (F3
F4)
>>AUX=AY(3,:); >>AY(3,:)=AY(4,:); >>AY(4,:)=AUX
-4 0
6 3/2
30 15/2
0
0
0
0
-24 -6
-24 -6
210 135/2
36
180 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 0
6 3/2
30
-24
15/2
0
0
0
0
-6
210
-24
135/2
36 0
180 -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
A
1 0 ···· 0 1 ···· : : 1 : : 0 0 ····
0 x1 0 x2 : : : : 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 matrices
de
Gauss-Jordan
aplicado
a
la
inversión
de
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
intercambiando la fila uno con la tres (F1
la
fila
tres,
F3).
>>AUX=AY(1,:); >>AY(1,:)=AY(3,:); >>AY(3,:)=AUX;
-4
6
30
0
1
-1
0
45
1
0
0
0
15
0
0
-24
-24
210
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
0
1
30 -1
0 3/2 0
-24 0
15/2 0
210
-6
-24
45
135/2
36
180
La fila uno se divide entre menos cuatro (F1 = (1/4)*F1) >>AY(1,:)=(-1/4)*AY(1,:)
1
-3/2
0
-15/2
0
1
6
3/2
0
-105/2
-1 15/2
0
0 -6
-24
45 135/2
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
0
0
-1 -24
0
45
36
180
A la fila uno se le suma la fila dos (F1 = F1 + F2) >>AY(1,:)=AY(1,:)+AY(2,:)
1 0
0 3/2
0 15/2
0
0
1
0
0
-6 -1
-24
15
135/2 0
36
45 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 3/2
0
0
15/2
0
0
0
0
-6
15
-6
135/2 4
-24
0
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
-24
36
0 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
0
0
-24
36
-6
180 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
0
0
-24
36 0
180 -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
1
0
0
0
0
0
0 7/2
15
-24
165/2
36 0
180 -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
0
0
0
-3/2
-15/2
-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
0
0
0
-5
6 -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
1 0
0
1
-4
6
30
-24
0
0
1
0
0
0
-24
36
0
0
0
1
usando
1
0
0
Comenzamos
0
0
el
0
0
pivote
de
la
intercambiando la fila uno con la tres (F1
fila
tres,
F3).
>>AUX=AU(1,:); >>AU(1,:)=AU(3,:); >>AU(3,:)=AUX
-4
6
30
0
1
-1
1
0
0
0
-24
0 -24
36
0
0
1
0
0
0
1
0
0
0
1
0
0
0
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 0
30 1
-24 -1
;
0 0
0 0
1 1
0 0
0
77
Ing. Sergio Velásquez Análisis Numérico. 0
3/2
0
15/2 0
-6
-24
1
36
0 0
1/4
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
0
-15/2
0
6
1
-1
3/2
0
0 0
15/2 0
0
-6
-24
-1/4
0 1
36
0
1
0
0 0
1/4 0
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
0
0
-1 -24
0 36
0
1
0
0
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 3/2
0 15/2
0
1
0
0
0 -6
1 1
-1 -24
0 0
0 36
0 1/4
0 0
0
0
1
0
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
3/2
0 15/2
0 -6
1 1
0 0
0 1/4
0 0
78
Ing. Sergio Velásquez Análisis Numérico.
La
0
0
0
0
fila
-6
4
-24
dos
se
-2/3
36
0
multiplica
1
-1/6
0
0
1
0
por
dos
tercios
(F2
=
(2/3)*F2) >>AU(2,:)=(2/3)*AU(2,:)
1
0
0
0
0
1
5
-4
2/3
0
0
0
-6
4
-2/3
1
0
0
-24
1
36
0
0
0
0
1/6
0
-1/6
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
0
1
5
-4
0
0
0
0
-24
1 2/3
36
-6
0 4
0 0
0 1/6
0
0
1
0
-2/3
1
0
-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
0 5
-24
1
-4
2/3
36 0
0
0 -5
0 0
-2/3
1
0
0
1/6
0
0
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 7/2
1 2/3
0 0
0 1/6
0 5/24
79
Ing. Sergio Velásquez Análisis Numérico.
La
0
0
0
0
fila
-24
36 0
tres
0 -5
se
0
-2/3
0 1
multiplica
1
-1/6
por
-1/4
(-1/24)
(F3
=
(-
1/24)*F3) >>AU(3,:)=(-1/24)*AU(3,:)
1
0
0
0
0
1
0
7/2
0
0
1
-3/2
0
0
0
1
0
2/3
0 0
-5
0 1/6
5/2
0
-2/3
1
0
0 -1/6
-1/2 -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
0
1
0
0
0
0
1
-3/2
0
0
0
-5
1
0
1/5
7/10
0 -2/3
0
0
1/20
1/30
0
0
-1/24
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
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
0
-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
6 X1 + 0 X1
+
30 X2
-
+ -24 X2
+
0 X3 24 X3
= =
36 X3 =
45 210
-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
1 bi aii
xi( k )
n
aij x (jk )
aij x (jk
j 1
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:
x(k
1)
x
M 1
M
x (k
1)
x (k )
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.
M
máx 1 j k
x( j
1)
x ( j)
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
=
X2 =
-20/3
+
45 = 115/3
- (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
View more...
Comments