metodos numericos

March 21, 2017 | Author: jordimchiphop | Category: N/A
Share Embed Donate


Short Description

metodos numericos...

Description

c 2014 Marlo Carranza Copyright

Publicado por Marlo Carranza book-website.com Material de consulta, para los estudiantes del curso de Métodos Numéricos de acuerdo al sílabus diseñado por la Facultad de Ciencias e Ingeniería de la Universidad de ciencias y Humanidades. impresión, Marzo 2014

Universidad de Ciencias y Humanidades Facultad de Ciencias e ingeniería

Manual de Métodos Numéricos con implementación en Matlab

Profesor Marlo Carranza Purca

Lima - Perú Marzo -2014

i

Índice general

1. Introducción al Matlab

3

1.1. Operaciones con variables . . . . . . . . . . . . . . . . . . . . .

4

1.1.1. Formato . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.1.2. Variables

. . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.1.3. Algunas funciones matemáticas elementales . . . . . . .

7

1.2. Números Complejos

. . . . . . . . . . . . . . . . . . . . . . . .

8

1.3. Introducción al Álgebra lineal numérica . . . . . . . . . . . . . .

9

1.3.1. Diversos tipos de matrices y propiedades . . . . . . . . . 10 1.3.2. Vectores y matrices con Matlab . . . . . . . . . . . . . . 12 1.3.3. Vectores y matrices por bloques . . . . . . . . . . . . . . 18 1.3.4. Algo de sistemas de ecuaciones . . . . . . . . . . . . . . 20 1.4.

Gráficos con MatLat

. . . . . . . . . . . . . . . . . . . . . . . 21

1.4.1. Gráficos en coordenadas cartesianas . . . . . . . . . . . . 21 1.5.

Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.5.1. Evaluación de un polinomio . . . . . . . . . . . . . . . . 28 1.5.2.

Producto de polinomios . . . . . . . . . . . . . . . . . . 29

1.5.3.

División de polinomios

. . . . . . . . . . . . . . . . . . 29

1.5.4. Raíces de polinomios . . . . . . . . . . . . . . . . . . . . 30 1.5.5. Derivada e integral de un polinomio . . . . . . . . . . . . 30

ii

iii 1.6. Scripts y funciones . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.7.

Matemática Simbólica

. . . . . . . . . . . . . . . . . . . . . . 33

2. Aproximación y errores 2.1. Tipos de errores 2.1.1. 2.2.

43

. . . . . . . . . . . . . . . . . . . . . . . . . . 44

Número de cifras significativas . . . . . . . . . . . . . . 47

Representación de números en la computadora . . . . . . . . . 48 2.2.1. Sistemas numéricos . . . . . . . . . . . . . . . . . . . . . 49 2.2.2. Aritmética del punto flotante . . . . . . . . . . . . . . . 51 2.2.3. Normalización de los números de punto flotante . . . . . 52 2.2.4. Operaciones en punto flotante . . . . . . . . . . . . . . . 53

2.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3. Resolución de ecuaciones

57

3.1. Método de la Bisección

. . . . . . . . . . . . . . . . . . . . . . 59

3.1.1. Algoritmo de la bisección . . . . . . . . . . . . . . . . . . 60 3.1.2. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.2. Método del punto fijo . . . . . . . . . . . . . . . . . . . . . . . . 64 3.2.1.

Algoritmo de iteración de punto fijo . . . . . . . . . . . 65

3.2.2. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.2.3. Existencia y unicidad . . . . . . . . . . . . . . . . . . . . 66 3.2.4. Ejercicio . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.3. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.3.1. Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.3.2. Convergencia del método de Newton . . . . . . . . . . . 73 3.3.3. Variantes del método de Newton

. . . . . . . . . . . . . 74

3.3.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4. Sistemas de ecuaciones lineales

78

iv 4.1. Métodos directos . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.1.1. Sistemas diagonales y triangulares . . . . . . . . . . . . . 78 4.1.2. Eliminación Gaussiana . . . . . . . . . . . . . . . . . . . 80 4.2. Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.2.1. Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . 82 4.2.2. Método de Gauss Seidel . . . . . . . . . . . . . . . . . . 83 4.2.3. Implementación

. . . . . . . . . . . . . . . . . . . . . . 87

5. Resolución de sistemas no lineales

91

5.1. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . 91 6. Interpolación Numérica

94

6.1. Polinomio interpolador de Lagrange . . . . . . . . . . . . . . . . 94 6.1.1. Formulación de Lagrange . . . . . . . . . . . . . . . . . . 95 6.1.2. Implementación . . . . . . . . . . . . . . . . . . . . . . . 98 6.2. Formulación de Newton

. . . . . . . . . . . . . . . . . . . . . . 102

6.2.1. Interpolación lineal . . . . . . . . . . . . . . . . . . . . . 102 6.2.2. Interpolación cuadrática . . . . . . . . . . . . . . . . . . 104 6.2.3. Forma general de los polinomios de interpolación de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.2.4. Implementación . . . . . . . . . . . . . . . . . . . . . . . 108 6.3. Interpolación por partes . . . . . . . . . . . . . . . . . . . . . . 110 6.3.1. Trazadores lineales . . . . . . . . . . . . . . . . . . . . . 110 6.3.2. Trazadores cuadráticos . . . . . . . . . . . . . . . . . . . 112 7. Integración numérica

115

7.1. Fórmula del trapecio . . . . . . . . . . . . . . . . . . . . . . . . 115 7.1.1. Fórmula del trapecio compuesta . . . . . . . . . . . . . . 118 7.1.2. Implementación . . . . . . . . . . . . . . . . . . . . . . . 120 7.2. Fórmula de Simpson . . . . . . . . . . . . . . . . . . . . . . . . 120

v 7.2.1. Fórmula de Simpson 1/3 . . . . . . . . . . . . . . . . . . 121 7.2.2. Fórmula de Simpson compuesta . . . . . . . . . . . . . . 121 7.2.3. Implementación . . . . . . . . . . . . . . . . . . . . . . . 122 7.2.4. Ejercicio, mecánica de la fractura . . . . . . . . . . . . . 123 8. Métodos de Runge - Kutta

126

8.1. Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.1.1. Ejercicio, mecánica de la fractura . . . . . . . . . . . . . 130

Introducción

Un método numérico es un procedimiento mediante el cual se obtiene casi siempre de manera aproximada, la solución de ciertos problemas realizando cálculos algebraicos y lógicos. Tal procedimiento consiste de una lista finita de instrucciones precisas que especifican una secuencia de operaciones algebraicas y lógicas (algoritmo), que producen una aproximación de la solución del problema (solución numérica) o un mensaje acerca del problema. En los últimos treinta años la simulación se ha convertido, por méritos propios, en uno de los tres pilares sobre los que se avanza en la ciencia (junto con la teoría y la experimentación). Esto es fruto del aumento espectacular de la capacidad de cálculo y de la disminución del coste de los ordenadores, pero también del avance en la formulación de métodos numéricos cada vez más precisos Hay muchas empresas comercializando códigos de simulación e investigadores trabajando para construir modelos numéricos fiables. Por esto, los avances en las últimas décadas han sido espectaculares, no sólo en precisión, sino también en el tipo de problemas que ahora somos capaces de abordar. Pero queda mucho por hacer, la realidad es extremadamente compleja y los modelos matemáticos que se emplean han de enriquecerse. El objetivo es que la simulación sirva para comprender la realidad y para predecir su comportamiento. Los métodos numéricos, en general, tienen el atractivo de ofrecer una solución a problemas muy complejos que no pueden resolverse analíticamente, y en un entorno controlado de difícil manipulación experimental. Su debilidad está, a nuestro criterio, en creerse cualquier solución obtenida. Todos los métodos tienen error y se necesita capacidad crítica parar valorar los resultados numéricos y comprender los modelos matemáticos subyacentes. Los códigos de cálculo proporcionan resultados espectaculares y muy vistosos, no necesariamente correctos. Un fallo en la selección del modelo matemático, o del método numérico puede dar lugar a resultados completamente erróneos. Entre otras de las ventajas que nos brindan los métodos numéricos, esta el ahorro de recursos, por ejemplo, ingenieros dedicados al cálculo, en 1 Mg. Marlo Carranza Purca

2

instalaciones de ensayo, y en el tiempo de cálculo ha sido tremendo. En segundo lugar, los métodos numéricos y la simulación, en general, permiten estudiar situaciones inexistentes, realizar ensayos virtuales y probar prototipos, incluso en condiciones extremas sin peligro y con un costo reducido. Si bien la simulación no puede acabar con los estudios teóricos ni la experimentación, no cabe duda de que los complementa, y nos ayuda a comprender mejor la naturaleza. El lenguaje actual de los métodos numéricos es, en general, el análisis funcional; en menor medida, y dependiendo de su aplicación, también juegan un papel muy relevante la geometría diferencial, el álgebra lineal y todo lo relacionado con la programación. El diseño y análisis de métodos numéricos es una rama de las matemáticas en la que se combinan aspectos muy diversos y cada campo de aplicación se apoya en mayor medida en una parte de las matemáticas.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1

Introducción al Matlab

Durante las últimas décadas, el ordenador se ha convertido en una de las herramientas más potentes y útiles de que dispone el ingeniero, científico y muchas personas. Su utilización abarca desde la fase de diseño y validación experimental en un laboratorio, hasta la fase de construcción o producción industrial, pasando por la confección de planos y la redacción de los pliegos de condiciones en los que se utilizan diferentes equipos. Paralelamente a este auge también ha aparecido la necesidad de recurrir a diferentes, y cada vez más sofisticados, métodos numéricos en varias de las anteriores fases, este conocimiento le facilitara la comprensión de los lenguajes de programación así como el análisis e interpretación tanto de los resultados obtenidos como de los posibles errores de programación. MatLab es una herramienta increíblemente poderosa, pero para usarlo con seguridad tiene que ser capaz de entender cómo funciona y ser muy preciso al introducir comandos. Cambiar la forma de introducir un comando, aunque sutilmente puede cambiar completamente su significado. El objetivo principal de esta introducción es enseñarle a conversar con MatLab y comprender sus respuestas. Es posible interactuar con MatLab utilizando un "manual de instrucciones", lo cual está bien si la respuesta es lo que usted espera. Sin embargo, es mucho mejor aprender el idioma para que pueda entender la respuesta. Además es esencial aprender la gramática ( o la sintaxis ), lo que es tal vez más importante con los lenguajes de programación convencionales; MatLab utiliza un intérprete para entender lo que le escribimos, que puede darnos sugerencias sobre dónde podría haber un error, a veces lo que se ha escrito tiene sentido para Matlab, pero no significa lo que usted espera, así que hay que tener cuidado. Es crucial formular las ideas con claridad ( en su cabeza o mejor aun en papel) antes de intentar traducirlas en MatLab (o cualquier otro idioma). El nombre MatLab es una abreviatura de las palabras Matrix Laboratory. MatLab es un sistema interactivo para cálculos científicos y de ingeniería basado en las matrices. Con el se pueden resolver complejos problemas numéricos sin necesidad de escribir un programa específico para ello. Además, el programa MatLab dispone, dependiendo de la versión, de diferentes módulos (Toolboxes) que permiten resolver problemas específicos. En esta introducción vamos a revisar las principales herramientas que posee 3 Mg. Marlo Carranza Purca

1.1. Operaciones con variables

4

MatLab: manejo de variables, el uso de funciones matemáticas, las operaciones entre arrays y el diseño de gráficas, esto nos permitirá familiarizarnos de manera mas rápida de su entorno. además que posibilitará hacer un reconocimiento acerca de las reglas ortográficas y de las respectivas sintaxis de sus comandos y funciones más importantes.

1.1.

Operaciones con variables

A semejanza de C, C ++ , MatLab tiene ciertas características 1. Hace diferencia entre las mayúsculas y las minúsculas en cuanto a los nombres de las variables, estas pueden empezar siempre con una letra y pueden constar de hasta 31 letras y números, considerándose al carácter - como una letra. 2. Si una expresión termina en punto y coma ; se calcula su resultado, pero no se muestra en pantalla, y si esta se omite, entonces Matlab ejecutara la expresión y la mostrara en pantalla. 3. El carácter % se utiliza para insertar comentarios. Todo lo que sigue (en la misma línea) es ignorado. 4. Se pueden recuperar comandos anteriores navegando con las flechas ↑ y ↓. 5. clc , borra el contenido de la ventana de trabajo. 6. clear , borra todas las variables del espacio de trabajo, pero no la ventana de trabajo. 7. clear x,y, borra solo las variables x, y del espacio de trabajo, pero no la ventana de trabajo. 8. Exit , Se usa para salir de Matlab. Además hay algunas variables y constantes especiales que se utilizan por defecto: 1. ans: Es la variable que se utiliza en los resultados. En la operación siguiente se puede recuperar este resultado volviendo a escribir ans. Esta variable se modifica en cuanto haya un nuevo resultado. 2. pi: El número π. ( No hay una variable para el número e , pero se podría definir e = exp(1) ) . √ 3. i ó j representan la unidad imaginaria −1 .

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.1. Operaciones con variables

5

4. eps: Es el número más pequeño que utiliza el ordenador. 5. Inf: Infinito, aparece si hacemos 1/0 . 6. NaN: Mensaje de error (Not a Number), por ejemplo, 0/0 . Las operaciones aritméticas entre escalares son efectuadas de manera natural usando los siguientes símbolos para las respectivas operaciones: Adición

+

Multiplicación *

Potenciación ^ División

/

Ejemplo 1. 1. >> 3+4 ans = 7 2. >> 4*8 ans = 32 3. >> 5^2 ans = 25 4. >> 1/0 Warning: Divide by zero. ans = Inf 5. 0/0 Warning: Divide by zero. ans = NaN 6. >> x=3+4 x = 7 7. >> x+10

Mg. Marlo Carranza Purca

ans = 17 8. >> pi ans = 3.1416 9. Comprueba la diferencia entre las operaciones 4/4 + 6, 4/(4 + 6) 3^5*2 , 3^(5*2) veamos a) >> 4/4+6 ans = 7 b) >> 4/(4+6) ans = 0.4000 c) >> 3^5*2 ans = 486 d ) >> 3^(5*2) ans = 59049

Manual de métodos numéricos U.C.H.

1.1. Operaciones con variables

1.1.1.

6

Formato

En general los resultados numéricos se muestran con cuatro cifras decimales, aunque todas las operaciones se ejecutan en doble precisión . Si se desean las salidas con toda la precisión disponible se debe insertar la instrucción format long ; a partir de este punto todos los resultados se mostraran con 16 cifras significativas. La instrucción, format rat , devuelve a partir de este lugar los resultados como la division de dos enteros. Además, format short , devuelve la forma estándar de los cuatro decimales.

Ejemplo 2. Veamos como representa Matlab el número π >> format long ; pi ans = 3.14159265358979

>> format rat; pi ans = 355/113

>> format short; pi ans = 3.1416

>> format;pi ans = 3.1416

1.1.2.

Variables

Matlab no necesita la declaración de variables como en un lenguaje tradicional. En principio todas las variables son reales, basta hacer uso de ellas para que queden declaradas.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.1. Operaciones con variables

7

Ejemplo 3. 1. >> a=1; b=2; c=3; >> a+b ans = 3

2. Dadas las variables y sus respectivos contenidos, a = 2, b = 5 y c = 10, calcule la expresión: E = 4ab2 −

>> a*c ans = 3

10c b

veamos:

>> a+b+c ans = 6

>> a=2; >> b=5; >> c=10; >> E=4*a*b^2-10*c/b E = 180

>> a*b*c ans = 6

Matlab no hace diferencia si las variables son enteras reales o de doble precisión, como suele ocurrir en otros lenguajes de programación como Pascal, C, C ++ o Java entre los más destacados.

1.1.3.

Algunas funciones matemáticas elementales

Matlab tiene definidos diversos tipos de funciones, todas ellas clasificadas según el objeto o tipo de problema a resolver, los detalles de estas se irán desarrollando en el transcurso de las siguientes páginas. Veamos una lista de las funciones elementales mas usadas. Función

Matlab

Función

Matlab

|x|

abs(x)

ex

sen(x)

sin(x)

2z

pow2(x)

signo(x)

sign(x)

senh(x)

sinh(x)

arcsinh(x) asinh(x)

Mg. Marlo Carranza Purca

Matlab

exp(x)

Función √ x

cos(x)

cos(x)

tan(x)

tan(x)

loge (x)

log(x)

log10 (x)

log10(x)

arctan(x)

atan(x)

arcos(x) acos(x)

sqrt(x)

cosh(x)

cosh(x)

tanh(x)

tanh(x)

arc cos(x)

acosh(x)

arctanh(x)

atanh(x)

Manual de métodos numéricos U.C.H.

1.2. Números Complejos

8

Ejemplo 4. Verificar la identidad trigonométrica: sen2 x + cos2 x = 1 Nuestro código, sería: >> x=0; >> r=sin(x)^2+cos(x)^2 r =1

r = 1 >> x=25; >> r=sin(x)^2+cos(x)^2 r =1

>> x=1; >> r=sin(x)^2+cos(x)^2

1.2.

Números Complejos

Cuando se trata de números complejos de la forma z = a + bi, donde a y b son reales, Matlab pone a disposición las siguientes operaciones que reducen las operaciones: Función

Matlab

Función

Matlab

abs(z)

Imag(z) imag(z)

Ángulo de z

angle(z)

Re(z)

z

conj(x)

|z|

Mg. Marlo Carranza Purca

real(z)

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

9

Ejemplo 5. Dado el número complejo z = 3 + 4i , calcule: z, Imag(z), Ángulo(z), y |z| Veamos, se tiene : >> z=3+4*i z = 3.0000 + 4.0000i >> conjugada=conj(z) conjugada = 3.0000 - 4.0000i >> Real=real(z) Real =

3 >> Anglo=angle(z) Anglo = 0.9273 >> modulo=abs(z) modulo = 5

Ejemplo 6. Calcule el valor de la siguiente expresión: w = |z|eθi , si z = 1 + i además, verifique si w = z. veamos : >> z=1+i z = 1.0000 + 1.0000i >> theta=angle(z); >> modulo=abs(z); >> w=modulo*exp(theta*i) w = 1.0000 + 1.0000i

1.3.

Introducción al Álgebra lineal numérica

En la presente sección se recoge una serie de definiciones y resultados relativos a matrices, aunque una buena parte de ellos pueden ser conocidos, el hecho que esta recopilación busca fijar la notación utilizada, refrescar la memoria y tener a la mano resultados que vamos a requerir más adelante.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

1.3.1.

10

Diversos tipos de matrices y propiedades

En todo lo que sigue, K denota el cuerpo R de los números reales o C el cuerpo de los complejos, V = Kn , n ∈ N. Definición 1. Una matriz es una colección de siguiente forma   a11   a21 A=  .  .. 

elementos aij ∈ K, dispuestos de la 

a12 a22 .. .

· · · a1n   · · · a2n   ..  ... .  

am1 am2 · · · amn es una, matriz real si K = R y compleja cuando K = C . La matriz A tiene m filas y n columnas, es decir tiene dimension m × n en particular: 1. Un vector columna es una matriz de dimension m × 1 2. Un vector fila es una matriz de dimension 1 × n

Notación 1.1. 1. Una matriz A de dimensión m × n de elementos aij ∈ K se denota A = (aij )m,n i,j=1 (i fila, j columna ). También denotaremos por (A)ij o A(i, j) el elemento de de A que ocupa la fila i y la columna j 2. Escribiremos la matriz A = (a1 , a2 , . . . , an ) donde ai ∈ Km representa la columna i-ésima de A para i = 1, 2, . . . , n 3. El conjunto de todas las matrices de orden o dimension m × n con elementos en K con las operaciones de adición y multiplicación por un escalar lo denotaremos como Mm×n

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

11

Definición 2. m,n Si A = (aij )m,n i,j=1 y B = (bij )i,j=1 son matrices de dimensión m × n

1. Se define la suma de matrices como la matriz A + B = (cij )m,n i,j=1 con cij = aij + bij y el producto de una matriz A = (aij )m,n i,j=1 por un escalar λ ∈ K como la matriz λA = (λaij )m,n i,j=1 2. La matriz AT = (aji )n,m j,i=1 se denomina matriz transpuesta de A. 3. Una matriz A se denomina matriz cuadrada o matriz de orden n. Diremos que una matriz es rectangular si no es cuadrada. 4. A es simétrica si A = AT . 5. La matriz A ∈ Mn es no singular si existe una matriz B ∈ Mn , tal que AB = BA = I, la matriz B es llamada la inversa de A y se denota B = A−1 .Las matrices no inversibles son singulares. 6. Una matriz A ∈ Mn es no singular si det(a) 6= 0   a y  es A−1 = 7. Si det(A) 6= 0 , la matriz inversa de A =  x b     



b

−y

−x

a

   

det(A)

8. La Adjunta de una matriz A ∈ Mn es la traspuesta de la matriz que resulta de sustituir cada uno de sus elementos por su cofactor, y se denota adj(A) 9. Si det(A) 6= 0 se cumple que A−1 =

adj(A) |A|

10. A es ortogonal si AT = A−1 es decir AAT = AT A = I   a11 0   0 a22 A = diag(aij ) = diag(a11 , a22 , . . . , ann ) =   . ..  .. .  0

Mg. Marlo Carranza Purca

0

··· ··· ...

 0   0   ..  .  

· · · ann

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

12

Definición 3. m,n Si A = (aij )m,n i,j=1 y B = (bij )i,j=1 son matrices de dimensión m × n

1. La matriz A es triangular superior (respectivamente inferior si ) aij = 0 para i > j (respectivamente i < j ) 2. La matriz A es diagonal si aij = 0 cuando i 6= j, en este caso se denota 3. La matriz A es de diagonal estrictamente dominante si |aii | > Σnj=1,j6=i |aij | para i = 1, 2, . . . n 4. Se denomina traza de la matriz A al número tra(A) = Σni=1 aii

Teorema 7. Sean A, B matrices cuadradas de la misma dimension, se cumple 1. tra(AB) = tra(BA) 2. tra(A + B) = tra(A) + tra(B) 3. det(AB) = det(BA) = det(A) det(B) 4. det(λA) = λn det(A)

1.3.2.

Vectores y matrices con Matlab

Una de las cualidades de MatLab es el manejo de los vectores y las matrices, veremos algunos ejemplos

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

13

Ejemplo 8. 1. Definiremos el vector fila

>> a=[1 2 3 4 5 ] a = 1 2 3 4 5 para indicar la n-ésima componente de vector escribimos >> a(3) ans = 3 Observe que se muestra el arreglo a como un vector fila con 5 columnas, además cada elemento puede ser separado por comas o espacios como el ejemplo mostrado. Si usted desea ver los primeros m elementos del vector a escribimos >> a(1:3) ans = 1

2

2. A continuación tenemos otros formatos para definir vectores. >> u=1:5 u = 1 2 3

4

5

3. Usaremos linspace para generar un vector >> a=linspace(1,5,5) a = 1 2 3 4 5 4. Pero también se pueden definir vectores columna >> v=[1; 2; 3; 4; 5 ] v = 1 2 3 4 5

3

Matrices Para generar matrices tenemos que introducir vectores fila de la misma dimensión, fila por fila, se usa el punto y coma ; para separar las filas.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

14

Ejemplo 9. 



 1  Generemos las matrices usando MatLab. A =  5 

2

3

6

7

4   8  

9 10 11 12 



 0 2 1 4    B =  5 0 1 0  tenemos   2 0 3 7 >> A=[1 2 3 4; 5 6 7 8; 9 10 11 12] A = 1 2 3 4 5 6 7 8 9 10 11 12

>> B=[0 2 1 4; 5 0 1 0 ; 2 0 3 7] B = 0 2 1 4 5 0 1 0 2 0 3 7

Operaciones Existen en Matlat dos tipos de operaciones aritméticas, las operaciones aritméticas matriciales, que se rigen por las reglas del Álgebra lineal y las operaciones aritméticas a elemento, que se realizan elemento a elemento, veamos la tabla de que describe las operaciones. Operación

Símbolo

Operación

Símbolo

Suma de vectores y matrices

+

Resta de vectores y matrices

Producto de matrices

*

Multiplicación a elemento

.*

Potenciación de matrices

^

Potenciación a elemento

.^

Cociente matricial

/

División a elemento

./

Cociente matricial

\

División a elemento

.\

Mg. Marlo Carranza Purca

-

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

15

Ejemplo 10.

1. Para generar matrices tenemos que que introducir vectores fila de la misma cantidad de componentes, fila por fila. se usa punto y coma para separa las filas.    1 2 3    A= 4 5 6    7 8 9 

0 1 2 3 A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 B=[0 2 4; 1 3 5; 0 1 2] B = 0 2 4 1 3 5 0 1 2

>> S=A+B S = 1 5 7

operaciones

4 8 9

>> EA=2*A EA = 2 4 8 10 14 16

Mg. Marlo Carranza Purca

11 29 47

20 53 86

>> T=A’ % transpuesta T = 1 4 7 2 5 8 3 6 9



 0 2 4 6    B= 1 3 5 7   

2. Veremos matrices

>> P=A*B P = 2 5 8

7 11 11

6 12 18

con

>> PM=A^3 % potencia PM = 468 576 684 1062 1305 1548 1656 2034 2412 >> trace(A) % Traza ans = 15 3. Determinante de una matriz D=[1 0 0;0 D = 1 0 0 >> det(D) ans = 6

2 0;0 0 3] 0 2 0

0 0 3

4. Matriz inversa >> inv(D) ans = 1.0000 0 0 0 0.5000 0 0 0 0.3333

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

16

Ejemplo 11. Veamos algunos ejemplos >> % operaciones de suma y producto >> suma = A+B >> % transpuesta >> transpuesta=A’ suma = 1 4 4 8 transpuesta = 10 6 8 8 1 5 9 11 10 14 19 2 6 10 3 7 11 >> % suma caso especial 4 8 12 >> casoEspecial=10+suma casoEspecial = >> % producto de A por B 11 14 14 18 >> Producto= A*transpuesta 20 16 18 18 Producto = 21 20 24 29 30 70 110 70 174 278 110 278 446 >> % prod escalar por matriz >> escalarmatriz=2*A >> % potencia E*E*E escalarmatriz = >> potencia=E^3 2 4 6 8 potencia = 10 12 14 16 1 14 18 20 22 24 0 8

Operaciones a elementos Ahora vamos a revisar las operaciones a elemento y vamos a ver las diferencias con las operaciones ya vistas, pero antes veamos la tabla con la descripción de las operaciones que vamos a utilizar. Operación

Símbolo

Multiplicación a elemento .*

Mg. Marlo Carranza Purca

Potenciación a elemento

.^

División a elemento

./

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

17

Ejemplo 12.

>> E=[1 2 ; 3 4], F=[2 4 ; 8 16] E = >> % Division a elemento 1 2 >> E./F 3 4 ans = F = 0.5000 0.5000 2 4 0.3750 0.2500 8 16 >> % Producto a elemento >> E.*F ans = 2 8 24 64

>> %potenciacion a elemento >> P=E.^3 P = 1 8 27 64

Ejemplo 13. Veamos algunos ejemplos de operaciones a elemento, Dadas las matrices A y B >> A=[2 4; 8 10] A = 2 4 8 10 >> B=[2 3; 1 B = 2 3 1 1

1]

>> %potencia a elemento >> P=A.^2 P = 4 16 64 100 >> %producto a elemento >> A*B ans = 8 10 26 34

Mg. Marlo Carranza Purca

>> %division a elemento >> A./B ans = 1.0000 1.3333 8.0000 10.0000 >> %potencia variable >> %a elemento >> x=[1 2 3]; x.^x ans = 1 4 27 >> %potencia variable %a elemento >> y=[1 2; 3 4]; y.^y ans = 1 4 27 256

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

1.3.3.

18

Vectores y matrices por bloques

Selección de elementos de un vector V(n)

Devuelve en n-ésimo elemento del vector

V([n,m,p]) Devuelve los elementos del vector situados en las posiciones n, m , p V(n:m)

Devuelve los elementos del vector situados entre las posiciones n y m

Ejemplo 14.

>> V=[ 2 4 6 8

10 ];

ans = 2

% obtenemos 3era componente >> V(3) ans = 6 %obtenemos la 1, 3 5 comp. >> V([1 3 5])

6

10

% elementos de 3 a 5 posición >> V(3:5) ans = 6 8 10

Selección de los elementos de una matriz A(m,n)

Devuelve el elemento (m, n) de la matriz.

A([n,m],[p,q]) Devuelve la submatriz formada por la intersección de las filas n, m y las columnas p, q. A(n,:)

Devuelve la fila n.

A(:,m)

Devuelve la columna m.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

19

Ejemplo 15. Sea la matriz >> A=[1:4; 5:8 ; 9:12 ] A = 1 2 3 4 5 6 7 8 9 10 11 12 >> % elemento fila 2, col 3 >> A(2,3) ans = 7 >> % extraemos la fila 1 >> A(1,:) ans = 1 2 3 4 >> % obtenemos la col 3 >> A(:,3) ans = 3 7

11 % obtenemos la submatriz >> A([2,3],[2,3]) ans = 6 7 10 11 % obtenemos la submatriz >> A(2:3,2:3) ans = 6 7 10 11 % obtenemos la submatriz >> A(:,2:3) ans = 2 3 6 7 10 11

Ejemplo 16. Otras maneras de definir matrices . Matlat tiene otra formas de definir matices, dado que introducirlas por el teclado no es muy práctico sobre todo cuando la matriz es muy grande. A =

7

1 2 4 5 7 8 >> B=[1 1 1; 2 2

>> col=[A B] col = 1 2 3 1 1 4 5 6 2 2

Mg. Marlo Carranza Purca

1 2

3 6 9 2; 3 3 3]

8

9

3

3

>> fil=[A ; B] fil = 1 2 4 5 7 8 1 1 2 2 3 3

3

3 6 9 1 2 3

Manual de métodos numéricos U.C.H.

1.3. Introducción al Álgebra lineal numérica

20

Más matrices y funciones matriciales

zeros(m,n)

Matriz nula de orden n × m

ones(m,n)

Matriz formada por unos de orden n × m

eye(n)

matriz identidad de orden n.

tril(A)

Parte triangular inferior de la matriz A

triu(A)

Parte triangular superior de la matriz A

magic(n)

Matriz mágica

vander(n)

Matriz de Vandermonde

inv(A)

Matriz inversa de la matriz A.

trace(A)

Traza de la matriz A.

[fil,col]=size(A)

Nos informa el número de filas y columnas.

length(A)

Nos da el mayor valor de la fila o de la columna.

max(A)

Proporciona el máximo de los elementos de A.

min(A)

proporciona el mínimo de los elementos de A.

1.3.4.

Algo de sistemas de ecuaciones

Para resolver sistemas lineales, en estos momentos se tienen muchas herramientas, pero en esta sección vamos a mostrar una forma de solución usando algunas funciones sencillas que nos ofrece MatLab.      2x1 + 3x2 − 4x3 = 3 x1 − x2 + x3 = −0,5     4x1 − 7x2 + 14x3 = 2 vamos a expresar el sistema en la forma    2 3 −4   x1    1 −1 1   x2   |

Mg. Marlo Carranza Purca



X



  3      =  −0,5    

x3 4 −7 14 {z } | {z } A



|

2 {z b

}

Manual de métodos numéricos U.C.H.

1.4. Gráficos con MatLat

21

Ejemplo 17. Para resolver este sistema de ecuaciones realizamos las siguientes acciones con Matlab >> A=[2 3 -4;1 -1 1; 4 -7 14] % solución >> x=A\b A = x = 0.5000 2 3 -4 2.0000 1 -1 1 1.0000 4 -7 14 % Solución con linsolve >> b=[3 ; -0.5 ; 2 ] >> x= linsolve(A,b) x = b = 0.5000 3.0000 2.0000 -0.5000 1.0000 2.0000

1.4.

Gráficos con MatLat

MatLat produce gráficos de dos dimensiones, así como contornos y gráficos de densidad. Se pueden representar los gráficos y listar los datos, permite el control de colores, sombreado y otras características de los gráficos, también soporta gráficos animados. Como podemos ver los gráficos producidos por MatLat tienen muchas muy buenas características, inclusive son portables a otros programas

1.4.1.

Gráficos en coordenadas cartesianas

Estos gráficos se tratan como curvas que pasa por pares ordenados, pero finalmente Matlab lo que hace es trazar una poligonal lineal que pasa por estos puntos o pares ordenados.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.4. Gráficos con MatLat

22

Ejemplo 18.

>> x=[7 9 3 1 5 20 5]; >> plot(x) >>

1. plot(X) Representa los puntos (k, xk ). Si X es una matriz hace lo mismo para cada columna de la matriz si X es un vector complejo, representa real(X) frente a imag(X). 2. plot(X,Y) Representa los punto (X, Y ), si X y Y son matrices representa por filas o columnas los datos de X frente a los datos de Y , dependiendo si el otro otro vector es fila o columna. 3. plot(X,Y,S) Es la gráfica de plot(X,Y) con las opciones definidas en S, usualmente S se compone de tres caracteres entre tildas, el primero fija el color, el segundo fija la etiqueta o marca en el nodo el ultimo fija el carácter usado en el nodo. 4. plot(X1 , Y2 , S3 , . . . , Xn , Yn , Sn ) : Gráfica de las n curvas superpuestas. 5. hold Permite montar o sobreponer varios gráficos usando una sola ventana. hold on para activar hold hold off para desactivar hold 6. zoom Permite ampliar o disminuir el gráfico, se activa con zoom on y se desactiva con zoom off . Los caracteres son respectivamente los siguientes.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.4. Gráficos con MatLat

Color y

amarillo

m

magenta

c

23

Etiqueta

trazo

puntos

-

sólido



círculos

:

a puntos

cyan

x

x- marcas

-.

guiones y puntos

r

rojo

+

signo +

--

semisólidos

g

verde

*

estrellas

b

azul

s

cuadrados

w

blanco

d

diamantes

k

negro

p

estrella de cinco puntos

.

Ejemplo 19. Graficar f (x) =

√ x + 4x3 sen(x) en el intervalo [0, 5]

>> x=0:0.2:5; >> y=sqrt(x)+4*x.^2.*sin(x); >> plot(x,y)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.4. Gráficos con MatLat

24

Ejemplo 20. 1. Graficar f (x) = ex − x sen(x2 ) + 2 en el intervalo [−3, 3], con trazo de color rojo, etiquetas cuadradas y linea punteada >> x=-3:0.4:3; >> y=exp(x)-x.*sin(x^2)+2; >> plot(x,y,’rs:’)

2. Graficar las funciones y1 = −x sen(x2 ) + 2; y2 = abs(x) + 4 sen(x); y3 = x + 0,3x3 colocando el titulo, descripción de los ejes y la leyenda. >> >> >> >> >> >> >> >> >>

x=-3:0.4:3; y1=-x.*sin(x.^2)+2; y2=abs(x)+4.*sin(x); y3=x+0.3.*x.^3; plot(x,y1,x,y2,x,y3); title(’Gráfico de tres funciones’); xlabel(’Eje x’); ylabel(’Eje y ’); legend(’-xsen(x^2)+2’,’abs(x)+4sen(x)’,’x+0.3x^3’);

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.4. Gráficos con MatLat

25

Ejemplo 21. 1. Graficaremos la función f (x) = sen(x) conjuntamente con la función h(x) = cos(x) en el intervalo [−2π; 2π] Los gráficos respectivos los mostraremos en la misma ventana. >> >> >> >> >> >> >> >>

x=linspace(-2*pi,2*pi,100); y1=sin(x); y2=cos(x); plot(x,y1,’red’); hold on; plot(x,y2,’blue’); title(’funciones: seno y coseno’); legend(’ seno(x)’, ’cos(x)’);

Gráfica de una función definida a trozos 2. Graficar la función f la cual viene definida a trozos   2  si x < 0,   x f (x) =

1     −x + 2

si 0 ≤ x < 1 si 1 ≤ x

Generamos una tabla de valores en el dominio en el que queramos dibujar la función >>x=linspace(-2,3,3000); Y ahora definimos la función, multiplicando cada trozo por el índice lógico que describa el lugar en el que queremos dibujarlo, >>y=(x.^2).*(xx=linspace(-2,3,3000); >>y=(x.^2).*(x y=exp(x).*(x.^2-1); >> plot(x,y,’b’);

Ahora hacemos un pequeño cambio x=linspace(-5,5,100); >> y=exp(x).*(x.^2-1); >> plot(x,y,’b’); hold on ; plot([-5,5],[0,0],’r’); zoom on

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.5. Polinomios

1.5.

28

Polinomios

Definición 4 (Polinomio). Una expresión que tiene la siguiente forma (1.1)

P (x) = a0 xn + a1 xn−1 + · · · + an−1 x + an

es llamada polinomio.

Los polinomios son usados ampliamente en los tópicos de matemáticas y cursos de naturaleza computacional, como el curso de métodos numéricos esto se justifica por la facilidad de manipulación y de implementación en cualquier lenguaje de programación, por ejemplo es fácil de evaluar, derivar e integrar analíticamente como numéricamente, claro que los polinomios tienen algunos inconvenientes como la tendencia a oscilar cuando el grado es grande, en Matlab se introduce a través de sus coeficientes pero considerando el polinomio completo y ordenado en forma decreciente Ejemplo 24. El polinomio P (x) = x3 + 4x2 − 6x + 7 en Matlab se introduce así >> p=[ 1 4 -6 7 ]

1.5.1.

Evaluación de un polinomio

polyval(p,x) evalúa el polinomio P en x P es un vector de longitud n + 1 , cuyos elementos son los coeficientes del polinomio Ejemplo 25. Vamos a evaluar el polinomio P (x) = x3 + 4x2 − 6x + 7 en diferentes valores para x >> sumacoeficientes=polyval(p,1) sumacoeficientes = 6 >> terminoindep=polyval(p,0) terminoindep =7

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.5. Polinomios

1.5.2.

29

Producto de polinomios

Usamos la instrucción conv(p,q) que multiplica los polinomios p y q Ejemplo 26. Cargamos los polinomios p(x) = x + 1 y q(x) = x − 1 >> p =[1 1] >> q=[1 -1] % Calculamos p=(x+1)^2=x^2+2x+1 >> binomiocuadrado=conv(p,p) binomiocuadrado = 1 2 1 % Calculamos la diferencia de cuadrados (x+1)(x-1) >> difcuadrados=conv(p,q) difcuadrados = 1 0 -1 % calculamos (x+2)(x+3) >> a=[1 2]; >> b=[1 3]; >> multiplicamos=conv(a,b) multiplicamos = 1 5

1.5.3.

6

División de polinomios

La instrucción [Q,R]=deconv(D,d) realiza la división de los polinomios D(x) entre d(x), obteniéndose el cociente Q y el residuo R Ejemplo 27. Vamos a dividir el polinomio p(x) = x3 − 1 entre d(x) = x2 + x + 1 para lo cual hacemos >> p=[1 0 0 -1]; >> d=[1 1 1]; >> [q,r]=deconv(p,d) q = 1 -1 r = 0 0 0

Mg. Marlo Carranza Purca

0

% cociente % residuo

Manual de métodos numéricos U.C.H.

1.5. Polinomios

1.5.4.

30

Raíces de polinomios

roots(P)

calcula las raíces del polinomio P (x)

Ejemplo 28. Vamos a calcular las raíces del polinomio p(x) = x3 + 6x2 + 11x + 6 para ello realizamos los pasos siguientes >> p=[1 6 11 6] >> raices=roots(p) raices = -3.0000 -2.0000 -1.0000

poly(vectorRaiz)

Calcula el polinomio de raíces vectorRaiz

Ejemplo 29. Vamos a calcular el polinomio p(x) cuyas raíces vienen dadas por el vector vectorRaiz vectorRaiz=[-3 -2 -1]; >> polinomio=poly(vectorRaiz) polinomio = 1 6 11 6

1.5.5.

Derivada e integral de un polinomio

polyder(p) calcula la derivada de un polinomio Ejemplo 30. Calcular la derivada de f (x) = 4x3 − x2 − 3x − 2 >> p=[4 -1 -3 -2]; >> derivada=polyder(p) derivada = 12 -2 -3

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.5. Polinomios

31

polyint(p) calcula la integral de un polinomio. Ejemplo 31. Calculamos la integral de f (x) = 4x3 − x2 − 3x − 2 >> p=[4 -1 -3 -2];format rat >> integral=polyint(p) integral = 1 -1/3 -3/2 -2 0

Ejemplo 32. Graficar el polinomio p(x) = x3 − x p=[1 0 -1 0]; >> x=linspace(-3,3,200); >> y=polyval(p,x); >> plot(x,y) >> legend(’polinomio x^3-x’) >> raices=roots(p); >> hold on >> plot(raices,zeros(1,3),’or’) >> legend(’polinomio x^3-x’,’raices’) >> plot(x,0)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.6. Scripts y funciones

32

Ejemplo 33. Graficar el polinomio p(x) = x3 + 6x2 + 11x + 6 para ello realizamos los pasos siguientes >> >> >> >> >> >> >> >> >> >>

1.6.

p=[1 6 11 6]; x=linspace(-6,2,600); y=polyval(p,x); plot(x,y) legend(’polinomio x^3+6x^2+11x+6’) raices=roots(p); hold on plot(raices,zeros(1,3),’or’) legend(’polinomio x^3+6x^2+11x+6’,’raices’) plot(x,0)

Scripts y funciones

Creación de archivos tipo m Hasta el momento solo hemos visto pequeños ejemplos en cuanto al código, pero para códigos mas complejos donde se tenga que hacer correcciones esta tarea se tornara muy difícil, MatLab soluciona este problem a creando un archivo de de texto sin formatear (script ) en el cual se escriben todas las sentencias MatLab ejecutara todas las ordenes, especificando el archivo respectivo como si hubiesen sido escritos directamente en la ventana de comandos de MatLat. Archivos como funciones MatLat nos proporciona un formato para crear nuestras propias funciones, estas pueden definirse en un archivo de texto (archivo con extensión M ), que a su vez lo tenemos a disposición en cualquier instante, están funciones tienen la virtud de tener argumentos de salida.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

33

Implementación de un programa Calcule el valor de la hipotenusa de un triángulo rectángulo a partir de sus dos catetos 1. Cree un script . Para esto vamos a crear el archivo m, desde el menu de file seleccionamos new y vamos a crear un nuevo archivo eligiendo la opción m file luego digitamos el programa

Con [ctrl]+[s] guardamos como hipot.m , ejecución en la ventana de comandos >> hipot cateto a= 3 cateto b= 4 hip = 5 2. Cree una función. Para la función vamos a crear el archivo m,

Con [ctrl]+[s] guardamos como hipotenusa.m , ejecución en la ventana de comandos >> h=hipotenusa(3,4) h = 5

1.7.

Matemática Simbólica

Matlab nos ofrece muchas funciones para realizar operaciones y cálculo simbólico lo cual nos permite por ejemplo factorizar, simplificar expresiones,

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

34

cálculo de raíces de polinomios, evaluar límites, derivadas integrales, transformada de Laplace entre otros muchas opciones muy importantes. Variables Simbólicas Función

Descripción

syms x, y, . . . , z

Convierte las variables en simbólicas

syms x, y, . . . , z real

Convierte las variables en simbólicas con valores reales

syms x, y, . . . , z unreal Convierte las variables en simbólicas con valores no reales syms

Lista de variables simbólicas en el espacio de trabajo

x = syms(0 x0 )

Convierte la variable x en simbólica

pretty(x)

Convierte la expresión matemática x en escritura matemática

simplif y(E)

Simplifica la expresión E

vpa(E, n)

Devuelve la expresión E con n dígitos decimales

poly2sym(A)

Devuelve al arreglo A como un polinomio simbólico en x

Ejemplo 34. Considere las funciones f = 2a3 − 5, g = a2 + 2, h = a3 − 5a2 + 6a, calcular P = f + g + h >> syms a >> f=2*a^3-5; >> g=a^2+2; >> h=a^3-5a^2+6a; >> h=a^3-5*a^2+6*a; >> w=f+g+h w = 3*a^3-3-4*a^2+6*a >> pretty(w) 3 3 a

Mg. Marlo Carranza Purca

2 - 3 - 4 a

+ 6 a

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

35

Ejemplo 35. Simplificar la expresión >> >> >> >>

1−x4 1−x2

syms x E=simplify((1-x^4)/(1-x)); E=simplify((1-x^4)/(1-x)); pretty(E) 3 x

2 + x

+ x + 1

Ejemplo 36.

>> P=poly2sym([5 1 4 6 7]) p=5*x^4+x^3+4*x^2+6*x+7 pretty(P) 4 5 x

3 2 + x + 4 x + 6 x + 7

Ejemplo 37. Sea la matriz M = [x ed ; ex d] >> syms x d >> M=[ x exp(d); exp(x) d]; >> D=det(M) D = x*d-exp(d)*exp(x) >> pretty(D) x d - exp(d) exp(x)

Ejemplo 38. Sea la función f (x) = 13 − x3 , calcule f (2) >> f=’13-x^3’; >>p= subs(f,2) p= 5

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

36

Función

Descripción

subs(f, a)

Evalúa la función f en el valor a

subs(f, a, b)

Sustituye en la función f el valor de a por el de b

compose(f, g)

Función compuesta de f y g

f inverse(f )

Calcula la función inversa

limit(Sn, inf )

Calcula el limite de la sucesión Scuando n tiende a ∞

limit(f, a)

Calcula el limite de la función f cuando x tiende al valor de a

limit(f, a)

Calcula el limite de la función f cuando x tiende al valor de a

dif f (f, x) o dif f (f ) Calcula la derivada de la función f respecto a x dif f (f, n)

Calcula la n ésima derivada de la función f respecto a x

taylor(f, n, x)

Calcula el desarrollo de la serie de Maclaurin de orden n − 1 para la función f en la variable x

taylor(f, n, x, a)

Calcula el desarrollo de la serie de Taylor de orden n − 1 para la función f en la variable x alrededor del punto a

Ejemplo 39. Sea la función f (x) = 13 − x3 , calcule f (2) >> syms x >> f=13-x^3 ; >> p=subs(f,2) p = 5

Ejemplo 40.

>> f=@(x)(x+6) f = @(x)(x+6) >> f(2) ans = 8

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

37

Ejemplo 41. Considere las funciones f (x) = x + 4 y g(x) = x3 + 1 Calcule f (g(x)) >> clear >> syms x >> f=x+4; >> g=x^3+1; >> h=compose(f , g) h = x^3+5 >> h=compose(g , f) h = (x+4)^3+1 >> pretty(h) 3 (x + 4) + 1 >> simplify(h) ans = x^3+12*x^2+48*x+65

Ejemplo 42. Considere las funciones f (x) =

2x3 +x2 +4 , x3 +6

calcule l´ımn→∞ f (x)

syms x f=(2*x^3+x^2+4)/( x^3+6); limit(f ,inf) ans = 2

Ejemplo 43. 2

Considere la función f (x) = x4 − cos(x) + e−x , calcular f 0 (x) >> syms x >> f=x^4-cos(x)+exp(-x^2); >> df=diff(f) df = 4*x^3+sin(x)-2*x*exp(-x^2)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

38

Ejemplo 44. 2

Considere la función f (x) = sen(xy) + e−x + y 3 , calcular

2 df df , , df, dx dy dxdy

d2 f dx2

>> syms x y >> f=sin(x*y)+exp(-x^2)+y^3; >> dxf=diff(f,x) dxf = cos(x*y)*y-2*x*exp(-x^2)

>> dxyf=diff(diff(f,x),y) dxyf = -sin(x*y)*x*y+cos(x*y)

>> dxxf=diff(diff(f,x),x) dxxf = -sin(x*y)*y^2-2*exp(-x^2)+4*x^2*exp(-x^2)

Ejemplo 45. Considere la función f (x) = sen(x).Calcular la serie de Maclaurin de orden 5 >> syms x >> t5=taylor(sin(x)) t5 = x-1/6*x^3+1/120*x^5

Ejemplo 46. Considere la función f (x) = cos(x), calcular la serie de Taylor de orden 3, alrededor del punto x = 2 >> syms x >> t3=taylor(cos(x),4,x,2) t3 = cos(2)-sin(2)*(x-2)-1/2*cos(2)*(x-2)^2+1/6*sin(2)*(x-2)^3

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

39

Función

Descripción

int(f, x)

Calcula la integral indefinida de de f respecto de la variable x

int(int(f, x), y)

Calcula la integral indefinida de de f respecto de x luego respecto de y

int(int(f, y), x)

Calcula la integral indefinida de de f respecto de y luego respecto de x

int(· · · int(int(f, x), y) · · · , z)

Calcula la integral indefinida respecto de x, luego de y , · · · hasta la variable z

int(f, x, a, b)

Calcula la integral definida respecto de x de a hasta b

int(int(f, x), a, b), y, c, d)

Calcula la integral definida doble para a≤x≤byc≤y≤d

Ejemplo 47. Calcular la integral indefinida de la función f (x) = cos(x), >> >> >> >> If

clear syms x f=cos(x); If=int(f,x) = sin(x)

Ejemplo 48. Calcular la integral indefinida de la función f (x) = sen(x), >> >> >> >> Ih

clear syms x h=sen(x); Ih=int(h,x) = -cos(x)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

40

Ejemplo 49. Calcular la integral indefinida de la función f (x) = tan(x) − x2 , >> clear >> syms x >> h=tan(x)-x^3; Ih=int(h,x) Ih = -log(cos(x))-1/4*x^4

Ejemplo 50. Calcular >> >> >> >> If

RR

(xy 2 − tan(x))dydx,

clear syms x y f=x*y^3-tan(x); If=int(int(f,y),x) = 1/8*x^2*y^4+y*log(cos(x))

Función

Descripción

dsolve(0 E 0 )

Resuelve la ecuación diferencial E respecto de x, por defecto

dsolve(0 E 0 ,0 C 0 )

Resuelve la ecuación diferencial E con valores iniciales C

dsolve(0 E 0 ,0 C1 , C2 , . . . , Cn0 )

Resuelve la ecuación diferencial E con valores iniciales C1 , . . . Cn

laplace(f )

Calcula la transformada de Laplace de la función f

ilaplace(f )

Calcula la transformada inversa de Laplace de la función f

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

41

Ejemplo 51. Calcular y 0 − by = 0,con valores iniciales y(2) = 1 >> clear >> syms y b >> y=dsolve(’Dy=b*y’,’y(2)=1’) y = 1/exp(2*b)*exp(b*t)

Ejemplo 52. Calcular (y 0 )2 + y 2 = 1,con valores iniciales y(0) = 0 >> clear >>y=dsolve(’Dy^2+y^2=1’,’y(0)=0’) y = -sin(t) sin(t)

Ejemplo 53. Calcular y 00 + 5y 0 − 6 = 0 >> clear >> y=dsolve(’D2y+5*Dy-6=0’) y = -1/5*exp(-5*t)*C1+6/5*t+C2

Ejemplo 54. Calcular f (x) = ex >> clear >> syms x >> y=laplace(exp(x)) y = 1/(s-1)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

1.7. Matemática Simbólica

42

Ejemplo 55. Calcular la transformada inversa de Laplace de f (s) =

3 s2 −s−6

>> clear >> syms s >> y=ilaplace(3/(s^2-s-6)) y = 6/5*exp(1/2*t)*sinh(5/2*t) >> pretty(y) 6/5 exp(1/2 t) sinh(5/2 t)

Ejemplo 56. Calcular la transformada inversa de Laplace de f (s) =

1 s−1

>> clear >> syms s >> ilaplace(1/(s-1)) y = exp(t)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2

Aproximación y errores

Introducción P. Henrici da una definición aproximada del Análisis numérico como, la teoría de los métodos constructivos en Análisis matemático, haciendo un especial énfasis en la palabra constructivos, durante mucho tiempo, las matemáticas fueron totalmente constructivas, pues su único objetivo era llegar a la solución de problemas concretos. No obstante, a medida que los problemas sujetos a la investigación matemática crecían en alcance y generalidad, los matemáticos fueron interesándose, cada vez más, por cuestiones como la existencia, unicidad y propiedades cualitativas de las solución, antes que por su construcción. Una de las causas que condujeron a esta situación fue la escasa capacidad de cálculo que hacía inútil el diseño de algoritmos constructivos de la solución de problemas complejos. No obstante cuando surgieron los primeros ordenadores, se impulso nuevamente el diseño de nuevos algoritmos numéricos.

El análisis numérico es una disciplina que contempla el desarrollo y evolución de métodos para calcular, a partir de ciertos datos numéricos, los resultados requeridos, los ingredientes del esenciales en un problema de Análisis numérico pueden resumirse en el siguiente diagrama: Como ejemplo podemos pensar en el problema del calculo del sen(x), pero con bastante frecuencia nos encontramos con distintos algoritmos para construir la información de salida que se requiere, así volviendo al ejemplo anterior para aproximar el sen(x) podemos usar el algoritmo que se obtiene 3 5 de hacer un desarrollo de Taylor a la función sen(x) ≈ x − x3! + x5!

43 Mg. Marlo Carranza Purca

2.1. Tipos de errores

44

x=linspace(-6,6,1000); y=x-x.^3/6+x.^5/120; yy=sin(x); plot(x,y,’r’); hold on ; plot(x,yy);legend(’aproximación por Taylor’,’función sin’); axis([-5,5,-6,6]) Por lo tanto para escoger entre los diversos algoritmos disponibles deben estudiarse los aspectos teóricos que contribuirán a la elección del algoritmo mas adecuado a cada caso concreto. En general, los criterios fundamentales para preferir un criterio frente a otro son la rapidez y la precisión o equivalentemente el error

2.1.

Tipos de errores

Los errores numéricos surgen del uso de aproximaciones para representar operaciones y cantidades matemáticas exactas. 1. Error de truncamiento o discretización . Los errores de truncamiento o discretización provienen, por ejemplo, de la sustitución de una expresión continua por otra discreta (por ejemplo al aproximar la derivada de f por una expresión en diferencias), f (x0 + h) − f (x0 ) h Usando el desarrollo de Taylor de f : f 0 (x0 ) ≈

f (x0 + h) = f (x0 ) + f 0 (x0 )h +

Mg. Marlo Carranza Purca

f 00 (x0 )h2 f 000 (x0 )h3 + + ··· 2! 3! Manual de métodos numéricos U.C.H.

2.1. Tipos de errores

45

de donde f (x0 + h) − f (x0 ) f 00 (x0 )h f 000 (x0 )h2 = f 0 (x0 ) + + + ··· h 2! 3! Así el error cometido es f (x0 + h) − f (x0 ) f 00 (x0 )h f 000 (x0 )h2 − f 0 (x0 ) = + + · · · = O(h) h 2! 3! 2. Error de redondeo . Estos se originan debido a que la computadora emplea un numero determinado de cifras significativas durante los cálculos. Los numeros irracionales como π ≈ 3, 14159265358979323846... o e ≈ 2, 71828182845904523536028747135266249775724709369995...... , entre muchos, no pueden representarse con un número infinito de cifras significativas, por lo tanto, no pueden ser representados de manera exacta en la computadora, además como la computadora usa la base 2 , no pueden representar exactamente algunos números en base 10. Esta discrepancia por la omisión de cifras significativas se llama error de redondeo. Para ambos tipos de errores, la relación entre el resultado exacto o verdadero y el aproximado está dado por Valor verdadero = Valor aproximado + Error de aquí se tiene (2.1)

Errort = valor_verdadero − valor_aproximado

Una desventaja en esta definición es que no se toma en consideración el orden de la magnitud del valor que se estima . Por ejemplo, un error de un centímetro es mucho mas significativo si se esta midiendo un remache o si esta una cirugía. Una manera de tomar en cuenta las magnitudes de las cantidades que se evalúan consiste en normalizar el error respecto al valor verdadero, es decir Errorrelativof raccionalverdadero =

error_verdadero valor_verdadero

también se se puede expresar así (2.2)

εt =

error_verdadero 100 % valor_verdadero

Es el error relativo porcentual verdadero.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.1. Tipos de errores

46

Ejemplo 57 (Cálculo de errores). Suponga que se tiene que medir la longitud de un puente y la de un remache, y se obtiene 9999 y 9 cm, respectivamente si lo valores verdaderos son 10000 y 10 cm. 1. Calcule el error verdadero 2. EL error relativo porcentual verdadero en cada caso. Resolución. 1. El error en la medición del puente es Et = 10000 − 9999 = 1 cm. y en el remache es Et = 10 − 9 = 1 cm. 2. El error relativo porcentual en el puente es 1 100 % = 0,01 % εt = 10000 y para el remache es 1 100 % = 10 % εt = 10 Por lo tanto, aunque ambas medidas tienen un error de 1 cm. el error relativo porcentual, es mucho mayor . se concluye entonces que se ha hecho un buen trabajo en la medición del puente, mientras en la medición del remache se hizo un mal trabajo.

El subíndice t de Errort y de εt significa que el error a sido normalizado al error verdadero; pero en situaciones reales no se conoce el valor exacto , entonces en dichos casos, una alternativa el normalizar el error usando la mejor aproximación posible al valor verdadero, es decir, para la misma aproximación εa =

(2.3)

error_aproximado 100 % valor_aproximado

donde el εa significa que el error a sido normalizado a un valor aproximado.Uno de los retos que enfrentan los métodos numéricos es la estimación del error en ausencia del conocimiento de los valores verdaderos. Por ejemplo ciertos métodos numéricos usan un método iterativo para calcular los resultados, en tales casos se hace una aproximación considerando la aproximación anterior. Este proceso se efectúa varias veces o de forma iterativa esperando cada vez una mejores aproximaciones. (2.4)

εa =

aproximacion_actual − aproximacion_anterior 100 % aproximacion_actual

A menudo no nos importa el sigo del error, mas bien nos importa que su valor absoluto sea menor que una tolerancia prefijada εs , en tales casos, los

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.1. Tipos de errores

47

cálculos se repiten hasta que |εa | < εs

(2.5)

Si se cumple lo anterior entonces se considera que el resultado obtenido está dentro del nivel aceptable fijado previamente εs

2.1.1.

Número de cifras significativas

Las cifras significativas de un número son la primera no nula y todas las siguientes. Así pues, 2,350 tiene cuatro cifras significativas mientras que 0,00023 tiene sólo dos. Es conveniente relacionar los errores con el número de cifras significativas en las aproximaciones. Teorema 58 (Scarborough, 1966). Se tendrá la seguridad de que el resultado es correcto en al menos n cifras significativas. (2.6)

εs = (0,5 × 102−n ) %

Ejemplo 59 (Estimación del error con métodos iterativos). En matemáticas con frecuencia las funciones se representan mediante series infinitas, por ejemplo, la función exponencial se calcula usando (2.7)

ex ≈ 1 + x +

xn x2 x3 + + ··· + 2! 3! n!

Así cuanto más términos se le agreguen a la serie, la aproximación será cada vez más una mejor estimación del valor de ex . Empezando con el primer termino de ex = 1 y agregando término por término estime el valor de e0,5 . 1. Calcule los errores relativo, porcentual verdadero y normalizado a un valor aproximado usando las ecuaciones 2.2 y 2.4 respectivamente. Observe que el valor verdadero de e0,5 = 1,648721 . . .. 2. Agregue términos hasta que el valor absoluto del error aproximado εa sea menor que un criterio de error preestablecido εs con tres cifras significativas, use la ecuación 2.6

Resolución.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.2. Representación de números en la computadora

48

La ecuación 2.6 se emplea para determinar el criterio de error que asegura un resultado sea correcto en al menos tres cifras significativas: εs = (0,5 × 102−3 ) % = 0,05 % por lo tanto, se agregaran tantos términos a la serie hasta que εa sea menor que este valor. 1. La primera estimación es ex = 1 2. La segunda estimación es ex = 1 + x, y para e0,5 = 1 + 0,5 = 1,5 De aquí se tiene un error relativo porcentual según la ecuación 2.2 εt =

1,64721 − 1,5 100 % = 9,02 % 1,648721

La ecuación 2.4 , se utiliza para determinar una estimación aproximada del error por 1,5 − 1 εa = 100 % = 33,3 % 1,5 Com el εa no es menor que el valor requerido εs se debe seguir agregando términos y continuar los cálculos. tenemos la siguiente tabla. Términos Resultados

εt ( % )

εa ( % )

1

1

39.3

2

1.5

9.02

33.3

3

1.625

1.44

7.69

4

1.645833333

0.175

1.27

5

1.648437500

0.0172

0.158

6

1.648697917

0.00142

0.0158

Así después de usar seis términos, el error aproximado es menor que εs = 0,05 % y el cálculo termina, aunque esto es cierto la mayoría de las veces.

2.2.

Representación de números en la computadora

Numéricamente los errores de redondeo se relacionan de manera directa con la forma en que se guardan los números en la memoria de la computadora.Casi siempre la representación y la aritmética computacional son satisfactorias y pasan inadvertidas. La unidad fundamental mediante la

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.2. Representación de números en la computadora

49

cual se representa la información se llama palabra, esta consiste en una cadena de cadena de caracteres de dígitos binarios ( bits ), solo puede tomar dos valores 0 o 1 , encendido o apagado; positivo o negativo o cualquier otra dicotomía electrónicamente viable, es por eso que se usa la representación binaria.

2.2.1.

Sistemas numéricos

Un sistema numérico es una convención para representar cantidades, Debido a que tenemos diez dedos en las manos es que usamos el sistema de base 10, que utiliza 10 dígitos, ( 0, 1, 2, 3, 4, 4, 6, 7, 8, 9 ) para representar números. Ejemplo 60. 25 = 20 + 5 = 2 × 10 + 5 345 = 300 + 40 + 5 = 3 × 103 + 4 × 10 + 5 86439 = 80000+6000+400+30+9 = 8×104 +6×103 +4×102 +3×10+9 547,154 = 5 × 102 + 4 × 101 + 7 × 100 + 1 × 10−1 + 5 × 10−2 + 4 × 10−3 En el sistema binario 101,101 = 1×22 +0×22 +1×20 +1×20 +1×2−1 +0×2−2 +1×2−3 = 5,625 en base 10.

Representación Entera Veamos como los enteros se representan en la computadora, el método más sencillo se denomina método de magnitud con signo y emplea el primer bit de una palabra para indicar el signo, con 0 para positivo y 1 para negativo los bit sobrantes se usan para guardar el número Ejemplo 61. La representación de un entero decimal −173 en una computadora de 16 bits usando el método de de magnitud con signo es : 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.2. Representación de números en la computadora

50

Ejemplo 62. determine el rango de enteros de base 10 que pueda representarse en una computadora de 16 bits. Resolución. De los 16 bits, se tiene el primer bit para el signo. Los 15 bits restantes pueden contener los números de binarios de 0 a 111111111111111 , el límite superior se convierte en un entero decimal. (1 × 214 ) + (1 × 213 ) + · · · + (1 × 23 ) + 1 × 21 + 1 = 32767 = 215 − 1 Así en una computadora de 16 bits una palabra puede guardar en memoria un entero decimal del rango de −32767 a 32767 pero el cero esta definido como 0000000000000000, sería redundante usar el número 1000000000000000 para definirlo por lo tanto se usa para definir otro entero negativo adicional y el rango va de −32768 a 32767. En las computadoras convencionales se prefiere usar la técnica del complemento de 2 que incorpora el signo dentro de la magnitud del número, en lugar de emplear un bit adicional para representar el más o menos.

Notación decimal en coma flotante −623,45 = −62,345 × 101 = −6,2345 × 102 nos quedamos con esta ultima notación, denominada notación decimal en coma flotante normalizada, caracterizada por que la fracción es un número comprendido entre 1 y 10 y escribimos simplemente −6,2345 + 2, en general será : ±m ± E; 1 ≤ m < 10, E ∈ N ∪ {0} También se emplea el siguiente criterio 1 = 0,029411765 . . . se guarda en base 10 con un punto flotante que 34 únicamente puede guardar 4 lugares decimales entonces se guardaría como 1 = 0,0294 × 100 tenemos un cero inútil a la derecha del punto decimal, el 34 número puede normalizarse así 1 = 0,2941 × 10−2 en este caso 1b ≤ m < 1 con b : base. 34 Note que este proceso introduce un error de redondeo. Observación 2.1. R se representa mediante un conjunto finito de números racionales que se representan como números en punto flotante o números máquina. Un número en punto flotante tiene la forma ±m · bc , donde b−1 < m < 1 o 1 < m < b. En un número de punto flotante podemos distinguir: 1. Signo

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.2. Representación de números en la computadora

51

2. Base 3. Mantisa o parte fraccionaria Ejemplo 63. Con el criterio anterior determine un conjunto hipotético de números con punto flotante para una máquina que usa palabras de 7 bits, el primer bit lo usa para el signo del número, los siguientes tres para el signo y la magnitud del exponente y los últimos tres para la magnitud de la mantisa. Veamos que, el número mas pequeño posible se representa en la figura 0 1 1 1 1 0 0 El cero inicial señala que la cantidad es positiva. El 1 en la segunda casilla indica que el exponente es tiene signo negativo. Los unos en el tercero y cuarto lugar dan un valor máximo en el exponente. 1 × 21 + 1 × 2 = 3 , por lo tanto el exponente es −3. Por lo tanto la mantisa esta especificada por el 100 en los tres últimos lugares lo cual nos da 1 × 2−1 + 0 × 2−2 + 0 × 2−3 = 0,5 En este sistema hipotético, el número mas pequeño en base 10 es +0,5× 2−3 = 0,0625, esto deja en evidencia

1. El rango de cantidades que puede representarse es limitado, como el caso de los enteros, hay números grandes positivos y negativos que no pueden representarse. 2. Existe sólo un número finito de cantidades que pueden representarse dentro de un rango. Así el grado de precisión es limitado. Es evidente que los números no pueden representarse de manera exacta.

2.2.2.

Aritmética del punto flotante

Por simplicidad, en lo que sigue, supongamos números máquina decimales: ±0.d1 d2 . . . dk × 10n , con 1 ≤ d1 ≤ 9; 0 ≤ di ≤ 9, i = 2; . . . ; k Se puede normalizar cualquier número real positivo y para convertirlo en y = 0.d1 d2 . . . dk dk+1 dk+2 × 10n Si y está en el rango de la máquina puede ponerse en forma de punto flotante, f l(y), tomando k dígitos decimales. Hay dos maneras de elegir esos k dígitos decimales: corte y redondeo.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.2. Representación de números en la computadora

52

1. En el corte simplemente se eliminan todos los dígitos a partir del dk+1 . 2. En el redondeo se agrega 5 × 10n−(k+1) a y y luego se realiza el corte. Es decir, a) si dk+1 ≥ 5 agregamos 1 a dk y cortamos, b) si dk+1 < 5 simplemente cortamos. Ejemplo 64. El número π es un número irracional, luego tiene una expresión decimal infinita de la forma π = 3,14159265 . . . . En forma decimal normalizada es π = 0,314159265 . . . × 10 El número π en punto flotante con cinco dígitos y corte se representa por f l(π) = 0,31415 × 101 = 3,1415 Con redondeo será f l(π) = (0,31415 + 0,00001) × 101 = 3,1416 El error cometido al reemplazar un número por su forma en punto flotante recibe el nombre de error de redondeo independientemente de si se ha aplicado el método de corte o de redondeo.

2.2.3.

Normalización de los números de punto flotante

1. Para los casos donde se emplea el corte. (2.8)

|x − f l(x)| ≤E |x|

2. Para los casos donde se emplea el redondeo. (2.9)

|x − f l(x)| E ≤ |x| 2

donde E se denomina épsilon de la maquina, el cual se calcula como (2.10)

E = b1−t

donde b número base. t es el número de términos significativos en la mantisa.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.3. Ejemplos

53

Ejemplo 65. Épsilon la maquina Calcule el épsilon de la máquina para el ejemplo 63. El sistema de punto flotante hipotético anterior, emplea valores de base 2, y el número de bits para la mantisa t = 3 por lo tanto el épsilon de la máquina debe ser E = 21−3 = 0,25

2.2.4.

Operaciones en punto flotante

Representamos las operaciones en la computadora mediante: ⊕, , ⊗, . Supondremos una aritmética de dígitos finitos (equivale a realizar operaciones exactas sobre representaciones de punto flotante, y luego convertir el resultado exacto en su representación de punto flotante), viene definida por:

2.3.

Ejemplos

1. Encontrar la expresión decimal de los números binarios a) 11,11 b) 111.101 2. Encontrar la expresión binaria de los números decimales a) 0,1 b) 5.3 3. Efectue 0,1557 × 101 + 0,4381 × 10−1 . El número de la mantisa de menor exponente se modifica de tal forma que los exponentes sean los mismos, alineamos los puntos decimales. 0,1557 × 101 0,004381 × 101 se obiene 0,160081 × 101 y cortando queda 0,1600 × 101 4. Efectue 0,3641 × 102 − 0,2686 × 102 . 0,3641 × 102 −0,2686 × 102 se obtiene 0,0955 × 102 el cual se puede expresar así 0,9550 × 101

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.3. Ejemplos

54

5. Efectue 0,7642 × 103 − 0,7641 × 103 . 0,7642 × 103 −0,7641 × 103 se obtiene 0,0001 × 103 el cual se puede expresar así 0,1000 × 100 . Así, en este caso, se agregan tres ceros no significativos, lo cual introduce un error sustancial de calculo debido a que las manipulaciones siguientes actúan como si los ceros fueran significativos. 6. Efectúe 0,1363 × 103 × 0,6423 × 10−1 . Aquí los exponentes se suman y las mantisas se multiplican . 0,1363 × 103 × 0,6423 × 10−1 = 0,08754549 × 102 = 0,87545490 × 101 y cortando resulta 0,8754 × 101 7. Un número grande de cálculos interdependientes . Investigar el efecto de error de redondeo en un gran número de cálculos interdependientes, desarrolle un programa que sume un número 100000 veces. Sume el número 1 con simple precisión y 0,00001 con precisiones simple y doble . x1=1;suma1=0;suma2=0; x2=0.00001; for i=1:100000 , suma1=suma1+x1; suma2=suma2+x2; end suma1 = 100000 suma2 = 1.0000 suma2 = 1.0000 format long e >> suma2 suma2 = 9.999999999980838e-001

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.3. Ejemplos

55

8. suma de un número grande y uno pequeño. Vamos a sumar un número pequeño 0,0010 con un número grande 4000 usando una computadora hipotética con una mantisa de 4 dígitos yun expoente de 1 dígito. Normalizamos los números, tenemos 0,4000 × 104 0,0000001 × 104 obtenemos 0,40000001 × 104 el cual se corta a 0,4000 × 104 así resulato como i no hubieramos sumado nada. Este tipo de error uede ocurrir cuando de suman series infinitas, por ejemplo si el término inicial de la série es relativamente grande en comparación con los demás términos, luego que se han sumado unos pocos terminos, estamos en la situación de sumar una cantidad pequeña con una grande. Una manera de reducir este tipo de errores consiste en sumar la serie en sentido inverso, es decir en orden ascendente en lugar del orden descendente. 9. Cancelación por resta Resolución de la ecuación x2 + 62,10x + 1 = 0 , Las raíces aproximadas son

f l(x1 ) = 0, 1611 × 10− 1

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

2.3. Ejemplos

56

y el error relativo es ahora: 0,0161072 + 0,1611 × 10−1 ≈ 2 × 10−4 0,0161072 En el caso de que b fuera negativo las cosas ocurrirían exactamente al contrario. Para x1 obtendríamos una buena aproximación y para x2 habría que considerar la segunda opción.

Problemas 1. La división por un número muy pequeño (o la multiplicación por un número muy grande) da un error absoluto muy grande. 2. La sustracción de números casi iguales da errores relativos muy grandes. 3. La propagación de estos errores al resto de cálculos. Podemos evitar estos problemas: 1. Minimizando el número de operaciones, 2. Ordenando adecuadamente las operaciones, 3. Replanteando el problema en otros términos.

Conclusiones 1. Los cálculos numéricos pueden ser inexactos. 2. El error final de un proceso de cálculo efectivo es fruto de la acumulación de distintos tipos de errores. Unos iniciales (de entrada, redondeo de los datos, truncadura del problema, ...) y otros generados a lo largo del proceso. 3. El aumento de la precisión (aumento de las unidades de memoria para almacenar los números), en general reduce el error final. No obstante, a veces conviene sacrificar precisión frente a economía de tiempo o de recursos. (Un equilibrio entre precisión suficiente y coste adecuado se le suele llamar eficiencia). 4. Hay operaciones o procesos de cálculo que propagan fuertemente los errores de redondeo, operaciones o algoritmos inestables (inestabilidad numérica). 5. Hay problemas que tienen una naturaleza que los hace especialmente sensibles a la variación de los datos, problemas mal condicionados. Para cierto tipo de problemas se puede definir una medida de esta sensibilidad mediante un número de condición.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3

Resolución de ecuaciones

Introducción En este capítulo, vamos a ver como podemos resolver ecuaciones con una incógnita, pero desde el punto de vista de los métodos numéricos, recordemos que desde la época escolar aprendimos resolver la ecuación f (x) = ax2 + bx + c = 0

(3.1) usando la fórmula

x=

(3.2)

−b ±



b2 − 4ac 2a

donde los valores calculados con la fórmula (3.2) son llamados raíces de la ecuación (3.1) , que son los valores que hacen que a la ecuación igual a cero es decir verifican la ecuación. Aunque la formula para resolver la ecuación cuadrática es útil para resolver la ecuación (3.1), existen muchas otras ecuaciones donde las raíces no se pueden calcular tan fácilmente como por ejemplo Ejemplo 66. 1. Ecuaciones de la curiosidad de los alumnos e−x − 2x = 0, xx = 2 2. Ecuación de Kepler x − e sen x − b = 0 donde x: Posición de la tierra, e : Excentricidad de la orbita

57 Mg. Marlo Carranza Purca

3. Resolución de ecuaciones

58

Ejemplo 67. 1. Modelos de población c1 e x +

c2 − c3 = 0 − 1)

x(ex

donde x:Índice de natalidad anual, c1 : Población actual, c2 : Inmigrantes en un año, c3 : Población final. 2. Raíces de polinomios x4 + 2,6x3 − 3x2 + πx − 0,065 = 0 Podemos demostrar que tienen raíces reales, podemos decir cuantas son, pero no existe un método para calcularlas en forma exacta ( si se pudieran calcular en forma exacta).

Este tipo de argumentos lleva a plantearse el estudio de los métodos necesariamente iterativos, que generan una sucesión x0 , x1 , . . . xn buscando l´ım xn = x, tal que P (x) = 0

(3.3)

n→∞

es decir para así calcular las raíces de una ecuación P (x) = 0 en el intervalo [a; b], con el grado de aproximación deseado. Definición 5 (Raíz ). f : D ⊆ R → R, r ∈ D es raíz de la ecuación f (x) = 0 en D si f (r) = 0

Aspectos 1. Convergencia . Bajo que condiciones se cumple (3.3 ) 2. Orden de convergencia . Velocidad |xn+1 − r| = k, con 0 < k < 1, α > 0 n→∞ |xn − p|α l´ım

Convergencia de orden α y k constante asintótica. a) Si α = 1 entonces la convergencia es lineal. b) Si α = 2entonces la convergencia es cuadrática.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.1. Método de la Bisección

59

c) Si 1 < α < 2 entonces la convergencia es superlineal. 3. Análisis del error , Cotas. |k | = |xr − r| ≤ C 4. Criterios de parada a) Si |f (xn )| ≤ tol1 . b) Si |xn − xn−1 | ≤ tol2 . c) Si

|xn −xn−1 | |xn |

≤ tol3

d ) n < N con N es el número de iteraciones, En lo que sigue de este documento consideraremos que las raíces de la ecuación f (x) = 0 son aisladas, es decir, para cada raíz existe un intervalo que no contiene más raíces de la ecuación, teniendo en claro que no todas las ecuaciones tienen raíces aisladas. Ejemplo 68. La gráfica de la función

f (x) =

 

x sen



0

1 x



si x 6= 0 si x = 0

muestra que 0 no es una raíz aislada.

3.1.

Método de la Bisección

Teniendo en cuenta las consideraciones hechas anteriormente el método de la bisección consiste en tomar un intervalo [a0 ; b0 ] ( de longitud b0 − a0 ) donde se encuentre una raíz, luego debemos partir este intervalo en dos y ver en cual de estos dos subintervalos se encuentra pero al hacer esto el intervalo donde

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.1. Método de la Bisección

60

0 se encuentra la raíz tendrá la mitad de longitud que el intervalo inicial ( b0 −a ) 2 y si repetimos este proceso sucesivamente n veces, la raíz que buscamos 0 estará en un intervalo de longitud b02−a n , es decir conseguimos asegurar que esta raíz se encuentra en un intervalo bastante pequeño y así tenemos una aproximación para la raíz buscada, un resultado de vital importancia para asegurar que en un intervalo hay una raíz es el teorema del Valor Intermedio en su forma particular llamada el teorema de Bolzano, veamos

Teorema 69 (Teorema de Bolzano). Sea f : [a, b] → R y continua sobre [a, b] y f (a).f (b) < 0 entonces existe r ∈ ha, bi tal que f (r) = 0

Notación 3.1. La función f : [a, b] → R, continua sobre [a, b] se indicara como f ∈ C([a, b])

3.1.1.

Algoritmo de la bisección

Algoritmo 3.1: Bisección entrada: a, b, f, tol, n − max salida : r solución aproximada 1 a0 = a; b0 = b; fa = f (a); fb = f (b); 2 for i = 0 : n − max do 3 xi = a+2bi ; 4 fi = f (xi ); 5 if |fi | < tol then 6 r = xi ; break 7 8 9 10

if f (ai )fi < 0 then ai+1 = ai ; bi+1 = xi ; else ai+1 = xi ; bi+1 = bi ;

Ejemplo 70. Aplicar el método de la bisección xx = 4 en el intervalo [1; 4] y mostrar las cinco primeras iteraciones Resolución. Sea la función f (x) = xx − 4 a la cual vamos a aplicar el método de la bisección, para lo cual usamos la siguiente tabla

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.1. Método de la Bisección

n an

xn =

61

an +bn 2

bn

f (an )

f (xn )

f (bn )

0

1

2.5

4

-3

5.8821

252

1

1

1.75

2.5

-3

-1.3373

5.8821

2

1.75

2.125

2.5

-1.3373 0.9618

5.8821

3

1.75

1.9375

2.125

-1.3373

0.9618

4

1.9375

2.0313

2.125

-0.3981 0.2187

0.9618

5

1.9375

1.9844

2.0313

-0.3981

0.2187

-0.3981

-0.1040

Cuadro 3.1: tenemos que la solución aproximada luego de 5 iteraciones es 2,0156 Teorema 71. Sea f : [a, b] → R y continua sobre [a, b] y f (a).f (b) < 0 entonces existe r ∈ ha, bi tal que f (r) = 0, se prueba que aplicando el algoritmo n de la bisección se consigue una solución aproximada an +b con un error 2  tal que r − an + b n ≤ b − a <  2 2n+1

Prueba Sea f ∈ C([a, b])tal que f (a).f (b) < 0 entonces por el teorema de Bolzano, existe al menos un r ∈ ha, bi tal que f (r) = 0. Suponiendo que r es la única raíz de (3.4)

f (x) = 0 en [a, b]

dividimos el intervalo [a, b] por la mitad. Así se puede considerar dos casos ) = 0, entonces r = 1. f ( a+b 2

a+b 2

2. f ( a+b ) 6= 0, en este caso se elige el intervalo [a, a+b ] ó [ a+b , b] en cuyos 2 2 2 extremos la función f toma signos opuestos, para de esta forma , poder seguir aplicando el teorema de Bolzano (observe que, como r es la única raíz de f en [a, b], solo uno de estos intervalos tendrá la propiedad de que f cambie de signo en los extremos del mismo.) denotando a este intervalo por [a1 , b1 ], lo dividimos por la mitad y procedemos de igual forma. Así, reiterando este procedimiento la ecuación o bien obtenemos la raíz exacta de la ecuación ( 3.4 ) o bien una sucesión de intervalos cerrados {f [an , bn ]}∞ n=1 encajados es decir (3.5) a ≤ a1 ≤ a2 ≤ · · · ≤ an ≤ an+1 ≤ bn+1 ≤ bn ≤ · · · ≤ b1 ≤ b, n ∈ N Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.1. Método de la Bisección

62

en los cuales (3.6)

f (an ).f (bn ) ≤ 0, n ∈ N

y (3.7)

b n − an =

b−a , n∈N 2n

la propiedad ( 3.5 ) determina que {an }∞ n=1 es una sucesión monótona, creciente y acotada y que {bn }∞ es una sucesión monótona, n=1 decreciente y acotada . Por lo tanto existen l1 y l2 tales que l1 = l´ım an ≤ l´ım bn = l2 n→+∞

n→+∞

ahora bien de la ecuación 3.7 de deduce que   1 b−a = (b−a) l´ım n = 0 entonces l1 = l2 = l l´ım (bn −an ) = l´ım n n→+∞ 2 n→+∞ n→+∞ 2 por lo que de la continuidad de f y de la relación (ec:ec7 ) tenemos f (l).f (l) ≤ 0 f (l)2 ≤ 0 de donde f (l) = 0 , así de esta forma r = l es la única raíz de la ecuación (3.4) . Además a + b n n r − ≤ b n − an ≤ b − a 2 2 2n+1 b−a ≤ , n∈N 2n+1 Por lo tanto, para encontrar un valor que aproxime a la raíz r con un n error inferior a  > 0 basta tomar r = an +b , n ∈ N tal que 2 b−a a + b n n r − ≤

ln(b − a) − ln() −1 ln 2

Observación 3.1. El método de la bisección es útil para dar una idea rápida de la localización de las raíces, es decir, para determinar intervalos de longitud pequeña que contengan una única raíz, pero los cálculos aumentan considerablemente si queremos una buen aproximación de la raíz al ser la convergencia lenta, esto hace que este método se aplique, principalmente como un paso previo a la utilización de otros métodos iterativos de convergencia mas rápida.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.1. Método de la Bisección

3.1.2.

63

Ejercicios

1. Si f tienen un único cero en [−2, 5], ¿Cuántas iteraciones de bisección se deben hacer para aproximar este cero con error absoluto ≤ 0,5 × 10−4 ? 2. Resuelva e3(x−1) − ln(x − 1)2 + 1 = 0 con al menos cinco decimales exactos. 3. Resuelva e3x − ln(x2 + 1) − 30 = 0 con al menos cinco decimales exactos. 4. (x − 1)2 = 0 tiene claramente una raíz en [0, 2]. ¿Podemos usar bisección para aproximarla? 5. x = 2 es un cero del polinomio P (x) = −1536 + 6272x − 11328x2 + 11872x3 − 7952x4 + 3528x5 − 1036x6 + 194x7 − 21x8 + x9 . Aproxime esta raíz, con un intervalo adecuado. 6. La ultima moda entre los aficionados al billar es la mesa circular. Para los principiantes, el juego consiste simplemente en golpear la bola Q con la bola P después de un impacto I en la banda. Los parámetros del problema pueden verse en la figura, la mesa tiene radio R, la posición de las bolas P y Q queda determinada por las coordenadas cartesianas (xP ; yP ) y (xQ ; yQ ), y el punto de impacto I viene definido por el ángulo θ . Mediante consideraciones geométricas sencillas (que se dejan como

Figura 3.1: Mesa de billar ejercicio) puede verse que los valores de θ que proporcionan los puntos de impacto I son las raíces de la ecuación (3.8) f (θ) = √

xp sen θ−yp cos θ (R cos θ−xp )2 +(R sen θ−yp )2

+√

xQ sen θ−yQ cos θ

(R cos θ−xQ )2 +(R sen θ−yQ )2

=0

Nótese que R es la única incógnita de la ecuación 3.8. Los valores de R, xP , yP , xQ y yQ son datos del problema. Para resolver la ecuación 3.8 use el el método de bisección, que construye una sucesión θk de aproximaciones a un cero de la función f .Resuelver la ecuación 3.8 tomando los valores R = 1, xP =.6, yP = 0, xQ =-0.6, yQ = 0. Un punto de impacto I viene dado entonces por 2θ , x0 = 1,5

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

3.2.

64

Método del punto fijo

Introducción y definiciones Definición 6 (Punto fijo). Sea f : [a, b] → R una función. Un elemento r ∈ [a, b] es un punto fijo de f si f (r) = r

Ejemplo 72. Jugando con una calculadora de bolsillo, uno puede verificar que aplicando repetidamente la tecla coseno al valor real x0 = 1, se consigue la siguiente sucesión de números reales x1

= cos(x0 )

= 0,54030230586814

x2 .. .

= cos(x1 ) .. .

= 0,85755321584639 .. .

x10 .. .

= cos(x9 ) .. .

= 0,74423735490056 .. .

x20 = cos(x19 ) = 0,73918439977149 que tendería al valor α = 0,73908513 . . . . Puesto que, por construcción, xk+1 = cos(xk ) para k = 0, 1, . . . con x0 = 1 el límite α satisface la ecuación cos(α) = α. Por esta razón α se llama punto fijo de la función coseno. Podemos preguntarnos cuantas de tales funciones de iteración podrán ser útiles para calcular los ceros de una función dada. En el ejemplo anterior, α no es solo un punto fijo de la función coseno sino también un cero de la función φ(x) = x − cos(x), por tanto el método propuesto puede considerarse como un método para calcular los ceros de f . Por otra parte, no toda función tiene puntos fijos. Por ejemplo, repitiendo el experimento anterior con la función exponencial y = ex y x0 = 1.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

65

Figura 3.2: La función φ(x) = x − cos(x) admite uno y solo un punto fijo, mientras que la función φ(x) = ex no tiene ningún punto fijo

3.2.1.

Algoritmo de iteración de punto fijo

Aclaremos la idea intuitiva anterior considerando el siguiente problema. Dada una función φ : [a, b] → R , hallar α ∈ [a, b] tal que α = φ(α). Si existe un tal α se llama punto fijo de φ y podría calcularse mediante el siguiente algoritmo (3.9)

φ(xk ) = xk+1

donde x0 es una conjetura inicial. Este algoritmo se llama de iteraciones de punto fijo y φ se dice que es la función de iteración de punto fijo. El ejemplo introductorio es, por tanto, un ejemplo de iteraciones de punto fijo con φ(x) = cos(x). Una interpretación geométrica de 2 se proporciona en la Figura siguiente. Se puede conjeturar que si φ es una función continua y el límite de la sucesión xk existe, entonces tal límite es un punto fijo de φ.

Figura 3.3: Representación de unas cuantas iteraciones de punto fijo para cos x

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

3.2.2.

66

Algoritmo

Vamos encontrar una solución de f (p) = p, dada una aproximación inicial po Algoritmo 3.2: Punto fijo entrada: f, p0 , tol, n − max salida : Solución aproximada o mensaje de fracaso 1 i = 1; 2 while i ≤ n − max do 3 p = f (p0 ); 4 fi = f (xi ); 5 if |p − p − 0| ≤ tol then 6 imprimir la solución p ; 7 el procedimiento se realizo con éxito; 8 parar 9 else 10 i = i + 1; 11 p0 = p; 12

el método fracaso después de n − max iteraciones

3.2.3.

Existencia y unicidad

Definición 7 (Contracción). Una función f : [a, b] → R, es una contracción en [a, b] si existe 0 ≤ k < 1 tal que (3.10)

|f (x) − f (y)| ≤ k|x − y|, x, y ∈ [a, b]

Ejemplo 73. la función f : [1, 2] → R dada por f (x) = x2 + x1 es una contracción en [1, 2] de constante k = 12 pues para todo x, y ∈ [1, 2] se tiene x 1 x − y x − y y 1 |f (x) − f (y)| = ( + ) − + ) = − 2 x 2 y 2 xy 1 1 = − |x − y| 2 xy 1 ≤ |x − y| 2

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

67

Teorema 74 (Punto fijo de Banach). Si f : [a, b] → R es continua y contractiva de constante k ∈ [0, 1i y verifica que (3.11)

f ([a, b]) ⊂ [a, b]

entonces f tiene un único punto fijo en [a, b] es decir un único r ∈ [a, b] tal que f (r) = r. Además r es el limite de una sucesión definida por   x0 ∈ [a, b] arbitrario , (3.12)  xn = f (xn−1 ) n ∈ N. y se tiene la siguiente estimación para el error (3.13)

|xn − r| ≤

kn |x1 − x0 |, n ∈ N 1−k

Ejemplo 75. Vamos a aproximar las raíces de la ecuación e−x − x = 0 con un orden de error inferior a 10−3 . Para ello consideremos la función F (x) = e−x − x, x ∈ R

  Buscamos un intervalo, como por ejemplo 13 , 1 , de tal manera que se cumpla la hipótesis, con f (x) = e−x     1 1 ,1 ⊂ ,1 f 3 3 Veamos se tiene

  1 1 1 1 f = 1 < 1 y f (1) = > 3 e 3 e3 entonces, por ser f estrictamente decreciente, se verifica que     1 1 f ,1 ⊂ ,1 3 3 por otra parte al aplicar el teorema del valor medio, se tiene que   1 −x −y −n − 31 |e − e | = e |x − y| ≤ e |x − y|, x, y ∈ , 1 3

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

68

ya que 1 1 < n < 1 entonces e−n < e− 3 3   1 por lo tanto la función f es contractiva en 13 , 1 de constante k = e− 3 < 1 así  por el teorema 74 se tiene que existe un único r ∈ 31 , 1 tal que r = e−r si y solo si e−r − r = 0 y además, si consideramos la sucesión   x0 = 13  xn = e−xn−1 n ∈ N.

se verifica l´ımn→∞ xn = r . Para aproximar r con el orden deseado, tomamos n ∈ N verificando 3.2.3, es decir n e− 3 − 1 1 e 3 − < 10−3 si y solo si n > 21,6276 − 13 3 1−e por lo tanto tomando n = 22 que x22 = 0,56714233424982 aproxima a la raíz r con un error inferior a 10−3 .Puesto que la acotación del error es simplemente eso, una acotación es probable que para valores mas pequeños también se tenga la aproximación con la precisión requerida. Vamos a ver otra versión del teorema presentado que tal vez nos ayude a aligerar algunos calculos. Teorema 76. Si f : [a, b] → R continua tal que (3.14)

f ([a, b]) ⊂ [a, b]

entonces existe un punto fijo para f (x) , además supongamos que existe f 0 en ha, bi tal que (3.15)

|f 0 (x)| ≤ k < 1para todo x ∈ ha, bi

entonces f tiene un único punto fijo en [a, b] es decir un único r ∈ [a, b] tal que f (r) = r. Además r es el limite de una sucesión definida por   x0 ∈ [a, b] arbitrario , (3.16)  xn = f (xn−1 ) n ∈ N. y se tiene la siguiente estimación para el error (3.17)

Mg. Marlo Carranza Purca

|xn − r| ≤

kn |x1 − x0 |, n ∈ N 1−k

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

69

Demostración. Existencia De la relación ( 3.14 ) se tiene f ([a, b]) ⊂ [a, b], es decir que: Si f (a) = a ó f (b) = b, se tiene la existencia del punto fijo. Supongamos que no entonces f (a) > a y f (b) < b , definimos h(x) = g(x) − x se tiene que h es continua en [a, b] y evaluando se tiene h(a) = f (a) − a > 0 y h(b) = f (b) − b < 0 se tiene que h(a) × h(b) < 0 el teorema Bolzano implica que existe r ∈ ha, bi tal que h(r) = 0 por lo tanto h(r) = f (r) − r = 0 es decir f (r) = 0, es decir existe el punto fijo de f . Unicidad Supongamos que existen dos puntos fijos p y q diferentes en [a, b], por el teorema del valor Medio existe un número α ∈ hp, qi ⊂ [a, b] tal que |p − q| |p − q| 0 0 p

|f (p) − f (q)| = |f 0 (α)||p − q| ≤ k|p − q| k|p − q| (1 − k)|p − q| ≤ 0 |p − q| ≤ 0 q

= ≤ ≤ ≤ =

Convergencia de la sucesión xn Por el teorema del valor medio y α ∈ ha, bi se tiene |xn − r| = |f (xn−1 ) − f (r)| ≤ |f 0 (α)||xn−1 − r| ≤ k|xn−1 − r| aplicando inductivamente este resultado y recordando que l´ımn→∞ k n = 0 se tiene |xn − r| ≤ k n |x0 − r| l´ım |xn − r| ≤ l´ım k n |x0 − r|

n→∞

n→∞

0 ≤ l´ım |xn − r| ≤ 0 n→∞

l´ım |xn − r| = 0

n→∞

Estimación para el error Recordemos que |xn − r| ≤ k n |x0 − r| |xm − xn | = ≤ ≤ ≤ l´ım |xm − xn | ≤

m→∞

|xm − xm−1 + xm−1 − xm−2 + xm−2 − · · · + xn+1 − xn | |xm − xm−1 | + |xm−1 − xm−2 | + |xm−1 − xm−2 | + · · · + |xn+1 − xn | k m−1 |x1 − x0 | + k m−2 |x1 − x0 | + k m−3 |x1 − x0 | + · · · + k n |x1 − x0 | k n (1 + k + k 2 + · · · + k m−n−1 )|x1 − x0 | l´ım k n (1 + k + k 2 + · · · + k m−n−1 )|x1 − x0 | m→∞ n

|r − xn | ≤ k (1 + k + k 2 + k 3 + · · · )|x1 − x0 | kn |x1 − x0 | |r − xn | ≤ 1−k

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.2. Método del punto fijo

3.2.4.

70

Ejercicio

La ecuación de factor de intensidad de esfuerzos para una placa de ancho w y espesor t con una grieta en el borde de largo a es √ (3.18) K = σY a Donde Y es un factor geométrico que depende del ancho de la placa y el tamaño de grieta, siendo

(3.19)

Y = 1,99 − 0,41

a w

+ 18,7

 a 2 w

− 38,48

 a 3 w

+ 53,85

 a 4 w

La falla catastrófica de la placa se produce cuando el factor de intensidad de esfuerzos K iguala o supera a la tenacidad a la fractura KIC entonces el tamaño de grieta crítica es  2 KIC (3.20) af = σY Como el factor geométrico Y depende de af , la ecuación ( 3.20 ) debe resolverse por el método de punto fijo. La función de iteración es entonces (3.21) 2  KIC ak+1 =  h     i ak ak 2 ak 3 ak 4 σ 1,99 − 0,41 w + 18,70 w − 38,48 w + 53,85 w Se tiene un caso de una placa sujeta a tension donde w = 2,5, σ = 2,5, KIC = 52 . Se elige como aproximación inicial a0 = 0,25, se muestra la solución con tres cifras decimales af = 0,620

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

3.3.

71

Método de Newton

Introducción El método de Newton o de Newton Raphson es uno de los métodos numéricos más conocidos y poderosos para la resolución de un problema de búsqueda de raíces de la ecuación f (x) = 0. Si el valor inicial de la raíz es xj entonces se puede trazar una tangente desde el punto (xj , f (xj )) de la curva. Por lo general el punto por donde esta tangente cruza al eje x representa una mejor aproximación de la raíz .El método de Newton se deduce de esta interpretación geométrica (se puede deducir también a partir de la serie de Taylor ) De la figura 5.1 se observa que

Figura 3.4: Representación gráfica del método de Newton

f 0 (xj ) =

f (xj ) − 0 xj − xj+1

de donde se tiene xj − xj+1 =

f (xj ) f 0 (xj )

de aquí −xj+1 = −xj +

f (xj ) f 0 (xj )

y así tenemos xj+1 = xj −

f (xj ) f 0 (xj )

La cuál se conoce como el método de Newton.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

72

Teorema 77 (Método de Newton). Dada una función f : [a, b] → R continua de derivada no nula en ha, bi, se tiene la sucesión llamada el método de Newton.   x ∈ [a, b] dado 0 S  n) xn+1 = xn − ff0(x n ∈ N {0} (xn )

3.3.1.

Algoritmo

Nuestra intención es encontrar una solución de f (x) = 0, dada una aproximación inicial p0 Algoritmo 3.3: Newton entrada: f, p0 , tol, n − max salida : Solución aproximada o mensaje de fracaso 1 i = 1; 2 while i ≤ n − max do 0) 3 p = p0 − ff0(p ; (p0 ) 4 if |p − p0 | ≤ tol then 5 imprimir p ; 6 el procedimiento se a realizado satisfactoriamente; 7 break 8 else 9 i = i + 1; 10 p0 = p; 11

El método fracaso luego de n − max de iteraciones

Ejemplo 78. Utilizar el método de Newton para calcular la raíz de f (x) = e−x − x, empleando como valor inicial x0 = 0 , empleando cuatro iteraciones, indicando al final el error porcentual relativo, verifique que se obtiene la siguiente tabla de valores.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

73

n xn

Er %

0

0

100

1

0.500000000

11.8

2

0.566311003

0.147

3

0.567143165

0.0000220

4

0.567143290

0.00000001

Cuadro 3.2: tenemos que la raíz aproximada f (x) = e−x − x luego de 4 iteraciones es 0,567143290 Ejemplo 79. Utilizar el método de Newton para calcular la raíz de f (x) = cos(x)−x empleando como valor inicial x0 = π4 , empleando cuatro iteraciones, indicando al final el error porcentual relativo, verifique que se obtiene la siguiente tabla de resultados.

n

xn

0

0.7853981635

1

0.7395361337

2

0.7390851781

3

0.7390851332

4

0.7390851332

Cuadro 3.3: tenemos que la raíz aproximada f (x) = cos(x) − x luego de 4 iteraciones es 0,7390851332

3.3.2.

Convergencia del método de Newton

Para garantizar la convergencia del método de Newton vamos a requerir las siguientes hipótesis sobre la función f : [a, b] → R    f ∈ C 2 ([a, b])      f (a)f (b) < 0 (H)    f 0 tiene signo constante en [a, b]     00 f tiene signo constante en [a, b]

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

74

Teorema 80. Si f verifica (H) y c ∈ [a, b] es el extremo de [a, b] tal que sign [f (c)] = sign[f 00 (c)] entonces el método de Newton para f con x0 = c converge al menos cuadráticamente a una única raíz r de f en [a, b].

Ejemplo 81. Aproximemos las raíces de la función f (x) = x5 + 5x + 8, x ∈ R, mediante el método de Newton. Veremos que se obtiene la siguiente tabla de resultados para las primeras cinco iteraciones tomando como punto inicial a x0 = −2, considere la gráfica de la función f (x) = x5 + 5x + 8

n

xn

n

xn

0

-2.00000000000000

3

-1.16769339203490

1

-1.60000000000000

4

-1.16703666447529

2

-1.32236390595213

5

-1.16703618370190

Cuadro 3.4: tenemos que la raíz aproximada f (x) = cos(x) − x luego de 4 iteraciones es 0,7390851332

3.3.3.

Variantes del método de Newton

Como hemos visto en las condiciones de aplicación del método de Newton, éste tiene convergencia al menos cuadrática. No obstante el inconveniente que puede presentarse es que en las sucesivas iteraciones hay que evaluar la

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

75

derivada de f y esta puede ser difícil de evaluar, haciendo que el gasto en cada iteración sea grande. Vamos a considerar algunas variantes de este método que sustituyen la derivada de f por algo menos costoso de calcular, así de esta forma las iteraciones serán mas sencillas de calcular, aunque la convergencia sea más lenta. Teorema 82 (Método de Whittaker). En este método se toma, en lugar de f 0 (x) a un valor constante λ 6= 0, así se tiene el método de Whittaker   x0 ∈ [a, b] dado  xn = xn−1 − f (xλn−1 ) n ∈ N

Teorema 83. Si f verifica (H) y c ∈ [a, b] es el extremo de [a, b] tal que sign [f (c)] = sign[f 00 (c)] y λ ∈ R\{0} verifica que sign[λ] = sign[f 0 ] y |λ| ≥ |f 0 (c)| entonces el método de Whittaker para f con x0 ∈ [a, b] arbitrario converge, al menos linealmente a una única raíz r de f en [a, b].

Ejemplo 84. Sea f : [0, 1] → R dada por f (x) = ex − 2 cos(x), x ∈ [0, 1], compruebe que se puede tomar los valores λ = 5 y x0 = 1 y se obtiene la siguiente tabla

n

xn

n

xn

0

1.00000000000000

3

0.56306088171033

1

0.67246455665545

4

0.55010311807329

2

0.59356817154295

5

0.54440501432519

Cuadro 3.5: tenemos que la raíz aproximada f (x) = cos(x) − x luego de 4 iteraciones es 0,7390851332

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

76

siendo la raíz 0,539785160080928, vea la gráfica de la función f (x) = ex − 2 cos(x) Teorema 85 (Método de las cuerdas ). En este método se toma, en lugar de f 0 (x) a la función f (b) − f (x) , x ∈ [a, b] b−x así se tiene el método de las cuerdas   x ∈ [a, b] dado 0  f (xn−1 ) xn = xn−1 − f (b)−f (b − xn−1 ) n ∈ N (xn−1 )

Teorema 86 (Método de la secante). Este método es una version del método de Newton en el que se discretiza la derivada mediante la fórmula de derivación numérica más simple, la de dos puntos, es decir en lugar de f 0 (x) tomamos f (xn ) − f (xn−1 ) xn − xn−1 para n ≥ 1, se obtiene el método de la secante   x , x ∈ [a, b] dados 0 1  f (xn ) xn+1 = xn − f (xn )−f (xn − xn−1 ) n ∈ N (xn−1 )

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

3.3. Método de Newton

77

Teorema 87 (Método de la falsa posición). Este método, sin dejar de ser una variante del método de Newton, puede interpretarse como una generalización del método de la bisección, para aplicarlo basta que la función f ∈ C([a, b]) con f (a).f (b) < 0 de forma que existe un único r ∈ ha, bi tal que f (r) = 0. La ecuación que une a los puntos (a, f (a)) y (b, f (b)) es y − f (a) =

f (b) − f (a) (x − a) b−a

y la intersección con el eje de las abscisas se da cuando y = 0 , tenemos x=a−

f (a) (b − a) = c f (b) − f (a)

Como hacíamos con el método de la bisección, tomamos   a1 = a, b1 = c si f (a).f (c) < 0  a1 = c, b1 = b si f (c).f (b) < 0 la siguiente iteración se obtendría aplicando la misma estrategia al intervalo [a1 , b2 ] y así sucesivamente.

3.3.4.

Ejercicios

1. Se desea resolver la ecuación 3x3 − 2x + 8 = 0 usando el método de Newton, con tres cifras significativas, se tiene f (x) = 3x3 − 2x + 8 = 0 y 0 f (x) = 9x2 − 2 = 0 se obtiene la sucesión xk + 1 = xk −

3x3 − 2x + 8 tomando x0 = −10 9x2 − 2

muestre que la séptima iteración se obtiene −1,546 2. Se desea resolver la ecuación sen(x) + 3 cos(x) = 0 en el intervalo 0 ≤ x ≤ 10 usando el método de Newton, en el intervalo h0; 3i, se obtiene 1,893, verifique que otras soluciones son x = 5,034 y x = 8,176

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

Sistemas de ecuaciones lineales

4 Introducción

Vamos a estudiar diversos métodos de resolución de sistemas de ecuaciones lineales.Son muchas las aplicaciones donde ( determinación de tensiones en los nodos de una red de corriente continua, calculo de estructuras reticulares definidas por vigas, modelos de económicos,. . . ) cuya resolución práctica involucra plantear y resolver sistemas de ecuaciones lineales: mas aun la totalidad de los problemas que surgen de en las ciencias aplicadas se resuelven mediante algoritmos que involucran, en alguna de sus etapas la resolución de un sistema lineal. Desde el punto de vista teórico los sistemas lineales no plantean ninguna dificultad, sin embargo en la práctica, los sistemas lineales involucrados en la resolución de los problemas a matrices de orden grande como 10000 o 100000 ; para estos tamaños la regla de Cramer es inviable por el elevado número de operaciones que exige, esta es la razón por la que se han diseñado otros métodos más eficientes para la resolución de sistemas de ecuaciones. Dada una matriz A ∈ Mn y b ∈ V , el problema que se plantea es calcular u ∈ V tal que Au = b.

4.1. 4.1.1.

Métodos directos Sistemas diagonales y triangulares

Sea la matriz A = (ai,j )ni,j=1 ∈ Mn es triangular e inversible entonces det(A) =

n Y

aii = a11 a22 . . . ann 6= 0

i=1

Lo que implica que aii 6= 0 para i = 1, 2, . . . , n y por lo tanto podemos dividir por los elementos de la diagonales de la matriz A 78 Mg. Marlo Carranza Purca

4.1. Métodos directos

Ejemplo 4.1.

(4.1)

79

Vamos a resolver el sistema lineal de ecuaciones      2012x + 5y + 4z = 2042    

2y + 3z =

19

2z =

10

De la ultima ecuación z = 5, reemplazando en la segunda ecuación, se tiene que y = 2, ahora reemplazando en la primera ecuación tenemos x = 1, así la solución es (1, 2, 5) y tenemos el cs. = {(1, 2, 5)}. Es decir   10    z= 2 y = 12 (19 − 3z)     1 (2042 − (4z − 5y)) x = 2012 En general para resolver el sistema lineal de ecuaciones    a1,1 x1 + a1,2 x2 + · · · + a1,n−1 xn + a1,n xn = b1       a2,2 x2 + · · · + a1,n−1 xn + a2,n xn = b2   ... (4.2) ··· ···       an−1,n−1 xn−1 + an−1,n xn = bn−1     an,n xn = bn basta considerar    xn = bn an,n     x i = 1 bi − P n a x j=i+1 i,j j , , i = n − 1, n − 2, . . . 1 ai,i Esta técnica se conoce con el nombre de método de remonte. En el caso de que la matriz A sea triangular inferior e inversible, aplicando un remonte hacia abajo, se obtiene que la solución del sistema    a1,1 x1 = b1       +a2,2 x2 = b2   a2,1 x1 . .. (4.3) ··· ···       an−1,1 x1 +an−1,2 x2 + · · · an−1,n−1 xn−1 = bn−1     an,1 x1 +a1,2 x2 + · · · an−1,n−1 xn−1 + an,n xn = bn es    x 1 = b1 a1,1     xi = 1 bi − Pi−1 ai,j xj , , i = 2, 3, . . . n j=1 ai,i

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.1. Métodos directos

4.1.2.

80

Eliminación Gaussiana

Antes de dar la descripción teórica, veamos un ejemplo. Ejemplo 4.2. sistema lineal

Vamos a aplicar el método de Gauss para la resolución del

     x1 + x2 + x3 = 6 x1 + 2x2 + 3x3 = 13     x1 + x2 − x3 = 2

   0x1 + x2 + 2x3 +x4      x1 + 2x2 + x3 +3x4    x1 + x2 + −x3 +x4     0x1 + x2 + 8x3 +12x4

= 1 = 0 = 5 = 2

este sistema se puede escribir en forma matricial Ax = b, luego de efectuar , − 46 , 67 , −6)t los cálculos se tiene la solución (x1 , x2 , x3 , x4 )t = ( 75 2 3 6 Ejemplo 4.3.  

2−26 x + y = 1



x+y =2

la solución exacta del sistema viene dada por   x = 2 − y = 1,00000001490116  1−2−25 y = 1−2 −26 = 0,999999998509884 trabajando con precisión simple tenemos x = 1, y = 1. El sistema se puede escribir      −26 1  x   1   2 = 1 1 y 2 a) Tomando 2−26 como primer pivot tenemos      −26 1 1  2  x  =   26 26 0 1−2 y 2−2 el sistema es aproximadamente      −26 1  x   1   2 = 26 0 −2 y −226 por lo tanto de aquí la solución es (x, y) = (0, 1)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

81

b) Tomando 1 como primer pivot tenemos     1 1  x  2−26 1





=

2  1

y

el sistema es aproximadamente       1 1  x  =  2  0 1 y 1 con lo cual el sistema tiene como solución a (x, y) = (1, 1) Este ejemplo muestra que los errores de redondeo con efecto desastroso provienen de la división por pivotes muy pequeños, en la practica se usa una de las estrategias siguientes al comienzo de la k − sima etapa de eliminación 1≤k ≤n−1 1. Estrategia del pivoteo parcial Se toma como pivote el elemento de mayor módulo de entre los n − k + 1 últimos elementos de la columna k − sima , es decir akik = m´ax |akpk | k≤p≤n

2. Estrategia del pivoteo total Se toma como pivote el elemento de mayor módulo de la submatriz Ak correspondiente, es decir se elige el elemento akik , k ≤ i, j ≤ n de modo que akik = m´ax |akp,q | k≤p,q≤n

En general en el método de Gauss usaremos habitualmente el pivoteo parcial.

4.2.

Métodos iterativos

Introducción En esta guía vamos a estudiar dos de los métodos iterativos mas clásicos para la resolución de un sistema lineal Ax = b , con A invertible, estos métodos comparten la misma idea básica en su construcción, el descomponer o partir la matriz del sistema en la suma de dos matrices. Es decir, expresamos la matriz A como A=M −N

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

82

donde la matriz M sea fácil de invertir, de aquí se verifica que Ax (M − N )x Mx x

= = = =

b b Nx + b −1 −1 M | {z N} x + M | {z }b B

c

x = Bx + c

(4.4)

De esta forma podemos considerar el método iterativo

(4.5)

 

x0 ∈ V, arbitrario



xk+1 = Bxk + c, k ∈ N ∪ {0}

En la práctica, para calcular xk+1 se resolverá   0 x ∈ V, arbitrario (4.6)  M xk+1 = N xk + b, k ∈ N ∪ {0} en vez de trabajar directamente con 4.5 Notación 4.1. 1. Sea una matriz A = (aij )ni,j=1 ∈ Mn inversible con aii 6= 0 para i = 1, . . . n 2. Descomponemos la matriz A como A = D − E − F donde D = diag(a1,1 , . . . , an,n ); E = (ei,j )ni,j=1 , F = (fi,j )ni,j=1 Matrices triangulares inferir y superior respectivamente     −ai,j para i > j −ai,j para i < j ei,j = fi,j =   0 para i ≤ j. 0 para i ≥ j. a la descomposición de la matriz A la denominaremos descomposición D − E − F por puntos de la matriz A

4.2.1.

Método de Jacobi

Consiste en tomar M = D y N = E + F tenemos

(4.7)

Ax (D − E − F )x Dx x

= = = =

b b (E + F )x + b D−1 (E + F )x + D−1 b

que conduce al método iterativo de Jacobi ( por puntos )

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

83

Definición 8 (Método de Jacobi).

(4.8)

 

x0 ∈ V, arbitrario



xk+1 = D−1 (E + F )xk + D−1 b, k ∈ N ∪ {0}

La matriz de este método es J = D−1 (E + F ) = I − D−1 A

La iteración definida en (4.8) puede escribirse coordenada a coordenada como ai,i xk+1 = bi − ai,1 xk1 − · · · − ai,1−1 xki−1 − ai,i+1 xki+1 − · · · − ai,n xkn i k n k = bi − Σi−1 (4.9) j=1 ai,j xj − Σj=i+1 ai,j xj k+1 donde xk = (xk1 , . . . , xkn ) y xk+1 = (xk+1 1 , . . . , xn )

4.2.2.

Método de Gauss Seidel

Para el calculo de la componente xk+1 se ve claro que una estrategia i adecuada para mejorar la convergencia sería utilizar las componentes ya k+1 k k calculadas {xk+1 1 , . . . , xi−1 } en vez de usar las antiguas {x1 , . . . , xi−1 } esta consideración nos lleva a reemplazar el sistema 4.9 por k k ai,i xk+1 = bi − ai,1 xk+1 − · · · − ai,1−1 xk+1 1 i i−1 − ai,i+1 xi+1 − · · · − ai,n xn k+1 = bi − Σi−1 (4.10) − Σnj=i+1 ai,j xkj j=1 ai,j xj

para i = 1, . . . , n matrices, estas ecuaciones se escriben Dxk+1 = Exk+1 + F xk + b es decir (D − E)xk+1 = F xk + b Tenemos definido el nuevo método iterativo tomando M = D − E, N = F de esta forma

(4.11)

Ax = b (D − E)x = F x + b x = (D − E)−1 F x + (D − E)−1 b

que conduce al método iterativo de Gauss Seidel por puntos

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

84

Definición 9 (Método de Gauss Seidel).

(4.12)

 

x0 ∈ V, arbitrario



xk+1 = (D − E)−1 F xk + (D − E)−1 b, k ∈ N ∪ {0}

La matriz de este método es G = (D − E)−1 F = I − (D − E)−1 A que se denomina matriz de Gauss seidel por puntos.

Contrariamente a lo que sucedía en el método de Jacobi, la n componentes del vector xk+1 deben obtenerse de manera sucesiva a partir de de las componentes ya calculadas de xk+1 y las restantes del vector xk por esta razón a este método se le denomina método de las iteraciones sucesivas, además el método de Gauss Seidel será, en principio, más rápido pues la matriz M contiene más elementos de la matriz A. Ejemplo 4.4. Consideremos la matriz 



 2 −2 0     2 3 −1    α

0

2

Donde α ∈ R, tenemos que A = D − E − F siendo        0 2 0   2 0 0   0 0 0        D =  0 3 0  E =  −2 0 0  F =  0 0 1        −α 0 0

0 0 2

0 0 0

A partir de la definición 



1 2







0 0  0 2 0   0 1 0        J = D (E + F ) =  0 1 1   −2 0 1  =  − 2 0 1  3 3      3 −1

0 0

1 2

− α3 0 0

−α 0 0

Tambien −1 



 2 0 0    G = (D−E) F =  2 3 0    −1

α 0 2

Mg. Marlo Carranza Purca





1 2

 0 2 0       0 0 1  =  −1    3 0 0 0





0 0  0 2 0    1   0  3  0 0 1 

− α4 0

1 2

0 0 0

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

85 



 0 1  G = (D − E) F =  0 − 2 3  −1

0   1  3 

0 − α3 0 En la tabla se dan los valores de los radios espectrales de las matrices de los métodos de Jacobi y de Gauss-Seidel, para algunos valores de α De esta α

r(J)

r(G)

-1

0.84865653915700

0.86037961002806

-3

0.97263258335935

1.11506929330390

-5

1.08264845639125

1.30515864914088

forma, a partir de estos resultados se concluye que 1. Para α = −1 ambos métodos son convergentes. 2. Para α = −3 el método de Jacobi converge y el método de Gauss Seidel diverge. 3. Para α = −5 ambos métodos son divergentes. Ejemplo 4.5. Consideremos la matriz 



 2 −2 0     2 3 α    1 0 2 Donde α ∈ R, tenemos que A = D − E − F siendo        0 0 0   0 2 0   2 0 0        D =  0 3 0  E =  −2 0 0  F =  0 0 −α        −1 0 0

0 0 2 A partir de la definición 

0 0



1 2



0





0 0  0 2 0   0 1 0      J = D (E + F ) =  0 1 1   −2 0 −α  =  − 2 0 − α 3 3     3 −1

0 0

1 2

−1 0

− 31 0

0

   

0

También −1 



 2 0 0    G = (D−E) F =  2 3 0    −1

1 0 2

Mg. Marlo Carranza Purca







1 2



0 0  0 2 0  0 2 0      1 1  α  0 0 −α  =  −     3 3 0  0 0 −3 0 0

0

− 14 0

1 2

0 0

Manual de métodos numéricos U.C.H.

0

   

4.2. Métodos iterativos

86 



0  0 1  G = (D − E) F =  0 − 2 − α 3 3  −1

0 − 13

   

0

En la tabla se dan los valores de los radios espectrales de las matrices de los métodos de Jacobi y de Gauss-Seidel, para algunos valores de α De esta α

r(J)

r(G)

-1

0.84865653915700

0.40824829046386

-4

0.03018084965341

0.81649658092773

-7

1.17502381317383

1.08012344973464

forma, a partir de estos resultados se concluye que 1. Para α = −1 ambos métodos son convergentes. 2. Para α = −4 el método de Jacobi diverge y el método de Gauss Seidel converge. 3. Para α = −7 ambos métodos son divergentes. Ejemplo 4.6. Estudiar la convergencia de los métodos de Jacobi y Gauss Seidel por puntos para las matrices      2 −1 1   1 2 −2      A= 1 1 1  y B= 2  2 2     2 2

−1 −1 2

1

Solución 1. Para la matriz A se tiene    0 −2 2    J =  −1 0 −1    −2 −2

0





 0 −2 2    y G =  0 2 −3    0

0

2

de donde se tiene que PJ (λ) = −λ3 , PG (λ) = −λ(2 − λ)2 De esta forma se obtiene que sp(J) = {0} por lo que r(J) < 1 Por lo que el método de Jacobi es convergente para la matriz A.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

87

Para sp(G) = {0, 2} por lo que r(G) = 2 > 1 Por lo que el método de Gauss - Seidel para la matriz A no es convergente. 2. Para la matriz B se verifica que    0 0,5 −0,5    J =  −1 0  −1   0,5 0,5

0





 0 0,5 −0,5    y G =  0 −0,5 −0,5    0

0

0,5

 2 De esta forma PJ√(λ) = −λ λ2 + 54 y PG (λ) = −λ 21 + λ Tenemos r(J) = 25 > 1, el método de Jacobi para la matriz B no es convergente, mientras que al ser r(G) 21 < 1, el método de Gauss-Seidel es convergente.

4.2.3.

Implementación

1. Presentamos la implementación del método de Eliminación Gausiana %Resolución de un sistema de ecuaciones usando %Eliminación Gaussiana %Ingreso de datos %solo se pide la matriz aumentada sera llamada a clear %limpia variables clc %limpia pantalla display(’ a=[ 1 -1 2 -1 -8; 2 -2 3 -3 -20; 1 1 1 0 -2; 1 -1 4 3 4] ’); a=input(’Ingrese la matriz aumentada a= ’); a [n,mm]=size(a); r=1; for k=1:n-1 w=abs(a(k,k)); %buscaremos el mayor elemento de una columna para usarla como %pivot for j=k:n if abs(a(j,k))>w w=abs(a(j,k));r=j end end %El mayor elemento de la k esta en la fila r %Hacemos el intercambio

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

88

aux=a(k,:);a(k,:)=a(r,:);a(r,:)=aux;

%Ahora usaremos el pivot para hacer ceros debajo de el for j=k+1:n m=a(j,k)/a(k,k); a(j,:)=a(j,:)-m*a(k,:) %eliminación debajo de la diagonal end end %resolver el sistema triangular x(n)=a(n,mm)/a(n,n); %x(n)=b(n)/a(n,n);%guarda el n-esimo valor de x suma=0; for k=n:-1:1 suma=a(k,mm); for j=k+1:1:n suma=suma-a(k,j)*x(j); end x(k)=suma/a(k,k); end % Impresion de los resultados disp(’El resultado del sistema es:’); for i=1:n fprintf(’x(%i)=%8.5f\n’,i, x(i)); end disp(’Presione una tecla para continuar’); pause 2. Presentamos la implementación del método de jacobi function resultados = jacobi(A,b,x,error) %Marlo Carranza Purca % la matriz debe ser diagonalmente dominante % sintaxix: % resultado= jacobi(matriz_A,vector_b,vector_inicial,error) % vpa(x’,10) te da el vector x’ con 10 cifras % A= [3 1 1 ; 1 3 1 ; 0 1 3] % b= [5 5 4]’ % x0=[1 0 0]’ % vpa(jacobi(A,b,x0,0.00001),10) n=length(A);

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

89

for i=1:n, piv=A(i,i); b(i)=b(i)/piv; for j=1:n A(i,j)=A(i,j)/piv; end end D=eye(n)-A; erel=1; ite=0; resultados=[ite,x’,erel]; while erel > error, y=D*x+b; resto=y-x; erel=norm(resto,inf)/norm(y,inf); x=y; ite=ite+1; resultados=[resultados;ite,x’,erel]; end 3. Implentación del método de Gauss-Seidel function resultados = fjor(A,b,x0,nmax,tol,omega) %Marlo Carranza Purca %JOR JOR method SOR GAUS SEIDEL % resultados = fjor(A,B,X0,NMAX,TOL,OMEGA) para resolver el sistema % A*X=B con el metodo JOR . % TOL especifica la tolerancia sel metodo. % NMAX especifica el maximo numero de iteraciones. % X0 especifica el valor inicial % OMEGA es el parametro de relajacion.Algunos autores distinguen % OMEGA>1 SOBRE RELAJACION % OMEGA m ) error(’Only square systems’); end ite=0; r = b-A*x0; r0=norm(r); err=norm(r); x=x0; resultados=[ite,x’,err]; while (err > tol) & (ite < nmax) ite = ite + 1;

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

4.2. Métodos iterativos

90

for i=1:n s = 0; for j = 1:i-1, s=s+A(i,j)*x(j); end for j = i+1:n, s=s+A(i,j)*x(j); end xnew(i,1)=omega*(b(i)-s)/A(i,i)+(1-omega)*x(i); end x=xnew; r=b-A*x; err=norm(r)/r0; resultados=[resultados;ite,x’,err]; end return

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

5

Resolución de sistemas no lineales

Introducción Vamos a estudiar los métodos que sirven para aproximar la raíces de un sistema de ecuaciones no lineales. De entre las distintas familias de métodos para abordar este problema, hemos elegido el método de Newton, la idea básica es es la misma que en el caso de una sola ecuación, linealizar el problema sustituyendo la función por su tangente, en este caso hiperplanos tangentes.

5.1.

Método de Newton

Recordemos el método de Newton se utilizo empleando la derivada de una función, para calcular su intersección con el eje x, esto es, al raíz ( vea la figura ). Dicho calculo se baso en la expansión de la serie de Taylor de primer

Figura 5.1: Representación gráfica del método de Newton orden f (xi+1 ) = f (xi ) + (xi+1 − xi )f 0 (xi )

91 Mg. Marlo Carranza Purca

5.1. Método de Newton

92

donde xi es el valor inicial de la raíz y xi+1 es el valor en el cual la recta tangente intersecta al eje x .En esta intersección , f (xi+1 ) es por definición, igual a cero y entonces la ecuación anterior queda 0 = f (xi ) + (xi+1 − xi )f 0 (xi ) −f (xi ) = (xi+1 − xi )f 0 (xi ) f (xi ) − 0 = xi+1 − xi f (xi ) f (xi ) xi+1 = xi − 0 f (xi ) que es la forma del método de Newton para una sola ecuación. En el caso de dos variables, una serie de Taylor de primer orden se escribe para cada ecuación no lineal como ∂ui ∂ui + (yi+1 − yi ) ∂x ∂y ∂vi ∂vi = vi + (xi+1 − xi ) + (yi+1 − yi ) ∂x ∂y

ui+1 = ui + (xi+1 − xi ) vi+1

de la misma manera como en la versión para una sola ecuación,la raíz aproximada corresponde a los valores x y y, donde ui+1 y vi+1 son iguales a cero ∂ui ∂ui + (yi+1 − yi ) ∂x ∂y ∂vi ∂vi 0 = vi + (xi+1 − xi ) + (yi+1 − yi ) ∂x ∂y

0 = ui + (xi+1 − xi )

de aquí se tiene   x ∂ui + y ∂ui = −u + x ∂ui + y ∂ui i+1 ∂x i+1 ∂y i i ∂x i ∂y  i i i i xi+1 ∂v + yi+1 ∂v = −vi + xi ∂v + yi ∂v ∂x ∂y ∂x ∂y

(5.1)

como se conocen los valores con subíndice i, las únicas incógnitas son xi+1 y yi+1 entonces se tiene el sistema de ecuaciones 5.1 , usando la regla de Cramer del Álgebra elemental se resuelve el sistema 5.1 y se tiene

 xi+1 = xi −

∂v ∂u ui ∂yi −vi ∂yi ∂ui ∂vi ∂u ∂v − ∂yi ∂xi ∂x ∂y

, yi+1 = yi −

∂u ∂v vi ∂xi −ui ∂xi ∂ui ∂vi ∂u ∂v − ∂yi ∂xi ∂x ∂y

, J f (x, y) = 

∂ui ∂x

∂ui ∂y

∂vi ∂x

∂vi ∂y

El denominador de cada una de estas ecuaciones se conoce como el Jacobiano del sistema. Donde la matriz Jacobiana de f = (ui , vi ) es J f (x, y) Ejemplo 5.1.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

 

5.1. Método de Newton

93

Resolver el sistema de ecuaciones   2 x + xy = 10 (5.2)  y + 3xy 2 = 57 Use como valores iniciales x = 1,5 y y = 3,5 tenga en cuenta que una solución es (2, 3)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6

Interpolación Numérica

Introducción Son muchas y muy distintas las situaciones en las que, aparecen series de datos o resultados de mediciones experimentales de los cuales sólo se conocen como se comportan en una cierta cantidad finita de ítems ( por ejemplo, la población de un pais durante los años de una década ) y para los cuales se necesita encontrar una ley general que sirva para su tratamiento ( como conocer la población a mediados de uno de los años o la tasa de crecimiento de esta ). Esta ley general a la que se adaptan esos datos no es otra cosa que una función que tome los valores predeterminados. La función interpoladora servirá para para sustituir a la función desconocida, tanto para evaluarla en puntos donde no se conoce su valor, como para conocer su tasa e variación ( diferenciación numérica ) o su distribución acumulativa ( integración numérica ). La función interpoladora debe ser, por tanto fácil de evaluar, derivar e integrar . El método más común es la interpolación polinomial, recuerde que la fórmula general para un polinomio de grado n es P (x) = a0 + a1 x + a2 x2 + · · · + an xn dados n + 1 puntos hay un solo polinomio de interpolación de grado n que pasa por los n + 1 puntos.

6.1.

Polinomio interpolador de Lagrange

Dados los puntos {x0 , x1 , . . . , xn } y los valores de una función f (x) {f (x0 ), f (x1 ), . . . , f (xn )}

94 Mg. Marlo Carranza Purca

6.1. Polinomio interpolador de Lagrange

95

encontrar un polinomio Pn (x) de grado ≤ n que verifique Pn (x0 ) = f (x0 ), Pn (x1 ) = f (x1 ), . . . , Pn (xn ) = f (xn ) Dicho polinomio se conoce como polinomio interpolador de Lagrange.

6.1.1.

Formulación de Lagrange

Teorema 88 (Fórmula de interpolación de lagrange). Sea una función f : [a, b] → R y {x0 , x1 , . . . , xn } ∈ [a, b] con xi 6= xj si i 6= j existe un único polinomio Pn (x) que verifica Pn (xi ) = f (xi ) Para todo i = 0, 1, . . . , n , además este polinomio viene dado por la combinación lineal (6.1)

Pn (x) = f (x0 )L0 (x) + f (x1 )L1 (x) + · · · + f (xn )Ln (x)

Donde para cada i ∈ {0, 1, . . . , n} se tiene (6.2)

Li (x) =

n Y

x − xj xi − xj j=0;j6=i

además podemos agregar 1. Para que se verifique Li (xj ) = 0; j 6= i n Y

Li (x) = ci

(x − xj )

j=0;j6=i

2. Para que se verifique Li (xj ) = 1; j = i ci =

n Y

(xi − xj )−1

j=0;j6=i

Definición 10. El polinomio dado el la ecuación (2) se denomina polinomio de interpolación de Lagrange o simplemente polinomio de interpolación de f en los puntos {x0 , x1 , . . . , xn } y los polinomios dados en la ecuación (6.2) son los polinomios básicos de interpolación de Lagrange.

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.1. Polinomio interpolador de Lagrange

96

Ejemplo 6.1. Encontrar el polinomio de interpolación para la siguiente función f (x) = con tabla En este caso tenemos xi

f (xi )

2

0.5

2.5

0.4

4

0.25

1 x

(x − 2,5)(x − 4) (2 − 2,5)(2 − 4) (x − 2)(x − 4) L1 (x) = (2,5 − 2)(2,5 − 4) (x − 2)(x − 2,5) L2 (x) = (4 − 2)(4 − 2,5)

L0 (x) =

y el polinomio interpolador es (x − 2)(x − 4) (x − 2)(x − 2,5) (x − 2,5)(x − 4) + 0,4 + 0,25 (2 − 2,5)(2 − 4) (2,5 − 2)(2,5 − 4) (4 − 2)(4 − 2,5) 1 8 1 P2 (x) = (x − 2,5)(x − 4) + (x − 2)(x − 4) + (x − 2)(x − 2,5) 2 15 12 Para aproximar P2 (x) = 0,5

1 = 0.3 3 f (3) ' P2 (3) = 0,325 f (3) =

Se muestra la gráfica de la función f (x) =

1 x

y el polinomio de interpolación

P2 (x) = 1,1167x2 − 6,8250x + 9,6833 usamos el código siguiente p1=[1 -2.5],p2=[1 -4],p3=[1 -2] pl=0.5*conv(p1,p2)-8/15*conv(p2,p3)+1/12*conv(p1,p3) x=linspace(1,5,300); y=polyval(pl,x); hold on plot(x,0) plot(x,y,x,1./x,’:m’) legend(’polinomio 1.1167 x^2-6.8250x+9.6833 ’,’función 1/x ’) X=[2 2.5 4 ]; Y=[0.5 0.4 0.25]; plot(X,Y,’or’)

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.1. Polinomio interpolador de Lagrange

97

Ejemplo 6.2. Encontrar el polinomio de interpolación para la siguiente tabla En este caso xi

f (xi )

2

1

3

2

-1

3

4

4

tenemos (x − 3)(x + 1)(x − 4) (−1)2(−4) (x − 2)(x + 1)(x − 4) L1 (x) = 4(−1) (x − 2)(x − 3)(x − 4) L2 (x) = (−3)(−4)(−5) (x − 2)(x − 3)(x + 1) L3 (x) = (2)(5) L0 (x) =

(x − 3)(x + 1)(x − 4) 6 (x − 2)(x + 1)(x − 4) = −4 (x − 2)(x − 3)(x − 4) = −60 (x − 2)(x − 3)(x + 1) = 10 =

y el polinomio interpolador es (x − 3)(x + 1)(x − 4) (x − 2)(x + 1)(x − 4) (x − 2)(x − 3)(x − 4) − − + 6 2 20 2(x − 2)(x − 3)(x + 1) + 5 1 3 P3 (x) = (x + 21x2 − 64x + 96) 60 P3 (x) =

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.1. Polinomio interpolador de Lagrange

98

Vamos a mostrar la gráfica del polinomio de interpolación P3 (x) y los datos de la tabla, para lo cual damos la siguiente propuesta p=[1/60 21/60 -64/60 96/60] x=linspace(-4,5,300); y=polyval(p,x); plot(x,y) legend(’polinomio 1/60(x^3+21x^2-64x+96)’) roots(p) hold on plot(x,0) X=[2 3 -1 4 ]; Y=[1 2 3 4 ]; plot(X,Y,’or’)

6.1.2.

Implementación

Vamos a mostrar una función en Matlab que nos permitirá interpolar un determinado valor x , teniendo como datos las coordenadas (xi , yi ) function y=fbaselag(x,i,nodos) % funcion base n=length(nodos)-1; y=1;

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.1. Polinomio interpolador de Lagrange

99

for j=0 : n, if i ~= j y=y.*(x-nodos(j+1))./(nodos(i+1)-nodos(j+1)); end end

function y=plagrange(x,xdato,ydato) % funcion para el polinomio de lagrange % ej % xd=[0 0.2 0.5 0.6 0.9 % yd=[0 0.1987 0.4794 0.5646 0.7833 % y=plagrange(0.1 , xd , yd ) % % n=length(xdato)-1; y=0; for i=0 : n, y=y+fbaselag(x,i,xdato).*ydato(i+1); end

1 ] 0.8415]

Ejemplo 6.3. Calcularemos el polinomio de interpolación usando la tabla xi

0

0.2

yi

0

0.1987

0.5

0.6

0.9

0.4794 0.5646 0.7833

1 0.8415

que se obtiene usando la función f (x) = sen(x) en el intervalo [−π, π] Para esto xd=[0 0.2 0.5 0.6 0.9 1 ] yd=[0 0.1987 0.4794 0.5646 0.7833 0.8415] plot(xd,yd,’or’) x=linspace(-pi,pi,100); ye=sin(x); hold on plot(x,ye,’r’) ya=plagrange(x,xd,yd); plot(x,ya,’b’) legend(’Coordenadas dato’,’ Función exacta ’,... ’ polinomio de Lagrange’); hold off

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.1. Polinomio interpolador de Lagrange

100

Ejemplo 6.4. Calcularemos el polinomio de interpolación usando la tabla Cuyos valores xi

-1

-0.8 -0.6 -0.4 -0.2 0

0.2 0.4 0.6 0.8 1

yi

1

0.8

0.2 0.4 0.6 0.8 1

0.6

0.4

0.2

0

corresponden a la función f (x) = |x|, para lo cual emplearemos el código siguiente xd=[-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 yd=[ 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 plot(xd,yd,’or’) x=linspace(-1,1,100); ye=abs(x); hold on plot(x,ye,’r’) ya=plagrange(x,xd,yd); plot(x,ya,’b’) legend(’Coordenadas dato’,’ Función exacta ’,... ’ polinomio de Lagrange’); hold off

Mg. Marlo Carranza Purca

0.8 0.8

1 ]; 1 ];

Manual de métodos numéricos U.C.H.

6.1. Polinomio interpolador de Lagrange

101

Observación 6.1. 1. El ejemplo anterior se puede apreciar fuertes oscilaciones en los extremos del intervalo [−1, 1] conocidos como efectos de borde, esto muestra que que una función continua no puede aproximarse en general de manera arbitrariamente precisa mediante polinomios de Lagrange. 2. El cálculo del polinomio interpolador a partir de la fórmula requiere de muchas operaciones . Además una vez determinado el polinomio de interpolación de f en los puntos {x0 , x1 , . . . , xn } ∈ [a, b], si añadimos un nuevo punto xn+1 disinto a los anteriores y queremos hallar el polinomio de interpolación de f en los puntos {x0 , x1 , . . . , xn+1 } ∈ [a, b] debemos repetir todo el proceso, dado que cambian todos los polinomios básicos {L(x0 ), L(x1 ), . . . , L(xn )} por esta razón,tampoco será este el algoritmo para calcular el polinomio de interpolación de Lagrange 3. Al interpolar una función f en n + 1 puntos distintos, puede ocurrir que el grado 6= n, de hecho el grado de Pn (x) puede ser pequeño aunque n sea grande. Así por ejemplo P3 (x) = 2x − 3 es el polinomio de interpolación de f (x) = x4 − 2x3 − x2 + 4x − 3 en los puntos {−1, 0, 1, 2} Para mostrar lo dicho proponemos el siguiente código p=[2 -3], f=[1 -2 -1 4 -3] x=linspace(-2,3,300); y=polyval(f,x); yy=polyval(p,x); plot(x,y) legend(’polinomio x^4-2x^3-x^2+4x-3’) hold on plot(x,0),plot(x,yy) X=[-1 0 1 2];

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

102

Y=[-5 -3 -1 1]; plot(X,Y,’or’)

6.2.

Formulación de Newton

Hasta ahora hemos visto como construir el polinomio de interpolación de Lagrange, ahora vamos a ver un método mas eficiente de construcción del polinomio de interpolación. Supongamos que una vez calculado dicho polinomio, necesitamos incluir otro punto de interpolación. Las razones pueden ser diversas se han obtenido nuevos valores experimentales para la tabla que estamos interpolando, queremos obtener paulatinamente los polinomios de distintos grados para saber cuál nos interesa más, etc. En esta situación la fórmula de Lagrange no nos sirve pues, con sólo añadir un punto,todos los polinomios básicos Li cambian. Necesitamos una fórmula que permita encontrar el nuevo polinomio interpolación a partir a partir del que habíamos hallado, de forma que el trabajo realizado pueda aprovecharse.

6.2.1.

Interpolación lineal

La forma más simple de interpolación consiste en unir dos puntos por una linea recta. Dicha técnica se conoce como interpolación lineal f (x1 ) − f (x0 ) f1 (x) − f (x0 ) = x − x0 x1 − x0 f (x1 ) − f (x0 ) f1 (x) = f (x0 ) + (x − x0 ) x 1 − x0 La notación f1 (x) designa que éste es un polinomio de interpolación de primer grado y es una aproximación en diferencia dividida finita

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

103

Ejemplo 6.5. calcular el polinomio que interpola a la función f (x) = ln(x) en los puntos el xi

f (xi )

1

0

6

1.791759

polinomio de interpolación de Newton es 1,791759 − 0 (x − 1) 6−1 1,791759 f1 (x) = (x − 1) 5 f1 (x) = 0 +

y ahora en los puntos el polinomio de interpolación de Newton es xi

f (xi )

1

0

4

1.386294

1,386294 − 0 (x − 1) 4−1 1,386294 g1 (x) = (x − 1) 3

g1 (x) = 0 +

Así usando el intervalo mas corto el error relativo se reduce,ambas interpolaciones se muestran a continuación X=[1

4

Mg. Marlo Carranza Purca

6 ];

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

104

Y=[0 1.386294 1.791759 ]; plot(X,Y,’or’) f=[1.791759/5 -1.791759/5], g=[1.386294/3 -1.386294/3] x=linspace(0,7,300); y=polyval(f,x); yy=polyval(g,x); hold on plot(x,y,’r’) plot(x,yy,’b’) plot(x,log(x),’g’) legend(’Coordenadas dato’,’polinomio f(x)= 1.791759/5 x - 1.791759/5 ’,... ’polinomio g(x)= 1.386294/3 x - 1.386294/3 ’,’función exacta ln(x)’) plot(x,0) hold off

6.2.2.

Interpolación cuadrática

En el ejemplo anterior el error que se comete es debido a que nuestra aproximación es hecha por una recta.En consecuencia, una estrategia para mejorar la estimación consiste en introducir una curva a la linea que une dichos puntos. Si se tienen tres puntos como datos estos se pueden ajustar por un único polinomio de grado dos, una forma particularmente conveniente de escribirlo es (6.3)

f2 (x) = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 )

para determinar los coeficientes evaluamos 1. x = x0 para obtener b0 = f (x0 )

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

2. x = x1 para obtener b1 = 3. x = x2 para obtener b2 =

105 f (x1 )−f (x0 ) x1 −x0 f (x )−f (x ) f (x2 )−f (x1 ) − x1 −x 0 x2 −x1 1 0

x2 −x0

Ejemplo 6.6. Calcularemos el polinomio que interpola a la función f (x) = ln(x) en los puntos veamos xi

f (xi )

1

0

4

1.386294

6

1.791759

x0 = 1 x1 = 4 x2 = 6

f (x0 ) = 0 f (x1 ) = 1,386294 f (x1 ) = 1,791759

Aplicando las ecuaciones anteriores tenemos b0 = 0 1,386294 − 0 = 0,4620981 b1 = 4−1 1,791759−1,386294 − ,04620981 6−4 b2 = = −0,0518731 6−1 Así el polinomio de interpolación es f2 (x) = 0 + 0,4620981(x − 1) − 0,0518731(x − 1)(x − 4) f2 (x) = −0,0519x2 + 0,7215x − 0,6696 Mostramos el gráfico del polinomio de interpolación f2 (x) X=[1 4 6 ]; Y=[0 1.386294 1.791759 ]; plot(X,Y,’or’) f=0.4620981*[0 1 -1]-0.0518731*[1 -5 4 ] x=linspace(0,7,300); y=polyval(f,x); hold on plot(x,y,’b’) plot(x,log(x),’g’) legend(’Coordenadas dato’,’polinomio f2(x)=-0.0519x^2+0.7215x-0.6696 ’,... ’función exacta ln(x)’) plot(x,0) hold off

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

6.2.3.

106

Forma general de los polinomios de interpolación de Newton

El análisis anterior se puede generalizar para ajustar un polinomio de n-ésimo grado a n + 1 dato, el polinomio de n-ésimo grado es (6.4) fn (x) = b0 + b1 (x − x0 ) + · · · + bn (x − x0 )(x − x1 )(x − x2 ) . . . (x − xn−1 ) como se hizo antes con las interpolaciones lineales y cuadráticas, los puntos asociados con los datos se utilizan para evaluar los coeficientes b0 , b1 , . . . bn . Para un polinomio de n-ésimo grado se requieren n + 1 puntos (x0 , f (x0 )), (x1 , f (x1 )),. . . , (xn , f (xn )) . Usamos estos datos y las siguientes ecuaciones para evaluar los coeficientes:

(6.5)

b0 b1 b2 .. . bn

= f (x0 ) = f [x1 , x0 ] = f [x2 , x1 , x0 ] . = .. = f [xn , . . . , x1 , x0 ]

donde las evaluaciones de la función colocadas entre paréntesis son diferencias divididas finitas . Por ejemplo, la primera diferencia dividida finita en forma general se representa como f [xi , xj ] =

Mg. Marlo Carranza Purca

f (xi ) − f (xj ) xi − xj Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

107

La segunda diferencia dividida finita, que representa la diferencia de las dos primeras diferencias divididas, se expresa en forma general como f [xi , xj , xk ] =

f [xi , xj ] − f [xj , xk ] xi − xk

En forma similar, la n-ésima diferencia dividida finita es f [xn , xn−1 . . . , x1 , x0 ] =

f [xn , . . . , x1 ] − f [xn−1 , . . . , x0 ] x n − x0

estas diferencias sirven para evaluar los coeficientes en las ecuaciones 6.5 los cuales se sustituirán en la ecuación en la ecuación 6.4 para obtener el polinomio de interpolación fn (x) = f (x0 ) + f [x1 , x0 ](x − x0 ) + f [x2 , x1 , x0 ](x − x0 )(x − x1 ) + · · · (6.6) · · · + f [xn , . . . x0 ](x − x0 )(x − x1 )(x − x2 ) . . . (x − xn−1 ) que se conoce como polinomio de interpolación de Newton en diferencias divididas. Veamos la representación gráfica de la naturaleza recursiva de las diferencias divididas i

xi

f (xi ) P rimero

Segundo

tercero

0 x0 f (x0 )

f [x1 , x0 ]

f [x2 , x1 , x0 ] f [x3 , x2 , x1 , x0 ]

1 x1 f (x1 )

f [x2 , x1 ]

f [x3 , x2 , x1 ]

2 x2 f (x2 )

f [x3 , x2 ]

3 x3 f (x3 ) Ejemplo 6.7. Calcularemos el polinomio que interpola a la función f (x) = ln(x) en los puntos veamos , utilizando la ecuación 6.4 con n = 3, el polinomio de tercer xi

1

yi

0

4

5

6

1.386294 1.609438 1.791759

grado es f3 (x) = b0 + b1 (x − x0 ) + b2 (x − x0 )(x − x1 ) + b3 (x − x0 )(x − x1 )(x − x2 ) f3 (x) = f (x0 ) + f [x1 , x0 ](x − x0 ) + f [x2 , x1 , x0 ](x − x0 )(x − x1 ) + +f [x3 , x2 , x1 , x0 ](x − x0 )(x − x1 )(x − x2 ) Las primera diferencias divididas del problema son 1,386294 − 0 = 0,4620981 4−1 1,791759 − 1,386294 f [x2 , x1 ] = = 0,2027326 5−4 1,609438 − 1,386294 f [x3 , x2 ] = = 0,1823216 6−5

f [x1 , x0 ] =

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

108

Las segundas diferencias divididas son 0,2027326 − 0,4620981 = −0,05187311 5−1 0,1823216 − 0,2027326 f [x3 , x2 , x1 ] = = −0,02041100 6−4 f [x2 , x1 , x0 ] =

La tercera diferencia dividida es f [x3 , x2 , x1 , x0 ] =

−0,02041100 − (−0,05187311) = 0,007865529 6−1

Así el polinomio de interpolación es f3 (x) = 0+0,4620981(x−1)−0,05187311(x−1)(x−4)+0,007865529(x−1)(x−4)(x−6)

6.2.4.

Implementación

Vamos a mostrar una función en Matlab que nos permitirá interpolar una función x via el polinomio de Newton basado en diferencias divididas function y=diffx(xdato,orden) % función diferencias en los nodos n=length(xdato); for i=1:n-orden, y(i)=xdato(orden+1)-xdato(i); end

function y=ddiv(xdato,ydato,orden,i) % función diferencias divididas % xdato , ydato array de nodos xi , yi % orden : de la diferencia % i-ésimo elememto de las diferencias divididas n=lenght(xdato); for j=1:orden, ydato=diff(ydato)./diffx(xdato,j); end y=ydato(i+1);

function y=pddivnewton(x,xdato,ydato) % función polinomio de Newton %n=length(xdato)-1; n=length(xdato)-1; y=ddiv(xdato,ydato,0,0);

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.2. Formulación de Newton

109

prod=1; for i=1:n-1, prod=prod.*(x-xdato(i)); y=yddiv(xdato,ydato,i,0).*prod; end

Ejemplo 6.8. Calcularemos el polinomio de interpolación de Newton, usando la tabla Cuyos xi

0

0.2

yi

0

0.1987

0.5

0.6

0.9

0.4794 0.5646 0.7833

1 0.8415

valores corresponden a la función f (x) = sen(x), para lo cual emplearemos el código siguiente xd=[0 0.2 0.5 0.6 0.9 1]; yd=[0 0.1987 0.4794 0.5646 0.7833 0.8415]; plot(xd,yd,’or’) x=linspace(-1,1,100); ye=sin(x); hold on plot(x,ye,’r’) ya=pddivnewton(x,xd,yd); plot(x,ya,’b’) legend(’Coordenadas dato’,’ Función exacta ’,... ’ polinomio de Newton’); hold off

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.3. Interpolación por partes

6.3.

110

Interpolación por partes

Introducción La palabra inglesa Spline ( trazador ) denota un instrumento flexible usado en dibujo técnico que sirve para trazar curvas suaves, se trata de una regla que puede ser adaptada flexionándola, a la forma que tome la curva que se desee dibujar.Esta técnica nació de la necesidad práctica por parte de los ingenieros navales en el diseño de los cascos de navíos, dadas las características propias de los medios acuosos, los barcos deben ofrecer la menor resistencia al momento de desplazarse, esto era conseguido de manera manual, se construían las secciones transversales mediante una herramienta denominada spline, en este método implícitamente se debe resolver un sistema de ecuaciones lineales esto hace bastante laboriosa la elaboración de los splines, pero con la ayuda de una computadora se puede hacer menos trabajosa.

6.3.1.

Trazadores lineales

La unión más simple entre dos puntos es una línea recta. Los trazadores de primer grado para un grupo de datos ordenados pueden definirse como un conjunto de funciones lineales, f (x) =

f (x0 ) + m0 (x − x0 )

,

x 0 < x < x1

f (x) = .. .. . .

f (x1 ) + m1 (x − x1 ) .. .

,

x1 < x < x2

f (x) = f (xn−1 ) + mn−1 (x − xn−1 ) , xn−1 < x < xn donde mi es la pendiente de la línea recta que une los puntos mi =

f (xi+1 ) − f (xi ) xi+1 − xi

Estas ecuaciones se pueden usar para evaluar la función en cualquier punto entre x0 y xn localizando primero el intervalo dentro del cual está el punto. Después se usa la ecuación adecuada para determinar el valor de la función dentro del intervalo. El método es obviamente idéntico al de la interpolación lineal. Ejemplo 6.9. Ajuste los datos de la tabla con trazadores de primer grado usando la tabla para lo cual realizamos los cálculos respectivos

Mg. Marlo Carranza Purca

Manual de métodos numéricos U.C.H.

6.3. Interpolación por partes

111

x

3

4.5

f (x)

2.5

1

f (x) = 2,5 + f (x) = 1 +

1,5 (x 1,5

1,5 (x 2,5

f (x) = 2,5 +

7

9

2.5 0.5

− 3) , 3 < x < 4,5

− 4,5) , 4,5 < x < 7

−2 (x 2

− 7) ,

7
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF