Libro Mn 2013 Mayo

121
Métodos Numéricos y Programación Braulio Gutiérrez Pari Universidad Peruana Unión-Juliaca Facultad de Ingeniería y Arquitectura Ingenieria Civil Marzo del 2013 Chullunquiani-Perú

description

apuntes de clase

Transcript of Libro Mn 2013 Mayo

Page 1: Libro Mn 2013 Mayo

Métodos Numéricos y Programación

Braulio Gutiérrez Pari

Universidad Peruana Unión-JuliacaFacultad de Ingeniería y Arquitectura

Ingenieria Civil

Marzo del 2013Chullunquiani-Perú

Page 2: Libro Mn 2013 Mayo

ii

Page 3: Libro Mn 2013 Mayo

Índice general

Introducción V

1. Preliminares del Matlab 11.1. Notación Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Operaciones con vectores y matrices . . . . . . . . . . . . . . . . . . . . . . . . 21.3. Funciones que actúan sobre matrices . . . . . . . . . . . . . . . . . . . . . . . 31.4. Edición de linea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5. Fichero function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.5.1. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5.2. Sentencias condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.6. Algunas pautas para graficar funciones simples . . . . . . . . . . . . . . . . . . 17

2. Nociones Básicas Sobre Errores 192.1. Factores que intervienen en la resolución numérica . . . . . . . . . . . . . . . . 19

2.1.1. Precisión de los datos de entrada . . . . . . . . . . . . . . . . . . . . . 202.1.2. Representación de los datos en el computador . . . . . . . . . . . . . . 212.1.3. Las operaciones numéricas efectuadas . . . . . . . . . . . . . . . . . . . 22

2.2. Errores Absolutos y Errores Relativos . . . . . . . . . . . . . . . . . . . . . . . 26

3. Ceros reales de funciones reales 293.1. Aislamiento de las Raices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2. Refinamiento: Métodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2.1. Método de Bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.2.2. Método de la Posición Falsa . . . . . . . . . . . . . . . . . . . . . . . . 373.2.3. Método del Punto fijo (MPF) . . . . . . . . . . . . . . . . . . . . . . . 383.2.4. El Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . 423.2.5. Método de Secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.2.6. Comparación de los Métodos Iterativos . . . . . . . . . . . . . . . . . . 58

3.3. Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4. Resolución de Sistemas Lineales 634.1. Aspectos Teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.1.1. Conjunto Imagen de una Matriz A . . . . . . . . . . . . . . . . . . . . 654.1.2. Rango de una Matriz A . . . . . . . . . . . . . . . . . . . . . . . . . . 65

4.2. Métodos Numéricos para Resolver Sistemas de Ecuaciones Lineales . . . . . . 664.3. Método de Cramer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.4. Método de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

4.4.1. Resolviendo un Sistema Triangular . . . . . . . . . . . . . . . . . . . . 68

iii

Page 4: Libro Mn 2013 Mayo

iv ÍNDICE GENERAL

4.4.2. Conversión de un Sistema de Ecuaciones Lineales a uno Triangular Su-perior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.5. Sensibilidad en Sistemas Lineales: Número de Condición . . . . . . . . . . . . 744.6. Estrategia con Pivoteamiento Parcial . . . . . . . . . . . . . . . . . . . . . . . 784.7. Descomposición LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.7.1. Cálculo de los Factores L y U . . . . . . . . . . . . . . . . . . . . . . . 804.8. Descomposición de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

4.8.1. Cálculo del factor de Cholesky . . . . . . . . . . . . . . . . . . . . . . . 834.9. Métodos Iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864.10. Comparación entre Métodos Directos e Iterativos . . . . . . . . . . . . . . . . 87

5. Introducción a Sistemas No Lineales 895.1. El Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

5.1.1. Convergencia y Rapidez del Método de Newton . . . . . . . . . . . . . 97

6. Interpolación y Aproximación 996.1. Interpolación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

6.1.1. Interpolación Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . 1006.1.2. Modos de Obtener el Polinomio pn . . . . . . . . . . . . . . . . . . . . 101

6.2. Aproximación: Caso Discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046.2.1. Método de Mínimos cuadrados . . . . . . . . . . . . . . . . . . . . . . . 106

7. Integración numérica 1117.1. Método de los Trapecios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117.2. Método de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Bibliografía 115

Page 5: Libro Mn 2013 Mayo

Introducción

La matemática está comprendida de varias partes, cada una de ellas tiene importanciapropia, pero algunas también son fundamentales en diferentes disciplinas.

Muchos problemas de la vida real pueden ser representados por formulaciones matemáticas,las cuales son denominadas modelos matemáticos. Usando argumentos matemáticos teóricos,algunas veces es posible garantizar la existencia de soluciones para esos modelos matemáticos,pero encontrar manualmente esas soluciones puede resultar extremadamente difícil y a vecesimposible.

Estudiar métodos numéricos desde un punto de vista general nos permitirá analizar meca-nismos de cálculo capaces de otorgar soluciones, o aproximaciones a las soluciones, allí dondelas herramientas teóricas fracasaban. Estos mecanismos numéricos de cálculo deben caminarde la mano con el computador, pues en su mayoría requieren de muchos pasos y frecuentementeestán orientados a la resolución de problemas de grandes dimensiones.

La importancia del estudio de métodos numéricos es indiscutible, pues gran parte de lasinvestigaciones en ciencias, ingenierías, economía, etc., recurren a técnicas numéricas para laobtención de resultados.

v

Page 6: Libro Mn 2013 Mayo

vi INTRODUCCIÓN

Page 7: Libro Mn 2013 Mayo

Capítulo 1

Preliminares del Matlab

1.1. Notación Matricial

Sea Rm×n el espacio vectorial de las matrices reales de dimensión m× n, de la forma

A =

⎡⎢⎢⎢⎣a1,1 a1,2 · · · a1,na2,1 a2,2 · · · a2,n...

.... . .

...am,1 am,2 am,n

⎤⎥⎥⎥⎦donde la matriz anterior se denota como A = (ai,j), i = 1, ...,m y j = 1, ..., n

Los elementos de una matriz se introducen entre corchetes. Las filas se separan medianteun punto y coma (;) y los elementos separados por los espacios en blanco o comas.

>> A=[1 2 3; 3 1 2; 1 1 0]

Una vez definida una matriz o un vector, se pùede acceder a sus elementos o submatricescon las órdenes

Orden SalidaV (i) Coordedenada i del vector VV (end) Última coordenada del vector VA(i,j) Elemento de la matriz A que ocupa la posición i,jA(:,j) Columna j de la matriz AA(i,:) Fila i de la matriz AA(:) Todos los elementos de A, en una sola columnaA(v,w) Submatriz de A que contiene las filas indicadas en las coordenadas de v y las

columnas indicadas en wA(i,:) = [ ] Elimina la fila i de la matriz AA(:,j) = [ ] Elimina la columna j de la matriz A

Puede definirse también ciertas matrices con las siguientes órdenes

1

Page 8: Libro Mn 2013 Mayo

2 CAPÍTULO 1. PRELIMINARES DEL MATLAB

Orden Salidaones(n) Matriz cuadrada n× n de unosones(m,n) Matriz m× n de unoszeros(n) Matriz cuadrada n× n de ceroszeros(m,n) Matriz m× n de ceroseye(n) Matriz identidad n× neye(m,n) Matriz m× n con unos en la diagonal principal y el resto de ceros

1.2. Operaciones con vectores y matrices

Si A y B son matrices con las dimensiones adecuadas y λ es un escalar, las operacioneshabituales se efectúan con las siguientes órdenes

Operación ResultadoA+B Suma A y BA−B Resta A y BA ∗B Multiplica A por BA/B División derecha matricialA\B Divisón izquierda matricialAˆ n potencia matricial

Ademas de las operaciones mencionadas, en MATLAB se definen otras operaciones a las quellamaremos operaciones elemento a elemento

Operación ResultadoA. ∗B Multiplicación de arreglosA./B División derecha de arreglosA.\B División izquierda de arreglosA.^B Potenciación de arreglosA0 transpuesta complejaA.0 transpuesta matricial

Page 9: Libro Mn 2013 Mayo

1.3. FUNCIONES QUE ACTÚAN SOBRE MATRICES 3

1.3. Funciones que actúan sobre matrices

Las siguientes funciones permiten obtener información sobre las matrices o vectores quetienen como argumentos de entrada

Funciones Salidasize(A) Vector con las dimensiones de la matriz Asize(A, 1) Número de filas de la matriz Asize(A, 2) Número de columnas de la matriz Alength(V ) Número de coordenadas del vector Vdet(A) Determinante de la matriz Atrace(A) Traza de la matriz Ainv(A) Devuelve la inversa de Asum(A) Devuelve un vector fila en el que el elemento i contiene la suma de todos

los elementos de la columna i de A.sum(V ) Devuelve la suma de coordenadas del vector Vdiag(A) Devuelve la diagonal de la matriz A.

1.4. Edición de linea

· · · Continúa la entrada de la expresión en la línea siguiente, Permite separar instrucciones en la misma ejecución; Ejecuta la instrucción pero no muestra el resultado

Esc Borra la línea% Todo lo que aparece en la línea después del símbolo % se considera un comentarioclc Borra el contenido de la ventana de comandos y lo coloca el prompt (>>) en la pri

mera línea de la ventana

Obviamente, las funciones matemáticas habituales también están en MATLAB con la únicaparticularidad de que actúan sobre vectores a matrices elemento a elemento

Función MATLAB Función MATLABex exp(x) sen(x) sen(x)ln(x) log(x) cos(x) cos(x)log10(x) log10(x) tan(x) tan(x)log2(x) log2(x) cot(x) cot(x)√x sqrt(x) sec(x) sec(x)

|x| abs(x) csc(x) csc(x)

Comandos que se usan en MATLAB

= = igual a> mayor que< menor que>= mayor o igual que<= menor o igual que∼= distinto de

Page 10: Libro Mn 2013 Mayo

4 CAPÍTULO 1. PRELIMINARES DEL MATLAB

y los siguientes conectivos lógicos

& y| o∼ noxor o excluyente

Ejemplo 1.1

A =

⎛⎝ 1 4 7 32 5 1 53 6 5 1

⎞⎠>> A=[1 4 7 3;2 5 1 5;3 6 5 1]

A=1 4 7 32 5 1 53 6 5 1

>> A(3,2)= O% reemplaza la tercera fila y la segunda columna con cero

A=1 4 7 32 5 1 53 0 5 1

>> A(4,3)= 8% A(4,3) no existe; se modifica las dimensiones de la matrizpara añadir el elemento A(4,3) en una cuarta fila. El resto se llena con ceros.

A=1 4 7 32 5 1 53 0 5 10 0 8 0

>> A(1,5)= 9% A(1,5) no existe; se modifica las dimensiones de la matrizpara añadir el elemento A(1,5) en una quinta columna. El resto se llena conceros

A=1 4 7 3 92 5 1 5 03 0 5 1 00 0 8 0 0

>> A(:,2) =[]% elimina la segunda columna de A

A=1 7 3 92 1 5 03 5 1 00 8 0 0

Page 11: Libro Mn 2013 Mayo

1.4. EDICIÓN DE LINEA 5

A=[A,[1:4]]% añade una columna a la matriz A

A=1 7 3 9 12 1 5 0 23 5 1 0 30 8 0 0 4

Ejemplo 1.2

A =

⎛⎝ 1 2 3 45 6 7 89 0 5 2

⎞⎠>> A=[1 2 3 4;5 6 7 8;9 0 5 2]

A=1 2 3 45 6 7 89 0 5 2

>> [m n] =size(A)% tamaño de la matriz

m=3

n=4

Cómo seleccionar a los elemento de una matriz

>> A(2,3)% elemento de la segunda fila y tercera columna de A

ans=7

>> A(3,:)% elemento de la tercera fila de A

ans=9 0 5 2

>> A(:,2)% elemento de la segunda columna de A

ans=260

Cómo acceder a una submatriz de una matriz dada

>>A([2,3],:)% submatriz de A formada por las filas de 2 y 3

ans=5 6 7 89 0 5 2

Page 12: Libro Mn 2013 Mayo

6 CAPÍTULO 1. PRELIMINARES DEL MATLAB

>> A(:,[2,3,4])% submatriz de A formada por las columnas 2,3 y 4

ans=2 3 46 7 80 5 2

>> A([2,3],[1,2])% submatriz formado por filas 2 y 3, columnas 1 y 2

ans=5 69 0

>> A(2:3,2:4)% submatriz de A formada por filas (2 a 3) y columnas (2 a 4)

ans=6 7 80 5 2

Las matrices formadas por una sola fila o columna se denominavectores fila y columnarespectivamente. Las filas y columnas de una matriz se pueden completar utilizando vectoresfila y columna.

>> b=[2 4 6]’% vector columna

b=246

>> b(3)% tercer elemento del vector

ans=6

>> [A b]% agregamos una columna a la matriz A

ans=1 2 3 4 25 6 7 8 49 0 5 2 6

>> v=[1 3 5 7]% vector fila

V=1 3 5 7

>> v(4)% cuarto elemento del vector

ans=7

>> [A v]% agregamos una fila a la matriz A

Page 13: Libro Mn 2013 Mayo

1.4. EDICIÓN DE LINEA 7

ans=1 2 3 45 6 7 89 0 5 21 3 5 7

Ejercicio 1.1 Sean los arreglos

A =

⎡⎣ −1 4 −7 02 −5 8 23 6 9 −1

⎤⎦ B =

⎡⎢⎢⎣2468

⎤⎥⎥⎦C =

£1 3 5 7

¤a) Construya el arreglo

D =

∙At BC

¸Solución: >> D=[A.’ B;C]

D=-1 2 3 24 -5 6 4-7 8 9 60 2 -1 81 3 5 7

b) Construya el arreglo

E =

∙AC

B

¸Solución: >> E=[[A; C] B]

E=-1 4 -7 0 22 -5 8 2 43 6 9 -1 61 3 5 7 8

Ejercicio 1.2 Construya una matriz mágica de orden 7 (A=magic(7)) y efectúe las siguientesoperaciones

1. Obtenga en un arreglo P los elementos de A comprendidos entre las filas 2 y 5 y lascolumnas 1 y 4.

2. Obtenga en un arreglo Q las tres últimas columnas de A.

3. Obtenga en un arreglo R las tres primeras filas de A

4. Crear un arreglo B que contenga las filas de A con las filas 1 y 4 intercambiadas.

5. Incrementar la fila 4 del arreglo B en 5 veces la fila 7

Page 14: Libro Mn 2013 Mayo

8 CAPÍTULO 1. PRELIMINARES DEL MATLAB

6. Asignar a las columnas 3 y 6 de A, las filas 2 y 4 del arreglo B respectivamente

7. Eliminar la fila 3 y la columna 5 del arreglo B.

8. Intercambiar las columnas 1 y 7 del arreglo A.

9. Listar los elementos del arreglo A como un único vector columna.

1.5. Fichero function

Dentro de la organización de un programa es muy común la realización de tareas quepueden servir para diferentes programas o simplemente la separación en etapas del programaglobal que se pueden abordar independientemente. Una de las formas de realizar esta divisiónen MATLAB es la través de las function.

Las function se construyen en ficheros m.

function [Argumentos de salida]= nombre_función (Arg. Entrada)A continuación daremos los comandos más usados en programas

1.5.1. Bucles

son iteraciones que se utilizan para controlar el flujo de un programa

for-end . La sintaxis de este comando es

for i=vi:inc:vfinstrucciones

end

While-end . La sintaxis de este comando es

while relacióninstrucciones

end

1.5.2. Sentencias condicionales

if-end . La sintaxis de este comando es

if relacióninstrucciones

end

if-else-endif relación

instrucción 1else

instrucción 2end;

Page 15: Libro Mn 2013 Mayo

1.5. FICHERO FUNCTION 9

Ejemplo 1.3 Construya un programa donde al introducir un número n,determine si perteneceo no al intervalo [a, b]

Solución:function Intervalo_1(a,b,x)if x>=a & x<=b

disp(’esta dentro del intervalo’)else

disp(’esta fuera del intervalo’)end

Ejemplo 1.4 Construir una función raices.m que calcule las raices de un polinomio de se-gundo grado ax2 + bx+ c = 0 y calcule las raices de x2 − 3x+ 2 = 0

Solución:

function [x1,x2]= raices(a,b,c)D = b^2-4*a*cx1=(-b + sqrt(D))/(2*a);x2=(-b - sqrt(D))/(2*a);

Ejemplo 1.5 Construya un programa donde puedas calcular el área y el volumen de uncilindro y calcule para r=5, h=12

Solución:function [area,volumen]= cilindro(r,h)area=2*pi*r*h+2*pi*r^2;volumen=pi*r^2*h;

La sentencia for-end

Los bucles que utiliza for en MATLAB tiene el siguiente aspecto

for contador = Valor inicial : incremento : valor finalsentencia del cuerpo del bucleend

Ejercicio 1.3 A fin de aclarar las ideas ingrese los siguientes comandos y comente sus resul-tados

for i=1:8i

end

Ejercicio 1.4 Ingrese los siguientes comandos y comente sus resultados

for i=1:3:19i

end

Ejemplo 1.6 hacer un programa donde puedas calcular la suma de los n primeros númerosnaturales

Page 16: Libro Mn 2013 Mayo

10 CAPÍTULO 1. PRELIMINARES DEL MATLAB

Solución:function s=Sumita(n)suma=0;for x=1:n,

suma = suma + x;end;s=suma;

Ejemplo 1.7 Hága un programa que reciba un vector y entregue el promedio del valor de suselementos

Solución:function p=promedio(x)n=length(x);suma=0;for i=1:n

suma=suma+x(i);endp=suma/n;

Ejemplo 1.8 Construya un programa que evalue la función f(x) =½2 sen2(2x), x ≤ 01− e−x, x > 0

Solución:function y= f1(x)n=length(x);for i=1:n

if x(i)<=0y(i)=2*(sen(2*x(i)))^2;

elsey(i)=1-exp(-x(i));

endend

Ejemplo 1.9 Construya un programa que evalue la función: f(x) =

⎧⎪⎨⎪⎩x− 1, x ≤ −2.1− x2, −2 < x < 0,

− 1

x+ 1, x ≥ 0

Solución:function y= f2(x)n=length(x);for i=1:n

if x(i)<=-2y(i)=x(i)-1;

elseif (x(i)>-2 & x(i)<0)y(i)=1-x(i).^2;

elsey(i)=1/(x(i)+1);

endend

Page 17: Libro Mn 2013 Mayo

1.5. FICHERO FUNCTION 11

Ejemplo 1.10 Escriba una función para elegir el mayor entre dos números

Solución:function M=mayor(a,b)if a>b

M=a;else

M=b;end

Ejemplo 1.11 Escriba una función que dada dos vectores A, B y encuentre los elementos dela intersección de ambos vectores

Solución:function C= interseccion(A,B)m=length(A);n=length(B);k=1;for i=1:m

for j=1:nif A(i)==B(j)

C(k)=A(i);k=k+1;

endend

end

Ejemplo 1.12 Haga un programa que me calcule el valor absoluto

Soluciónfunction va= ValorAbsoluto(n)

if n >= 0va = n;

elseva = -n;

end

Ejemplo 1.13 Construir una función raices1 que, que muestre el polinomio de segundo gradoax2 + bx+ c = 0 si tiene raices complejas o reales

Solución

Page 18: Libro Mn 2013 Mayo

12 CAPÍTULO 1. PRELIMINARES DEL MATLAB

function [x1,x2]= raices1(a,b,c)D = b^2-4*a*c;for D>=0

disp (’Raices Reales’)x1=(-b + sqrt(D))/(2*a);x2=(-b - sqrt(D))/(2*a);

elsedisp (’Raices Complejas)x1=(-b + sqrt(D))/(2*a);x2=(-b - sqrt(D))/(2*a);

end

Ejemplo 1.14 Crear un programa tal que dada la matriz A cuadrada de dimensión n devuelvauna nueva matriz B cuyos elementos son elementos de A salvo los de la diagonal principalque son ceros.

Solución:function B= Inters(A)[m n]=size(A);if ∼(m == n)

error (’la matriz no es cuadrada’)endfor i=1:m

for i=1:nif i∼=j

B(i,j)=A(i,j);else

B(i,j)=0;end

endend

Ejemplo 1.15 Haga un programa que calcule la traza de una matriz cuadrada.A de dimensiónn

Solución:function suma= Traza(A)[m n]=size(A);if ∼(m == n)

error (’la matriz no es cuadrada’)endsuma=0;for i=1:m

for j=1:nif i==j

suma=suma+A(i,j);end

endend

Page 19: Libro Mn 2013 Mayo

1.5. FICHERO FUNCTION 13

Ejercicio 1.5 construir un programa que me calcule la norma euclidiana en Rn

Solución:function N= norma(v)n=length(v);suma=0;k=1;while k <=n

suma=suma+v(k)^2;k=k+1;

endN=sqrt(suma);

Ejemplo 1.16 Haga un programa donde dado dos matrices cuadradas se calcule la suma

Solución:

function C= SumMatrices(A,B)[m1,n1]=size(A);[m2,n2]=size(B);if (m1∼=m2) | (n1∼=n2)

error (’error en las dimensiones de las matrices’)endfor i=1:m1

for j=1:n1C(i,j)=A(i,j)+B(i,j);

endend

Ejemplo 1.17 Haga un programa que multiplique una matriz con un vector controlando lasdimensiones

Solución: Sea la matrices A ∈ Rm×n y x ∈ Rn, el producto es yi =nX

j=1

ai,j · xj

function y= PMatrizVector(A,x)[m n]=size(A);p=size(x,1);if (p∼=n)

error (’error en las dimensiones’)endy=zeros(m,1);for i=1:m

for j=1:ny(i)=y(i)+ A(i,j)*x(j);

endend

Ejemplo 1.18 Haga un programa que multiplique una matriz cuadrada triangular superiorson un vector columna controlando las dimensiones

Page 20: Libro Mn 2013 Mayo

14 CAPÍTULO 1. PRELIMINARES DEL MATLAB

Solución:function k= PTriangSupVect(A,v)

n=size(A,1);p=size(v,1);k=zeros(n,1);if (p∼=n)

error (’error en las dimensiones’)endfor i=1:n

k(i)=A(i,i:n)*v(i:n);end

Ejemplo 1.19 Haga un programa que multiplique dos matrices cuadradas triangulares y su-periores, controlando las dimensiones

Solución:function r= ProdTriangSUp(A,B)

n=size(A,1);p=size(B,1);if (p∼=n)

error (’error en las dimensiones’)endr=zeros(n);for i=1:n

for j=1:nr(i,j)=A(i,i:j)*B(i:j,j);

endend

Ejemplo 1.20 Crear un programa que efectue el producto punto o interior de dos vectores

Solución:

function v= Producto_Punto(x,y)n=length(x);m=length(y);if (n∼=m)

error (’error en las dimensiones de los vectores’)endv=0;for i=1:n

v=v+x(i)*y(i);end

Ejemplo 1.21 Haga un programa donde dado dos matrices cuadradas se calcule el producto

Solución: Dada las matrices A ∈ Rm×p y B ∈ Rp×n, el producto es otra matriz P = AB ∈

Page 21: Libro Mn 2013 Mayo

1.5. FICHERO FUNCTION 15

Rm×n

function P= producto(A,B)[m,p]=size(A);[q,n]=size(B);if (p∼=q)

error (’producto matricial incompatible’)endfor i=1:m

for j=1:nS=0;for k=1:p

S=S+A(i,k)*B(k,j);endP(i.j)=S

endend

otra forma

function P= producto(A,B)[m,p]=size(A);[q,n]=size(B);if (p∼=q)

error (’producto matricial incompatible’)endC=zeros(m,n):for i=1:m

for j=1:nC(i,j)=A(i,:)*B(:,j);

endend

Ejemplo 1.22 describir la implementación en un archivo M función, que permita evaluar lafunción

f(x, y) = x+2y − x2p

x2 + y2 + 10−3

y evalúe en los puntos

Ejercicio 1.6 1.

2. (x, y) = (3, 4)

3. (x, y) = (π,√2)

Solución:function z=fun(x,y)

z=x+(2*y-x^2)/sqrt(x^2+y^2+1e-3);

>> z=fun(3,4)

Page 22: Libro Mn 2013 Mayo

16 CAPÍTULO 1. PRELIMINARES DEL MATLAB

z=2.8000

>> z=fun(pi,sqrt(2))

z=1.0979

Ejemplo 1.23 Realizar un programa que permita pasar de grados farentheit a Celsius

Soluciónfunction C= Celsius(oF)

C=5/9*(oF-32);

Ejemplo 1.24 Presentamos una función simple que calcula el área de un trapezoide de unasección transversal en un canal abierto

function [A]= Area_trapezoidal(b,y,z)% b =ancho mas bajo% y = profundidad del flujo% z = pendiente% A = Area

A = (b+z*y)*y

para los siguientes datos ;

b = 2

y = 0,75

z = 1,5

A=2.34375

Ejemplo 1.25 calcula el área de un trapezoide de una sección transversal en un canal abierto,perímetro mojado y radio hidràulico

Page 23: Libro Mn 2013 Mayo

1.6. ALGUNAS PAUTAS PARA GRAFICAR FUNCIONES SIMPLES 17

function [A,P,R]= A_trapezoidal(b,y,z)% b =ancho mas bajo% y = profundidad del flujo% z = pendiente% A = Area% P = Perímetro mojado% R = Radio hidráulico% A = AreaA = (b+z*y)*y;P = b + 2*y*sqrt(1+z^2);R = (b+z*y)*y/(b + 2*y*sqrt(1+z^2));

1.6. Algunas pautas para graficar funciones simples

Graficar una función f : R 7→ R sobre un intervalo [a, b] usando el comando fplot

Grafiquemos la función f : R 7→ R sobre un intervalo [−8, 10] , donde f(x) = senx

x

procedemos a invocar en la ventana de comandos

>> fplot(’sin(x)/x’,[-8,10])Obtenemos el siguiente gráfico

La orden de dibujo más simple es plot

Ejemplo 1.26 Supongamos que conocemos la hora en que se conoce la temperatura en unaestación meteorológica

h 9 12 15 18 21 24T 15.7 17.2. 19.5 16.7 15.5 12.6

En la ventana de comandos ejecutamos.

Page 24: Libro Mn 2013 Mayo

18 CAPÍTULO 1. PRELIMINARES DEL MATLAB

>> h=[4 8 12 16 20 24];>> T=[15.6 16.2 18.5 17.1 16.5 15.3];>> plot(h,T)

Page 25: Libro Mn 2013 Mayo

Capítulo 2

Nociones Básicas Sobre Errores

En este primer capítulo aún no estudiaremos los métodos numéricos, sino que veremosalgunos conceptos básicos y señalaremos algunos factores que intervendrán en la resolución deproblemas mediante el computador.

Existen diversas fases cuando intentamos resolver un problema mediante métodos numéri-cos. Puede suceder que los resultados finales obtenidos no sean justamente los esperados,aunque todas las fases hayan sido ejecutadas correctamente, los motivos pueden ser varios ylos estudiaremos a continuación.

2.1. Factores que intervienen en la resolución numérica

La mayoría de los métodos numéricos que veremos aquí tienen un carácter iterativo, es-to significa que iniciarán con una estimativa inicial de la solución, digamos x(0), para luegoconstruir una sucesión de valores

©x(0), x(1), x(2), ...

ªde modo que lımk→∞ x(k) = x∗, donde

x∗ es la solución. Por lo general, x(k+1) será calculada a partir de x(k) mediante un proce-dimiento debidamente fundamentado. Frecuentemente, este procedimiento requerirá un grannúmero de cálculos, por lo que será necesario el auxilio de un computador. Lamentablemente,los computadores presentan algunos inconvenientes que, si no se controlan, pueden ocasionarrespuestas catastróficas.

Ejemplo 2.1 Considere el trecho de un programa en Matlab, tal como se muestra en la figuraadjunta. Observe que en teoría, debería cobrarse S/,1000000.

Programa principala=1;b=0.0000000000000001;c=1;

if a+b>cdisp(’cobrar S/.1000000’);

elsedisp(’pagar S/. 2000000’);

end

Un error numérico grave cometido por el computador. Sin embargo, debido al error cometidopor el computador, se terminaría pagando S/.2 000 000.

19

Page 26: Libro Mn 2013 Mayo

20 CAPÍTULO 2. NOCIONES BÁSICAS SOBRE ERRORES

Laboratorio 2.1 Haga un programa en algún lenguaje de programación que usted conozca,de modo que en la práctica corrobore el Ejemplo anterior.

Al resolver un problema por métodos numéricos, los resultados obtenidos pueden dependerde:

1. La precisión de los datos de entrada

2. La forma cómo éstos son representados en el computador

3. Las operaciones numéricas efectuadas

Cada uno de estos temas serán explicados a continuación.

2.1.1. Precisión de los datos de entrada

Cuando ingresamos los datos de un problema, ya sea para calcular en un papel o trabajaren el computador, ellos contienen una imprecisión inherente, quiere decir que no hay cómoevitarlos. El siguiente ejemplo aclara esta afirmación.

Ejemplo 2.2 Sabemos que para calcular el área de un círculo, tenemos que ingresar numérica-mente el radio r y el valor de π. El valor de r quizá pueda ser conocido exactamente (r = 2),pero apenas podemos conocer una aproximación de π con un número finito de dígitos. Así,aproximando el valor de π por 3,14, el área del círculo será:

3, 14× (2)2 = 12, 56m2

Si consideramos 3, 1416, entonces el área del círculo estará dada por:

3, 1416× (2)2 = 12, 5664m2

Pero si consideramos 3, 141592654, entonces el área será

3, 141592654× (2)2 = 12, 566370616m2

Claramente las imprecisiones de los datos de entrada ocasionan imprecisiones en los resultados.

En el ejemplo anterior vimos que el mejor resultado se obtuvo en el último caso. Pero,cuando usamos un computador, ¿cuántos dígitos decimales reconoce éste? El siguiente ejemplointentará aclarar esta situación.

Ejemplo 2.3 Usando Matlab 6.0 en un PC de 32-bit con un sistema operativo Windows XP,hicimos la siguiente operación:

0,00000000000001 + 1

y el resultado obtenido fue 1,00000000000001, lo cual es satisfactorio. Luego, hicimos:

0,000000000000001 + 1

y obtuvimos como respuesta 1. ¿Qué sucedió?

Page 27: Libro Mn 2013 Mayo

2.1. FACTORES QUE INTERVIENEN EN LA RESOLUCIÓN NUMÉRICA 21

El ejemplo anterior nos hace ver que en el primer caso, cuando se usan los 14 dígitos a laderecha del punto, el sistema de cómputo no comete error. Mientras que, si se usan 15 dígitos,el sistema nos otorga una respuesta errada.

La razón se debe a que todo computador trabaja con un número finito y bien reducidode dígitos, en nuestro caso 14 a la derecha del punto, si el número de dígitos sobrepasa loesperado, el sistema lo trunca o redondea, dependiendo del sistema utilizado.

Laboratorio 2.2 Utilice un paquete o lenguaje de programación en un computador, paracorroborar los resultados obtenidos en el Ejemplo 2.3.

2.1.2. Representación de los datos en el computador

Un número con representación decimal finita puede tener una representación infinita enel sistema binario. Como un computador trabaja con el sistema binario y con una cantidadfija de dígitos, necesariamente trabajará con una aproximación, por lo tanto no se obtendránresultados exactos.

El sistema con el que trabajamos comunmente es el decimal, un número x en este sistemalo representaremos algunas veces, cuando se preste a confusión, por (x)10. Por otro lado, elsistema con el que trabaja un computador hoy en día es el binario, un número y en este sistemaserá representado por (y)2. Así por ejemplo.

(5)10 y (101)2

representa el número 5 en el sistema decimal y binario, respectivamente. El siguiente ejemplomuestra cómo esta representación aparentemente inofensiva, puede generar terribles errorescuando se trabaja en el computador.

Ejemplo 2.4 Considere la siguiente sumatoria:

S =30000Xi=1

ai

Para ai = 0, 5, el resultado exacto debería ser

S = 0, 530000Xi=1

1 = 0, 5× 30000 = 15000

Después de implementar un pequeño programa en computador, el resultado fue también 15000.Claramente, no hay por qué preocuparse en este caso, los resultados son los mismos. Pero, paraai = (0, 11)10, el resultado exacto debería ser

S = (0, 11)10 × 30000 = 3300

Sin embargo, el resultado obtenido por el computador fue

S = 3300, 00000000063

¿cómo explicar la diferencia de resultados en este caso?

Page 28: Libro Mn 2013 Mayo

22 CAPÍTULO 2. NOCIONES BÁSICAS SOBRE ERRORES

Esto se debe a que el número (0, 11)10, cuya representación en el sistema decimal es finito,tiene una representación binaria infinita:

(0, 0001110000101000111101)2

Si el computador trabajara con 14 dígitos después del punto, el número debería ser cortado oredondeado, lo cual representa ya un error. Todos los cálculos subsiguientes serán, afectadaspor este hecho.

Laboratorio 2.3 Utilizando algún lenguaje de programación, haga un programa para ejecutarlo tratado en el ejemplo 2.4.

Por lo general, el error ocurrido depende de la representación de los números en la máquinautilizada. La representación de un número depende de la base elegida o disponible en lamáquina en uso, y, del número máximo de dígitos usados en su representación. Cualquiercálculo que envuelva números que no pueden ser representados a través de un número finito dedígitos, no otorgará como resultado un valor exacto. Cuanto mayor sea el número de dígitosutilizados, mayor será la precisión obtenida.

Como vimos en el ejemplo 2.4, un número puede tener representación finita con respecto auna base, pero una representación infinita en otra base. La base decimal es la que emplearemosgeneralmente, pero antiguamente fueron empleadas otras bases, como la base 12 y la base 60.Un computador opera normalmente en el sistema binario.

Observe los que pasa cuando un usuario interactúa con el computador: Los datos de entradason enviados al computador por el usuario en el sistema decimal, esa información es convertidaal sistema binario por el computador, y, todas las operaciones son realizadas en ese sistema. Losresultados finales serán convertidas para el sistema decimal y, finalmente, serán transmitidoshacia el usuario. Todo este proceso es una fuente de errores que afectan el resultado final delos cálculos.

2.1.3. Las operaciones numéricas efectuadas

Pero errores no sólo ocurren en la impresión de los datos de entrada y su representaciónbinaria. Errores ocurren también en las operaciones numéricas efectuadas por un sistema decómputo (binario).

Conversión de Números en los Sistemas Decimal y Binario

Cualquier número entero en la base β, de la forma (ajaj−1, ..., a2a1a0)β, donde 0 ≤ ak ≤β − 1 y k = 0, ..., j, puede ser escrito en la forma polinomial

ajβj + aj−1β

j−1 + ...+ a2β2 + a1β

1 + a0β0

Mediante esa representación, podemos convertir fácilmente un número entero representado enel sistema binario para el decimal, e inversamente. Por ejemplo: (10111)2 puede ser represen-tado por

1× 24 + 0× 23 + 1× 22 + 1× 21 + 1× 20

Reordenando y resaltando la base 10 tenemos

(10111)2 = 1× 24 + 0× 23 + 1× 22 + 1× 21 + 1× 20

= 2(23 + 2) + 3 = 2× 101 + 3× 100

= (23)10

Page 29: Libro Mn 2013 Mayo

2.1. FACTORES QUE INTERVIENEN EN LA RESOLUCIÓN NUMÉRICA 23

Laboratorio 2.4 En algún lenguaje de programación, haga un programa tal que, dado unnúmero entero binario, retorne su equivalente decimal. E inversamente, dado un entero deci-mal, otorgue su equivalente binario.

¿Como Convertir un Número Fraccionario de Representación Decimal a Bina-rio?Consideremos ahora la conversión de un número fraccionario de base 10 para la base 2.

Por ejemplo, r = 0, 125, s = 0, 777..., t = 0, 414213562..., etc.

Notemos que r tiene una representación finita, pero s y t tienen representaciones infinitas.En términos generales, dado un número entre 0 y 1 en el sistema decimal, ¿Cómo obtener surepresentación binaria?

Consideremos el número decimal fraccionario r = 0, 125, existen dígitos binarios

d1, d2, ..., dj, ...

tal que (0, d1d2...dj...)2 será su representación binaria en la base 2. Así,

(0, 125)10 = d1 × 2−1 + d2 × 2−2 + ...+ dj × 2−j + ... (2.1)

Multiplicando cada término de la expresión (2.1) por 2, tendremos

2× 0, 125 = d1 + d2 × 2−1 + d3 × 2−2 + ...+ dj × 2−j+1 + ...

Por lo tanto, d1 representa la parte entera de 2× 0, 125, que es igual a 0, mientras que

d2 × 2−1 + d3 × 2−2 + ...+ dj × 2−j+1 + ...

representa la parte fraccionaria de 2× 0, 125, que es 0, 250.

Aplicando ahora el mismo procedimiento para 0, 250, tendremos

0, 250 = d2 × 2−1 + d3 × 2−2 + ...+ dj × 2−j+1 + ...

2× 0, 125 = 0, 5 = d2 + d3 × 2−1 + d4 × 2−2 + ...+ dj × 2−j+2 + ...

de donde d2 = 0. Repitiendo el procedimiento para 0, 5 tenemos

0, 5 = d3 × 2−1 + d4 × 2−2 + ...+ dj × 2−j+2 + ...

2× 0, 5 = 1 = d3 + d4 × 2−1 + ...+ dj × 2−j+3 + ...

de donde d3 = 1. Como la parte fraccionaria de 2 × 0, 5 es cero, el proceso de conversióntermina. En resumen tenemos: d1 = 0, d2 = 0 y d3 = 1. Por lo tanto, el número (0, 125)10 tienerepresentación finita en la base 2:

(0, 125)10 = (0, 001)2

Laboratorio 2.5 Usando los procedimientos anteriores para convertir números fraccionariosdecimales, a binarios, haga un programa usando algún lenguaje de programación y verifiqueque:

1. El número (0, 5)10 tiene una representación binaria finita (0, 1)2

Page 30: Libro Mn 2013 Mayo

24 CAPÍTULO 2. NOCIONES BÁSICAS SOBRE ERRORES

2. El número (0, 11)10 tiene una representación binaria infinita

(0, 0001110000101000111101)2

3. Verifique cuántos dígitos el computador está considerando.

En hecho de que un número no tenga representación finita en el sistema binario, puedeocasionar la ocurrencia de errores aparentemente inexplicables en los cálculos efectuados ensistemas computacionales binarios. Un computador que opera en el sistema binaio, necesaria-mente tendrá que almacenar una aproximación para (0, 11)10, debido a que sólo posee unacantidad fija de posiciones para guardas los dígitos de la mantisa de un número. Al ser estaaproximación usada para realizar los cálculos, no puede esperarse un resultado exacto.

Laboratorio 2.6 (Precisión de una máquina) La precisión de la máquina se define comoel menor número ε > 0 en aritmética de punto flotante, tal que (1 + ε) > 1. Este númerodepende totalmente del sistema de representación de la máquina: base numérica, total de dígitosen la mantisa, de la forma cómo son realizadas las operaciones y del compilador utilizado. Esimportante conocer la precisión de la máquina porque en varios algoritmos se requiere ingresarcomo dato de entrada un valor positivo, próximo de cero, para que sea usado como criterio decomparación para la detención del algoritmo. El siguiente algoritmo determina dicha precisión:

Paso 1: A← 1, S ← 2

Paso 2: Mientras S > 1, hacer

A ← A

2S ← 1 +A

Paso 3: Hacer prec = 2A e imprimir prec .

1. Haga un programa en algún lenguaje de programación que ejecute el algoritmoanterior.

2. Discuta su significado práctico.

Aritmética de Punto Flotante

Cualquier computador o calculadora representa un número en un sistema denominadoaritmética de punto flotante. En este sistema, el número r será representado en la forma:

±(.d1d2...dt)× βe

donde

β : La base en que la máquina opera

t : El número de dígitos en la mantisa, 0 ≤ dj ≤ β − 1, j = 1, ..., t, d1 6= 0

e : El exponente en el intervalo [−u;u] , el valor de u depende de la máquina con que se estétrabajando.

En una computadora, sólo una pequeña cantidad de números son representados exacta-mente, por lo general, la representación será realizada por medio de truncamiento o redondeo.

Page 31: Libro Mn 2013 Mayo

2.1. FACTORES QUE INTERVIENEN EN LA RESOLUCIÓN NUMÉRICA 25

Ejemplo 2.5 Considere una máquina que opera en el sistema β = 10, t = 3, e ∈ [−5;+5] .Los números no nulos representados en este sistema serán de la forma

±(.d1d2d3)× 10e, 0 ≤ dj ≤ 9, d1 6= 0, e ∈ [−5;+5]

El menor número, no nulo y en valor absoluto, expresado en esta máquina será:

m = 0, 100× 10−5

Mientras que el mayor número es:

M = 0, 999× 10+5

Ahora, en esta misma máquina. Consideremos el subconjunto de números reales caracterizadospor:

G = {x ∈ R : m ≤ |x| ≤M}Puede ocurrir varios casos:

x ∈ G Por ejemplo, si x = 235, 89 = 0, 23589 × 10+3. Este número posee 5 dígitos enla mantisa. Debido a que t = 3, este número no será considerado de forma exacta en estamáquina. Si la máquina usa truncamiento, entonces el número será representado como 0, 235×10+3. Pero si la máquina usa redondeo, entonces el número será representado por 0, 236×10+3.

|x| < m Por ejemplo, si x = ±0, 345 × 10−7. Este número no puede ser representado enesta máquina porque el exponente e es menor que −5. La máquina en estas condiciones retornauna advertencia de underflow .

|x| > M Por ejemplo, x = ±0, 875× 109. En este caso, el exponente es mayor que 5 y lamáquina no lo puede representar, advierte la ocurrencia de overflow .

Algunos lenguajes de computador permiten que las variables sean declaradas en dobleprecisión. En este caso, tal variable será representada en el sistema de aritmética de puntoflotante de la máquina, pero con aproximadamente el doble de dígitos disponibles en la mantisa.Debemos resaltar que en estas condiciones, el tiempo de ejecución y requerimientos de memoriaaumentan considerablemente.

La adición en aritmética de punto flotante requiere el alineamiento de los puntos decimalesde los dos números. Para eso, la mantisa de menor exponente debe ser desplazada para laderecha.

Ejemplo 2.6 Sumarx = 0, 937× 104 y y = 0, 1272× 102

Alineando los puntos decimales, tenemos

x = 0, 937× 104 y y = 0, 001272× 104

Entonces,x+ y = (0, 937 + 0, 001272)× 104 = 0, 938272× 104

El resultado almacenado después del truncamiento será 0, 9382 × 104. Mientras que despuésdel redondeo será 0, 9383× 104.

Page 32: Libro Mn 2013 Mayo

26 CAPÍTULO 2. NOCIONES BÁSICAS SOBRE ERRORES

El cero puede representarse con una mantisa nula y cualquier exponente. Por lo general, seutiliza el menor exponente posible de la máquina. Caso contrario, si se usa cualquier exponentepara denotar el cero, se puede perder dígitos significativos, tal como muestra el siguienteejemplo:

Ejemplo 2.7 Supongamos que tenemos una máquina que opera con base 10 y 4 dígitos en lamantisa. Si denotáramos al cero por 0, 0000× 104, al sumarlo al número y = 0, 3134× 102 :

0, 0000× 104 + 0, 3134× 102 = 0, 0000× 104 + 0, 003134× 104

= (0, 0000 + 0, 003134)× 104

= 0, 003134× 104

El resultado después del truncamiento sería 0, 0031 × 104 = 0, 3100 × 102. Esto significa quefueron perdidos 2 dígitos del valor exacto.

Ejemplo 2.8 Represente los siguientes números en un sistema de aritmética de punto flotante(con redondeo y con truncamiento) de 3 dígitos, cuando β = 10, m = 10−4 y M = 10+4 :

3, 14 10, 052 − 238, 15 2, 71828 0, 000007 718235, 82

Para el primer caso, con truncamiento nos resulta 0, 314 × 10, mientras que con redondeo0, 314 × 10. Para el segundo caso, con truncamiento obtenemos 0, 100 × 102 y con redondeo0, 100× 102. Y así sucesivamente:

−0, 238× 103 −0, 238× 1030, 271× 10 0, 271× 10underflow underflowoverflow overflow

Todo esto nos da una idea de los posibles errores que pueden suceder, ya sea por des-conocimiento nuestro o por la limitación del computador, en el proceso de la resolución numéri-ca de problemas. Debemos advertir que aún es posible realizar un análisis más completo delmanejo de errores, pero eso lo veremos en otra ocasión.

2.2. Errores Absolutos y Errores Relativos

Definimos el error absoluto como la diferencia entre el valor exacto de un número x y suvalor aproximado x :

EAx = x− x (2.2)

Frecuentemente, sólo nos interesa la magnitud de este error. Así por ejemplo, si x = 12, 60 yx = 12, 81, el error absoluto es EAx = 12, 60− 12, 81 = −0, 21. Mientras que la magnitud deeste error es |−0, 21| = 0, 21.

Esta idea puede ser extendida para comparar la proximidad de vectores. Por ejemplo,consideremos los vectores en R3 dados por

x =

⎡⎣ 6, 15, 8−11, 3

⎤⎦ y x =

⎡⎣ 6, 25, 9−10, 9

⎤⎦

Page 33: Libro Mn 2013 Mayo

2.2. ERRORES ABSOLUTOS Y ERRORES RELATIVOS 27

Entonces, usando la norma euclidiana, la magnitud del error estaría dada ahora por

kx− xk =p(6, 1− 6, 2)2 + (5, 8− 5, 9)2 + (−11, 3− (−10, 9))2 = 0, 4243

No obstante, el error absoluto definido en (2.2) quizá no tenga interés práctico en este caso.

En general, apenas el valor de x es conocido, lo que hace imposible obtener el error absolutoexacto. Lo que se puede hacer en este caso es obtener una cota superior o una estimativa parael módulo del error absoluto, tal como muestra el siguiente ejemplo.

Ejemplo 2.9 Conociéndo que π ∈ h3, 14; 3, 15i , podemos tomar para x un valor dentro deeste intervalo y tendremos que:

|EAπ| = |π − x| < 0, 01

En este caso diremos que el error absoluto de x con respecto a π, en módulo, es menor que0, 01. Más aún, diremos que el número x está representado con precisión menor que 0, 01.

Ejemplo 2.10 En la práctica, a veces no es recomendable controlar alguno procesos basadosen el error absoluto. Por ejemplo, si usted gana un premio de S/. 10 000 000, y cuando va arecogerlo le dicen que sólo tiene S/. 9 999 990, entonces a usted puede que no le importe ladiferencia, pues apenas hay un error absoluto de S/. 10. Pero qué pasa si usted ganó S/. 20de premio, y cuando usted va a recogerlo le dicen que apenas tiene S/. 10, observe que el errorabsoluto sigue siendo S/. 10, probablemente no le agrade nada esta última situación, pues setrata de la mitad del premio.

Para evitar situaciones como la anterior, en la práctica es mejor utilizar otro criterio paramedir el error, éste es conocido como error relativo.

El error relativo es definido como el error absoluto dividido por el valor exacto, es decir:

ERx =EAx

x=

x− x

x

Frecuentemente, también se suele trabajar con el módulo de este valor. Observe que el errorrelativo respecto al primer premio de S/. 10 000 000 es

ER10 000 000 =10

10 000 000≈ 0, 000001

Mientras que el error relativo respecto al segundo premio es

ER20 =10

20≈ 0, 5

Con esto, digamos que en este caso se midió el error con más justicia.

Ejercicio 2.1 Convierta los siguientes números decimales para su forma binaria: 26, 1278 y0, 1217

Ejercicio 2.2 Convierta los siguientes números binarios para su forma decimal: (101101)2,(0, 111111101)2 y (0, 1101)2.

Page 34: Libro Mn 2013 Mayo

28 CAPÍTULO 2. NOCIONES BÁSICAS SOBRE ERRORES

Laboratorio 2.7 El siguiente algoritmo calcula de una forma aproximada la raíz n-ésima deun número no negativo a.

Ingresa: a, n y ε > 0, donde ε es la precisión deseada (ε = 10−9)x = aMientras |xn − a| > ε (controlando la magnitud del error absoluto)x = x− (xn − a)/(nxn−1), x 6= 0

Retorna x (una aproximación para n√a)

En algún lenguaje de programación, haga un programa para ejecutar este algoritmo. Modifiqueel programa para que retorne también el número de pasos (iteraciones). ¿Cómo utilizaría elerror relativo para controlar el algoritmo?

Laboratorio 2.8 (Cálculo de ex) En algún lenguaje de programación, haga un programa paracalcular ex mediante la serie de Taylor con n términos. El valor de x y el número de términosde la serie, n, deben ser dados en la entrada de su programa. Para valores negativos de x, elprograma debe calcular ex de dos formas: En una de ellas el valor de x es usado directamenteen la serie de Taylor y, en la otra forma, el valor usado en la serie será y = −x, y en seguida,se calcula el valor de ex por medio de 1

ex.

1. Experimente su programa con varios valores de x (x próximo de cero y distante de cero)y, para cada valor de x, experimente el cálculo de la serie con varios valores de n. Analicelos resultados.

2. (Dificultades con el cálculo del factorial) El cálculo de k! necesario en la serie de Taylorpuede ser hecho de modo a evitar la ocurrencia de overflow. Para esto es necesarioanalizar cuidadosamente el k-ésimo término, xk

k!. Intente combinar el cálculo del numera-

dor con el del denominador y realizar divisiones intermedias. Estudie una manera derealizar esta operación de modo que k! no se sobrecargue.

3. Con la modificación del segundo item, la serie de Taylor puede ser calculada con lostérminos que se desee. ¿Cuál sería el criterio para detener su programa e interrumpir elcálculo de la serie?

Page 35: Libro Mn 2013 Mayo

Capítulo 3

Ceros reales de funciones reales

En esta sección vamos a resolver la ecuación representada por

f(x) = 0 (3.1)

donde f : [a; b] ⊂ R 7−→ R. Resolver tal ecuación significa encontrar ξ ∈ [a; b] de modo quef(ξ) = 0.

Algunas de las técnicas para resolver esta ecuación, es decir, encontrar una raíz de laecuación (3.1) o simplemente un cero de f , requiere de un procedimiento que comprendeesencialmente de dos fases.

Fases para encontrar una raiz de la ecuación f(x) = 0

1. Aislamiento de las raices: (Intervalo que contenga una raíz)2. Refinamiento: (Aproximación a la raíz deseada)

Cada uno de estas fases serán explicados a continuación.

3.1. Aislamiento de las Raices

Si ξ es una raíz de f , el procedimiento de aislamiento de una raíz consiste en obtener unintervalo [a; b] que contenga ξ.

Una primera alternativa sería mediante una observación gráfica, probablemente con ayudade un computador o una calculadora.

Ejemplo 3.1 Para el aislamiento de una raíz de f(x) =√x − 5e−x, procedemos a graficar

utilizando Matlab. Observamos que en el intervalo [1; 2] se encuentra una raíz. La figura 2.1

29

Page 36: Libro Mn 2013 Mayo

30 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

muestra esta situación.

0 1 2 3 4 5 6-5

-4

-3

-2

-1

0

1

2

3

raíz

eje x

f(x) = sqrt(x) - 5*exp(-x)

Figura 3.1: Aislando gráficamente una raíz

otra alternativa para el aislamiento de una raíz consiste en analizar el cambio de signo de losvalores de la función, tal como explica el siguiente ejemplo.

Ejemplo 3.2 Considere nuevamente la función f(x) =√x − 5e−x. Determine un intervalo

donde se encuentre por lo menos una raíz.

Solución: Tenemos que Df = R+0 (los reales positivos y el cero), construimos una tabla devalores con el signo de f(x) para determinados valores de x :

x 0 1 2 3 · · ·f(x) − − + + · · ·

Analizando la tabla, vemos que f admite por lo menos una raíz en el intervalo [1; 2] .Para ver si esa raíz es única en ese intervalo, podemos analizar el signo de la derivadade f :

f 0(x) =1

2√x+ 5e−x > 0, ∀x > 0

Vemos que f es estrictamente creciente en R+. Por lo tanto, podemos concluir que fadmite una única raíz en Df y ésta se encuentra en el intervalo [1; 2] .

Ejercicio 3.1 Sea f : R 7−→ R una función continua en R. Si sabemos que una raíz ξ de festá en [a; b] . Qué podría usted decir sobre ξ si:

1. f(a)f(b) < 0

2. f(a)f(b) > 0

3. f(a)f(b) ≤ 0

4. f(a)f(b) ≥ 0

Page 37: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 31

Laboratorio 3.1 Usando un computador y un programa adecuado, grafique las siguientesfunciones y determine aquellos intervalos que incluyan alguna raíz:

1. f(x) = 1000 sen(x3 + 1)/ log(5 + x2), x ∈ [−2; 1]

2. g(x) = ln(x2 + 1)− 200(x+ 10)3 + 9x2 + 5, x ∈ R

3. h(x) = 0, 00037x11 − (x− π)2 + x2 + 5x− 100, x ∈ R

3.2. Refinamiento: Métodos Iterativos

Una vez que tenemos un intervalo que contenga la raíz, el siguiente paso es construir unmecanismo que nos otorgue aproximaciones razonables a la solución exacta.En esta secciónveremos algunos métodos numéricos clásicos los cuales nos otorgarán aproximaciones a unaraíz de f . En su mayoría, estos métodos son iterativos, es decir, que inician con una estimativade la solución inicial y utilizan ésta para encontrar la siguiente, y así por delante, hasta obteneruna aproximación a la solución.

Cuando se use un método iterativo, debemos considerar un criterio para detener el algo-ritmo respectivo. En los métodos que buscan una raíz, éstos se repetirán hasta que xk seapróxima a la raiz exacta ξ con presición ε > 0,esto ocurrirá si:

1.¯xk − ξ

¯< ε, o

2.¯f(xk)

¯< ε

Pero, ¿Cómo efectuar el primer item si no se conoce ξ?. Una forma es reducir el intervaloque contiene a la raíz en cada iteración. Al conseguirse un intervalo [a; b] tal que

ξ ∈ [a; b] y b− a < ε

entonces ∀x ∈ [a; b] , |x− ξ| < ε. En estas condiciones, cualquier x ∈ [a; b] podría ser laaproximación requerida.

Figura 3.2: f(ξ) = 0

Page 38: Libro Mn 2013 Mayo

32 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

El orden de grandeza de los números con que trabajamos puede darnos poca información, talcomo mostraba el ejemplo 1.10, es aconsejable en estos casos utilizar el error relativo. Porejemplo, podemos considerar xk próximo de una raíz, si¯

f(xk)¯

L< ε

donde L =¯f(xk)

¯, para algún x escogido en una vecindad de la raíz ξ.

Otro aspecto que debemos tener en cuenta es el máximo número de iteraciones permitidaspor el algoritmo. Esto ayuda a evitar que el programa en computador trabaje indefinidamente,sobre todo en el caso cuando el algoritmo no converge.

Antes de todo, debemos hacer una aclaración con respecto a método y algoritmo. En-tenderemos por método a un procedimiento con las justificaciones matemáticas necesariaspara resolver un determinado problema. Mientras que por algoritmo, entenderemos como unresumen del método, una especie de receta.

Existen varios métodos numéricos para obtener un cero real de una función real, algunossimplemente requieren que la función sea continua, mientras que otros requieren que la funciónsea diferenciable. En lo que resta de este capítulo analizaremos cada uno de los métodos máspopulares que existen hoy en día. En nuestro caso, analizar comprenderá la construcción delmétodo, estudiar las propiedades de convergencia y la rapidez del mismo.

Para estudiar la convergencia debemos dar las hipótesis para que el método garantice unasolución. Por otro lado, para analizar la rapidez del método, es necesario tener en consideracióndos criterios:

El número de iteraciones: Dada la precisión deseada ε, determinar el número de itera-ciones, k, para que el algoritmo respectivo se detenga.

La rapidez: Una vez garantizada la convergencia.Determinar cuál es la tasa o rapidez (ve-locidad) de convergencia con que trabaja el algoritmo.

Lo más deseable es obtener el número de iteraciones que un algoritmo requiere para resolverel problema, al menos una cantidad aproximada de éste, pero no siempre es posible tal hazaña.A veces es posible obtener sólo la tasa de convergencia del algoritmo, esto también daráinformación sobre el desempeño del mismo, lo cual permitirá realizar comparaciones paradecidir por el algoritmo más eficiente para un determinado problema. Los detalles relacionadosa estos conceptos serán explicados a medida que vayamos avanzando.

3.2.1. Método de Bisección

Sea f una función contínua en el intervalo [a; b] tal que f(a)f(b) < 0. El objetivo de estemétodo es reducir la amplitud de este intervalo que contiene la raíz hasta alcanzarse una

Page 39: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 33

precisión requerida, (b− a) < ε, usando para eso una sucesiva división de [a; b] a la mitad.

Figura 3.3: Método de Bisección

Algoritmo 3.1 (Bisección) Dados a y b tales que f(a)f(b) < 0. Sea ε > 0 la precisióndeseada

1. Si (b− a) < ε. Eligir x ∈ [a; b] y terminar el algoritmo. Caso contrario, ir al paso 2.

2. Hacer k = 1 e ir al paso 3.

3. Hacer c = a+b2e ir al paso 4.

4. Si f(a)f(c) > 0, hacer a = c e ir al paso 5. Caso contrario, hacer b = c e ir al paso 5.

5. Si b− a < ε, elegir x ∈ [a; b] y finalizar el algoritmo. Caso contrario, hacer k = k + 1 yvolver al paso 3.

Estudio de la Convergencia del Método de Bisección Bajo las hipótesis establecidas,es claro que el método de la bisección construirá una sucesión {xk} que converge a una raíz.Para probar esto analíticamente procedemos del siguiente modo.

Supongamos que [a0; b0] sea el intervalo inicial y ξ la única raíz de f en el interior de eseintervalo. El método de la bisección genera tres sucesiones:

La sucesión {ak}k∈N : No decreciente y acotada superiormente por b0. Luego, existe r ∈ Rtal que limk→∞ak = r.

La sucesión {bk}k∈N : No creciente y limitada inferiormente por a0. Luego, existe s ∈ R talque limk→∞bk = s.

La sucesión {ck}k∈N : Genera por ck = ak+bk2

, donde ak < ck < bk, para todo k = 1, 2, ... .

Observe que el tamaño de cada intervalo es la mitad del intervalo anterior. Así, parak = 1, 2, ...

b1 − a1 =b0−a02

b2 − a2 =b1−a12

= b0−a022

b3 − a3 =b2−a22

= b0−a022

...

Page 40: Libro Mn 2013 Mayo

34 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

bk − ak =b0 − a02k

(3.2)

Entonces,

lımk→∞

(bk − ak) = lımk→∞

(b0 − a0)

2k= 0

Como {ak}k∈N y {bk}k∈N son convergentes:

lımk→∞

bk − lımk→∞

ak = 0⇒ s− r = 0

Por lo tanto, s = r, Sea λ = s = r el límite de las dos sucesiones. Dado que para todok = 1, 2, ... el punto ck ∈ hak; bki , entonces

lımk→∞

ck = λ

Resta probar apenas que λ es un cero de la función f, o sea, f(λ) = 0. Observe que encada iteración k = 1, 2, ..tenemos que f(ak)f(bk) < 0. Entonces, dado que hemos asumido fcontinua en [a; b]

0 ≥ lımk→∞

f(ak)f(bk) = lımk→∞

f(ak) lımk→∞

f(bk)

= f( lımk→∞

ak)f( lımk→∞

bk) = f(r)f(s) = f(λ)f(λ)

= (f(λ))2

de donde concluimos que f(λ) = 0. Por tanto, limk→∞ck = λ es un cero de f, como habíamosasumido que en el interior había una única raíz, tenemos que λ = ξ.

Estimación del Número de Iteraciones

Dada una precisión ε > 0 y un intervalo inicial [a; b] , es posible saber, a priori, cuántasiteraciones serán efectuadas por el método de la bisección (algoritmo 3.1) hasta que se cumplab− a < ε.

Vimos en (3.2) que para k = 1, 2, ...

bk − ak =bk−1 − ak−1

2=

b0 − a02k

(3.3)

Observe que el algoritmo (2.1) se detendrá cuando bk − ak < ε, según la ecuación (3.3) estoequivale a encontrar un valor de k de modo que

b0 − a02k

< ε

Esto a su vez equivale a decir que

2k >b0 − a0

ε

Lo cual implica quek > log2(b0 − a0)− log2(ε) (3.4)

Page 41: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 35

Por lo tanto, en el algoritmo 3.1, si el número de iteraciones k es por lo menos

[log2(b0 − a0)− log2(ε)] + 1

el intervalo [ak; bk] conteniendo a la raíz ξ verifica bk − ak < , en estas condiciones cualquierx ∈ [ak; bk] debería ser la aproximación a la raíz buscada ξ, pues |x− ξ| ≤ bk − ak < ε.

Podemos concluir sobre este algoritmo que el número de iteraciones dependerá de la longi-tud del intervalo [a; b] y de la precisión deseada ε. Como muestra la ecuación (3.4), ese númerode iteraciones no debería ser grande, debido a la presencia del logaritmo.

Ejemplo 3.3 Usando el algoritmo 3,1, se desea encontrar una aproximación a un cero de lafunción definida por

f(x) = x log10 x− 1la cual está en el intervalo [2; 3] y con precisión ε = 10−2. ¿Cuántas iteraciones debería efectuarel algoritmo?

Solución: Según (3.3) vemos que

k ≥£log2(3− 2)− log2(10−2)

¤+ 1 =

£log2 1− log2(10−2)

¤+ 1

=£− log2(10−2)

¤+ 1 = 7

Luego, el algoritmo debería detenerse con k = 7 iteraciones.

Conclusión 2.1 (sobre el método de bisección) Si f : R 7→ R es continua en elintervalo [a; b] y f(a)f(b) < 0 :

El método de bisección genera una sucesión que converge a la raíz de f(x) = 0, esto seconsigue mediante las reducciones sucesivas del intervalo de búsqueda hasta una precisióndeseada.

Cada iteración no requiera cálculo complicados.

No se requieren derivadas.

Las hipótesis no son rigurosas.

Converge razonablemente rápido (comparado a otros métodos se le considera lento).

Una implementación básica en Matlab donde e es la precisión deseada

function [c,iter] = bissec(a,b,e)iter=1;while abs(b-a) > e & iter<1000

c=(a+b)/2;if f(a)*f(c) > 0

a=c;else

b=c;enditer=iter+1;

end

Page 42: Libro Mn 2013 Mayo

36 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Laboratorio 3.2 En algún lenguaje de programación de su preferencia, implemente el algo-ritmo de la bisección, y resuelva las siguientes ecuaciones:

1. ln(x2 + 1) = 200(x+ 10)3 − 9x2 − 5, en R

2. 1000 sen(x3 + 1)/ log(5 + x2) = 0, en [−2; 1]

3. 0, 00037x11 − (x− π)2 + x2 = −5x+ 100, en R

Ejemplo 3.4 Un ingeniero diseña un tanque esférico como en la figura adjunta, para alma-cenar agua para un poblado pequeño en un país en desarrollo. El volumen de líquido que puedecontener se calcula con

V = πh2(3R− h)

3

donde V = volumen (m3), h = profundidad en el tanque (m) y R = radio del tanque (m)

si R = 3m. ¿A qué profundidad debe llenarse el tanque de modo que contenga 30m3? Resuelvacon el método de la bisección en un intervalo de [1, 3] y con una precisión de 0,01

Solución: f(h) =3v

π− 3Rh2 + h3 sustituyendo los datos tenemos

f(h) =90

π− 9h2 + h3

resolviendo con el método de la bisección se observa

iter an bn cn f(an) f(cn)

1 1.000000 3.000000 2.000000 + +2 2.000000 3.000000 2.500000 + -3 2.000000 2.500000 2.250000 + -4 2.000000 2.250000 2.125000 + -5 2.000000 2.125000 2.062500 + -6 2.000000 2.062500 2.031250 + -7 2.000000 2.031250 2.015625 + +8 2.000000 2.031250 2.023438 + +

El tanque se debe llenar a una altura de h = 2,0234m

Page 43: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 37

3.2.2. Método de la Posición Falsa

Sea f : R 7→ R continua en [a; b] tal que f(a)f(b) < 0. Suponga que el intervalo [a; b] con-tiene una única raíz de la ecuación f(x) = 0. Podemos esperar conseguir una raíz aproximadausando las informaciones sobre los valores de f disponibles a cada iteración.

Por ejemplo, en la figura 2.4 se aprecia que al ser |f(a)| pequeño en comparación a |f(b)|,podemos sospechar que la raíz se encuentra más cercana al punto a que al punto b. Luego, encada iteración, en vez de tomar ck como el punto medio, como lo hacía el método de bisección,podemos tomarlo de la siguiente manera:

ck =a |f(b)|+ b |f(a)||f(b)|+ |f(a)|

que en realidad es una media aritmética ponderada entre a y b, con pesos |f(b)| y |f(a)| .Después de unos cálculos, tenemos:

ck =af(b)− bf(a)

f(b)− f(a)

Lo que resta del método de la posición falsa es análogo al método de bisección, la parte dondeno se encuentra la raíz debería ser desechada y el intervalo debería ser reducido hasta unaprecisión deseada.

Figura 3.4: Éxito en el método de la posición falsa: |f(a)|pequeño y raíz cercana de a

Lamentablemente, las cosas no son como parecen, pues el valor de |f(a)| puede ser pequeñoy sin embargo, la raíz puede estar muy lejos de a, tal como se aprecia en la figura 3.5. Estomuestra que la sospecha puede estar totalmente errada, lo que retrasaría la convergencia delmétodo, de ahí el nombre.

Page 44: Libro Mn 2013 Mayo

38 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Figura 3.5: Fracaso en el método de la posición falsa: |f(a)|pequeño y raíz alejada de a.

Ejercicio 3.2 Haga un algoritmo que resuma el método de la posición falsa.

Laboratorio 3.3 En algún lenguaje de programación de su preferencia, implemente el algo-ritmo de la posición falsa, pruebe con varios ejemplares y compare el número de iteracionescon el método de bisección.

Ejercicio 3.3 Investigue sobre la convergencia y el número de iteraciones requeridas por elmétodo de la posición falsa.

3.2.3. Método del Punto fijo (MPF)

Sea f : R 7→ R una función. Se dice que λ es un punto fijo de f, si f(λ) = λ. Este conceptoes el mismo para una función vectorial de variable vectorial.

El método del Punto Fijo consiste en lo siguiente:

1. Transforma la ecuación f(x) = 0 en una ecuación equivalente:

x = θ(x)

2. Dado un punto inicial x0 ∈ R, genera una sucesión {xk} de aproximaciones hacia ξ, laraíz buscada, mediante la relación

xk+1 = θ(xk)

Observe que la función θ debe ser una función que cumpla: f(ξ) = 0 si, y sólo si, θ(ξ) = ξ.De este modo, resolver el problema de encontrar una raíz de una ecuación se convierte en unotro problema de hallar un punto fijo de una función. Aunque a simple vista no parezca, másadelante veremos que esta idea trae ciertas ventajas.

La función θ con esa característica se denomina función iteración asociada a la ecuaciónf(x) = 0. Naturalmente, pueden existir muchas funciones iteración asociadas a una solaecuación.

Page 45: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 39

Ejemplo 3.5 Dada la ecuación x2+2x− 10 = 0. Algunas candidatas a función iteración sonlas siguientes:

1. θ(x) = 5− x2

2

2. θ(x) = 10x+2

, x 6= −2

3. θ(x) = 10x− 2, x 6= 0

Definición 3.1 (Forma general de una función iteración) Una función iteración asocia-da a la ecuación f(x) = 0, está dada de una forma general por

θ(x) = x+A(x)f(x)

con la condición que en ξ, punto fijo de θ, se tenga A(ξ) 6= 0.

Teorema 3.4 Si θ es una función iteración de la ecuación f(x) = 0, entonces f(ξ) = 0 si, ysólo si, θ(ξ) = ξ.

Prueba. (.⇒) Sea ξ tal que f(ξ) = 0. Como θ(ξ) = ξ. + A(ξ)f(ξ), claramente tenemosθ(ξ) = ξ.(⇐) Si θ(ξ) = ξ, entonces ξ. + A(ξ)f(ξ) = ξ implica que A(ξ)f(ξ) = 0, esto a su vez

implica que f(ξ) = 0, pues A(ξ) 6= 0 por definición.

Estudio de la Convergencia del Método del punto Fijo

Dependiendo de la elección de la función iteración θ, el método del punto fijo puede o noconvergir a la solución de la ecuación f(x) = 0. El siguiente teorema establece las condicionessuficientes para que esta convergencia suceda.

Teorema 3.5 Sea ξ una raíz de la ecuación f(x) = 0, aislada en un intervalo abierto Icentrado en ξ. Sea θ una función iteración asociada a esta ecuación. Si

1. θ y θ0 son funciones contínuas en I.

2. |θ0(x)| ≤M < 1, para todo x ∈ I.

3. x0 ∈ I.

Entonces, la sucesión {xk} generada por la regla xk+1 = θ(xk), k = 0, 1, 2, ...convergehacia ξ.

Prueba. La prueba consta de dos partes:

1. Si x0 ∈ I, entonces xk ∈ I, para todo k = 0, 1, 2, ...

2. lımk→∞ xk = ξ

Page 46: Libro Mn 2013 Mayo

40 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Primero, como ξ es una raíz exacta de la ecuación f(x) = 0, se tiene que f(ξ) = 0⇐⇒ ξ = θ(ξ). Además, para cualquier k = 0, 1, 2, ...se tiene xk+1 = θ(xk), desde aquí

xk+1 − ξ = θ(xk)− θ(ξ)

Como θ es continua y diferenciable en I, por el teorema del valor medio, existe ck entre xk yξ, tal que

xk+1 − ξ = θ(xk)− θ(ξ) = θ0(ck)(xk − ξ) k = 0, 1, 2, ...

Luego,|xk+1 − ξ| = |θ0(ck)| |(xk − ξ)| ≤M |xk − ξ| < |xk − ξ| k = 0, 1, 2, .. (3.5)

Es decir, la distancia entre xk+1 y ξ es menor que la distancia entre xk y ξ, como I estácentrado en ξ, vemos que si xk ∈ I. Luego, si x0 ∈ I, claramente xk ∈ I para todo k = 1, 2, ..Para probar la segunda parte, lımk→∞ xk = ξ, desde (3.5) vemos que:

|x1 − ξ| ≤M |x0 − ξ||x2 − ξ| ≤M |x1 − ξ| ≤M2 |x0 − ξ|

...|xk − ξ| ≤Mk |x0 − ξ|

de donde lımk→∞ |xk − ξ| = 0, pues 0 ≤M < 1. Por lo tanto, lımk→∞ xk = ξ.

Ejemplo 3.6 Sea la función f(x) = x2+2x−10 cuya raíz es ξ ≈ 2, 3166. Dadas las funcionesiteración

θ1(x) = 5−x2

2y

θ2(x) =10

x+ 2, x 6= −2

Observe que|θ01(x)| = |−x| = |x| < 1⇐⇒ x ∈ h−1, 1i

Luego, no existe un intervalo I centrado en ξ tal que |θ01(x)| < 1 para todo x ∈ I. El teorema 2.2no afirma nada con respecto de la convergencia de la sucesión {xk} generada por xk+1 = θ1(xk),pues θ1 no cumple la hipótesis, el método del punto fijo puede convergir o no cuando utilice θ1como función iteración.

Por otro lado, si usamos la función iteración θ2, la situación es diferente. Observe que

|θ02(x)| =¯

10

(x+ 2)2

¯< 1⇐⇒ x ∈

D−∞;−

√10− 2

E∪D√10− 2;+∞

E≈

h−∞;−5, 1622i ∪ h1, 1622;+∞i

Luego, existe un intervalo I centrada en ξ, tal que |θ02(x)| < 1 para todo x ∈ I. En este caso,el teorema asegura la convergencia del MPF tomando x0 ∈ I.

Ejercicio 3.4 Analice el caso para la función f(x) = x2 + 2x− 10, cuya raíz es ξ ≈ 2, 3166,cuando se usa como función iteración:

θ3(x) =10

x− 2, x 6= 0

Además, analice el otro caso, cuando consideramos como raíz a ξ ≈ −4, 1622.

Page 47: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 41

Algoritmo 3.2 (Punto Fijo) Considere la ecuación f(x) = 0 y la ecuación equivalente x =θ(x). Supongamos que θ ya es conocida explícitamente y las hipótesis suficientes del teorema 3.5son satisfechas. Dada una precisión deseada ε > 0, el algoritmo se detendrá cuando |f(xk)| < ε.La aproximación al punto fijo ξ (la raíz buscada) será x.

1. Datos iniciales:

a) x0, la aproximación inicial

b) ε1 y ε2 las precisiones deseadas

2. Si |f(x0)| < ε1, hacer x = x0, finalizar el algoritmo

3. k = 1

4. x1 = θ(x0)

5. Si |f(x1)| < ε1 o si |x1 − x0| < ε2, hacer x = x1, finalizar el algoritmo

6. x0 = x1

7. k = k + 1. Volver a paso 4.

Laboratorio 3.6 En algún lenguaje de programación de su preferencia, implemente el MPFy ejecute el programa sobre el problema del ejemplo 3.5. Observe que el método diverge cuandousamos θ1, pruebe con varios puntos iniciales e interprete los resultados

Tasa de Convergencia del Método de Punto Fijo

Cuando vimos el método de bisección, notamos que era posible obtener una cota inferiorpara el número de iteraciones a ser realizadas por el algoritmo. Pero eso no siempre es posible,así, necesitamos de algunos parámetros que nos indiquen con qué rapidez la sucesión generadapor un algoritmo converge a la solución deseada. Eso nos permitirá calificar a un algoritmocomo lento o rápido.

Definición 3.2 (Tasa o rapidez de convergencia) Sea la sucesión©r(k)ªgenerada por al-

gún algoritmo, de modo que lımk→∞ r(k) −→ r. Asumamos que r(k) 6= r para todo k = 0, 1, 2, ..,la tasa de convergencia del algoritmo es el supremo P de los números no negativos p satisfa-ciendo:

lımk→∞

°°r(k+1) − r°°

kr(k) − rkp = β <∞

Si P = 1 y el radio de convergencia β < 1, la sucesión se dice que tiene una tasa de convergen-cia lineal (por lo menos lineal). Si P ≥ 1 y β = 0, la sucesión tiene tasa de convergencia súperlineal. Si P = 2 y β < ∞, entonces diremos que la sucesión tiene una tasa de convergenciacuadrática

Una manera natural de ver esta situación es la siguiente: supongamos que©r(k)ªes una

sucesión generada por un algoritmo la cual converge a la solución r, donde el algoritmo presentauna tasa de convergencia lineal, entonces:°°r(k+1) − r

°°| {z }ek+1

≈ β°°r(k) − r

°°| {z }ek

, ∀k ≥ k0

Page 48: Libro Mn 2013 Mayo

42 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

nos dice que el error ek+1 cometido en la iteración k + 1 es menor (linealmente) que el errorek en la iteración k, cuando k0 es grande.

En el caso de una tasa de convergencia cuadrática, es claro que el error cometido en laiteración k + 1 es aproximadamente el cuadrado del error cometido en la iteración anterior.Esto indica que para valores grandes de k0 y en las proximidades de r, el error ek+1 disminuyeconsiderablemente con respecto a ek :°°r(k+1) − r

°°| {z }ek+1

≈ β°°r(k) − r

°°2| {z }e2k

, ∀k ≥ k0

Así, un algoritmo con tasa de convergencia cuadrática convergirá con mayor rapidez hacia unpunto de acumulación, que uno que posee tasa de convergencia súper lineal. Por otro lado,un algoritmo con tasa de convergencia súper lineal será más rápido que uno con tasa de con-vergencia lineal. Más adelante veremos que el Método Secante tiene una tasa de convergenciaP = 1, 618...

Proposición 3.1 (Tasa de convergencia de MPF) Asumamos que la sucesión generadapor el Método del Punto Fijo converge a ξ, la raíz de f , entonces la tasa de convergencia espor lo menos lineal

Prueba. Desde (3.5), tenemos

|xk+1 − ξ| = |θ0(ck)| |xk − ξ| , ck entre xk y ξ, k = 0, 1, 2, ...

Luego|xk+1 − ξ||xk − ξ| = |θ

0(ck)| , ck entre xk y ξ, k = 0, 1, 2, ...

Tomando límites, por la continuidad de θ y θ0, tenemos

lımk→∞

|xk+1 − ξ||xk − ξ| = lım

k→∞|θ0(ck)| =

¯θ0³lımk→∞

ck´¯= |θ0 (ξ)| = β ≤M < 1

Así, vemos que el método del punto fijo posee una tasa de convergencia lineal, por estemotivo mucha veces se le considera lento. Sin embargo, el método de bisección posee esa mismavelocidad, tal como lo afirma el siguiente ejercicio.

Ejercicio 3.5 Muestre que la tasa de convergencia del método de la bisección es lineal.

3.2.4. El Método de Newton-Raphson

Cuando estudiamos el método del punto fijo, notamos que:

1. Una de las condiciones para la convergencia es que |θ0(x)| ≤ M < 1, para todo x ∈ I,donde I es un intervalo centrado en la raíz.

2. La convergencia del método será más rápida cuando menor sea |θ0 (ξ)| .

Page 49: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 43

La segunda afirmación se debe al siguiente hecho: cuando analizamos la tasa de conver-gencia del MPF, vimos que

lımk→∞

|xk+1 − ξ||xk − ξ| = |θ

0 (ξ)| < 1

Entonces, acelerar la convergencia del MPF se conseguiría escogiendo una función iteración demodo que θ0 (ξ) = 0, pues en este caso la tasa de convergencia sería por lo menos súper-lineal.

Hacia este objetivo, dada la ecuación f(x) = 0 cuya raíz es ξ. Consideramos la formageneral de la función iteración θ(x) = x+A(x)f(x), donde A(ξ) 6= 0, con la nueva condiciónθ0 (ξ) = 0. Así,

θ(x) = x+A(x)f(x) =⇒ θ0(x) = x+A0(x)f(x) +A(x)f 0(x)

Luego,θ0(ξ) = x+A0(ξ)f(ξ) +A(ξ)f 0(ξ) =⇒ θ0(ξ) = 1 +A(ξ)f 0(ξ)

de donde

θ0(ξ) = 0⇐⇒ 1 +A(ξ)f 0(ξ) = 0⇐⇒ A(ξ) = − 1

f 0(ξ), f 0(ξ) 6= 0

Esto nos motiva a definir

A(ξ) = − 1

f 0(ξ)

Entonces, dada la ecuación f(x) = 0, la función iteración deseada será de la forma:

θ(x) = x− f(x)

f 0(x). f 0(x) 6= 0 (3.6)

Observe que

θ0(x) = 1− (f0(x))2 − f(x)f 00(x)

(f 0(x))2=

f(x)f 00(x)

(f 0(x))2. f 0(x) 6= 0

y como f(ξ) = 0, se tiene que θ0(ξ) = 0.

Por lo tanto, usando la función iteración definida en (3.6) obtenemos un caso particulardel método del punto fijo, a éste se le denomina método de Newton.

En resumen, dado x0 ∈ R, el Método de Newton consiste en construir una sucesión definidapor la regla

xk+1 = xk −f(xk)

f 0(xk), f 0(xk) 6= 0, k = 0, 1, 2, .. (3.7)

Otro Enfoque del Método de Newton-Raphson

Desde el punto de vista geométrico, el método de Newton puede ser visto como la soluciónde un problema difícil, mediante la sucesiva resolución de problemas fáciles.Es decir, dada unaaproximación inicial xk ∈ R a la raìz buscada, el problema dificil será hallar una raíz de laecuación no lineal f(x) = 0, mientras que el problema fácil asociado será resolver la ecuaciónLk(x) = 0, donde L es una función lineal afín que es parecida, al menos localmente, a lafunción no lineal f en torno al punto xk.

Page 50: Libro Mn 2013 Mayo

44 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Así, sea el problema (difícil) que consiste en hallar una raíz de f(x) = 0 y x0 ∈ R unaaproximación inicial. Por el teorema de Taylor, existe δ > 0 tal que

f(x) ≈ L0(x) = f(x0) + f 0(x0)(x− x0)

para todo x ∈ hx0 − δ, x0 + δi. Luego, denotando por x1 la solución de la ecuación lineal

L0(x) = 0 (3.8)

y asumiendo que f 0(xk) 6= 0, entonces L0(x) = 0 si, y sólo si,

f(x0) + f 0(x0)(x− x0) = 0

de donde

x1 = x0 −f(x0)

f 0(x0)

Esperando que x1 sea una mejor aproximación que x0 a la solución de f(x) = 0. Este procedi-miento puede ser repetido iterativamente, creándose una sucesión {xk}∞k=0 , donde

xk+1 = xk −f(xk)

f 0(xk), f 0(xk) 6= 0, k = 0, 1, 2, ..

Bajo algunas hipótesis se consigue que lımk→∞ xk = ξ.

Figura 3.6: Iteraciones Newton

Convergencia del Método de Newton-Raphson

A continuación damos las condiciones bajo las cuales se asegura la convergencia del métodode Newton.

Teorema 3.7 Sean f ,f 0 y f 00 contínuas en un intervalo abierto I que contiene en su interiorla raíz ξ de f(x) = 0, donde f 0(ξ) 6= 0, entonces existe un intervalo abierto I ⊂ I conteniendola raíz ξ, tal que si x0 ∈ I , la sucesión {xk} generada por

xk+1 = xk −f(xk)

f 0(xk), f 0(xk) 6= 0, k = 0, 1, 2, ..

convergirá para ξ.

Page 51: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 45

Prueba. Observe que el método de newton es en realidad un MPF con la función iteraciónθ(x) = x− f(x)

f 0(x) .Así, para probar la convergencia debemos probar que existe un I ⊂ I, centradoen ξ, tal que:

1. θ y θ0 son contínuas en I

2. |θ0(x)| ≤M < 1, para todo x ∈ I

Vemos que θ(x) = x − f(x)f 0(x) , θ0(x) = f(x)f 00(x)

(f 0(x))2y por hipótesis f 0(ξ) 6= 0. Como f 0 es

contínua en I,es posible obtener un intervalo abierto I1 ⊂ I, ξ ∈ I1, tal que f 0(x) 6= 0 paratodo x ∈ I1.

Así, en el intervalo I1 se tiene que f ,f 0 y f 00 son continuas y f 0(x) 6= 0, ∀x ∈ I1. Por lotanto, θ y θ0 son contínuas en I1.

Como θ0(x) = f(x)f 00(x)(f 0(x))2

, θ0 es contínua en I1 y θ0(ξ) = 0, entonces es posible obtener otro

intervalo abierto I2 ⊂ I1, centrado en ξ, tal que |θ0(x)| < 1 para todo x ∈ I2.

Por lo tanto, hemos encontrado un intervalo abierto I ⊂ I2 centrado en ξ donde θ y θ0

son contínuas y |θ0(x)| < 1, ∀x ∈ I . Así, si x0 ∈ I , la sucesión {xk} generada por la regla decorrespondencia xk+1 = xk − f(xk)/f

0(xk) converge hacia la raíz ξ de f(x) = 0.

En pocas palabras, lo que dice el teorema anterior es que el método de Newton convergesólo si el punto inicial es tomado lo suficientemente próximo de la solución ξ, esta propiedadse conoce como convergencia local, la cual es una desventaja. Más adelante veremos que, encierta forma, ese defecto se compensa con la rapidez con que converge el método.

Algoritmo 3.3 (Newton-Raphson) Dada la ecuación f(x) = 0. Suponga que las hipótesisde suficiencia dadas en el teorema 2.3 son satisfechas. El algoritmo otorgará una aproximaciónx a la raíz ξ

Paso inicial: Sea x0 una aproximación inicial de ξ y ε1, ε2 > 0 las precisiones deseadas

Paso principal: Si |f(x0)| < ε1, hacer x = x0 y finalizar. Caso contrario hacer:

1. k = 1

2. x1 = x0 − f(x0)/f0(x0)

3. Si |f(x1)| < ε1 o si |x1 − x0| < ε2, hacer x = x1 y finalizar. Caso contrario, hacer

a) x0 = x1

b) k = k + 1. Volver al paso 2.

Laboratorio 3.8 En algún lenguaje de programación de su preferencia, implemente el al-goritmo de Newton y experiméntelo con diversos ejemplares. Compare sus resultados con losmétodos anteriormente estudiados.

Tasa de Convergencia del Método de Newton-Raphson

Page 52: Libro Mn 2013 Mayo

46 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Dada ξ una raíz exacta de la ecuación f(x) = 0. Sea {xk} la sucesión generada por elmétodo de newton, tal que lımk→∞ xk = ξ.

Debido a que el método de Newton es un caso particular de MPF, entonces debe tenerpor lo menos una tasa de convergencia lineal. Nosotros mostraremos que es mucho más queeso, debido a la condición θ0(ξ) = 0, el método alcanzará una tasa cuadrática, es decir, en ladefinición 2.2, P = 2.

Supongamos además que se satisfacen todas las hipótesis del teorema 2.3. Observe que

xk+1 = xk −f(xk)

f 0(xk)=⇒ xk+1 − ξ = xk − ξ − f(xk)

f 0(xk)=⇒ ek+1 = ek −

f(xk)

f 0(xk)

donde ek = xk − ξ. Usando la serie de Taylor para f en torno al punto xk : f(x) = f(xk) +f 0(xk)(x− xk) +

12f 00(ck)(x− xk)

2, ck está entre x y ck. Para x = ξ, tenemos

0 = f(xk) + f 0(xk)(ξ − xk) +1

2f 00(ck)(ξ − xk)

2

de dondef(xk) = f 0(xk)(xk − ξ)− 1

2f 00(ck)(xk − ξ)2

Dividiendo entre f 0(xk), obtenemos

f(xk)

f 0(xk)= (xk − ξ)− f 00(ck)(xk − ξ)2

2f 0(xk)

= ek −f 00(ck)e

2k

2f 0(xk)

Luego,f 00(ck)e

2k

2f 0(xk)= ek −

f(xk)

f 0(xk)= ek+1

de dondeek+1e2k

=f 00(ck)

2f 0(xk)(3.9)

Después de unos cálculos, vemos que

θ00(x) =(f 0(x))2 (f 0(x)f 00(x) + f(x)f 000(x))− (f(x)f 00(x))((f 0(x))2)0

(f 0(x))4

de donde θ00 es continua en ξ y

θ00(ξ) =f 00(ξ)

f 0(ξ)

Llevando (3.9) al límite, tenemos

lımk→∞

|ek+1||ek|2

= lımk→∞

|f 00(ck)||2f 0(ck)|

=1

2

|f 00(lımk→∞ ck)||f 0(lımk→∞ ck)|

=1

2

|f 00(ξ)||f 0(ξ)| =

1

2|θ00(ξ)| = β

Por lo tanto, el método de Newton una tasa de convergencia cuadrática.

Page 53: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 47

Ejemplo 3.7 Un ingeniero diseña un tanque esférico como en la figura adjunta, para alma-cenar agua para un poblado pequeño en un país en desarrollo. El volumen de líquido que puedecontener se calcula con

V = πh2(3R− h)

3

donde V = volumen (m3), h = profundidad en el tanque (m) y R = radio del tanque (m)

si R = 5m. ¿A qué profundidad debe llenarse el tanque de modo que contenga 20m3? Resuelvacon el método de Newton Raphson para determinar la respuesta, con un punto de inicio de 1,5con una precisión de 0,01

Solución: f(h) =3v

π− 3Rh2 + h3 sustituyendo los datos tenemos

f(h) =60

π− 15h2 + h3

f 0(h) = −60h+ 3h2

iter xn1 1.5000002 1.3588243 1.2765504 1.2301435 1.2046586 1.190916...

...12 1.175701

El tanque se debe llenar a una profundidad de h = 1,175701m

Ejemplo 3.8 El desplazamiento x (metros) de una masa que experimenta una oscilaciónamortiguada varía con el tiempo t (segundos) según el modelo:

x = −0,1eβt∙cos(ωt)−

µβ

ω

¶sin(ωt)

¸donde β y ω tienen unidades de seg−1 . Al realizar mediciones se obtiene un desplazamientox de 0,0162 metros en un instante t de 0,41 segundos, ω = 7,5 seg−1 . Determine el parámetroβ.

Page 54: Libro Mn 2013 Mayo

48 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

1. Localice la raíz o raices

Solución: Gráficandof(β) = 0,0162 + 0,1e0,41β³cos ((7,5)(0,41))− β

7,5sin ((7,5)(0,41))

´-6 -5 -4 -3 -2 -1 1 2

-0.20

-0.18

-0.16

-0.14

-0.12

-0.10

-0.08

-0.06

-0.04

-0.02

xy

Hay una raíz en el intervalo [5,−4] .

Tabulandoβ f(β)

-8 0.0127

-7 0.0109-6 0.0081-5 0.0039-4 -0.0025-3 -0.0122-2 -0.0270-1 -0.04940 -0.08361 -0.1355

Se observa el cambio de signo en el intervalo [−5,−4]

2 Realice las iteraciones del método de Bisección en el intervalo [−5,−4] con una precisiónde 0,01

iter an bn cn f(an) f(cn)

0 -5.000000 -4.000000 -4.500000 + +1 -4.500000 -4.000000 -4.250000 + -2 -4.500000 -4.250000 -4.375000 + +3 -4.375000 -4.250000 -4.312500 + -4 -4.375000 -4.312500 -4.343750 + +5 -4.343750 -4.312500 -4.328125 + -6 -4.343750 -4.328125 -4.335938 + -

Page 55: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 49

c =-4.33593750000000

iter =7

3 Realice las iteraciones del método de Newton con x0 = 1, con una precisión de 0,000001.

Solución:iter x

0 1.0000001 -1.1326892 -2.8965973 -3.9786334 -4.312296

x =-4.33791420672419

iter =5

Ejemplo 3.9 La concentración c de una bacteria contaminante en un lago decrece según laexpresión

c(t) = 80e−2t + 20e−0,5t

siendo t el tiempo en horas. Determine el tiempo que se necesita para que el número de bacteriasse reduzca a 7

Solución:c(t)− 7 = 0

siendo la funcióny = 80e−2t + 20e−0,5t − 7

y su derivaday0 = −160e−2t − 10e−0,5t

Para x0 = 2 y con una precisión e = 0,000001 tenemos:

iter x

0 2.0000001 2.2757992 2.3276813 2.329087

x =2.32908761684562

iter =4

Ejemplo 3.10 Determinar la raíz real usando el método de la Bisección

a.√3 sinx = cosx en el intervalo [0, π/2] con una precisión de 10−4

Page 56: Libro Mn 2013 Mayo

50 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Solución: f(x) =√3 sinx− cosx = 0

iter an bn cn f(an) f(cn)

0 0.000000 1.570796 0.785398 - +1 0.000000 0.785398 0.392699 - -2 0.392699 0.785398 0.589049 - +3 0.392699 0.589049 0.490874 - -4 0.490874 0.589049 0.539961 - +5 0.490874 0.539961 0.515418 - -...

......

......

...12 0.523471 0.523854 0.523663 - +13 0.523471 0.523663 0.523567 - -

c =0.52356681766522

iter =14

b. 3 cos¡x2

¢+ 3 = 0 en el intervalo [1, 6] con una precisión de 10−2

Solución: f(x) = 3 cos¡x2

¢+ 3 = 0

iter an bn cn f(an) f(cn)

0 1.000000 6.000000 3.500000 + +1 3.500000 6.000000 4.750000 + +2 4.750000 6.000000 5.375000 + +3 5.375000 6.000000 5.687500 + +4 5.687500 6.000000 5.843750 + +5 5.843750 6.000000 5.921875 + +6 5.921875 6.000000 5.960938 + +7 5.960938 6.000000 5.980469 + +8 5.980469 6.000000 5.990234 + +

c =5.99023437500000

iter =9

c. xex − π = 0 en el intervalo [0, 2] con una precisión de 10−2

Solución:

iter an bn cn f(an) f(cn)

0 0.000000 2.000000 1.000000 - -1 1.000000 2.000000 1.500000 - +2 1.000000 1.500000 1.250000 - +3 1.000000 1.250000 1.125000 - +4 1.000000 1.125000 1.062500 - -5 1.062500 1.125000 1.093750 - +6 1.062500 1.093750 1.078125 − +7 1.062500 1.078125 1.070313 - -

Page 57: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 51

c =1.07031250000000

iter =8

Ejemplo 3.11 Justificar que f(x) tiene una única solución en el intervalo [1, 2], graficamentey analíticamente (existencia y unicidad)

a. f(x) = x− 2 + lnx

Solución: y = x− 2 + ln(x)

1 2 3 4 5

-10

-5

0

5

x

y

es continua en [1, 2] y f(1).f(2) < 0, entonces existe solución en [1, 2] .Derivando dydx=

x+ 1

xno cambia de signo en [1, 2] , por lo que la solución es única

b. f(x) =√x− 5e−x

Solución: y =√x− 5e−x

1 2 3 4 5

-4

-2

0

2

x

y

es continua en [1, 2] y f(1).f(2) < 0, entonces existe solución en [1, 2] .Derivandody

dx=

1

2√x+ 5e−x no cambia de signo en [1, 2] , por lo que la solución es única

Ejemplo 3.12 Modifique su programa de Bisección e implemente el error absoluto que existeen cada iteración y hallar la raíz de la ecuación x2 = 4 sinx en el intervalo [1, 3] con unaprecisión de 0,01 y muestre el error relativo en cada iteración

iter an bn cn error

0 1.000000 3.000000 2.000000 2.0000001 1.000000 2.000000 1.500000 1.0000002 1.500000 2.000000 1.750000 0.5000003 1.750000 2.000000 1.875000 0.2500004 1.875000 2.000000 1.937500 0.1250005 1.875000 1.937500 1.906250 0.0625006 1.906250 1.937500 1.921875 0.0312507 1.921875 1.937500 1.929688 0.015625

Page 58: Libro Mn 2013 Mayo

52 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

c =1.92968750000000

iter =8

Ejemplo 3.13 Aplicando el método de Newton, encontrar la raíz de la ecuación f(x) = 3x+sinx− ex, e itere hasta que se cumpla

¯x(k) − x(k−1)

¯≤ 0,0001.

a) Pruebe con x0 = −5

Solución:iter x

0 -5.0000001 -0.7131102 0.292224

c =0.35892945873110

iter =3

b) Pruebe con x0 = +5 y comente sus resultados

Solución:

iter x

0 5.0000001 4.0741232 3.2339793 2.5593284 2.1226925 1.929768

c =1.89147102717311

iter =6

Esta función tiene dos raices en 0.3589 y 1.8915. Como se puede apreciar en el siguientegráfico de 3x+ sinx− ex

-1 1 2 3

-10

-8

-6

-4

-2

xy

Page 59: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 53

Ejemplo 3.14 La función f(x) =4x− 7x− 2 tiene una raíz en x = 1,75. Utilizar el método de

Newton con las siguientes aproximaciones iniciales, estudiando en cada caso, previamente, sise produce un proceso de convergencia a no a la raíz.(con una precisión de 0,001)

a. x0 = 1,6

Solución:iter x

0 1.6000001 1.8400002 1.7824003 1.7541994 1.750071

c =1.75000001989665

iter =5

Converge a la raíz

b. x0 = 1,5

Solución:iter x

0 1.500000...

...NaN

c =NaN

iter =2

No converge a la Raíz

c. x0 = 3

Solución:

iter x

0 3.0000001 8.0000002 158.0000003 97658.0000004 38146972658.0000235 5820766091346748400000.0000006 135525271560688430000000000000000000000000000.0000007 7346839692639338500000000000000000000000000000000...8 2159042138773635700000000000000000000000000000000...

Page 60: Libro Mn 2013 Mayo

54 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

c =Inf

iter =9

Converge a una falsa solución.

3.2.5. Método de Secante

Uno de los incovenientes en el método de Newton es el cálculo de la derivada de f en cadaiteración, es decir, evaluar f 0(xk).Unamanera de enfrentar esto es considerar una aproximaciónde la derivada:

f 0(xk) ≈f(xk)− f(xk−1)

xk − xk−1, xk ≈ xk−1

donde xk y xk−1 son dos estimativas de la raíz exacta ξ. Para este caso, la función iteraciónNewton queda establecida como

θ(xk) = xk −f(xk)

f(xk)−f(xk−1)xk−xk−1

= xk −f(xk)(xk − xk−1)

f(xk)− f(xk−1)

O si lo prefiere, dadas dos estimativas iniciales para la raíz ξ de la ecuación f(x) = 0, x0 y x1,el método secante consiste en construir una sucesión {xk} definida por la regla

xk+1 = xk −f(xk)(xk − xk−1)

f(xk)− f(xk−1), k = 1, 2, 3, ... (3.10)

Las condiciones para la convergencia del método secante son prácticamente las mismas quelas del método de Newton. Si bien la dificultad del cálculo explícito de la derivada fue evitada,lamentablemente el precio que se paga por esto es la disminución en la tasa de convergencia,que es súper-lineal. Una interpretación gráfica puede ser vista en la figura 3.7.

Figura 3.7: MétodoSecante

Convergencia del Método Secante

Al igual que el Método de Newton, la convergencia de Método Secante está aseguradacuando los puntos iniciales x0 y x1 fueron tomados lo suficientemente próximos de la raízbuscada ξ. El teorema a seguir formaliza esta afirmación.

Page 61: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 55

Teorema 3.9 Sea ξ una raíz de f(x) = 0 y suponga que f ∈ C2 en una vecindad en torno deξ donde f 0(ξ) 6= 0. Si los puntos iniciales x0 y x1 están suficientemente próximo de ξ, entonceslımk→∞ xk = ξ.

Prueba. Desde la ecuación (3.10), tenemos

ξ − xk+1 = ξ − xk +f(xk)(xk − xk−1)

f(xk)− f(xk−1)

= −(ξ − xk−1)(ξ − xk)

⎛⎜⎜⎝f(ξ)−f(xk)

ξ−xk− f(xk)−f(xk−1)

xk−xk−1ξ−xk−1

f(xk)−f(xk−1)xk−xk−1

⎞⎟⎟⎠= −(ξ − xk−1)(ξ − xk)

µf 00(γk)

2f 0(ηk)

¶(3.11)

donde γk está entre ξ, xk y xk−1, mientras que ηk está entre xk y xk−1. Como f ∈ C2, existeuna vecindad I = [ξ − δ, ξ + δ], con δ > 0, tal que f 0 y f 00 son continuas y f 0(x) 6= 0 para todox ∈ I. Por tanto, existe M > 0 tal que

M = maxx∈I

¯f 00(γk)

2f 0(ηk)

¯Elijamos los puntos iniciales x0, x1 I, de modo que

M |ξ − x0| < 1 y M |ξ − x1| < 1

Definamos ahora t = max {M |ξ − x0| ,M |ξ − x1|} , claramente t < 1. Así, por (3.11) tenemos

M |ξ − x2| = M (ξ − x1) (ξ − x0)

µf 00(γk)

2f 0(ηk)

¶= M2 |ξ − x1| |ξ − x0| ≤ t2 ≤ t < 1

de donde|ξ − x2| <

t

M= max {|ξ − x0| , |ξ − x1|} < δ

Así, x2 ∈ I. Usando este argumento, tenemos por inducción que xk ∈ I, para k ≥ 2. Engeneral se tiene

M |ξ − x2| =M2 |ξ − x1| |ξ − x0| ≤ t2

M |ξ − x3| =M2 |ξ − x2| |ξ − x1| ≤ t3

M |ξ − x4| =M2 |ξ − x3| |ξ − x2| ≤ t5

...M |ξ − xk+1| =M2 |ξ − xk| |ξ − xk−1| ≤ tFk

de donde Fk es el k−ésimo término de la sucesión de Fibonacci. Por lo tanto lımk→∞M |ξ − xk| =0.

Tasa de Convergencia del Método Secante

A continuación analizaremos la tasa de convergencia que el Método Secante posee. Debemosrecalcar que algunos autores denominan a esta propiedad como el orden de convergencia.

Page 62: Libro Mn 2013 Mayo

56 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Teorema 3.10 Sea ξ una raíz de f(x) = 0. Asumamos que la sucesión generada por el MétodoSecante converge hacia ξ. Si f ∈ C2 y f 0(ξ) 6= 0, entonces el Método Secante tiene una tasade convergencia p = 1+

√5

2= 0, 618... y

lımk→∞

ξ − xk+1(ξ − xk)

p = −µf 00(γk)

f 0(ηk)

¶p−1

Prueba. Desde (3.11) tenemos

ξ − xk+1 = − (ξ − xk+1) (ξ − xk)

µf 00(γk)

f 0(ηk)

¶(3.12)

donde γk está entre ξ, xk y xk−1, mientras que ηk está entre xk y xk−1. Resolviendo (3.12)obtenemos

(ξ − xk) =1

KApnBrn (3.13)

donde K = − f 00(γk)2f 0(ηk)

, p = 1+√5

2, r = 1−

√5

2,,A =

³((ξ−x0)K)r(ξ−x1)K

´ 1r−p

y B =³

(ξ−x1)K((ξ−x0)K)p

´ 1r−p

, la

solución de (3.12) dada por (3.13) se puede comprobar por la sustitución directa. Por lo tanto,

ξ − xk+1(ξ − xk)

p = Kp−1Brn(r − p)

y

lımk→∞

ξ − xk+1(ξ − xk)

p = lımk→∞

Kp−1 lımk→∞

Brn(r − p) = −µf 00(γk)

2f 0(ηk)

¶p−1

Como se puede observar, lımk→∞ξ−xk+1(ξ−xk)p existe para p =

1+√5

2≈ 1, 61803398, el cual en cierta

forma nos recuerda al número áureo, 0, 61803398..., concluimos entonces que la tasa o rapidez(orden) de convergencia del Método Secante es aproximadamente 1, 618.

Como se puede observar, el Método Secante posee una tasa de convergencia un tanto inferioral Método de Newton, que tiene una tasa cuadrática. No obstante, la tasa de convergencia de1, 618 es superior a una lineal, y en la práctica esa disminución en la velocidad de convergenciay su evaluación en cada iteración.

Laboratorio 3.11 En algún lenguaje de programación de su preferencia, implemente el méto-do secante y experiméntelo con diversos ejemplares. Compare en la práctica sus resultados conlos métodos anteriores estudiados.

Ejercicio 3.6 Experimente y compare los métodos estudiados en este capítulo, hallando unaraíz de la ecuación f(x) = 0, donde

f(x) = x− x ln(x)

Ejercicio 3.7 Experimente y compare los métodos estudiados en este capítulo, hallando unraíz de la ecuación f(x) = 0, donde

f(x) = ex − 4x2

Page 63: Libro Mn 2013 Mayo

3.2. REFINAMIENTO: MÉTODOS ITERATIVOS 57

Ejercicio 3.8 Sea

f(x) =x2

2+ x (ln(x)− 1)

Halle sus puntos críticos (puntos donde f 0(x) = 0) usando un método iterativo estudiado eneste capítulo.

Ejercicio 3.9 Halle un punto donde la función

f(x) = x2 + x3(ln(x)− 3) + 850alcanza un mínimo sobre el intervalo [10, 20] .

Ejercicio 3.10 (ciclaje en el método de newton) Las iteraciones del Método de Newtonentrarán en un ciclo ilimitado si

xn+1 − a = −(xn − a)

Esto a su vez sucede si f satisface

x− a− f(x)

f 0(x)= −(x− a)

La anterior expresión es una ecuación diferencial ordinaria separable de la forma

f(x)

f 0(x)= − 1

2(x− a)

cuya solución esf(x) = sign(x− a)

p|x− a|

donde la función sign es la función signo, el. cero de f es claramente x = a. Gráficamente fpara el caso a = 2. Seguidamente, use un punto inicial x0, donde x0 6= a, y ejecute al algoritmode Newton.

Ejercicio 3.11 Se considera la función F (x) = x5 + 2x. Mediante el Método de Newton,hallar el menor número positivo x (con tres decimales) para el cual F (x) = 4.

Ejercicio 3.12 Probar, mediante el método de Newton, que la ecuación

xn+1 = xn(2− axn)

se puede utilizar para aproximar 1/a si x0 es una estimación inicial del recíproco de a. Nóteseque este método de aproximar recíprocos utiliza sólo operaciones de suma y multiplicación.(considerar f(x) = 1

x− a). Pruebe para los casos:

1. 13

2. 111

Ejercicio 3.13 Pruebe que, al ser aplicado el método de newton en la resolución ax+ b = 0,donde a 6= 0, éste requiere sólo una iteración, sin importar qué punto inicial fue tomado.Ejercicio 3.14 En los casos siguientes, aplicar el método de Newton con la estimación inicialpropuesta, explicar por qué falla el método.

1. y = 2x3 − 6x2 + 6x− 1, donde x0 = 1

2. y = 4x3 − 12x2 + 12x− 3, donde x0 = 32

3. y = −x3 + 3x2 − x+ 1, donde x0 = 1

4. y = 3√x− 1, donde x0 = 2

Page 64: Libro Mn 2013 Mayo

58 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

3.2.6. Comparación de los Métodos Iterativos

El esfuerzo computacional para la ejecución de cada uno de los métodos depende de variosfactores, los más importantes son:

1. La complejida de los cálculos, sobre todo para la derivada.

2. El número total de iteraciones

3. Condiciones para la convergencia

El método de la bisección y el método de la posición falsa exigen pocas condiciones paragarantizar la convergencia, el incoveniente está en que el número de iteraciones puede sergrande. Observe que su tasa de convergencia es lineal.

Los métodos de punto fijo frecuentemente son más rápidos, pero a cambio exigen muchahipótesis para la convergencia.

El más rápido es el método de newton, pero requiere el cálculo de la derivada y demanda,al igual que los métodos de punto fijo, hipótesis rigurosas para su convergencia.

El método secante puede ser práctico cuando el cálculo de la derivada es complicado, perono es tan rápido como el método de Newton.

Se puede concluir que la elección del método más eficiente depende de la ecuación que seintente resolver. Cada método tiene sus ventajas y desventajas.

Como un comentario adicional, después de llevar al computador cada uno de estos métodosy experimentarlos con diversos ejemplares, probablemente el estudiante halle que las diferenciasde tiempo de ejecuación, entre un programa y otro, sea insignificante cuando se aplica a laresolución de una ecuación, y ese afán por buscar el método más rápido parecería no tenersentido. Esa percepción es equivocada, pues estos métodos deben verse como subrutinas deotros métodos iterativos más sofisticados, para otro tipo de problemas, donde la pérdida deuna fracción de segundos restaría el desempeño del método en su conjunto.

3.3. Problemas

Problema 3.1 Por un canal trapezoidal fluye agua a una tasa de Q = 20m3/s. La profundidadcrítica y para dicho canal satisface la ecuación

0 = 1− Q2

gA3cB

donde g = 9, 81m/s2, Ac = área de la sección transversal (m2) y B = ancho del canal en lasuperficie (m). Para este caso, el ancho y el área de la sección transversal se relacionan conla profundidad y por medio de

B = 3 + y y Ac = 3y +y2

2

Resuelva para la profundidad crítica con el uso de los métodos

Page 65: Libro Mn 2013 Mayo

3.3. PROBLEMAS 59

1. Gráfico

2. Bisección en el intervalo [0,5 2,5] con una precisión de 0,0001

3. Falsa posición en el intervalo [0,5 2,5] con una precisión de 0,0001. Analice sus resul-tados

Problema 3.2 Construya una matriz mágica de orden 7 (A=magic(7)) y anote los comandosque efectúen para:

1. Obtener un arreglo P los elementos de A comprendidos entre las filas 2 y 5 y las columnas1 y 4.

2. Obtener un arreglo Q las tres últimas columnas de A

3. Obtener un arreglo R las tres primeras filas de A

4. Crear un arreglo B que contenga las filas de A con las filas 1 y 4 intercambiadas.

Problema 3.3 Escriba una implementación en un archivo M función, que permita evaluar lafunción

f(x, y) = x+2y − x2p

x2 + y2 + 10−3

en los puntos

1. (x, y) = (3, 4)

2. (x, y) = (π,√2)

Problema 3.4 Determine la raiz aproximada de la función f(x) = x2 − 4 sinx = 0 en elintervalo [1, 3] con una precisión de 0,000001 use el método de la bisección, posición falsa ypunto fijo.

Problema 3.5 Determinar las raíces de f(x) = −0,5x2 + 2,5x+ 4,5

1. Gráficamente y aislar sus raíces

2. Empleando la fórmula cuadrática

3. usando el método de bisección, empleando los intervalos encontrados en (a) con unaprecisión de 0,000001

Problema 3.6 Fundamente y describa brevemente, como trabajan:

1. El método de la Posición falsa

2. El método de punto fijo

3. El método de Newton

Problema 3.7 Dada la ecuación cos(x) + x− 0, 5− x3

9= 0;

Page 66: Libro Mn 2013 Mayo

60 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

1. Localizar todas las raíces

2. Mediante el método de Newton-Raphson obtener la raíz más carcana a 2,5 con unaprecisión de 10−6

3. Escriba un programa MatLab para la parte b)

Problema 3.8 Considera las dos vigas de 30m y 20m cruzándo a una altura de 8m del suelocomo se muestra en la figura 3.8. Determine el ancho del pasadizo, H.

Figura 3.8: Problema de las Vigas

Problema 3.9 Una determinada sustancia se desintegra según la ecuación A(t) = Pe−0,0248t,donde P es la cantidad inicial en el tiempo t = 0 y A la cantidad resultante después de taños. Si inicialmente se depositan 500 miligramos de dicha sustancia, Cuánto tiempo debetranscurrir para que quede el 1 por ciento de ésta? Utilizar el Método de Newton.

Problema 3.10 Una medicina administrada a un paciente produce concentración en la san-gre dada por c(t) = Ate−t/3mg /ml, t horas después de que se hagan administrado A unidades.La máxima concentración sin peligro es de 1mg /ml, y a esta cantidad se le denomina con-centración de seguridad.

1. ¿Qué cantidad debe ser inyectada para alcanzar como máximo esta concentración deseguridad? ¿Cuándo se alcanza este máximo?

2. Una cantidad adicional se debe administrar al paciente cuando la concentración baja a0, 25 mg /ml . Determínese con un error menor de 1 minuto cuándo debe ponerse estasegunda inyección.

Problema 3.11 El crecimiento de poblaciones grandes puede modelarse en periodos cortossuponiendo que el crecimiento de la población es una función contínua en t mediante unaecuación diferencial cuya solución es:

N(t) = N0eλt +

ν

λ

¡eλt − 1

¢donde N(t) es el número de individuos en el tiempo t (medido en años), λ es la razón denatalidad, N0 es la población inicial y ν es una razón constante de inmigración, que se mideen números de inmigrantes al año. Supóngase que una población dada tiene un millon deindividuos inicialmente y una inmigración de 400, 000 individuos al año. Se observa que alfinal del primer año la población es de 1506000 individuos. Se pide:

Page 67: Libro Mn 2013 Mayo

3.3. PROBLEMAS 61

1. Determinar la tasa de natalidad.

2. Hacer una previsión de la población al cabo de tres años.

Page 68: Libro Mn 2013 Mayo

62 CAPÍTULO 3. CEROS REALES DE FUNCIONES REALES

Page 69: Libro Mn 2013 Mayo

Capítulo 4

Resolución de Sistemas Lineales

Sistemas de ecuaciones lineales aparecen en la resolución de diversos problemas de la vidareal, frecuentemente, algunos de esos problemas involucran un gran número de variables yecuaciones, Claramente, el método basado en la sustitución de variables, empleado para re-solver pequeños sistemas de dos o tres variables, resulta absoleto en estos casos, por lo queen necesario conocer métodos numéricos especializados para hacer frente a estas situaciones.Estos métodos numéricos no podrían trabajar sin la intervención de un computador, debidoa la cantidad de cálculos envueltos en ese procedimiento. Todo esto sin lugar a dudas tornaimportante el estudio de sistema de ecuaciones lineales desde el punto de vista numérico. Perola resolución de sistemas de ecuaciones lineales no sólo tiene importancia própia, sino queconstituye también una herramienta indispensable en la resolución de sistemas de ecuacionesno lineales. Más aún, es la base para la resolución de muchos otros problemas que surgen endiferentes áreas.

Considere el siguiente sistemas de ecuaciones lineales compuesto de dos ecuaciones y dosvariables: ½

a1,1x1 + a1,2x2 = b1a2,1x1 + a2,2x2 = b2

En sistemas simples como éste, podemos notar lo siguiente

1. Solución única ½3x1 + 2x2 = 10

x1 − x2 = 5=⇒

∙x1x2

¸=

∙4−1

¸

2. Soluciones infinitas½3x1 − 3x2 = 15

x1 − x2 = 5=⇒

∙x1x2

¸=

∙5 + t−1

¸, t ∈ R

3. Ninguna solución ½2x1 − 2x2 = 8x1 − x2 = 5

Gráficamente, cada ecuación representa a una recta, un punto que satisface ambas ecua-

63

Page 70: Libro Mn 2013 Mayo

64 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

ciones al mismo tiempo deberá estar en la intersección de ambas rectas (figura 4.1)

Figura 4.1: Representación gráfica de sistemas de ecuaciones lineales

Por otro lado, cuando tenemos 3 variables, cada ecuación representaría un plano, unpunto que satisface tres ecuaciones de un sistema simultáneamente estará en la intersec-ción de tres planos. Para el caso n-dimensional, la situación es análoga, pero el conjuntodefinido por cada ecuación se denomina n-hiperplano.

4.1. Aspectos Teóricos

Para un caso general, un sistema de m ecuaciones lineales y n variables es la formulaciónmatemática siguiente:⎧⎪⎪⎪⎨⎪⎪⎪⎩

a1,1x1 + a1,2x2 + · · · + a1,nxn = b1a2,1x1 + a2,2x2 + · · · + a2,nxn = b2...

......

.... . .

......

......

am,1x1 + am,2x2 + · · · + am,nxn = bm

(4.1)

Usando la notación matricial, el mismo sistema puede ser visto por

Ax = b (4.2)

donde A ∈ Rm×n, b ∈ Rm y x ∈ Rn es el vector de las variables o incógnitas, definidas por:

A =

⎡⎢⎢⎢⎣a1,1 a1,2 · · · a1,na2,1 a2,2 · · · a2,n...

.... . .

...am,1 am,2 · · · am,n

⎤⎥⎥⎥⎦ , b =

⎡⎢⎢⎢⎣b1b2...bm

⎤⎥⎥⎥⎦ y x =

⎡⎢⎢⎢⎣x1x2...xn

⎤⎥⎥⎥⎦Una solución para el sistema (4.1) es un vector x = [x1...xn]

t ∈ Rn el cual satisface simultánea-mente cada una de las m ecuaciones que conforman el sistema: En un sistema lineal puedesuceder lo siguiente:

1. El sistema lineal tiene única solución.

2. El sistema lineal posee infinitas soluciones.

3. El sistema lineal no posee soluciones

Cuando n = m y A es inversible en (4.2), entonces la solución es única, en consecuencia,dicha solución puede ser obtenida haciendo x = A−1b. No obstante, se debe advertir queeste procedimiento tiene sólo un valor teórico, pues desde el punto de vista computacional esconsiderado costoso por el excesivo número de operaciones involucradas para calcular la inversade A. En contraste, existen métodos más apropiados que no requieren el cálculo explícito deA−1, como los que veremos más adelante.

Page 71: Libro Mn 2013 Mayo

4.1. ASPECTOS TEÓRICOS 65

4.1.1. Conjunto Imagen de una Matriz A

Dada una matriz A ∈ Rm×n, definimos la imagen de A, denotado por Im(A), como elconjunto:

Im(A) = {y ∈ Rm : ∃x ∈ Rn, y = Ax}Algunas veces a este conjunto se le denomina espacio imagen de A, debido a lo siguiente:

Ejercicio 4.1 Muestre que Im(A) es un subespacio vectorial de Rm.

Desde el punto de vista de las columnas de A ∈ Rm×n, note que

Ax =nX

j=1

ajxj

donde aj representa la j-columna de A y xj es la j-componente del vector x ∈ Rn. Luego,resolver el sistema Ax = b significa obtener escalares x1, ..., xn que permitan escribir b ∈ Rm

como una combinación lineal de las columnas de A, es decir:

b = a1xl + ...+ anxn

Por esta razón, al conjunto Im(A) también se le conoce como espacio columna de A. Enconsecuencia, la dimensión de la imagen de A, denotada por dim(Im(A)), está determinadapor el máximo número de columnas linealmente independientes de A.

4.1.2. Rango de una Matriz A

El rango de la matriz A ∈ Rm×n, denotado por rango(A), es definido por

rango(A) = dim(Im(A))

Una manera práctica de encontrar el rango(A) consiste en determinar el mayor número decolumnas linealmente independientes deA. EnÁlgebra Lineal se conoce que rango(A) =rango(At),por consiguiente, para encontrar el rango(A) basta determinar también el mayor número defilas linealmente independientes de A, esto último suele ser de gran ayuda en muchos casos.

Con respecto a la resolución del sistema de ecuaciones lineales Ax = b, podemos destacarlo siguiente:

1. Si m = n, puede pasar lo siguiente:

a) Si rango (A) = n, el sistema Ax = b tiene solución única, pues A es inversible. Enestas condiciones, se dice que el sistema es compatible y determinado.

b) Si rango (A) < n, puede pasa lo siguiente

1) Si b ∈ Im(A), el sistema Ax = b admitirá infinitas soluciones. En estas condi-ciones, se dice que el sistema es compatible e indeterminado.

2) Si b /∈ Im(A), el sistema no admite solución. En estas condiciones, se dice queel sistema es incompatible.

Page 72: Libro Mn 2013 Mayo

66 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

2. Si m > n, aunque rango(A) = n, el sistema puede no tener solución, debido a que esmuy frecuente que b /∈ Im(A).

3. Si m < n, es muy probable que el sistema se compatible e indeterminado si b ∈ Im(A).En el caso que b /∈ Im(A), el sistema será incompatible.

Matriz A∈ Rm×n m<n m=n m>n

Rango completorango(A)=minfitas soluc.

rango(A)=nsol. única

rango(A)=nb∈ Im(A) sol. única

b/∈ Im(A) sol. única

Rango b ∈ Im(A) infinitas soluc. infinitas soluc infinitas solucdeficiente b /∈ Im(A) incompatible incompatible incompatible

Cuadro 4.1: Soluciones de un sistema de ecuaciones lineales

El cuadro 4.1 esquematiza las soluciones de un sistema de ecuaciones lineales.

4.2. Métodos Numéricos para Resolver Sistemas de Ecua-ciones Lineales

Los métodos numéricos que estudiaremos en este capítulo requieren que el sistema (4.1)esté constituido de n filas y n columnas, es decir n = m. Al final de este capítulo, en elproblema 3.4, será discutida una estrategia para enfrentar sistemas lineales donde m < n. Porotro lado sistemas donde n > m se denominan sobredeterminados, ellos serán discutidos en elsiguiente capítulo.

Los métodos para resolver sistemas de ecuaciones lineales de n×n pueden ser de dos tipos,directos e iterativos.

Directos: Si la solución existe, otorgan la solución exacta del sistema lineal después de unnúmero finito de operaciones, excepto errores de redondeo.

Iterativo: Dada una aproximación inicial x0, generan una sucesión de vectores {xk}∞k=0 . Sila solución existe, bajo ciertas condiciones, esta sucesión converge a la solución.

A simple vista, parece ser que la elección de un método directo es la más adecuada. Noobstante, como veremos más adelante, los métodos directos tienen un alto costo computacional,requiriendo alrededor de n3 operaciones elementales para resolver un sistema lineal de n× n.En contraste, los métodos iterativos parecen menos atractivos, sin embargo, sólo requierenalrededor de n2 operaciones elementales por cada iteración1, eso los torna más viables en laresolución de sistemas de ecuaciones de grandes dimensiones2.

En las siguientes secciones analizaremos algunos de los métodos más importantes para laresolución numérica de sistemas de ecuaciones lineales.

1Pero pueden requerir muchas iteraciones.2Frecuentemente, cuando n > 1000.

Page 73: Libro Mn 2013 Mayo

4.3. MÉTODO DE CRAMER 67

4.3. Método de Cramer

La Regla de Cramer"puede ser enfocada como un método directo. Proviene de un teo-rema en álgebra lineal, mediante el cual se puede obtener la solución de un sistema linealde ecuaciones en términos de determinantes. Recibe este nombre en honor a Gabriel Cramer(1704-1752).

Si Ax = b es un sistema de ecuaciones lineales, donde A ∈ Rn×n es inversible y b ∈ Rn esun vector columna, entonces la solución del sistema se calcula así:

xj =det(Aj)

det(A)j = 1, ..., n (4.3)

donde Aj es la matriz que resulta de reemplazar la j-colimna de A por b.

Ejercicio 4.2 El determinante de una matriz real cuadrada de orden n está definido por

det(A) =nX

j=1

(−1)j+1a1,j det(A [1, j]) (4.4)

donde a1,j es el elemento en la 1-fila y la j-columna de A, mientras que A [1, j] es la submatrizobtenida al eliminar la 1-fila y la j-columna de A. Muestre que el número de multiplicacionesnecesarias para hallar det(A) es aproximadamente n!

Es posible calcular el determinante de una matriz sin utilizar directamente la definicióndada en (4.4), pero eso tomará por lo menos alrededor de n3 operaciones elementales. Por lotanto, para fines prácticos, métodos como el de Cramer deben estar fuera de nuestro interes,debido a que resulta muy costoso en la resolución numérica de sistemas de ecuaciones lineales3.

4.4. Método de Gauss

Este método numérico es el más conocido y encuadra dentro de los métodos directos.

Dado el sistema lineal de n× n⎧⎪⎪⎪⎨⎪⎪⎪⎩a1,1x1 + a1,2x2 + · · · + a1,nxn = b1a2,1x1 + a2,2x2 + · · · + a2,nxn = b2...

......

.... . .

......

......

an,1x1 + an,2x2 + · · · + an,nxn = bn

(4.5)

El método de eliminación de Gauss consiste de transformar el sistema de (4.5), de un modoequivalente, a un sistema triangular superior:⎧⎪⎪⎪⎨⎪⎪⎪⎩

a01,1x1 + a01,2x2 + · · · + a01,nxn = b01a02,2x2 + · · · + a02,nxn = b02

. . ....

......

...a0n,nxn = b0n

(4.6)

3La regla de Cramer tiene un valor teórico, pues se utiliza en la demostración de muchas propiedades.

Page 74: Libro Mn 2013 Mayo

68 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

El beneficio de esto es que se puede resolver el sistema triangular (4.6) de modo eficiente, asíque de la última ecuación de (4.6) tenemos

xn =b0na0n,n

Luego, xn−1 puede ser obtenido mediante

xn−1 =b0n−1 − a0n−1,nxn

a0n−1,n−1

Y así sucesivamente, obtenemos xn−2, xn−3, ..., x2, finalmente

x1 =b01 − a01,2x2 − a01,3x3 − ...− a01,nxn

a01,1

4.4.1. Resolviendo un Sistema Triangular

El siguiente algoritmo resuelve un sistema de ecuaciones lineales de orden n, el cual ya estáen la forma triángular superior.

Escalonamiento de matrices

Ejemplo 4.1 Resolver

x1 + 2x2 + 3x3 = 2

2x1 + 2x2 + 4x3 + 10x4 = 4

x1 + x2 − 2x3 + x4 = 6

x1 + 2x4 = 0

El sistema puede ser visto como⎡⎢⎢⎣1 2 3 02 2 4 101 1 −2 11 0 0 2

⎤⎥⎥⎦⎡⎢⎢⎣

x1x2x3x4

⎤⎥⎥⎦ =⎡⎢⎢⎣2460

⎤⎥⎥⎦donde

A =

⎡⎢⎢⎣1 2 3 02 2 4 101 1 −2 11 0 0 2

⎤⎥⎥⎦ y b =

⎡⎢⎢⎣2460

⎤⎥⎥⎦

MatlabA=[1 2 3 0;2 2 4 10;1 1 -2 1;1 0 0 2]; b=[2 4 6 0]’;A=[A b]

ETAPA 1:

Page 75: Libro Mn 2013 Mayo

4.4. MÉTODO DE GAUSS 69

A =

⎡⎢⎢⎣1 2 3 02 2 4 101 1 −2 11 0 0 2

⎤⎥⎥⎦ y b =

⎡⎢⎢⎣2460

⎤⎥⎥⎦pivote = a1,1 → a1,1 = 1

m2,1 =a2,1a1,1→ m2,1 = 2

m3,1 =a3,1a1,1→ m3,1 = 1

m4,1 =a4,1a1,1→ m4,1 = 1

f2 = f2 − f1m2,1⎡⎢⎢⎣1 2 3 00 −2 −2 101 1 −2 11 0 0 2

⎤⎥⎥⎦⎡⎢⎢⎣2060

⎤⎥⎥⎦ ;

f3 = f3 − f1m3,1⎡⎢⎢⎣1 2 3 00 −2 −2 100 −1 −5 11 0 0 2

⎤⎥⎥⎦⎡⎢⎢⎣2040

⎤⎥⎥⎦ ;

f4 = f4 − f1m4,1⎡⎢⎢⎣1 2 3 00 −2 −2 100 −1 −5 10 −2 −3 2

⎤⎥⎥⎦⎡⎢⎢⎣

204−2

⎤⎥⎥⎦Matlabpivote=A(1,1)A(2,:)=A(2,:)-A(1,:)*A(2,1)/pivote;A(3,:)=A(3,:)-A(1,:)*A(3,1)/pivote;A(4,:)=A(4,:)-A(1,:)*A(4,1)/pivote;A

ETAPA 2:

A =

⎡⎢⎢⎣1 2 3 00 −2 −2 100 −1 −5 10 −2 −3 2

⎤⎥⎥⎦ y b =

⎡⎢⎢⎣206−2

⎤⎥⎥⎦pivote = a2,2 → a2,2 = −2m3,2 =

a3,1a2,2→ m3,2 =

1

2

m4,2 =a4,2a2,2→ m4,2 = 1

f3 = f3 − f2m3,2⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 −2 −3 2

⎤⎥⎥⎦⎡⎢⎢⎣

204−2

⎤⎥⎥⎦ ;

f4 = f4 − f2m4,2⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 0 −1 −8

⎤⎥⎥⎦⎡⎢⎢⎣

204−2

⎤⎥⎥⎦

Matlabpivote=A(2,2);A(3,:)=A(3,:)-A(2,:)*A(3,2)/pivote;A(4,:)=A(4,:)-A(2,:)*A(4,2)/pivote;A

ETAPA 3:

A =

⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 0 −1 −8

⎤⎥⎥⎦ y b =

⎡⎢⎢⎣204−2

⎤⎥⎥⎦pivote = a3,3 → a3,3 = −4m4,3 =

a4,3a3,3→ m4,3 =

1

4

Page 76: Libro Mn 2013 Mayo

70 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

f4 = f4 − f3m4,3⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 0 0 −7

⎤⎥⎥⎦⎡⎢⎢⎣

204−3

⎤⎥⎥⎦

Matlabpivote=A(3,3);A(4,:)=A(4,:)-A(3,:)*A(4,3)/pivote;A

El siguiente algoritmo usa las transformaciones elementales por filas y convierte un sistemade ecuaciones lineales Ax = b en un sistema triangular superior equivalente.

Algoritmo 4.1 (Resolución de un sistema triangular superior) Dado un sistema trián-gular superior Ax = b de orden n, con elementos de A sobre la diagonal no nulos. Los valoresde las variables xn, xn−1, ..., x2, x1 son obtenidos mediante:

xn = bn/an,npara k = (n− 1), ..,1

s = 0Para j = (k + 1), ..., n

s = s+ ak,jxjxk = (bk − s)/ak,k

Ejercicio 4.3 Análogamente al algoritmo 4.1, diseñar un algoritmo que resuelva un sistematriangular inferior de orden n.

Ejercicio 4.4 ¿Cuántas operaciones elementales (sumas, restas, multiplicaciones, divisionesy comparaciones) son necesarias para la ejecuación del algoritmo 4.1 y el algoritmo planteadoen el ejercicio 4.3?

Laboratorio 4.1 En algún lenguaje de programación, implemente el algoritmo planteado enel ejercicio 4.3..

La conversión de un sistema de orden n a un sistema equivalente, y triangular superior, esposible en virtud al siguiente teorema del álgebra lineal:

Implementaciónfunction [x] = Resuel_TriSup(A,b)n=length(b); x=zeros(n,1):x(n)=b(n)/A(n,n);for k=(n-1):-1:1

s=0;for j=(k+1):n

s=s+A(k,j)*x(j);endx(k)=(b(k)-s)/A(k,k);

end

Page 77: Libro Mn 2013 Mayo

4.4. MÉTODO DE GAUSS 71

Ejercicio 4.5 Análogamente al algoritmo diseñar un algoritmo que resuelva un sistema tri-angular inferior de orden n.

Ejercicio 4.6 Dada una matriz triangular superior, resolver usando la implementación

1.

A =

⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 0 0 −7

⎤⎥⎥⎦ ; b =

⎡⎢⎢⎣204−3

⎤⎥⎥⎦2.

A =

⎡⎢⎢⎣4 8 4 00 3 3 −30 0 4 40 0 0 1

⎤⎥⎥⎦ ; b =

⎡⎢⎢⎣8−6122

⎤⎥⎥⎦3.

A =

⎡⎢⎢⎣2 4 −4 00 3 −3 −30 0 4 20 0 0 3

⎤⎥⎥⎦ ; b =

⎡⎢⎢⎣12120−6

⎤⎥⎥⎦

A =

⎡⎢⎢⎣1 2 0 −10 −1 −1 20 0 −2 30 0 0 1,5

⎤⎥⎥⎦ ; b =

⎡⎢⎢⎣9−9−10−3

⎤⎥⎥⎦Teorema 4.2 Sea Ax = b un sistema de ecuaciones lineales. Aplicando sobre las ecuacionesde este sistema una sucesión de operaciones elementales:

1. Cambiar dos ecuaciones

2. Multiplicar una ecuación por una constante no nula

3. Adicionar un múltiplo de una ecuación a otra ecuación

obtenemos un nuevo sistema Ax = b, el cual es equivalente4 al sistema original Ax = b.

4.4.2. Conversión de un Sistema de Ecuaciones Lineales a uno Tri-angular Superior

El siguiente algoritmo usa el Teorema 4.1 y convierte un sistema de ecuaciones linealesAx = b en un sistema triangular superior equivalente.

4Equivale, en el sentido que tiene las mismas soluciones

Page 78: Libro Mn 2013 Mayo

72 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

Algoritmo 4.2 Dado el sistema lineal Ax = b de n× n. Suponga que el elemento ak,k 6= 0 alinicio de la etapa k :

Para k = 1, ..., n− 1Para i = k + 1, ..., n

mi,k = ai,k/ak,kai,k = 0Para j = k + 1, ..., n

ai,j = ai,j −mi,kak,jbi = bi −mi,kbk

Definición 4.1 El número

mi,j =ai,kak,k

, i = 2, ..., n, k = 1, ..., n− 1

introduciendo en el algoritmo 4,2, lo denominaremos (i, k)-multiplicador de la matriz A.Además, ak,k se denomina el k-ésimo pivote.

Implementación Una implementación básica en Matlab

function [A,b] = Lleva_TriSup(A,b)[m,n]=size(A);for k=1:n-1

for i=k+1:nm(i,k)=A(i,k)/A(k,k);A(i,k)=0;for j=k+1:n

A(i,j)=A(i,j)-m(i,k)*A(k,j);endb(i)=b(i)-m(i,k)*b(k);

endend

Ejercicio 4.7 LLeve a una matriz triangular superior

1.

A =

⎡⎣ 2 4 −61 5 31 3 2

⎤⎦ ; b =

⎡⎣ −4105

⎤⎦2.

A =

⎡⎢⎢⎣1 2 0 −12 3 −1 00 4 2 −55 5 2 −4

⎤⎥⎥⎦ ; b =

⎡⎢⎢⎣992632

⎤⎥⎥⎦3.

A =

⎡⎣ 1 1 6−1 2 91 −2 3

⎤⎦ ; b =

⎡⎣ 7210

⎤⎦

Page 79: Libro Mn 2013 Mayo

4.4. MÉTODO DE GAUSS 73

4.

A =

⎡⎣ 2 −2 52 3 1−1 4 −4

⎤⎦ ; b =

⎡⎣ 6133

⎤⎦Ejemplo 4.2 Considere el siguiente sistema de ecuaciones lineales Ax = b, donde

A = A(0) =

⎡⎢⎢⎣1 2 3 02 2 4 101 1 −2 11 0 0 2

⎤⎥⎥⎦ y b = b(0) =

⎡⎢⎢⎣2460

⎤⎥⎥⎦Aplicando el Algoritmo 4.2, para k = 1, los multiplicadores respectivos son m2,1 = 2, m3,1 = 1y m4,1 = 1, de donde:

A(1) =

⎡⎢⎢⎣1 2 3 00 −2 −2 100 −1 −5 10 −2 −3 2

⎤⎥⎥⎦ y b(1) =

⎡⎢⎢⎣204−2

⎤⎥⎥⎦para k = 2, m3,2 = 0, 5, m4,2 = 1 y

A(2) =

⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 0 −1 −8

⎤⎥⎥⎦ y b(2) =

⎡⎢⎢⎣204−2

⎤⎥⎥⎦Finalmente, para k = 3 tenemos m4,3 = 0, 25 y

A(3) =

⎡⎢⎢⎣1 2 3 00 −2 −2 100 0 −4 −40 0 0 −7

⎤⎥⎥⎦ y b(3) =

⎡⎢⎢⎣204−3

⎤⎥⎥⎦Resta sólo aplicar el Algoritmo 4.1 para resolver el sistema triangular superior A(3)x = b(3),de donde obtuvimos

x =

⎡⎢⎢⎣−6/725/7−10/73/7

⎤⎥⎥⎦Un incoveniente que puede suceder en la aplicación de los algoritmos 4.2 y 4.1, es el cálculo

del multiplicador mi,k, pues se necesita que ak,k 6= 0 en cada iteración. Pero el simple hechoque ak,k sea pequeño puede ocasionar que el multiplicador mi,k tome valores inmensamentegrandes, los que puede ocasionar a su vez mal condicionamiento5 del sistema.

Ejemplo 4.3 (Sistema mal condicionado) Utilice algún lenguaje de programación pararesolver, usando los algoritmos 4.2 y 4.1, el siguiente sistema de ecuaciones:½

11x1 + 2x2 = 51016x1 + 0, 5x2 = 9

5La matriz A tiende a ser no inversible en la práctica, aunque en la teoría lo sea. Esto puede producirimprecisiones en los cálculos realizados por el computador.

Page 80: Libro Mn 2013 Mayo

74 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

Después de aplicar consecutivamente los algoritmos, obtuvimos como solución;

x =

∙7, 26691434300103× 10−16

2, 5

¸Al verificar si realmente es solución, vemos que

Ax =

∙5

8, 51691434300102

¸6= b =

∙59

¸Este fenómeno se debe a que el pivote A1,1 = 11, cuando comparando con A2,1 = 10

16, es muypequeño. Observe que en estas condiciones, el multiplicador

m2,1 =a2,1a1,1

=1016

11

es muy grande, lo que ocacionará imprecisiones en los cálculos siguientes, pues el computadortrabaja con precisión finita.

¿Pero qué significa mal condicionamiento? Ese concepto es de gran ayuda en la resoluciónde sistemas lineales. A continuación formalizaremos ese término.

4.5. Sensibilidad en Sistemas Lineales: Número de Condi-ción

Considere el sistema Ax = b, donde A es inversible y b es un vector no nulo. Digamosque x sea la única solución. Consideremos ahora una perturbación ∆b de b, el sistema linealperturbado será

Ay = b+∆b (4.7)

Observe que el sistema (4.7) también tiene única solución, digamos que ésta sea y. Denotamos∆x = y − x, en consecuencia, y = x +∆x. Es natural esperar que cuando ∆b sea pequeño,entonces ∆x tambien lo sea.

Para cuantificar el tamaño de vectores, usaremos la norma vectorial euclidiana6 k·k . Así, lamedida de ∆b relativa a b es k∆bk / kbk , mientras que la medida de k∆xk / kxk . Por lo tanto,en términos más precisos, esperamos que cuando k∆bk / kbk sea pequeño, entonces k∆xk / kxktambién lo sea.

Así, como y es solución del sistema (4.7), entonces

Ay = b+∆b =⇒ A(x+∆x) = b+∆b =⇒ A(∆x) = ∆b =⇒ ∆x = A−1(∆b)

Considerando la norma matricial inducida por la vectorial, kAk = maxx6=0 kAxkkxk , tenemos

∆x = A−1(∆b) =⇒ kAxk =°°A−1(∆b)

°° ≤ °°A−1°° k∆bk (4.8)

6Si x ∈ R, kxk =px21 + ...+ x2n.

Page 81: Libro Mn 2013 Mayo

4.5. SENSIBILIDAD EN SISTEMAS LINEALES: NÚMERO DE CONDICIÓN 75

Por otro lado,

b = ∆x =⇒ kbk = kAxk ≤ kAk kxk =⇒ 1

kxk ≤kAkkbk (4.9)

Por (4.8) y (4.9) tenemosk∆xkkxk ≤

°°A−1°° kAk k∆bkkbk

Observe que, si k∆bk / kbk es pequeño y kA−1k kAk es un número razonablemente pequeño,entonces k∆xk / kxk debería ser también pequeño. Sin embargo, si kA−1k kAk es extremada-mente grande, a pesar que k∆bk / kbk sea pequeño, no hay garantía que k∆xk / kxk tambiénlo sea. En otras palabras, si kA−1k kAk es grande, podemos advertir que el sistema Ax = bpuede ser susceptible a grandes alteraciones en la solución si b es ligeramente perturbado. Estoes crucial, pues el método de Gauss altera el vector b en cada iteración.

Como se puede apreciar, el papel del número kA−1k kAk juega un rol importante en ladeterminación de la estabilidad del sistema de ecuaciones lineales. A continuación lo formali-zamos.

Definición 4.2 (Número de condición) Dada la matriz A ∈ Rn×n inversible. El númerode condición de A, denotado por cond(A), es

cond(A) =°°A−1°° kAk

Si cond(A) es grande, diremos que la matriz es mal condicionada, caso contrario, ella serábien condicionada.

Ejercicio 4.8 Mostrar que, si k·k es una norma matricial inducida por la norma vectorialeuclídea en Rn, cond(A) ≥ 1.Solución. Observe que la norma matricial usada es consistente, así:

I = A−1A =⇒ 1 = kIk =°°A−1A°° ≤ °°A−1°° kAk = cond(A)

Observación 4.1 Algunas veces se utiliza también la siguiente expresión, rcond(A), la cualestá definida por

rcond(A) = 1/ cond(A)

Claramente, si rcond(A) es próximo a cero, la matriz A será mal condicionada.

Ejemplo 4.4 Se quiere calcular las reacciones en los punto 2 y 3 y las fuerzas F1, F2 y F3en la figura adjunta

Solución:

Page 82: Libro Mn 2013 Mayo

76 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

Las fuerzas F1, F2 y F3 representan ya sea la tensión ó compresión. El apoyo fijo en elnodo 2 puede transmitir fuerzas horizontales y verticales a la superficie, mientras que el apoyomóvil en el nodo 3 transmite sólo fuerzas verticales

Haciendo el diagrama de fuerza de cuerpo libre en cada nodo se tiene

La suma de las fuerzas verticales y horizontales debe ser cero en cada nodo

nodo 1½−F1 cos 30 + F3 cos 60 = 0−F1 sen 30− F3 sen 60− 1000 = 0

nodo 2½

F1 cos 30 + F2 +H2 = 0F1 sen 30 + V2 = 0

nodo 3½−F2 − F3 cos 60 = 0F3 sen 60 + V3 = 0

Este problema se plantea con un sistema de seís ecuaciones y seís incógnitas⎡⎢⎢⎢⎢⎢⎢⎣−0, 866 0 0, 5 0 0 0−0, 5 0 −0, 866 0 0 00, 866 1 0 1 0 00, 5 0 0 0 1 00 −1 −0, 5 0 0 00 0 0, 866 0 0 1

⎤⎥⎥⎥⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎢⎣F1F2F3H2

V2V3

⎤⎥⎥⎥⎥⎥⎥⎦ =⎡⎢⎢⎢⎢⎢⎢⎣

010000000

⎤⎥⎥⎥⎥⎥⎥⎦

Page 83: Libro Mn 2013 Mayo

4.5. SENSIBILIDAD EN SISTEMAS LINEALES: NÚMERO DE CONDICIÓN 77

resolviendo éste sistema de ecuaciones lineales se tiene

F1 = −500,02F2 = 433,02F3 = −866,04H2 = 0V2 = 250,01V3 = 749,99

como inicialmente se asumió todas las fuerzas en tensión, por lo que la solución negativa deF1 y F3 corresponden a una compresión.

Problema 4.1 Un ingeniero civil que trabaja en la construcción requiere 4800, 5800 y 5700m3 de arena, grava fina y grava gruesa respectivamente, para cierto proyecto constructivo. Haytres canteras de las que puede obtenerse dichos materiales. La composición de dichas canterases la sigue

% Arena % Grava fina % Grava gruesaCantera 1 55 30 15Cantera 2 25 45 30Cantera 3 25 20 55

¿Cuántos metros cúbicos deben extraerse de cada cantera a fin de satisfacer las necesidadesdel ingeniero?

Problema 4.2 Una pequeña empresa constructora ofrece tres tipos de casas. El primer tipode casa requiere de 3 unidades de concreto, 1 unidad de madera para cancelaría y 5 unidadesde madera para estructuras. Los del tipo dos y tres requieren 2, 3, 4 y 4, 5, 2 unidades re-spectivamente, de concreto, madera para cancelaría y madera para estructuras. Si cada mes lacompañia dispone de 60 unidades de concreto, 40 unidades de madera para cancelaría y 100unidades de madera para estructuras.

1. Determinar el modelo matemático, señalando cada una de las incógnitas asignadas ylimitaciones que presenten.

2. Del sistema obtenido en (a) halle el número de los diferentes tipos de casa de casa quela compañia podrá construir al mes si usa todas los materiales de que dispone y si almenos debe construir una casa de casa tipo.

Problema 4.3 Calcule las fuerzas y reacciones para la viga de la figura adjunta

Page 84: Libro Mn 2013 Mayo

78 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

Problema 4.4 Calcule las fuerzas y reacciones de la figura adjunta

Problema 4.5 Calcule las fuerzas y reacciones de la figura adjunta

4.6. Estrategia con Pivoteamiento Parcial

Como habíamos comentado enteriormente, uno de los inconvenientes en la aplicación delmétodo de Gauss consistía en el cálculo de los multiplicadores, si el multiplicador mi,k =ai,k/ak,k es demasiado grande, éste podría ocasionar cálculos imprecisos en el sistema de cóm-puto. Algunas de las estrategias para evitar tal inconveniente son:

1. Estrategia con pivoteamiento parcial

2. Estrategia con pivoteamiento total

Aquí veremos en qué consiste la estrategia de pivoteamiento parcial:

En el inicio de la etapa k de la eliminación gaussiana, escoger como pivote el elemento demayor módulo entre los coeficientes: ak−1i,k , para i = k, k+1, ..., n, donde ak−1i,k representala (i, k)-componente en la iteración k − 1.

Permutar la fila k e i, si fuera necesario.

Ejemplo 4.5 Considere un sistema de orden n, donde n = 4 y la iteración k = 2. Observeque

£A(1) b(1)

¤=

⎡⎢⎢⎣3 2 1 −1 50 1 0 3 60 −3 −5 7 70 2 4 0 15

⎤⎥⎥⎦

Page 85: Libro Mn 2013 Mayo

4.7. DESCOMPOSICIÓN LU 79

Note que£A(1) b(1)

¤representa la situación del sistema en la primera iteración. Ahora, para

el inicio de la segunda iteración

1. Escoger el pivote: maxj=2,3,4¯a1j,2¯=¯a13,2¯= 3, entonces el pivote es −3

2. Cambiamos las líneas 2 y 3, de donde obtenemos

£A(1) b(1)

¤=

⎡⎢⎢⎣3 2 1 −1 50 −3 −5 7 70 1 0 3 60 2 4 0 15

⎤⎥⎥⎦Observe que en este caso los multiplicadores respectivos serán:

m3,2 =1

−3 = −1

3

m4,2 =2

−3 = −2

3

Así, al escoger el mayor elemento en módulo entre los candidatos a pivote, se consigueque los multiplicadores m, en módulo, estén entre cero y uno, lo que evita la propagaciónde errores de redondeo.

La estrategia con pivoteamiento parcial no elimina del todo la acumulación de erroresde redondeo, existe otra estrategia denominada estrategia con pivoteamiento completo. Encontraste al pivoteamiento parcial, que busca el mejor pivote en una porción de cada columnaen cada iteración, la estrategia de pivoteamiento completo analiza toda matriz. A pesar queen teoría esto elimina difinitivamente las imprecisiones numéricas que puedan ocurrir, su usono es común en la práctica pues requiere mucho esfuerzo computacional, es decir, requieremuchas operaciones elementales (comparaciones) para su ejecución.

Problema 4.6 Junte los dos algoritmo e implemente el método de Gauss_ básico y resuelva

1. Halle la parábola y = A+Bx+ Cx2 que pasa por los puntos (1, 4) (2, 7) y (3, 14)

2. Halle la parábola y = A+Bx+ Cx2 que pasa por los puntos (1, 6) (2, 5) y (3, 2)

3. Halle la cúbica y = A + Bx + Cx2 +Dx3 que pasa por los puntos (0, 0) (1, 1) (2, 2)y (3, 2)

Problema 4.7 Investigue la estrategia de pivoteamiento completo.

4.7. Descomposición LU

Esta estrategia consiste en descomponer la matriz A como el producto de dos matricesfactores: A = LU, donde L es una matriz triangular inferior con unos sobre su diagonal, esdecir

L =

⎡⎢⎢⎢⎣1 0 · · · 0

2,1 1 · · · 0...

.... . .

...n,1 n,2 · · · 1

⎤⎥⎥⎥⎦

Page 86: Libro Mn 2013 Mayo

80 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

y U es una matriz triangular superior

U =

⎡⎢⎢⎢⎣u1,1 u1,2 · · · u1,n0 u2,2 · · · u2,n...

.... . .

...0 0 · · · un,n

⎤⎥⎥⎥⎦De ese modo, resolver el sistema Ax = b, o sino LUx = b, es equivalente a resolver consecuti-vamente:

1. Ly = b

2. Ux = y

Una de la primeras ventajas que tiene resolver sistemas mediante este método, en contrastecon el método de Gauss, es la siguiente: supongamos que se quiere resolver los sistemas Ax = by Ax = b0, una vez obtenidos tales factores L y U, bastaría resolver consecutivamente lossistemas triangulares:

Ly = b Ux = y (4.10)

yLy = b0 Ux = y (4.11)

Observe que los mismos factores L y U fueron usados para resolver los sistemas (4.10) y (4.11),los cuales son fáciles de resolver usando el algoritmo 4.1 para sistemas triangulares superiores.

4.7.1. Cálculo de los Factores L y U

El cálculo de las matrices L y U de modo que A = LU, esta basado en los multiplicadoresmi,j introducidos en las eliminación gaussiana (definición 4.1). Supongamos que tenemos lamatriz

A0 =

⎡⎣ a01,1 a01,2 a01,3a02,1 a02,2 a02,3a03,1 a03,2 a03,3

⎤⎦ = A

Primera iteración: Los respectivos multiplicadores están dados por

m2,1 = a02,1/a01,1

m3,1 = a03,1/a01,1

para deshacernos de la variable x1 en las i-filas, para i = 2, 3, hacemos

a11,j = a01,j j = 1, 2, 3

a11,j = a01,j −mi,1a01,j i = 2, 3, j = 1, 2, 3

y obtenemos

A1 =

⎡⎣ a11,1 a11,2 a11,30 a12,2 a12,30 a13,2 a13,3

⎤⎦Observe que A1 =M0A0, donde

M0 =

⎡⎣ 1 0 0−m2,1 1 0−m3,1 0 1

⎤⎦

Page 87: Libro Mn 2013 Mayo

4.7. DESCOMPOSICIÓN LU 81

Segunda iteración: Para eliminar x2 de las restantes lineal, calculamos el multiplicadorm3,2 = a13,2/a

12,2 y hacemos

a21,j = a11,j j = 1, 2, 3

a22,j = a12,j j = 2, 3

a23,j = a13,j −m3,2a12,j j = 1, 2, 3

y obtenemos

A2 =

⎡⎣ a21,1 a21,2 a21,30 a22,2 a22,30 0 a23,3

⎤⎦Observe que

A2 =M1A1

donde

M1 =

⎡⎣ 1 0 00 1 00 −m3,2 1

⎤⎦Además, A2 es triangular superior y podemos definir U = A2. Luego:

U =M1A1 =M1(M0A0) = (M1M0)A0 = (M1M0)A

es decir,A = (M1M0)−1U = (M0)−1(M1)−1U

y como

(M0)−1(M1)−1 =

⎡⎣ 1 0 0−m2,1 1 0−m3,1 0 1

⎤⎦−1 ⎡⎣ 1 0 00 1 00 −m3,2 1

⎤⎦−1

=

⎡⎣ 1 0 0m2,1 1 0m3,1 0 1

⎤⎦⎡⎣ 1 0 00 1 00 m3,2 1

⎤⎦ =⎡⎣ 1 0 0

m2,1 1 0m3,1 m3,2 1

⎤⎦concluimos que la matriz triangular inferior debería ser

L =

⎡⎣ 1 0 0m2,1 1 0m3,1 m3,2 1

⎤⎦de modo que A = LU :

Teorema 4.3 Dada una matriz cuadrada A de orden n, sea la matriz Ak constituida de lasprimeras k líneas y k columnas de A. Suponga que det(Ak) 6= 0 para k = 1, ..., n−1. Entonces,existe una única matriz triangular inferior L = [mi,j] , con mi,i = 1, para i = 1, ..., n, y unaúnica matriz triangular superior U = [ui,j] tales que A = LU. Además, det(A) = u1,1u2,2...un,n.

Ejercicio 4.9 Investigue la demostración del teorema 4.2.

Page 88: Libro Mn 2013 Mayo

82 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

Ejemplo 4.6 Resolver el siguiente sistema de ecuaciones lineales utilizando la descomposiciónLU.

x1 + 2x2 + 3x3 = 10

2x1 + 5x2 − x3 = 20

−x1 + 2x2 + x3 = 6

Observe que

A =

⎡⎣ 1 2 32 5 −1−1 3 1

⎤⎦ y b =

⎡⎣ 10206

⎤⎦Luego,

m2,1 = 2, m3,1 = −1, A1 =

⎡⎣ 1 2 30 1 −70 4 4

⎤⎦y

m3,2 = 4, A2 =

⎡⎣ 1 2 30 1 −70 0 32

⎤⎦Por lo tanto

A =

⎡⎣ 1 2 32 5 −1−1 3 1

⎤⎦ =⎡⎣ 1 0 0

m2,1 1 0m3,1 m3,2 1

⎤⎦A2 ==

⎡⎣ 1 0 02 1 0−1 4 1

⎤⎦⎡⎣ 1 2 30 1 −70 0 32

⎤⎦ = LU

Puesto que Ax = b lo podemos expresar como (LU)x = b, usando el algoritmo 4.1 y el ejercicio4.3 para resolver sistemas triangulares, calculamos consecutivamente:

Ly = b =⇒ y =

⎡⎣ 10016

⎤⎦y

Ux = y =⇒ x =

⎡⎣ 3/27/21/2

⎤⎦4.8. Descomposición de Cholesky

Una estrategia que tiene suma importancia, sobre todo en optimización, es la descomposi-ción de Cholesky.

Definición 4.3 (Matriz definida positiva) Se dice que una matriz A ∈ Rn×n simétrica yde orden n es definida positiva, si xtAx > 0, para todo x ∈ Rn y x 6= 0.Teorema 4.4 (Descomposición de Cholesky) Si A es una matriz de orden n, simétrica ydefinida positiva, entonces existe una única matriz triangular inferior n y con diagonal positiva,tal que

A = GGt

Ejercicio 4.10 Investigue la demostración del teorema 4.3.

Page 89: Libro Mn 2013 Mayo

4.8. DESCOMPOSICIÓN DE CHOLESKY 83

4.8.1. Cálculo del factor de Cholesky

Dada un matriz simétrica y definida positiva:

A =

⎡⎢⎢⎢⎣a1,1 a1,2 · · · a1,na2,1 a2,2 · · · a2,n...

.... . .

...an,1 an,1 · · · an,n

⎤⎥⎥⎥⎦El factor G será obtenido de la ecuación matricial:⎡⎢⎢⎢⎣

a1,1 a1,2 · · · a1,na2,1 a2,2 · · · a2,n...

.... . .

...an,1 an,1 · · · an,n

⎤⎥⎥⎥⎦ =⎡⎢⎢⎢⎣

g1,1 0 · · · 0g2,1 g2,2 · · · 0...

.... . .

...gn,1 gn,1 · · · gn,n

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎣

g1,1 g1,2 · · · g1,n0 g2,2 · · · g2,n...

.... . .

...0 0 · · · gn,n

⎤⎥⎥⎥⎦La columna 1: ⎡⎢⎢⎢⎣

a1,1a2,1...

an,1

⎤⎥⎥⎥⎦ =⎡⎢⎢⎢⎣

g1,1 0 · · · 0g2,1 g2,2 · · · 0...

.... . .

...gn,1 gn,1 · · · gn,n

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎣

g1,10...0

⎤⎥⎥⎥⎦ =⎡⎢⎢⎢⎣

g1,1g1,1g2,1g1,1...

gn,1g1,1

⎤⎥⎥⎥⎦Luego

g1,1 =√a1,1 y gj,1 =

aj,1g1,1

para j = 2, ..., n

La columna 2:⎡⎢⎢⎢⎢⎢⎣a1,2a2,2a3,2...

an,2

⎤⎥⎥⎥⎥⎥⎦ =⎡⎢⎢⎢⎣

g1,1 0 · · · 0g2,1 g2,2 · · · 0...

.... . .

...gn,1 gn,1 · · · gn,n

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎣

g1,2g2,20...0

⎤⎥⎥⎥⎥⎥⎦ =⎡⎢⎢⎢⎢⎢⎣

g1,1g1,1g22,1 + g21,1

g3,1g2,1 + g3,2g2,2...

gn,1g1,1 + gn,2g2,2

⎤⎥⎥⎥⎥⎥⎦de donde

g1,2g1,1 = a1,2 =⇒ g1,2 = g2,1 =a1,2g1,1

g22,1 + g21,1 = a2,2 =⇒ g2,2 =qa2,2 − g22,1

Comogj,1g2,1 + gj,2g2,2 = aj,2 j = 3, ..., n

y los gj,1 = 1, ..., n, ya fueron calculados, entonces

gj,2 =(aj,2 − gj,1g2,1)

g2,2j = 3, ..., n

columna k : Los elementos de la columna k de G son:

[0 · · · 0 gk,kgk+1,k · · · gn,k]t k = 2, ..., n

Page 90: Libro Mn 2013 Mayo

84 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

haciendo ⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

ak,1ak,2...

ak,kak+1,k...

an,k

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦=

⎡⎢⎢⎢⎣g1,1 0 · · · 0g2,1 g2,2 · · · 0...

.... . .

...gn,1 gn,1 · · · gn,n

⎤⎥⎥⎥⎦

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

gk,1gk,2...

gk,k0...0

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦tenemos

ak,k = g2k,1 + g2k,2 + · · ·+ g2k,k

de donde

gk,k =

Ãak,k −

k−1Xi=1

g2k,j

!1/2Y como

aj,k = gj,1gk,1 + gj,2gk,2 + · · ·+ gj,kgk,k j = k + 1, ..., n

y como los elementos gi,k, i = 1, ...., k − 1, ya fueron calculados, tenemos

gj,k =

³aj,k −

Pk−1i=1 gj,igk,i

´gk,k

j = k + 1, ..., n

Algoritmo 4.3 Sea A una matriz simétrica y definida positiva.

para k = 1, ..., nsuma = 0;Para j = 1, ...(k − 1)

suma = suma+ g2k,jr = ak,k − suma............(∗)gk,k =

√r

para i = k + 1, ..., nsuma = 0para j = 1, ..., k − 1

suma = suma+ gi,jgk,jgi,k = (ai,k − suma)/gk,k

Por lo general, ver si una matriz simétrica es definida positiva usando la definición es una tareaprácticamente imposible. Sin embargo, podemos usar el algoritmo de Cholesky para verificar siA es definida positiva. Si en (∗) se tiene que r ≤ 0, entonces la descomposición no es posibley A no es definida positiva. Caso contrario, el algoritmo otorga la matriz triangular inferiorG tal que A = GGt.

La descomposición de Cholesky requiere alrededor de n3/6 operaciones de multiplicaciónpara la descomposición. Este número es aproximadamente la mitad del número de operacionesnecesarias para la realización de la eliminación en la descompisición LU, pues requería n3/3.

Al igual que la descomposición LU , una vez conocido A = GGt, es posible resolver elsistema lineal asociado: Ax = b, del siguiente modo: como

Ax = b⇐⇒¡GGt

¢x = 0

entonces

Page 91: Libro Mn 2013 Mayo

4.8. DESCOMPOSICIÓN DE CHOLESKY 85

1. Resolver Gy = b

2. Resolver Gtx = y

Laboratorio 4.5 En algún lenguaje de programación de su preferencia, implemente el algo-ritmo de Cholesky, de modo que: cuando la matriz A sea definida positiva, devuelva la matriztriangular inferior G. Caso contrario, debería emitir un mensaje anunciando que A no esdefinida positiva.

Ejercicio 4.11 Usando el algoritmo de Cholesky. Verifique que la matriz⎡⎢⎢⎣27 12 10 2412 9 16 2910 16 42 7024 29 70 137

⎤⎥⎥⎦es realmente definida positiva.

Ejercicio 4.12 Una duda común es, ¿Podría ser definida positiva una matriz la cual tienealgunas componentes negativas? Verifique si la matriz⎡⎢⎢⎣

27 12 10 2412 9 16 1110 16 42 −224 11 −2 137

⎤⎥⎥⎦es o no definida positiva (use el algoritmo)

Ejercicio 4.13 Una matriz simétrica A ∈ Rn×n se llama semidefinida positiva, si xtAx ≥ 0,para todo x ∈ Rn. Probar que, para cualquier matriz B ∈ Rm×n, la matriz C = BtB essemidefinida positiva.Solución: Observe que C ∈ Rm×m es simétrica, pues

Ct = (BtB)t = Bt(Bt)t = BtB = C

yxtCx = xt(BtB)x = (Bx)t(Bx) = kBxk2 ≥ 0

donde k·k es la norma euclidea.Ejercicio 4.14 Probar que, si A ∈ Rn×n es definida positiva, entonces A es inversible. Lorecíproco no siempre es válido, de un contraejemplo.Solución: Recordemos el teorema de álgebra lineal que nos decía: Üna matriz A ∈ Rn×n es

inversible si, y sólo si, el sistema Ax = 0 tiene como única solución la trivial".

Ahora, con respecto al ejercicio, realizaremos una prueba por contradicción. Asumamosque A es definida positiva y no inversible. Entonces, el sistema Ax = 0 tiene una solución notrivial, digamos que existe x 6= 0 tal que Ax = 0. Luego.

0 < xtAx = xt0 = 0

Lo cual es una contradicción. Esto completa la prueba.Para verificar la segunda parte del ejercicio, basta hacer notar que la matriz∙

−1 00 −1

¸es inversible pero no es definida positiva (en realidad es definida negativa).

Page 92: Libro Mn 2013 Mayo

86 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

4.9. Métodos Iterativos

La idea de los métodos iterativos para resolver sistemas de ecuaciones está inspirada en elmétodo de punto fijo.

Dado el sistema lineal de ecuaciones

Ax = b (4.12)

donde A ∈ Rn×n y b ∈ Rn. Los métodos iterativos consisten en expresar el sistema (4.12) enuna ecuación matricial equivalente:

x = Dx+ d (4.13)

donde D ∈ Rn×n y d ∈ Rn. Note que en este caso θ(x) = Dx+ d es una función iteraciónn-dimensional.

Así, los métodos de este tipo construyen una sucesión {xk ∈ Rn}∞k=0 definida por la regla

xk+1 = θ(xk) = Dxk + d

Observe que, si lımk→∞ xk = x∗, entonces x∗ es un punto fijo de θ. Bajo ciertas condiciones,x∗ debería ser también la solución del sistema original Ax = b.

Método de Gauss-Jacobi

Este método se caracteriza por transformar el sistema Ax = b a la forma x = Dx+ d, delsiguiente modo:

Sea el sistema original

a1,1x1 + a1,2x2 + · · · + a1,nxn = b1a2,1x1 + a2,2x2 + · · · + a2,nxn = b2...

......

.... . .

......

......

an,1x1 + an,2x2 + · · · + an,nxn = bn

Suponiendo que ai,i 6= 0 para i = 1, ..., n, despejamos las variables x1, ..., xn de las n ecuaciones,respectivamente:

x1 =1

a1,1(b1 − a1,2x2 − a1,3x3 − ...− a1,nxn)

x2 =1

a2,2(b2 − a2,1x2 − a2,3x3 − ...− a2,nxn)

...

x1 =1

an,n(bn − an,1x1 − an,2x2 − ...− an,n−1xn−1)

De esta forma tenemos⎡⎢⎢⎢⎣x1x2...xn

⎤⎥⎥⎥⎦ =⎡⎢⎢⎢⎣

b1a1,1b2a2,2...bnan,n

⎤⎥⎥⎥⎦+⎡⎢⎢⎢⎣

0 −a1,2a1,1

−a1,3a1,1

· · · −a1,na1,1

−a2,1a2,2

0 −a2,3a2,2

· · · −a2,na2,2

......

.... . .

...− an,1

an,n− an,2

an,n− an,3

an,n· · · 0

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎣

x1x2...xn

⎤⎥⎥⎥⎦

Page 93: Libro Mn 2013 Mayo

4.10. COMPARACIÓN ENTRE MÉTODOS DIRECTOS E ITERATIVOS 87

Es decir, la función iteración quedaría establecido por

x = θ(x) = Dx+ d

donde

D =

⎡⎢⎢⎢⎣0 −a1,2

a1,1−a1,3

a1,1· · · −a1,n

a1,1

−a2,1a2,2

0 −a2,3a2,2

· · · −a2,na2,2

......

.... . .

...− an,1

an,n− an,2

an,n− an,3

an,n· · · 0

⎤⎥⎥⎥⎦ y d =

⎡⎢⎢⎢⎣b1a1,1b2a2,2...bnan,n

⎤⎥⎥⎥⎦ (4.14)

El método de Gauss-Jacobi consiste en lo siguiente: dado x0, una aproximación inicial a lasolución del sistema lineal Ax = b, obtener x1, ..., xk, ... por medio de la relación recursiva

xk+1 = Dxk + d

donde D y d están definidos en este caso por (4.14). O sino:

xk+11 = 1a1,1(b1 − a1,2x

k2 − a1,3x

k3 − ...− a1,nx

kn)

xk+12 = 1a2,2(b2 − a2,1x

k2 − a2,3x

k3 − ...− a2,nx

kn)

...xk+11 = 1

an,n(bn − an,1x

k1 − an,2x

k2 − ...− an,n−1x

kn−1)

(4.15)

Una característica de los métodos iterativos, a diferencia de los métodos directos, es que sóloconvergen si algunas hipótesis son satisfechas.

Criterio de convergencia para el método de Gauss-Jacobi

Dado el sistema lineal Ax = b, sea

αi =

Pnj=1 j 6=i |ai,j||ai,i|

y α = max1≤i≤n

{αi}

Si α < 1, entonces el método de Gauss-Jacobi genera una sucesión de vectores©xkª∞k=0

, lacual converge a la solución del sistema lineal Ax = b, independientemente de la elección delvector inicial x0.

4.10. Comparación entre Métodos Directos e Iterativos

Convergencia: Los métodos directos son procesos finitos y, teóricamente, encuentran la solu-ción exacta de cualquier sistema de ecuaciones, desde que ésta exista. En la práctica noes bien cierto esta última afirmación, pues debemos tener en cuenta los errores de cál-culo del sistema de cómputo y el mal condicionamiento del sistema. Por otro lado, losmétodos iterativos apenas convergen cuando son satisfechos algunos requerimiento. Estoúltimo parece tornarlos poco atractivos en la práctica, pero debemos tener en cuenta elespacio requerido en memoria-computador, observe por ejemplo la ecuación (4.15), no-tará que para operar el método de Gauss-Jacobi, sólo necesitamos almacenar en memoriala matriz A y el vector b, el resto de cálculo no requieren la construcción de matricesauxiliares como en el método directo basado en la descomposición LU

Page 94: Libro Mn 2013 Mayo

88 CAPÍTULO 4. RESOLUCIÓN DE SISTEMAS LINEALES

Errores de Redondeo: Métodos directos modifican el sistema original, por ejemplo, en latriangularización hecha por el método de Gauss, adicionalmente a los errores cometidospor un sistema de cómputo. Los datos del problema original son alterados y la solución noes precisa desde un punto de vista computacional. Por otro lado, los métodos iterativos nomodifican el sistema original y, una vez asegurada la convergencia, los errores numéricosson menores a los métodos directos.

Problema 4.8 Investigue la prueba del criterio de convergencia del método de Gauss-Jacobi.

Problema 4.9 Investigue sobre el método iterativo de Gauss-Seidel.

Problema 4.10 Elaborar una estrategia para resolver un sistema de ecuaciones lineales in-determinado, es decir, donde el número de ecuaciones es menor que el número de variables(m < n).

Una de la opciones sería la siguiente: Asumamos que el sistema está definido por Ax = b,donde A ∈ Rm×n, b ∈ Rn y m < n. Inicialmente, asumamos que el rango de A es completo, esdecir, m. Por ese motivo, existe una submatriz cuadrada e inversible B, tal que, posiblementedespués de un intercambio compatible de posiciones de columnas deA y de variables de x,tenemos

A = [B N ]

x =

∙xBxN

¸Así. Ax = b es equivalente a

[B N ]

∙xBxN

¸= b⇐⇒ BxB +NxN = b⇐⇒ xB = B−1b−B−1NxN

Luego, las soluciones x ∈ Rn serían generadas dando valores arbitrarios a xN ∈ Rn−m, medi-ante:

x =

∙xBxN

¸=

∙B−1b−B−1NxN

xN

¸Así por ejemplo, haciendo xN = 0 ∈ Rn−m, tendríamos:

x =

∙B−1b0

¸el cual claramente, es una solución para el sistema Ax = b. Se debe advertir que, a diferenciade la resolución de sistemas cuadrados, la estrategia expuesta no es eficiente, pues encontrarlas columnas de A que conformarán B puede ser extremadamente costoso. Esto se debe aque resolver sistemas indeterminados, y también sobredeterminados, es realmente difícil. Elestudiante debería investigar otras opciones además de la expuesta aquí.

Page 95: Libro Mn 2013 Mayo

Capítulo 5

Introducción a Sistemas No Lineales

En este capítulo revisaremos brevemente el clásico método de Newton para resolver sis-temas de ecuaciones no lineales. Este método es iterativo y, en su versión básica, converge a una solución ξ del sistema sólo cuando el punto inicial x0 es tomado lo suficientemente próximode ξ. Cuando esto sucede, se dice que el método tiene la propiedad de convergencia local, talrequerimiento es muy discriminatorio y frecuentemente el método converge inclusive cuandoel punto inicial está distante de la solución.

Un ejemplo de un sistema de 3 ecuaciones no lineales con 3 incógnitas es una expresiónmatemática de la siguiente forma

7x1x2 + 5x2 − x23 senx1 − 12 = 0−x41 + cos2 x2 + 2x33 − 8 = 0

6x1 + 2x2 − x3 + 34 = 0(5.1)

Resolver problemas de este tipo no es un asunto fácil, sobre todo cuando el sistema en cuestiónes de gran dimensión.

Observe que el sistema (5.1) puede ser representado por:

f1(x) = 0f2(x) = 0f3(x) = 0

(5.2)

donde fi : R3 7−→ R, i = 1, 2, 3. Si definimos

F (x) =

⎡⎣ f1(x)f2(x)f3(x)

⎤⎦donde Fi : R3 7−→ R3, entonces el sistema de ecuaciones (5.1) puede ser visto a su vez como

F (x) = 0 (5.3)

La ecuación (5.3) es la forma en que nosotros identificaremos un sistema de ecuaciones nolineal. El Jacobiano de F en el punto x, denotado por F 0(x) o J(x), está definido por

J(x) = F 0(x) =

⎡⎢⎢⎢⎣∂f1∂x1(x) ∂f1

∂x2(x) · · · ∂f1

∂xn(x)

∂f2∂x1(x) ∂f2

∂x2(x) · · · ∂f2

∂xn(x)

......

. . ....

∂fn∂x1(x) ∂fn

∂x2(x) · · · ∂fn

∂xn(x)

⎤⎥⎥⎥⎦89

Page 96: Libro Mn 2013 Mayo

90 CAPÍTULO 5. INTRODUCCIÓN A SISTEMAS NO LINEALES

donde ∂fi∂xj

: Rn 7−→ R, i, j = 1, ..., n, son derivadas parciales y las asumimos como funcionescontinuas en Rn.

5.1. El Método de Newton

El Método de Newton consiste en resolver un problema difícil mediante sucesivas resolu-ciones de un problema fácil, se espera que cada solución del problema fácil sea una mejoraproximación para el problema difícil. Así, sea x0 ∈ Rn una aproximación inicial a una solu-ción del sistema (problema difícil) F (x) = 0 definido en (5.3), si tomamos una función L0 talque L0(x) ≈ F (x), para todo x en una vecindad de x0, entonces esperamos que la solución delsistema L0(x) = 0 (problema fácil) sea una mejor aproximación que x0 para una solución deF (x) = 0.

El método de Newton es de carácter iterativo y está basado en la aproximación lineal(según Taylor) de la función F en torno al punto actual x0 :

L0(x) = F (x0) + J(x0)(x− x0) (5.4)

El próximo punto, x1, es definido como la solución de

L0(x) = 0 (5.5)

Si J(x0) es inversible, entonces (5.5) tiene solución única:

x1 = x0 − J−1(x0)F (x0)

Visto de otro modo, una iteración Newton consiste en calcular x1 previamente conocido x0,mediante la resolución consecutiva del sistema lineal:

J(x0)d0 = −F (x0) (5.6)

x1 = x0 + d0 (5.7)

Lo que dice (5.7) es que una vez conocido el paso de newton d0, es posible calcular x1, Conesto, podemos utilizar x1 como nuevo punto inicial y calcular x2 y repetir este procedimientopara k = 0, 1, 2, 3, ...hasta que se cumpla

°°F (xk)°° < ε, donde ε > 0 es una precisión eseada yk·k es alguna norma en Rn.

Observación 5.1 De un modo directo, el método de Newton puede ser visto del siguientemodo: calcular xk+1 una vez conocido xk, mediante la siguiente regla:

xk+1 = xk − J−1(xk)F (xk), k = 0, 1, 2, 3, ... (5.8)

hasta que°°F (xk)°° < ε.

En realidad, obtener xk+1 directamente desde (5.8) debería ser evitado para fines computa-cionales, ya que calcular J−1(xk) es considerado costoso. Por otro lado, en (5.6) podrían usarsetécnicas más baratas para resolver el sistema sin tener que calcular explicitamente J−1(xk),una alternativa sería usar el método de Gauss, la descomposición LU, o la Cholesky si J(xk)es definida positiva.

En conclusión, el método de Newton es aplicado originalmente para resolver un sistemade ecuaciones F (x) = 0, donde F : Rn 7→ Rn tiene funciones componentes fi, i = 1, ..., n, lascuales admiten derivadas parciales continuas en Rn. El siguiente algoritmo resume el método.

Page 97: Libro Mn 2013 Mayo

5.1. EL MÉTODO DE NEWTON 91

Algoritmo 5.1 (Algoritmo Básico de Newton) Sea x0 ∈ Rn un punto inicial lo suficien-temente cerca de la solución y ε > 0 el parámetro de precisión deseado:

Paso 1: Si°°F (xk)°° < ε, detenerse, xk es la aproximación buscada. Caso contrario, ir al paso

2.

Paso 2: Resolver el sistemas J(xk)dk = −F (xk) y obtener el paso de newton dk. Ir al paso 3.

Paso 3: Calcular xk+1 = xk + dk, hacer k ←− k + 1. Volver al paso 1.

Naturalmente, el sistema F (x) = 0 puede no tener solución, entonces es posible modificarel algoritmo 4.1 para que finalice después de un número determinado de iteraciones indicandola posibilidad de infactibilidad.

Una implementación básica

function [x,iter]= NEWTON_NL(x)iter =0while norm(Fn(x))>0.000001

iter = iter+1;x = x-inv(Jn(x))*Fn(x);if iter > 1000

error(’parece que newton no converge’);end

end

Ejemplo 5.1 Se quiere resolver el sistema de ecuaciones no lineales

−x+ 2y − 4 = 0(x− 6)2 − y + 2 = 0

Ejecutar NEWTON_NL, con los siguientes puntos iniciales∙12

¸y∙93

¸Solución:

Definamos el sistema de ecuaciones y el Jacobiano

F (x) =

∙−x1 + 2x2 − 4

(x1 − 6)2 − x2 + 2

¸;

F 0n(x

k) = J(x) =

"dfdx1

dfdx2

dgdx1

dgdx2

#=

∙−1 2

2(x− 6) −1

¸

Al ejecutar el programa NEWTON_NL, con un punto inicial∙12

¸con un parámetro de

precisión 0,000001, observamos: ∙4, 504, 25

¸

Page 98: Libro Mn 2013 Mayo

92 CAPÍTULO 5. INTRODUCCIÓN A SISTEMAS NO LINEALES

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

9

10

Ahora ejecutando NEWTON_NL, con otro punto inicial∙93

¸te-nemos:

que converge a otra raíz ∙8, 006, 00

¸

0 1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

6

7

8

9

10

Page 99: Libro Mn 2013 Mayo

5.1. EL MÉTODO DE NEWTON 93

Ejemplo 5.2 Del gráfico adjunto

1. Plantear el sistema de ecuaciones no lineales

(x− 1)2 + (y + 1)2 − 9 = 0(x+ 1)2 + (y − 1)2 − 4 = 0

2. Obtener aproximaciones iniciales del gráfico para las raices.

(−2,−0,8)(0,6, 2)

3. Resuelva el sistema de ecuaciones planteado en la parte (a) con el método de Newton,

pruebe con los puntos iniciales∙−122

¸y .∙12−2

¸Itere hasta que

°°x(k) − x(k−1)°°∞ <

10−6

x =-1.98858901434067-0.73858901434067

iter =7

x =0.738589017084871.98858901708487

iter =7

Ejemplo 5.3 Resolver el sistema de ecuaciones no lineales

sen(xy) + z − 1 = 02sen(xz) + y − 2 = 03sen(yz) + x− 3 = 0

pruebe con un punto inicial

⎡⎣ 000

⎤⎦ y con parámetro de precisión ε = 10−6.

J(x) =

⎡⎣ y cos(xy) x cos(xy) 12z cos(xz) 1 2x cos(xz)

1 3z cos(yz) 3y cos(yz)

⎤⎦

Page 100: Libro Mn 2013 Mayo

94 CAPÍTULO 5. INTRODUCCIÓN A SISTEMAS NO LINEALES

iter x1 x2 x31 3 2 12 2.08094228847598 2.55445312292730 1.44721106891753...6 2.57125017265204 2.33065865794921 1.28641102878084

Ejemplo 5.4 Resolver el sistema de ecuaciones no lineales

3x− cos(yz)− 0,5 = 04x2 − 625y2 + 2y − 1 = 0e−xy + 20z + 10π−3

3= 0

pruebe con un punto inicial

⎡⎣ 123

⎤⎦ y con parámetro de precisión ε = 10−6.

J(x) =

⎡⎣ 3 z sin(yz) y sin(yz)8x 2− 1250y 0

−ye−xy −xe−xy 20

⎤⎦iter x1 x2 x31 -0.44434060835495 0.99737601086195 -0.494341008299092 0.49903170213302 0.49662625767486 -0.49638456113458...13 0.49999953252309 0.00319907048889 -0.52351886283932

Ejemplo 5.5 Resolver el sistema de ecuaciones no lineales

6x− 2 cos(yz)− 1 = 09y +

px2 + sin(z) + 1,06 + 0,9 = 060z + 3e−xy + 10π − 3 = 0

Use el método de Newton, con el punto inicial

⎡⎣ 000

⎤⎦ y con parámetro de precisión ε = 10−6

J(x) =

⎡⎢⎢⎣6 2z sin(yz) 2y sin(yz)xp

x2 + sinx+ 1,069

cos z

2px2 + sin z + 1,06

−3ye−xy −3xe−xy 60

⎤⎥⎥⎦x =

0.49814468458971-0.19960589553629-0.52882597757225

iter =3

Page 101: Libro Mn 2013 Mayo

5.1. EL MÉTODO DE NEWTON 95

Ejemplo 5.6 Resolver el sistema de ecuaciones no lineales

x3 + x2y − xz + 6 = 0ex + ey − z = 0

y2 − 2xz − 4 = 0

Use el método de Newton, con el punto inicial

⎡⎣ −1−21

⎤⎦ y con parámetro de precisión ε = 10−6

J(x) =

⎡⎣ 3x3 + 2xy − z x2 −xex ey −1−2z 2y −2x

⎤⎦x =

-1.45604279751089-1.664230466374480.42249340339467

iter =4

Ejemplo 5.7 Resolver el sistema de ecuaciones no lineales

4x− y + z − xu = 0−x+ 3y − 2z − yu = 0x− 2y + 3z − zu = 0x2 + y2 + z2 − 1 = 0

Use el método de Newton, con el punto inicial

⎡⎢⎢⎣7567

⎤⎥⎥⎦ Itere hasta que °°x(k) − x(k−1)°°∞ < 10−6

J(x) =

⎡⎢⎢⎣4− u −1 1 −x−1 3− u −2 −y1 −2 3− u −z2x 2y 2z 0

⎤⎥⎥⎦x =

0.57735038198527-0.577350381985080.577350381985085.99999985846672

iter =7

Ejemplo 5.8 Consideremos el siguiente sistema de ecuaciones no lineales de 3 incógnitas y3 ecuaciones:

7x1x2 + 5x2 − x23 senx1 − 12 = 0

−x41 + cos2 x2 + 2x33 − 8 = 0 (5.9)

6x1 + 2x2 − x3 + 34 = 0

Page 102: Libro Mn 2013 Mayo

96 CAPÍTULO 5. INTRODUCCIÓN A SISTEMAS NO LINEALES

Observe que

F (x) =

⎡⎣ 7x1x2 + 5x2 − x23 senx1 − 12−x41 + cos2 x2 + 2x33 − 86x1 + 2x2 − x3 + 34

⎤⎦y

J(x) =

⎡⎣ 7x2 − x23 cosx1 7x1 + 5 −2x3 senx1−4x31 −2 cosx2 senx2 6x236 2 −1

⎤⎦Si usamos como punto inicial x0 =

⎡⎣ 1020−50

⎤⎦ y como parámetro de precisión ε = 10−9, una

implementación computacional básica nos otorga:

x13 =

⎡⎣ −4, 23134959407946−1, 567529811589655, 47684281234392

⎤⎦Es fácil verificar que kF (x13)k ≈ 5, 293308530720633× 10−8, donde k·k es la norma euclídea.Esto indica que x13 es una buena aproximación para una raíz de F (x) = 0.

Ejercicio 5.1 Se quiere resolver el sistema de ecuaciones no lineales

(x− 3)2 − y + 4 = 0x+ 2y − 16 = 0

Al ejecutar newton, verifique con los siguientes puntos iniciales∙12

¸y∙610

¸Ejercicio 5.2 Se quiere resolver el sistema de ecuaciones no lineales

5x21 + 6x1x2 + 5x22 − 4x1 + 4x2 − 4 = 0

x21 + x22 − 1 = 0

Al ejecutar newton con punto inicial∙11

¸y con una precisión de prec=0.000001

Ejercicio 5.3 Se quiere resolver el sistema de ecuaciones no lineales

x3 + y3 − 2xy = 0x2 + y2 − 1 = 0

Al ejecutar Newton, verifique con los siguientes puntos iniciales∙12

¸Ejercicio 5.4 Se quiere resolver el sistema de ecuaciones no lineales

2x4 − 2x2y + y2 − 2y3 + y4 = 03x2 − 2xy − 6y2 + 3 = 0

Page 103: Libro Mn 2013 Mayo

5.1. EL MÉTODO DE NEWTON 97

Ejercicio 5.5 Resolver el sistema de ecuaciones no lineales

x3 + x2y − xz + 6 = 0ex + ey − z = 0

y2 − 2xz − 4 = 0

Use el método de Newton, con el punto inicial

⎡⎣ −1−21

⎤⎦ y con parámetro de precisiónε = 10−6

Ejercicio 5.6 Resolver el sistema de ecuaciones no lineales

x3 + x2y − xz = −6ex + ey − z = 0y2 − 2xz = 4

Use el método de Newton, con el punto inicial

⎡⎣ −1−21

⎤⎦ y con parámetro de precisión ε = 10−6

y también anote su jacobiano

J(x) =

⎡⎣ ⎤⎦x =

iter =

5.1.1. Convergencia y Rapidez del Método de Newton

El método de Newton para sistemas n-dimensionales posee propiedades similares al métodoestudiado con más detalles en el capítulo 2, el cual resolvía sistemas de una variable.

Resultados teóricos muestran que, si el punto incial x0 ∈ Rn es elegido lo suficientementecerca de la solución del sistema F (x) = 0, entonces el método de Newton converge y lo hacecon una tasa de convergencia cuadrática. Frecuentemente, para caracterizar este hecho unoutiliza la siguiente expresión: el método de Newton es localmente cuadrático. Los detalles sobreeste tema no serán tratados en este curso.

Laboratorio 5.1 En algún lenguaje de programación de su preferencia, realice una funciónque ejecute el Algoritmo de Newton.

Laboratorio 5.2 Conocer J(xk) presupone el cálculo y evaluación de las primeras derivadasparciales de las funciones fi(xk), para i = 1, ..., n, un procedimiento analítico que debemos hacersiempre que sea posible. Esa tarea puede a veces ser considerado un inconveniente debido alesfuerzo de cálculo y al probable error humano, una alternativa sería usar una aproximaciónmediante diferencias finitas.

Page 104: Libro Mn 2013 Mayo

98 CAPÍTULO 5. INTRODUCCIÓN A SISTEMAS NO LINEALES

Ejercicio 5.7 Hallar dos raices más del sistema no lineal dado en (5.9)

Ejercicio 5.8 Al aplicar el método de Newton para resolver F (x) = 0, donde

F (x) = Ax− b, A ∈ Rn×n, b ∈ Rn

¿Cuántas iteraciones debería hacer el método de Newton? ¿Por qué?.

Ejercicio 5.9 Encuentre un punto crítico de f, es decir, resuelva Of(x) = 0, donde

f(x) = a+ btx+1

2xtQx

y donde Q ∈ Rn×n es simétrica y definida positiva, b ∈ Rn y a ∈ R. ¿En ese punto f alcanzaun mínimo?¿Porqué?

Ejercicio 5.10 Sean

A =

⎡⎢⎢⎢⎢⎢⎢⎣1 2 52 8 255 7 81 2 33 5 96 7 1

⎤⎥⎥⎥⎥⎥⎥⎦ y b =

⎡⎢⎢⎢⎢⎢⎢⎣10200761215

⎤⎥⎥⎥⎥⎥⎥⎦Resolver

Minimizar 12kAx− bk2

x R3

donde k·k es la norma euclídea.Sugerencia: Basta hallar un punto crítico de f : R3 7→ R, donde f(x) = 1

2kAx− bk2 .

Observe que∇f(x) = AtAx−Atb (5.10)

Además de usar el método de Newton para resolver (5.10), use también un método directo parasistema de ecuaciones lineales y compare sus resultados.

Page 105: Libro Mn 2013 Mayo

Capítulo 6

Interpolación y Aproximación

Es frecuente encontrar libros de cálculos elemental funciones representando el compor-tamiento de algún hecho real, lo primero que viene a la mente es la siguiente pregunta ¿dedonde salió esa función? Algunas de estas funciones se obtienen de la solución de una ecua-cion diferencial que representa algún fenómeno físico, pero algunos también resultan de simplesobservaciones.

Suponga que disponemos de los siguientes datos, resultados de observaciones:

(0, 3,42), (1, 3,45), (2, 3,47), (3, 3,5), (4, 3,48),(5, 3,46), (6, 3,44), (7, 3,39), (8, 3,49), (9, 3,56)

donde el par (ti, ci) representa el precio del dólar ci (soles) en el tiempo ti (horas). Estos datospueden ser organizados del siguiente modo

ti 0 1 2 3 4 5 6 7 8 9ci 3,42 3,45 3,47 3,5 3,48 3,46 3,44 3,39 3,49 3,56

Supóngase que se quiere calcular:

1. El precio del dólar en el tiempo t = 3,5h

2. La hora en que el precio del dólar esté en 3,465 soles

El estudio de la interpolación y aproximación además de responder a estos requerimientos,nos permite encontrar funciones que representen estos datos, estas funciones frecuentementeson continuas y hasta diferenciables, esto a su vez nos permitirá manejar matemáticamenteun problema que consistía de apenas algunos datos.

6.1. Interpolación

Interpolar una función consiste en aproximar una función f por otra función g, escogidadentro de una clase definida de antemano y satisfaciendo algunas propiedades. La función ges entonces usada en reemplazo de f .

Considere n + 1 puntos distintos: x0, x1, ..., xn y los valores respectivos de f en esos pun-tos: f(x0), f(x1), ..., f(xn). La forma de interpolación de f que veremos a seguir consiste en

99

Page 106: Libro Mn 2013 Mayo

100 CAPÍTULO 6. INTERPOLACIÓN Y APROXIMACIÓN

determinar una función g tal que

g(x0) = f(x0)

g(x1) = f(x1)...

g(xn) = f(xn)

Una manera práctica y muy utilizada es considerar la función interpolante g como polinomio.No obstante, g puede ser una función racional, trigonométrica, etc. En la figura 6.1 se muestraun ejemplo para el caso n = 5.

Figura 6.1: La función g interpolando f en 6 puntos

6.1.1. Interpolación Polinomial

Dados n + 1 pares (x0, f(x0)), (x1, f(x1)), ..., (xn, f(xn)), queremos aproximar f por unpolinomio pn de grado menor o igual a n, tal que

f(xk) = p(xk), k = 0, 1, ..., n (6.1)

Naturalmente, podemos preguntarnos ahora: ¿existe siempre un polinomio que satisface talescondiciones?, y si existe, ¿el polinomio es único?.

Para responder a esto, representaremos el polinomio p por

p(x) = anxn + an−1x

n−1 + ...+ a1x+ a0

Así, al encontrar los valores an, an−1, ..., a1, a0 :

p(x0) = anxn0 + an−1x

n−10 + ...+ a1x0 + a0 = f(x0)

p(x1) = anxn1 + an−1x

n−11 + ...+ a1x1 + a0 = f(x1)

...

p(xn) = anxnn + an−1x

n−1n + ...+ a1xn + a0 = f(xn)

Observe que el sistema anterior es de la forma

Aα = b (6.2)

Page 107: Libro Mn 2013 Mayo

6.1. INTERPOLACIÓN 101

donde

A =

⎡⎢⎢⎢⎣xn0 xn−10 · · · x0 1xn1 xn−11 · · · x1 1...

.... . .

......

xnn xn−1n · · · xn 1

⎤⎥⎥⎥⎦ , α =

⎡⎢⎢⎢⎣αn

αn−1...α0

⎤⎥⎥⎥⎦ y b =

⎡⎢⎢⎢⎣f(x0)f(x1)...

f(xn)

⎤⎥⎥⎥⎦Note que α es el vector de incógnitas. La matrizA se le conoce como la matriz de Vandermonde,y por lo tanto, si x0, x1, ..., xn son todos distintos, entonces

det(A) =Y

0≤i<j≤n(xi − xj) 6= 0

Esto significa que A es invertible y, en consecuencia, el sistema lineal (6.2) tiene solución yésta es única. Esto constituye la prueba del siguiente teorema:

Teorema 6.1 Existe un único polinomio pn de grado menor o igual a n, tal que

f(xk) = pn(xk), k = 0, 1, ..., n

desde que xk 6= xj, k 6= j, k, j = 0, 1, ..., n.

6.1.2. Modos de Obtener el Polinomio pn

Una vez que sabemos las condiciones que garantizan la existencia y unicidad de pn, pro-cedemos a ver las maneras cómo encontrarlo. Existen varias formas de realizar esta tarea, laprimera es mediante la solución directa del sistema Aα = b. No obstante, existen otras formas,como la de Lagrange y de Newton. Desde un punto de vista teórico, todas ellas llevan al mismopolinomio, pero la elección de una u otra depende de algunos factores, tales como la dificultadde los cálculos, estabilidad del sistema lineal y tiempo de ejecución.

Obtención de pn Mediante la Resolución Aα = b

Consiste en resolver por algún método, directo o iterativo, el sistema de ecuaciones linealesen (6.2).

Ejemplo 6.1 Vamos a interpolar f en los puntos x0 = −2, x1 = 0, x2 = 1 y x3 = 4, usandoun polinomio p3(x) = a3x

3 + a2x2 + a1x+ a0 y los siguientes datos:

xi −2 0 1 4f (xi) 6 4 5 8

podemos calcular la matriz de Vandermonde, pero vamos a repetir el procedimiento:

p3(−2) = a3(−2)3 + a2(−2)2 + a1(−2) + a0 = 6 = f(−2)p3(0) = a3(0)

3 + a2(0)2 + a1(0) + a0 = 4 = f(0)

p3(1) = a3(1)3 + a2(1)

2 + a1(1) + a0 = 5 = f(1)

p3(4) = a3(4)3 + a2(4)

2 + a1(4) + a0 = 8 = f(4)

Page 108: Libro Mn 2013 Mayo

102 CAPÍTULO 6. INTERPOLACIÓN Y APROXIMACIÓN

Luego

A =

⎡⎢⎢⎣(−2)3 (−2)2 (−2) 1(0)3 (0)2 (0) 1(1)3 (1)2 (1) 1(4)3 (4)2 (4) 1

⎤⎥⎥⎦ , α =

⎡⎢⎢⎣α3α2α1α0

⎤⎥⎥⎦ y b =

⎡⎢⎢⎣6458

⎤⎥⎥⎦La solución puede ser obtenida resolviéndo el sistema lineal Aα = b, por cualquier técnica yaestudiada. Obtenemos ⎡⎢⎢⎣

α3α2α1α0

⎤⎥⎥⎦ =⎡⎢⎢⎣−1/95/95/94

⎤⎥⎥⎦de donde

p3(x) = −1

9x3 +

5

9x2 +

5

9x+ 4

La figura 6.2 muestra la situación de este ejemplo.

Figura 6.2: Polinomio p3 interpolando 4 puntos

Obtención de pn Mediante la Forma de Lagrange

Dados n + 1 puntos diferentes x0, x1, ..., xn, donde y0 = f(x0), y1 = f(x1), ..., yn = f(xn).Sea pn un polinomio de grado menor o igual que n, tal que interpola a f en los puntosx0, x1, ..., xn, es posible representar pn en la forma

pn(x) = y0L0(x) + y1L1(x) + ...+ ynLn(x)

donde los polinomios Lk son de grado n. Queremos que para cada i se cumpla la condiciónpn(xi) = yi, es decir:

pn(xi) = y0L0(xi) + y1L1(xi) + ...+ ynLn(xi) = yi i = 0, 1, ..., n

Una forma simple de elegir Lk consiste en exigir la condición Lk(xj) = 0 si k 6= j y Lk(xk) = 1,donde j, k = 0, 1, ..., n, esto se consigue definiendo

Lk(x) =(x− x0)(x− x1)...(x− xk−1)(x− xk+1)...(x− xn)

(xk − x0)(xk − x1)...(xk − xk−1)(xk − xk+1)...(xk − xn)

Page 109: Libro Mn 2013 Mayo

6.1. INTERPOLACIÓN 103

Como el numerador de Lk es el producto de n factores (x−xi), i = 0, 1, ..., n, i 6= k, entoncesel polinomio Lk es de grado n. Con esto, el polinomio pn tiene grado menor o igual que n,como requerimos. Más aún, para xi, i = 0, 1, ..., n, tenemos

pn(xi) = yiLi(xi) = yi

y vemos que pn realmente interpola f en tales puntos.

Por lo tanto, la forma de Lagrange para el polinomio interpolador es:

pn(x) =nX

k=0

ykLk(x)

donde

Lk(x) =

Yn

i=0i6=k(x− xi)Yn

i=0i6=k(xk − xi)

Ejemplo 6.2 La siguiente tabla resume los datos de alguna observación

xi −2 0 3 5yi = f(xi) −3 1 4 9

Queremos interpolar f usando un polinomio interpolador según la forma de Lagrange. Así, elpolinomio buscado es

p3(x) = y0L0(x) + y1L1(x) + y2L2(x) + y3L3(x)

Como y0, ..., y3 son conocidos, resta sólo conocer los polinomios L0, ..., L3 :

L0 =(x− x1)(x− x2)(x− x3)

(x0 − x1)(x0 − x2)(x0 − x3)=

(x− 0)(x− 3)(x− 5)(−2− 0)(−2− 3)(−2− 5) = −

x3 − 8x2 + 15x70

L1 =(x− x0)(x− x2)(x− x3)

(x1 − x0)(x1 − x2)(x1 − x3)=(x− (−2))(x− 3)(x− 5)(0− (−2))(0− 3)(0− 5) =

x3 − 6x2 − x+ 30

30

L2 =(x− x0)(x− x1)(x− x3)

(x2 − x0)(x2 − x1)(x2 − x3)=(x− (−2))(x− 0)(x− 5)(3− (−2))(3− 0)(3− 5) = −

x3 − 3x2 − 10x30

L3 =(x− x0)(x− x1)(x− x2)

(x3 − x0)(x3 − x1)(x3 − x2)=

(x− 0)(x− 3)(x− 5)(5− (−2))(5− 0)(5− 3) =

x3 − x2 − 6x70

Por lo tanto,

p3(x) = (−3)µ−x

3 − 8x2 + 15x70

¶+ 1

µx3 − 6x2 − x+ 30

30

¶+ 4

µ−x

3 − 3x2 − 10x30

¶+9

µx3 − x2 − 6x

70

¶=

1

210(15x3 − 57x2 + 246x+ 210)

Observe la figura 6.3.

Page 110: Libro Mn 2013 Mayo

104 CAPÍTULO 6. INTERPOLACIÓN Y APROXIMACIÓN

Figura 6.3: Polinomio p3 interpolando 4 puntos, según Lagrange

6.2. Aproximación: Caso Discreto

En la sección anterior vimos algunos métodos para interpolar una función f en los puntosx0,x1, ..., xn, por una función g previamente definida. Pero interpolar no es aconsejable cuando:

1. Es necesario obtener un valor aproximado de la función en algún punto fuera del intervalode la tabla de definición, a esto se conoce con el nombre de extrapolación.

2. Los valores en la tabla de datos son resultados de algún experimento físico, los cualespueden contener errores inherentes, que en general no son previsibles.

Surge la necesidad de buscar una función que sea una buena aproximación para los valoresdeseados y, que en cierto modo, resuelva nuestro problema con un cierto margen de seguridad.

Así, sean ahora los puntos (x1, f(x1)), ..., (xm, f(xm)), donde x1, ..., xm ∈ [a, b] . El problemaque intentamos resolver consiste en lo siguiente: Una vez elegida n funciones g1, ..., gn : R 7→ Rcontinuas en [a, b] , obtener n constantes α1, ..., αn tales que la función

Φ(x) = α1g1(x) + ...+ αngn(x) (6.3)

se aproxime lo mejor posible a f. Las funciones gi, i = 1, ..., n, pueden asumir formas nolineales, tales como g1(x) = ex, g2(x) = senx, g3(x) = x2 + log x, etc.

Pero, ¿Con qué criterio elegir las funciones gi, i = 1, ..., n? El procedimiento comúnconsiste en lo siguiente:

1. Graficar los puntos (x1, f(x1)), ..., (xm, f(xm)) en el plano cartesiano. El gráfico resul-tante se denomina diagrama de dispersión. Por medio de este diagrama es posible iden-tificar la curva, o una combinación lineal de curvas, que mejor se aproxime a nuestroproblema.

2. Basándose en fundamentos teóricos del experimento que nos otorgaron las observaciones.

Page 111: Libro Mn 2013 Mayo

6.2. APROXIMACIÓN: CASO DISCRETO 105

Ejemplo 6.3 (Elección de gi basado en el diagrama de dispersión)Considere los siguientes datos, resultados de alguna observación:

x −2 −1, 5 −0, 5 0 1 1, 2 2, 5 2, 65 2, 8 3, 1f(x) 3 1 −1 −1, 5 2 4 6 7 10 12

(6.4)

El diagrama de dispersión está dado en la figura 6.4. Claramente, una forma conveniente eselegir g1(x) = x2 y g2(x) = 1, entonces encontrar los valores de α1 y α2 que determinan lafunción Φ(x) = α1x

2 + α2.

Figura 6.4: Diagrama de dispersión

Ejemplo 6.4 (Elección de gi utilizando fundamentos teóricos) Si consideramos una ex-periencia donde fueron medidos varios valores de corriente eléctrica que pasan por una re-sistencia sometida a varias tensiones, podemos elegir gi adecuadamente, colocando esos valoresinicialmente en el gráfico 6.5:

Figura 6.5: Elección de gi mediante fundamento teórico

En este caso existe un fundamento teórico relacionado a la corriente eléctrica con la tensión:V = RI. Es decir, V (voltaje) es una función lineal de I (intensidad). Luego, como Φ buscaaproximar la tensión relacionada a esos datos, resulta prudente elegir gi(I) = I, de tal modoque:

Φ(I) = α1g1(I) = α1I

Page 112: Libro Mn 2013 Mayo

106 CAPÍTULO 6. INTERPOLACIÓN Y APROXIMACIÓN

Note que existe una sola incógnita, α1. Al resolver este problema, el valor que tome α1 será asu vez una aproximación a la resistencia R. En resumen, al determinar α1 habremos ajustadoese diagrama a una curva lineal, todo eso basado en un fundamento teórico.

Una vez que en (6.3) fueron elegidas las funciones gi, i = 1, 2, ..., n, resta calcular lasconstantes que definen Φ(x) = α1g1(x) + ... + αngn(x). A continuación veremos una de lasformas más comunes.

6.2.1. Método de Mínimos cuadrados

Dados los puntos conocidos (x1, f(x1)), ..., (xm, f(xm)), donde las funciones g1, ..., gn : R 7→R fueron elegidas de la forma adecuada. En experimentos de este tipo, por lo general, se tieneque mÀ n (m mucho mayor que n). Nuestro objetivo es encontrar los valores de α1, ..., αn demodo que Φ(x) = α1g1(x) + ... + αngn(x) se aproxime lo mejor posible a la supuesta funciónf.

Análogamente a lo que vimos cuando estudiamos interpolación, desearíamos ahora que:

Φ(x1) = α1g1(x1) + ...+ αngn(x1) = f(x1)... (6.5)

Φ(xm) = α1g1(xm) + ...+ αngn(xm) = f(xm)

Este sistema de m filas y α1, ..., αn variables, podemos nuevamente verlo matricialmente así:

Aα = b (6.6)

donde

A =

⎡⎢⎣ g1(x1) · · · gn(x1)...

. . ....

g1(xm) · · · gn(xm)

⎤⎥⎦ , α =

⎡⎢⎣ α1...αn

⎤⎥⎦ y b =

⎡⎢⎣ f(x1)...

f(xm)

⎤⎥⎦Note que el sistema (6.6) por lo general es incompatible, es decir, que no tiene solución.Esto sucede justamente porque m (el número de observaciones) es mucho mayor que n (lasincógnitas).

Gustaríamos ahora de encontrar α ∈ Rn, tal que Aα ≈ b ( Aα próximo de b). El métodode Mínimos Cuadrados consiste en calcular α del siguiente modo:

α = mınα∈Rn

kAα− bk2 (6.7)

donde k·k es la norma euclídea. Observe que si αi representa la i-fila de A, entonces aiα− birepresenta Φ(xi)− f(xi), esta diferencia es definida como el i-desvio:

di = Φ(xi)− f(xi)

Además,

kAα− bk2 =mXi=1

(aiα− bi)2 =

mXi=1

d2i

Page 113: Libro Mn 2013 Mayo

6.2. APROXIMACIÓN: CASO DISCRETO 107

Es decir, al minimizar kAα− bk2 estamos minimizandoPm

i=1 d2i , la sumatoria de los desvíos

al cuadrado, de ahí el nombre del método (vea la figura 6.6)

Figura 6.6: Valor absoluto de la desviación di

Para minimizar la función q : Rn 7→ R, definida por la regla q(α) = kAα− bk2 , utilizamosalgunos resultados del cálculo diferencial. Después de derivar parcialmente q, igualando a cero,tenemos el siguiente sistema de n incógnitas y n ecuaciones:

∂q

∂α1(α) = 0

...∂q

∂αn(α) = 0

Esto es equivalente resolver ∇q(α) = 0, donde

∇q(α) = AtAα−Atb

Así, si A tiene rango completo, entonces AtA es inversible. Luego, existe una única solución αpara el sistema ∇q(α) = 0, la cual la obtenemos de resolver:

AtAα = Atb (6.8)

o

α = (AtA)−1Atb (6.9)

Note que AtA es una matriz cuadrada e inversible desde que A tenga rango completo. Enestas condiciones, la matriz AtA es simétrica y definida positiva, así, el sistema (6.8) puederesolverse utilizando la descomposición de Cholesky.

Ejemplo 6.5 Considere los siguientes datos vistos en (6.4), cuyo diagrama de dispersiónasociado está en la figura 5.4. Después de elegir g1(x) = x2 y g2 = 1, tal que Φ(x) = α1x

2+α2,

Page 114: Libro Mn 2013 Mayo

108 CAPÍTULO 6. INTERPOLACIÓN Y APROXIMACIÓN

procedemos a encontrar α1 y α2 exigiendo que:

Φ(−2) = α1(−2)2 + α2 = 3

Φ(−1, 5) = α1(−1, 5)2 + α2 = 1

Φ(−0, 5) = α1(−0, 5)2 + α2 = −1Φ(0) = α1(0)

2 + α2 = −1, 5Φ(1) = α1(1)

2 + α2 = 2

Φ(1, 2) = α1(1, 2)2 + α2 = 4

Φ(2, 5) = α1(2, 5)2 + α2 = 6

Φ(2, 65) = α1(2, 65)2 + α2 = 7

Φ(2, 8) = α1(2, 8)2 + α2 = 10

Φ(3, 1) = α1(3, 1)2 + α2 = 12

y obteniendo el sistema lineal Aα = b. donde:

A =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

4, 0000 12, 2500 10, 2500 10, 0000 11, 0000 11, 4400 16, 2500 17, 0225 17, 8400 19, 6100 1

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦, b =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

3, 00001, 0000−1, 0000−1, 50002, 00004, 00006, 00007, 000010, 000012, 0000

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦y α =

∙α1α2

¸

Resolviendo por mínimos cuadrados, es decir, resolviendo AtAα = Atb :

∙266, 3943 39, 662539, 6625 10

¸ ∙α1α2

¸=

∙302, 137542, 5000

¸

tenemos

∙α1α2

¸=

∙1, 22449857738665−0, 606667482559783

¸

La curva que se aproxima, de la mejor manera, es Φ(x) = 1, 224498x2 − 0, 606667, el gráfico

Page 115: Libro Mn 2013 Mayo

6.2. APROXIMACIÓN: CASO DISCRETO 109

está dado en la figura 6.7.

Figura 6.7: Φ aproximando el diagrama de dispersión

Page 116: Libro Mn 2013 Mayo

110 CAPÍTULO 6. INTERPOLACIÓN Y APROXIMACIÓN

Page 117: Libro Mn 2013 Mayo

Capítulo 7

Integración numérica

Sabemos que si una función f : R 7→ R es continua en el intervalo [a, b] , entonces talfunción tiene antiderivada F en [a, b] , es decir

F 0(x) = f(x), x ∈ [a, b]

y Z b

a

f(x)dx = F (b)− F (a)

Sin lugar a dudas, esto constituyó uno de los más grandes descubrimientos dentro del cálculoinfinitesimal. Pero es casi improbable calcular la integral de una función arbitraria f . En estecapítulo veremos algunos de los más populares métodos numéricos para calcular integralesdefinidas.

La idea básica de los métodos numéricos consiste en establecer una partición uniforme{x0, x1, ..., xn−1, xn} del intervalo de integración [a, b] :

a = x0, x1, ..., xn−1, xn = b (7.1)

donde x0 < x1 · · · < xn y h = x1−x0 = x2−x1 = · · · = xn−xn−1 = (b−a)/n. Posteriormente,sustituir la función f por polinomios que la aproximen razonablemente en el intervalo [a, b] .Así, el problema se resumiría a la integración de polinomios, lo cual es trivial.

7.1. Método de los Trapecios

Si usamos la fórmula de Lagrange para aproximar f por un polinomio p1 de grado uno enx0 y x1, tenemosZ x1

x0

f(x)dx ≈Z x1

x0

p1(x)dx =

Z x1

x0

µx− x1−h f(x0) +

x− x0h

f(x1)

¶dx

=h

2(f(x0) + f(x1)) = T

Observe que, cuando f sobre [x0, x1] está por encima del eje de las abscisas, T puede serinterpretada como el área del trapecio mostrado en la figura 7.1, la cual es una aproximación

111

Page 118: Libro Mn 2013 Mayo

112 CAPÍTULO 7. INTEGRACIÓN NUMÉRICA

para el valor de la integral de f en [x0, x1] . Mientras más pequeño sea h, mejor será laaproximación.

Figura 7.1:

Podemos repetir ese procedimiento para cada uno de los subintervalos generados por la par-tición uniforme, asíZ b

a

f(x)dx =n−1Xk=0

Z xk+1

xk

f(x)dx ≈n−1Xk=0

h

2(f(xk) + f(xk+1)) =

h

2

n−1Xk=0

(f(xk) + f(xk+1))

Note además que xk = x0 + kh = a+ kb, esto nos lleva al siguiente algoritmo.

Algoritmo 7.1 (Regla de los Trapecios) Dada la función f : R 7→ R continua en [a, b] .

Paso inicial: Definir n y calcular h = (b− a)/n

Paso principal: Calcular

I =h

2

n−1Xk=0

{f(a+ kh) + f(a+ (k + 1)h)}

I es una aproximación aR baf(x)dx

Una función en Matlab quedaría así:

function I=trapecio(a,b,n)h=(b-a)/n;I=0;for k=1:n

I=I+f(a+(k-1)*h)+f(a+k*h);endI=I*h/2

Ejemplo 7.1 Usando la función de arriba, calcule y verifique que:

1. Para n = 10000, se tieneR 2−1 x

2dx ≈ 3, 00000004499998

2. Para n = 10000, se tieneR 20e−x

2dx ≈ 0, 882081390518215

3. Para n = 10000, se tieneR 7−3 sen(7x

3 + sen(ln(x4 + x2 + 5)))dx ≈ 0, 681133991768069

Page 119: Libro Mn 2013 Mayo

7.2. MÉTODO DE SIMPSON 113

7.2. Método de Simpson

Consideremos la misma partición introducida en (7.1). Podemos usar de nuevo la fórmulade Lagrange para obtener la fórmula de integración resultante de la interpolación de f por unpolinomio de grado 2. Sea p2 el polinomio que interpola f en los puntos x0, x1 = x0 + h yx2 = x0 + 2h (vea la figura 7.2)

Figura 7.2:

Así,

p2(x) =(x− x1)(x− x2)

(−h)(−2h) f(x0) +(x− x0)(x− x2)

(h)(−h) f(x1) +(x− x0)(x− x1)

(2h)(h)f(x2)

Luego,Z x2

x0

f(x)dx ≈Z x2

x0

p2(x)dx =f(x0)

2h2

Z x2

x0

(x− x1)(x− x2)dx

−f(x1)h2

Z x2

x0

(x− x0)(x− x2)dx+f(x2)

2h2

Z x2

x0

(x− x0)(x− x1)dx

integrando, tenemos Z x2

x0

f(x)dx ≈ h

3(f(x0) + 4f(x1) + f(x2)) = S

Podemos tomar de tres puntos de la partición y aplicar repetidamente esta regla, para esorequerimos que la partición sea definida por n par. Luego:Z b

a

f(x)dx =

Z xn

x0

f(x)dx =

n/2Xk=1

Z x2k

x2k−2

f(x)dx ≈ h

3{[f(x0) + 4f(x1) + f(x2)]

+ [f(x2) + 4f(x3) + f(x4)] + · · ·+ [f(xn−2) + 4f(xn−1) + f(xn)]}

Más aún, Z b

a

f(x)dx ≈ h

3{[f(x0) + f(xn)] + 4 [f(x1) + f(x3) + · · ·+ f(xn−1)]

+2 [f(x2) + f(x4) + · · ·+ f(xn−2)]}

Esto nos lleva al siguiente algoritmo.

Page 120: Libro Mn 2013 Mayo

114 CAPÍTULO 7. INTEGRACIÓN NUMÉRICA

Algoritmo 7.2 (Regla de Sipmson) Dada la función f : R 7→ R continua en [a, b].

Paso inicial: Definir n y calcular h = (b− a)/n

Paso principal: Calcular

S =h

3{[f(a) + f(b)] + 4 [f(a+ h) + f(a+ 3h) + · · ·+ f(a+ (n− 1)h)]

+2 [f(a+ 2h) + f(a+ 4h) + · · ·+ f(a+ (n− 2)h)]}

S es una aproximación paraR baf(x)dx.

Una función en Matlab para este caso, estaría dada del siguiente modo:

function S=simpson(a,b,n)S1=0;S2=0;h=(b-a)/n;for k=1:2:n-1

S1=S1+f(a+k*h);endfor k=2:2:n-2

S2=S2+f(a+k*h);endS=(h/3)*((f(a)+f(b))+4*S1+2*S2);

Ejemplo 7.2 Implementamos el método de Simpson y lo usamos para calcular la misma in-tegral

R 20e−x

2dx, del ejemplo anterior. Para el caso de apenas n = 100, obtuvimosZ 2

0

e−x2

dx ≈ 0, 882081390111187

Observación 7.1 En la práctica, el método de Simpson es más eficiente que el método deltrapecio, una manera de medir analíticamente esto es por medio del estudio de error cometido..

Problema 7.1 Haga un estudio de la estimativa de los errores cometidos por los métodos delTrapecio y Simpson.

Page 121: Libro Mn 2013 Mayo

Bibliografía

[1] Steven C. ,Métodos Numéricos para ingenieros.quinta edición. McGraw-Hill, 2006

[2] Jaan K. Numerical Methods in Engineering with MATLAB. 2005

[3] John H. Métodos numéricos con Matlab. tercera edición. Prentice 2000

[4] Herón M. Matlab 7.para ciencias e ingeniería. primera edición. Megabyte. 2005

[5] Burden R. Análisis numérico. 7 edición. Cengage

[6] Amos Gilat Matlab una introducción con ejemplos prácticos 2 edición Ed reverte 2006

115