clases

November 8, 2017 | Author: Christian Bastardo | Category: Bit, Numerical Analysis, Equations, Mathematical Objects, Mathematical Concepts
Share Embed Donate


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



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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF