Beruflich Dokumente
Kultur Dokumente
Guayaquil, Ecuador
2014
Luis Rodrguez Ojeda, MSc.
CONTENIDO
1
Introduccin
1.1
Resolucin de problemas con el computador
1.2
Fuentes de error en la resolucin de un problema numrico
1.3
El modelo matemtico
1.4
Algoritmos numricos
1.5
Instrumentacin computacional
1.6
Un ejemplo inicial
1.7
Preguntas
8
8
9
9
9
9
10
12
13
13
16
16
16
17
17
18
18
19
21
21
22
24
26
27
29
30
30
30
31
32
33
33
33
35
35
36
37
40
41
41
42
44
45
45
48
53
54
54
59
59
59
60
61
62
65
65
3
3.5.8
67
107
107
107
108
109
109
110
111
112
112
113
113
114
115
115
116
116
117
118
121
121
121
123
127
4
6
Interpolacin
6.1
El polinomio de interpolacin
6.1.1
Existencia del polinomio de interpolacin
6.1.2
Unicidad del polinomio de interpolacin con diferentes mtodos
6.2
El polinomio de interpolacin de Lagrange
6.2.1
Algoritmo del polinomio de interpolacin de Lagrange
6.2.2
Eficiencia del mtodo de Lagrange
6.2.3
Instrumentacin computacional
6.3
Interpolacin mltiple
6.3.1
Instrumentacin computacional
6.4
Error en la interpolacin
6.4.1
Una frmula para estimar el error en la interpolacin
6.5
Diferencias finitas
6.5.1
Relacin entre derivadas y diferencias finitas
6.5.2
Diferencias finitas de un polinomio
6.6
El polinomio de interpolacin de diferencias finitas
6.6.1
Prctica computacional
6.6.2
Eficiencia del polinomio de interpolacin de diferencias finitas
6.6.3
El error en el polinomio de interpolacin de diferencias finitas
6.6.4
Forma estndar del polinomio de diferencias finitas
6.7
El polinomio de interpolacin de diferencias divididas
6.7.1
El error en el polinomio de interpolacin de diferencias divididas
6.8
El polinomio de mnimos cuadrados
6.8.1
Prctica computacional
6.9
Ejercicios y problemas con el polinomio de interpolacin
6.10
El trazador cbico
6.10.1 El trazador cbico natural
6.10.2 Algoritmo del trazador cbico natural
6.10.3 Instrumentacin computacional del trazador cbico natural
6.10.4 El trazador cbico sujeto
6.10.5 Algoritmo del trazador cbico sujeto
6.10.6 Instrumentacin computacional del trazador cbico sujeto
6.10.7 Ejercicios con el trazador cbico
135
135
136
137
138
138
140
140
142
144
145
146
147
148
149
150
152
153
155
157
158
161
162
164
165
169
169
172
174
176
177
178
181
Integracin numrica
7.1
Frmulas de Newton-Cotes
7.1.1
Frmula de los trapecios
7.1.2
Error de truncamiento en la frmula de los trapecios
7.1.3
Instrumentacin computacional de la frmula de los trapecios
7.1.4
Frmula de Simpson
7.1.5
Error de truncamiento en la frmula de Simpson
7.1.6
Instrumentacin computacional de la frmula de Simpson
7.1.7
Error de truncamiento vs. Error de redondeo
7.2
Obtencin de frmulas de integracin numrica con el mtodo de
coeficientes indeterminados
7.3
Cuadratura de Gauss
7.3.1
Frmula de la cuadratura de Gauss con dos puntos
7.3.2
Instrumentacin computacional de la cuadratura de Gauss
7.3.3
Instrumentacin extendida de la cuadratura de Gauss
7.4
Integrales con lmites no acotados
7.5
Integrales con rango no acotado
7.6
Integrales mltiples
7.6.1
Instrumentacin computacional de la frmula de Simpson en
dos direcciones
7.7
Ejercicios y problemas de integracin numrica
182
182
183
184
187
189
190
191
192
Diferenciacin numrica
8.1
Obtencin de frmulas de diferenciacin numrica
8.2
Una frmula para la primera derivada
8.3
Una frmula de segundo orden para la primera derivada
8.4
Una frmula para la segunda derivada
8.5
Obtencin de frmulas de diferenciacin numrica con el mtodo
194
195
195
198
198
199
200
201
205
207
212
212
212
214
215
8.6
8.7
8.8
de coeficientes indeterminados
Algunas otras frmulas de inters para evaluar derivadas
Extrapolacin para diferenciacin numrica
Ejercicios de diferenciacin numrica
216
217
217
218
10
259
259
260
261
263
264
266
267
269
269
271
273
274
275
277
280
280
10.5
Bibliografa
283
285
288
Prefacio
Esta obra es una contribucin dedicada a los estudiantes que toman el curso de Anlisis Numrico en las
carreras de ingeniera en la ESPOL. El pre-requisito es haber tomado los cursos de matemticas del ciclo
bsico de nivel universitario y alguna experiencia previa con el programa MATLAB para aprovechar el poder
de este instrumento computacional y aplicar los mtodos numricos de manera efectiva.
El contenido se basa en la experiencia desarrollada en varios aos impartiendo los cursos de Anlisis
Numrico y Mtodos Numricos en las carreras de ingeniera, sin embargo esta obra solo pretende ser un
texto complementario para estas materias. La orientacin principal del material es su aplicacin
computacional, sin descuidar los conceptos matemticos bsicos con los que se fundamentan los mtodos
numricos.
Este texto contribuye tambin a difundir entre los estudiantes el uso del programa MATLAB para clculos,
graficacin y manejo matemtico simblico para integrarlo como un soporte comn para todos los cursos
bsicos matemticos, incluyendo lgebra Lineal, Clculo Diferencial e Integral, Ecuaciones Diferenciales,
Anlisis Numrico y otros.
MATLAB dispone de un amplio repertorio de funciones especiales para su aplicacin inmediata en la
solucin de una gran cantidad de problemas matemticos, sin embargo sera equivocado usarlas como una
receta sin el conocimiento de sus fundamentos matemticos. En este curso se desarrollan algunas
funciones alternativas a las que ofrece MATLAB, y en algunos casos, nuevas funciones cuya programacin
es instructiva para orientar a los estudiantes en el desarrollo de software para matemticas e ingeniera.
El segundo objetivo principal de esta obra es contribuir al desarrollo de textos virtuales en la ESPOL de tal
manera que puedan ser usados en lnea e interactivamente, aunque tambin puedan imprimirse, pero
tratando de reducir al mnimo el uso de papel. Otra ventaja importante de los textos virtuales es que pueden
ser actualizados y mejorados continuamente sin costos de impresin. El texto ha sido compilado en formato
pdf. El tamao del texto en pantalla es controlable y tiene un ndice electrnico para facilitar la bsqueda
de temas. Se pueden usar facilidades para resaltar y marcar texto, agregar comentarios, notas, enlaces,
revisiones, bsqueda por contenido, etc.
Adjunto a este libro virtual se provee un documento en formato de texto copiable con todas las funciones
instrumentadas en MATLAB desarrolladas en este documento, de tal manera que los usuarios puedan
tomarlas y pegarlas en la ventana de edicin de MATLAB, probarlas inmediatamente y posteriormente
realizar cambios y mejoras en las mismas.
Tambin se adjunta un manual de uso del programa MATLAB para los usuarios que deseen adquirir o
mejorar su conocimiento de este programa.
Esta obra tiene derechos de autor pero es de uso y distribucin libres y sin costo y estar disponible en la
pgina web del Instituto de Ciencias Matemticas de la ESPOL www.icm.espol.edu.ec
Finalmente, debo agradecer a la ESPOL y a sus autoridades por dar las facilidades a sus profesores para
que desarrollen su actividad acadmica.
ANLISIS NUMRICO
Un enfoque algortmico con el soporte de MATLAB
1
INTRODUCCIN
1.1
Suponer un problema que debemos resolver y que est en nuestro mbito de conocimiento.
En la etapa de Anlisis es necesario estudiar y entender el problema. Sus caractersticas, las
variables y los procesos que intervienen. Asimismo, debemos conocer los datos requeridos y el
objetivo esperado. En el caso de problemas de tipo numrico, el resultado de esta etapa ser un
modelo matemtico que caracteriza al problema. Por ejemplo, un sistema de ecuaciones
lineales.
En la etapa de Diseo procedemos a elegir el mtodo numrico apropiado para resolver el
modelo matemtico. Debe suponerse que no se puede, o que sera muy laborioso, obtener la
solucin exacta mediante mtodos analticos. Los mtodos numricos permiten obtener
soluciones aproximadas con simplicidad. El resultado de esta etapa es la formulacin
matemtica del mtodo numrico y la elaboracin de un algoritmo para usarlo.
En la etapa de Instrumentacin elegimos el dispositivo de clculo para la obtencin de
resultados. En problemas simples, basta una calculadora. Para problemas complejos,
requerimos el computador mediante funciones predefinidas y en algunos casos, desarrollando
programas y funciones en un lenguaje computacional. Esta ltima opcin es importante para la
comprensin de los mtodos.
Este proceso debe complementarse con una revisin y retroalimentacin. Es preferible invertir
ms tiempo en las primeras etapas, antes de llegar a la instrumentacin.
9
1.2
1.3
El modelo matemtico
1.4
Algoritmos numricos
Un algoritmo es una descripcin ordenada de los pasos necesarios para resolver un problema.
Para disear un algoritmo para resolver un problema numrico es necesario conocer en detalle
la formulacin matemtica, las restricciones de su aplicacin, los datos y algn criterio para
validar y aceptar los resultados obtenidos.
Esta descripcin facilita la instrumentacin computacional del mtodo numrico. En problemas
simples puede omitirse la elaboracin del algoritmo e ir directamente a la codificacin
computacional.
1.5
Instrumentacin computacional
En este curso se usar MATLAB para instrumentar los algoritmos correspondientes a los
mtodos numricos estudiados. La aplicacin computacional puede realizarse usando
directamente la funcionalidad disponible en el lenguaje, sin embargo para comprender y aplicar
los mtodos numricos es preferible instrumentar el algoritmo construyendo funciones en el
lenguaje computacional y tratando de que sean independientes de los datos especficos de un
problema particular, facilitando as su reutilizacin. Estas funciones pueden llamarse desde la
ventana de comandos o mediante un programa que contiene los datos del problema que se
desea resolver. Se supondr que los estudiantes tienen el conocimiento bsico del lenguaje y
del entorno de MATLAB.
10
1.6
Un ejemplo inicial
Anlisis
Para formular el modelo matemtico el problema debe entenderse detalladamente. En este
ejemplo un dibujo facilita su elaboracin.
Sea:
x: medida del lado de los cuadrados que se deben recortar para formar la caja
Volumen:
1 litro = 1000 cm
Ecuacin:
Algoritmo
No es necesario construir un algoritmo pues los clculos sern realizados directamente en la
ventana de comandos de MATLAB usando la funcionalidad disponible en el lenguaje
11
Instrumentacin
Definicin de la ecuacin (se escribe como una expresin entre comillas simples)
>> f='250-192*x+28*x^2-x^3';
Grfico de la ecuacin con el comando EZPLOT:
>> ezplot(f,[0,20]),grid on
300
200
100
0
-100
-200
-300
-400
0
10
x
12
14
16
18
20
Respuesta
Lados de la caja en centmetros:
8.0932,
15.8136,
7.8136
12
1.7
Preguntas
1. Cual etapa del proceso de resolucin de un problema numrico requiere mayor atencin?
2. Qu conocimientos son necesarios para formular un modelo matemtico?
3. En el ejemplo del recipiente, Cual sera la desventaja de intentar obtener experimentalmente
la solucin mediante prueba y error en lugar de analizar el modelo matemtico?
4. Que es ms crtico: el error de truncamiento o el error de redondeo?
5. Cul es la ventaja de instrumentar computacionalmente un mtodo numrico?
6. Por que es importante validar los resultados obtenidos?
13
2
Existen dos estrategias para disear mtodos numricos y es importante conocer sus
caractersticas para elegirlos adecuadamente, as como su instrumentacin computacional
2.1
Mtodos iterativos
Cada ciclo se denomina iteracin. Si la frmula converge, en cada iteracin la respuesta estar
ms cerca del resultado buscado. Aunque en general no es posible llegar a la respuesta exacta,
se puede acercar a ella tanto como lo permita la aritmtica computacional del dispositivo de
clculo.
Ejemplo. Instrumentar un mtodo iterativo para calcular la raz cuadrada r de un nmero real
positivo n mediante operaciones aritmticas bsicas
Mtodo Numrico
Se usar una frmula que recibe un valor estimado para la raz cuadrada y produce un valor ms
cercano a la respuesta. Si se usa repetidamente la frmula cada resultado tender a un valor
final que suponemos es la respuesta buscada. La obtencin de estas frmulas se realizar
posteriormente.
Sean
14
Algoritmo
Algoritmo: Raz cuadrada
Entra: n
Dato
E
Error permitido
x
Valor inicial
1
n
y (x + )
2
x
Sale: y
Respuesta calculada con error E
Repetir mientras |x-y| > E
x y.
1
n
y (x + )
2
x
Fin del ciclo
Ejemplo. Calcular r =
15
Ejemplo. Calcular r =
.
.
.
>> x=y;
>> y=0.4*(x+n/x)
y=
2.160246899469289
>> x=y;
>> y=0.4*(x+n/x)
y=
2.160246899469287
>> x=y;
>> y=0.4*(x+n/x)
y=
2.160246899469287
>> y^2
ans =
4.66666666666666
16
2.1.1
Es la propiedad que tienen la formula iterativas de un mtodo numrico para producir resultados
cada vez ms cercanos a la respuesta esperada.
Definicin: Convergencia de una frmula iterativa
Sean
(valor desconocido)
(valor aproximado)
.
2.1.2
Error de truncamiento
La distancia entre la respuesta esperada y el valor calculado con una frmula iterativa se
denomina error de truncamiento.
Definicin: Error de truncamiento
17
Ejemplo. Se desea que la respuesta calculada para un problema con un mtodo iterativo tenga
un error absoluto menor que 0.0001. Entonces el algoritmo deber terminar cuando se cumpla
que |xi+1 - xi| < 0.0001. Los clculos deben realizarse al menos con la misma precisin.
Para que el criterio del error sea independiente de la magnitud del resultado, conviene usar la
definicin del error relativo:
Definicin: Criterio para finalizar un proceso iterativo (error relativo)
Sea e algn valor positivo arbitrariamente pequeo.
Si el mtodo converge, se cumplir que a partir de alguna iteracin i:
| xi+ 1 xi |
<e
| xi+ 1 |
Este valor e es el error relativo y puede usarse como una medida para el error de la respuesta
calculada, independiente de la magnitud. Para calcular el error relativo se toma el ltimo valor
como el ms cercano a la respuesta.
Ejemplo. Se desea que la respuesta calculada para un problema con un mtodo iterativo tenga
un error relativo menor que 0.1%. Entonces el algoritmo deber terminar cuando se cumpla que
| xi+ 1 xi |
< 0.001
| xi+ 1 |
2.1.5
Sean Ei , Ei+ 1 los errores de truncamiento en las iteraciones i, i+1 respectivamente. Se supondr
que estos valores son pequeos y menores a 1.
Si a partir de alguna iteracin i esta relacin puede especificarse como | Ei+ 1 | = k | Ei |, siendo k
alguna constante positiva menor que uno, entonces se dice que la convergencia es lineal o de
primer orden y k es el factor de convergencia. Se puede usar la notacin O( ) y escribir
Ei+ 1 = O(Ei ) para expresar de una manera simple el orden de esta relacin, y se lee "orden de".
Si en un mtodo esta relacin es ms fuerte tal como Ei+ 1 = O(Ei2 ) entonces el error se reducir
ms rpidamente y se dice que el mtodo tiene convergencia cuadrtica o de segundo orden.
18
Definicin: Orden de convergencia de un mtodo iterativo
Sean Ei , Ei+ 1 los errores en las iteraciones consecutivas i, i + 1 respectivamente
Si se pueden relacionar estos errores en la forma:
Ei+ 1 = O(Ein )
Entonces se dice que el mtodo iterativo tiene convergencia de orden n.
Si un mtodo iterativo tiene convergencia mayor que lineal, entonces si el mtodo converge, lo
har ms rpidamente.
.
2.1.6
Los mtodos iterativos normalmente requieren que el valor inicial sea elegido apropiadamente. Si
es elegido al azar, puede ocurrir que no se produzca la convergencia.
Si el problema es simple, mediante algn anlisis previo puede definirse una regin de
convergencia tal que si el valor inicial y los valores calculados en cada iteracin permanecen
en esta regin, el mtodo converge.
2.1.7
Preguntas
19
2.2
Mtodos directos
Son procedimientos para obtener resultados realizando una secuencia finita de operaciones
aritmticas. La cantidad de clculos aritmticos depende del tamao del problema. El resultado
obtenido ser exacto siempre que se puedan conservar en forma exacta los valores calculados
en las operaciones aritmticas, caso contrario se introducirn los errores de redondeo.
Ejemplo. Instrumentar un mtodo directo para resolver un sistema triangular inferior de
ecuaciones lineales.
Modelo matemtico
= b1
a1,1x1
a2,1x1 + a2,2x2
= b2
= b3
a3,1x1 + a3,2x2 + a3,3x3
....
an,1x1 + an,2x2 + ax,3x3 + . . . + an,nxn = bn
En donde:
1
(b2 - a2,1x1)
a2,2
1
a3,3
...
En general:
xi =
1
(bi - ai,1x1 - ai,2x2 - . . . - ai,i-1xi-1), i = 2, 3, . . . , n, ai,i 0
ai,i
Algoritmo
Algoritmo: Triangular
Coeficientes
Entra: ai,j
Constantes
bi
Solucin calculada
Sale: xi
n cantidad de ecuaciones
Para i = 1, 2, . . ., n
s 0;
Para j = 1, 2, . . ., i-1
s s + ai,jxj
Fin
xi (bi s)/ai,i
Fin
Este algoritmo es un caso particular del problema general: sistema de n ecuaciones lineales. Los
mtodos numricos normalmente se desarrollan para resolver una clase o tipo general de
problemas. La instrumentacin puede hacerse mediante un programa, pero es ms conveniente
definirlo como una funcin en MATLAB para estandarizar la entrada y salida de variables.
20
Instrumentacin computacional
La instrumentacin del mtodo numrico del ejemplo anterior se har mediante una funcin en
MATLAB. Para que la instrumentacin sea general es preferible que el mtodo numrico sea
independiente de los datos de un problema particular.
El nombre para la funcin ser triangular. La funcin recibir como datos la matriz de
coeficientes a y el vector de constantes b y producir como resultado el vector solucin v
(vector columna)
function x = triangular(a, b)
n = length(b);
x(1) = b(1)/a(1,1);
for i = 2: n
s = 0;
for j = 1: i-1
s = s + a(i,j)*x(j);
end
x(i) = (b(i) - s)/a(i,i);
end
x=x';
%vector columna
Ejemplo. Escribir los comandos para resolver un problema usando la funcin anterior
=2
3x1
=3
7x1 + 5x2
8x1 + 2x2 + 9x3 = 6
>> a = [3 0 0; 7 5 0; 8 2 9]
>> b = [2; 3; 6]
>> x = triangular(a, b)
x=
0.6667
-0.3333
0.1481
Definir la matriz
Definir el vector de constantes
Uso de la funcin
21
2.2.1
Error de redondeo
Los mtodos numricos operan con datos que pueden ser inexactos y con dispositivos para
representar a los nmeros reales. El error de redondeo se atribuye a la imposibilidad de
almacenar todas las cifras de estos nmeros y a la imprecisin de los instrumentos de medicin
con los cuales se obtienen los datos.
Definicin: Error de redondeo absoluto
Sean
X: Valor exacto
X : Valor aproximado
E=X X
(normalmente desconocido)
(observado o calculado)
Error de redondeo
.
X: Valor exacto
(normalmente desconocido)
X : Valor aproximado (observado o calculado)
E: Error de redondeo
E E
Error de redondeo relativo. (X, X diferentes de cero)
=
e
:
X X
| E |< 1 10nm
Mientras que el error relativo:
max(| E |) 1 10nm
| e |<
10 10 m (Solo depende del almacenamiento)
= =
min(| X |) 0.1 10n
22
2.2.3
En los mtodos directos debe considerarse el error que se propaga en las operaciones
aritmticas, el cual puede ser significativo cuando la cantidad de clculos requeridos es grande.
A continuacin se analizan la suma y el producto
a) Error de redondeo en la suma
Sean
X, Y : Valores exactos
X , Y : Valores aproximados
=
eX + Y
X
X+Y
| eX + Y | |
| eX + Y | |
ex +
Y
X+Y
EX
X+Y
X
X+Y
|+|
eY
EY
X+Y
ex | + |
Y
X+Y
|
eY |
EX Y EX EY
EX
EY
=
=
XY
XY
XY XY
EX
EY
| |
|+|
|
XY
XY
| eX Y | |
X
XY
ex | + |
Y
XY
eY |
23
b) Error de redondeo en la multiplicacin
P=XY
P = ( X + EX) ( Y + EY) = X Y + X EY + Y EX + EXEY
El ltimo trmino se descarta por ser muy pequeo
P = X Y + X EY + Y EX
Valor que se almacena
P= X Y
Error de redondeo absoluto en la multiplicacin
EXY = X EY + Y EX
|EXY| | X EY| + | Y EX|
La magnitud del error de redondeo en la multiplicacin puede ser tan grande como la suma de
los errores de redondeo de los operandos ponderada por cada uno de sus respectivos valores.
Error de redondeo relativo en la multiplicacin
E
XE + YEX XEY YEX EY EX
e XY = XY = Y
=
+
= +
XY
XY
XY
XY
Y
X
e XY
= ex + eY
| e XY | | e x | + |e Y |
En general, si los valores de los operandos tienen ambos el mismo signo se puede concluir que
la operacin aritmtica de multiplicacin puede propagar ms error de redondeo que la suma.
Adicionalmente, si el resultado de cada operacin aritmtica debe almacenarse, hay que agregar
el error de redondeo debido a la limitacin del dispositivo de almacenamiento.
24
2.2.4
Ejemplos de aplicacin
1) La velocidad de una partcula es constante e igual a 4 m/s, medida con un error de 0.1 m/s
durante un tiempo de recorrido de 5 seg. medido con error de 0.1 seg. Determine el error
absoluto y el error relativo en el valor de la distancia recorrida.
v = 4, Ev = 0.1
t = 5, Et = 0.1
d = vt
(velocidad)
(tiempo)
(distancia recorrida)
(Error absoluto)
Ev
v
Et
t
0.1 0.1
+
= 0.045 = 4.5%
4
5
(Error relativo)
XY
XY
XY XY
EX
E
| eX Y | |
|+| Y |
XY
XY
0.05
0.05
| eX Y | |
|+|
| 0.3333 =33.33%
578.1 577.8
578.1 577.8
El aumento en la cota del error en el resultado es muy significativo con respecto a los operandos.
Se concluye que se debe evitar restar nmeros cuya magnitud sea muy cercana pues el cociente
al ser muy pequeo, har que el error relative sea significativo.
Adicionalmente habra que aumentar el efecto del error de redondeo al almacenar el resultado.
con
X>Y>Z
25
eX + Y =
X
X+Y
e=
(X + Y) + Z
eX +
Y
X+Y
X+Y
X+Y+Z
e Y + r1 = r1
eX + Y +
(X + Y)r1 + (X + Y + Z)r2
X+Y
=
e Z + r2
=
r1 + r2
X+Y+Z
X+Y+Z
X+Y+Z
Z
| r1,r2 |< 10 10 m
| e(X + Y)+ Z |<
(2X + 2Y + Z)10 10 m
X+Y+Z
(2Z + 2Y + X)10 10 m
Z+Y+X
Si X > Z , se puede concluir que la suma de los nmeros debe realizarse comenzando con los
nmeros de menor magnitud, pues la cota del error ser menor.
26
2.2.5
La eficiencia de un algoritmo est relacionada con el tiempo necesario para obtener la solucin.
Este tiempo depende de la cantidad de operaciones aritmticas que se deben realizar. As, si se
tienen dos algoritmos para resolver un mismo problema, es ms eficiente el que requiere menos
operaciones aritmticas para producir el mismo resultado. Adicionalmente, el algoritmo ms
eficiente acumular menos error si los resultados son nmeros reales que no pueden
representarse en forma exacta en el dispositivo de clculo.
Sea n el tamao del problema, y T(n) la eficiencia del algoritmo (cantidad de operaciones
aritmticas requeridas). Para obtener T(n) se pueden realizar pruebas en el computador con
diferentes valores de n registrando el tiempo de ejecucin. Siendo este tiempo proporcional a la
cantidad de operaciones aritmticas que se realizaron, se puede estimar la funcin T(n).
Esta forma experimental para determinar T(n) tiene el inconveniente de requerir la
instrumentacin computacional del algoritmo para realizar las pruebas. Es preferible conocer la
eficiencia del algoritmo antes de invertir esfuerzo en la programacin computacional.
Para determinar T(n) se puede analizar la formulacin matemtica del mtodo numrico o la
estructura del algoritmo.
Ejemplo. El siguiente algoritmo calcula la suma de los cubos de los primeros n nmeros
naturales. Encontrar T(n)
Sea T la cantidad de sumas que se realizan
...
s0
Para i=1, 2, ..., n
3
ss+i
fin
...
La suma est dentro de una repeticin que se realiza n veces, por lo tanto,
T(n) = n
Ejemplo. El siguiente algoritmo suma los elementos de una matriz cuadrada a de orden n.
Encontrar T(n)
Sea T la cantidad de sumas
...
s0
Para i=1, 2, ..., n
Para j=1, 2, ..., n
s s + ai, j
fin
fin
...
La suma est incluida en una repeticin doble. La variable i, cambia n veces y para cada uno de
sus valores, la variable j cambia n veces. Por lo tanto.
2
T(n) = n
27
Ejemplo. El siguiente algoritmo es una modificacin del anterior. Suponga que se desea sumar
nicamente los elementos de la sub-matriz triangular superior. Obtener T(n)
...
s0
Para i=1, 2, ..., n
Para j=i, i+1, ..., n
s s + ai, j
fin
fin
...
Si no es evidente la forma de T(n), se puede recorrer el algoritmo y anotar la cantidad de sumas
que se realizan
i
j
1
n
2
n-1
3
n-2
...
...
n-1
2
n
1
Entonces, T(n) = 1 + 2 + .... + n =
2.2.6
n
n2 n
(n + 1) =
+
2
2 2
La notacin O( )
Supongamos que para resolver un problema se han diseado dos algoritmos: A y B, con
2
eficiencias TA(n) = 10n+2, TB(n) = 2n + 3, respectivamente. Cual algoritmo es ms eficiente?.
Para valores pequeos de n, TB(n) < TA(n), pero para valores grandes de n, TA(n) < TB(n). Es
de inters prctico determinar la eficiencia de los algoritmos para valores grandes de n, por lo
tanto el algoritmo A es ms eficiente que el algoritmo B como se puede observar en el grfico:
Si T(n) incluye trminos con n que tienen diferente orden, es suficiente considerar el trmino de
mayor orden pues es el que determina la eficiencia del algoritmo cuando n es grande. No es
necesario incluir los coeficientes y las constantes.
28
2
Se observa que a medida que n crece, T depende principalmente de n . Este hecho se puede
expresar usando la notacin O( ) la cual indica el orden de la eficiencia del algoritmo, y se
2
2
puede escribir: T(n) = O(n ) lo cual significa que la eficiencia es proporcional a n , y se dice que
el algoritmo tiene eficiencia cuadrtica o de segundo orden.
En general, dado un problema de tamao n, la medida de la eficiencia T(n) de un algoritmo se
2
3
puede expresar con la notacin O(g(n)) siendo g(n) alguna expresin tal como: n, n , n , ...,
n
log(n), n log(n), ..., 2 , n!, ... la cual expresa el orden de la cantidad de operaciones aritmticas
que requiere el algoritmo.
Es de inters medir la eficiencia de los algoritmos para problemas de tamao grande, pues para
estos valores de n se debe conocer la eficiencia. En el siguiente cuadro se ha tabulado T(n) con
algunos valores de n y para algunas funciones tpicas g(n).
Tabulacin de T(n) con algunos valores de n para algunas funciones tpicas g(n)
n [log(n)] n [n log(n)]
1
3
5
7
9
11
13
15
17
19
21
23
25
50
100
0
1
1
1
2
2
2
2
2
2
3
3
3
3
4
1
3
5
7
9
11
13
15
17
19
21
23
25
50
100
0
1
1
3
9
27
8
25
125
13
49
343
19
81
729
26
121
1331
33
169
2197
40
225
3375
48
289
4913
55
361
6859
63
441
9261
72
529
12167
80
625
15625
195 2500 125000
460 10000 1000000
2
8
32
128
512
2048
8192
32768
5
1.31x10
5
5.24x10
6
2.09x10
6
8.38x10
7
3.35x10
15
1.12x10
30
1.26x10
n!
1
6
120
5040
5
3.62x10
7
3.99x10
9
6.22x10
12
1.30x10
14
3.55x10
17
1.21x10
19
5.10x10
22
2.58x10
25
1.55x10
64
3.04x10
157
9.33x10
Los algoritmos en las dos ltimas columnas son de tipo exponencial y factorial
respectivamente. Se puede observar que an con valores relativamente pequeos de n el valor
de T(n) es extremadamente alto. Los algoritmos con este tipo de eficiencia se denominan nofactibles pues ningn computador actual pudiera calcular la solucin en un tiempo aceptable
para valores de n grandes.
La mayora de los algoritmos que corresponden a los mtodos numricos son de tipo polinomial
2
3
.
con g(n) = n, n , n
29
2.2.7
Ejercicios
30
3
Sea f: RR. Dada la ecuacin f(x) = 0, se debe encontrar un valor real r tal que f(r) = 0.
Entonces r es una raz real de la ecuacin
Si no es posible obtener la raz directamente, entonces se debe recurrir a los mtodos numricos
iterativos para calcular r en forma aproximada con alguna precisin controlada. Se han creado
muchos mtodos numricos para resolver este problema clsico, pero con el uso de
computadoras para el clculo, conviene revisar solamente algunos de estos mtodos que tengan
caractersticas significativamente diferentes.
3.1
Mtodo de la biseccin
Sea f: RR. Suponer que f es continua en [a, b], y que adems f(a) y f(b) tienen signos
diferentes.
3.1.1. Existencia de la raz real
Si una funcin f es continua en un intervalo [a, b] y f(a) tiene signo diferente que f(b), entonces
existe por lo menos un punto r en (a, b) tal que f(r)=0. Si adems f'(x) no cambia de signo en el
intervalo [a, b], entonces la solucin es nica.
La validez de esta proposicin se basa en el Teorema del Valor Intermedio.
El mtodo de la biseccin es un mtodo simple y convergente para calcular r. Consiste en
calcular el punto medio c=(a+b)/2 del intervalo [a, b] y sustituirlo por el intervalo [c, b] [a, c]
dependiendo de cual contiene a la raz r. Este procedimiento se repite hasta que la distancia
entre a y b sea muy pequea, entonces el ltimo valor calculado c estar muy cerca de r.
Interpretacin grfica del mtodo de la biseccin
En la figura se puede observar que luego de haber calculado c, para la siguiente iteracin debe
sustituirse el intervalo [a, b] por [c, b] debido a que f(a) y f(c) tienen igual signo y por lo tanto la
raz estar en el intervalo [c, b]
31
3.1.2
Sean
El mtodo de la biseccin genera una sucesin de intervalos [a, b], [a1, b1], [a2, b2], , [ai, bi]
tales que a a1 a2 ai constituyen una sucesin creciente y b b1 b2 , bi una
sucesin decreciente con ai < bi. Adems por definicin del mtodo: ci, r [ai, bi] en cada
iteracin i
Sean
Entonces
d
0 di 0 ai bi ci r i>0 | ci r |< E para algn valor positivo E
2i
i
i
i
i
Suponer que se desea que el ltimo valor calculado ci tenga error E = 0.001, entonces si el
algoritmo termina cuando bi ai < E, se cumplir que |ci r| < E y ci ser una aproximacin
para r con un error menor que 0.0001
Se puede predecir el nmero de iteraciones que se deben realizar con el mtodo de la Biseccin
para obtener la respuesta con error permitido E:
En la iteracin i:
Se desea terminar cuando:
Entonces se debe cumplir
De donde se obtiene:
di = d/2
di < E
i
d/2 < E
log(d / E)
i>
log(2)
Ejemplo. La ecuacin f(x) = x e - = 0 tiene una raz real en el intervalo [0, 2]. Determine
cuantas iteraciones deben realizarse con el mtodo de la biseccin para obtener un resultado
con error E=0.0001.
x
32
3.1.3
La funcin f es continua y adems f(0)<0, f(2)>0, por lo tanto la ecuacin f(x)=0 debe contener
alguna raz real en el intervalo [0, 2]
Cantidad de iteraciones
i>
8 iteraciones
a
0
1
1
1
1
1.0625
1.0625
1.0625
1.0703
B
2
2
1.5
1.25
1.125
1.125
1.0938
1.0781
1.0781
c
1
1.5
1.25
1.125
1.0625
1.0938
1.0781
1.0703
1.0742
sign(f(a))
-
sign(f(c))
+
+
+
+
+
-
En la octava iteracin:
b a = 1.0781-1.0703 = 0.0078 |r c|<0.01
r = 1.074 con error menor que 0.01
En la ltima iteracin se observa que el intervalo que contiene a la raz se ha reducido a
[1.0703, 1.0781], por lo tanto el ltimo valor calculado de c = 1.074 debe estar cerca de r con
una distancia menor que 0.01
33
3.1.4
Suponer el caso ms desfavorable, en el que r est muy cerca de uno de los extremos del
intervalo [a, b]:
Sean
error en la iteracin i
Ei = r ci :
Ei+ 1= r ci+ 1 : error en la iteracin i+1
En cada iteracin la magnitud del error se reduce en no ms de la mitad respecto del error en la
1
iteracin anterior: Ei+ 1 Ei . Esta es una relacin lineal. Con la notacin O( ) se puede escribir:
2
Ei+ 1 = O(Ei ) . Entonces, el mtodo de la Biseccin tiene convergencia lineal o de primer orden.
3.1.5
Calcular una raz r real de la ecuacin f(x) = 0. f es contnua en un intervalo [a, b] tal que f(a) y
f(b) tienen signos diferentes
Para instrumentar el algoritmo de este mtodo se escribir una funcin en MATLAB. El nombre
ser biseccin. Recibir como parmetros f, a, b, y entregar c como aproximacin a la raz r.
Criterio para salir: Terminar cuando la longitud del intervalo sea menor que un valor pequeo e
especificado como otro parmetro para la funcin. Entonces el ltimo valor c estar
aproximadamente a una distancia e de la raz r.
function c = biseccion(f, a, b, e)
f=inline(f);
while b-a >= e
c=(a+b)/2;
if f(c)==0
return
else
if sign(f(a))==sign(f(c))
a=c;
else
b=c;
end
end
end
Ejemplo. Desde la ventana de comandos de MATLAB, use la funcin biseccin para calcular
x
una raz real de la ecuacin f(x) = xe - = 0. Suponer que se desea que el error sea menor
que 0.0001.
34
Por simple inspeccin se puede observar que f es continua y adems f(0) < 0, f(2) > 0. Por lo
tanto se elije como intervalo inicial: [0, 2]. Tambin se puede previamente graficar f.
En la ventana de comandos de MATLAB se escribe:
>> format long
>> f = 'x*exp(x)-pi';
>> c = biseccion(f, 0, 2, 0.0001)
c=
1.073669433593750
>> x=c;
>> eval(f)
ans =
6.819373368882609e-005
Ejemplo. Encontrar las intersecciones en el primer cuadrante de los grficos de las funciones:
x
f(x) = 4 + cos(x+1), g(x)=e sen(x).
Primero se grafican las funciones para visualizar las intersecciones:
>> f='4+x*cos(x+1)';
>> g='exp(x)*sin(x)';
>> ezplot(f,[0,3.5]),grid on,hold on
>> ezplot(g,[0,3.5])
e p( ) s ( )
6
4
-2
-4
-6
0
0.5
1.5
2.5
3.5
35
3.2
sin(x)-exp(x)+2
2
1.5
1.5
g(x)
f(x)
0.5
Raiz r
0
-0.5
-1
3.2.1
0.5
1
x
1.5
Punto fijo r
0.5
x
0
-0.5
-1
0.5
1
x
1.5
Sea g una funcin continua en un intervalo [a, b] tal que g(a) > a y g(b) < b.
Entonces la ecuacin x=g(x) tiene al menos un punto fijo en [a, b]
Demostracin
Sea h(x) = g(x) - x una funcin, tambin continua, en el intervalo [a, b]
Entonces:
h(a) = g(a) - a > 0
h(b) = g(b) - b < 0
Por la continuidad de h existe algn valor r en el intervalo [a, b], tal que h(r) = 0.
Entonces g(r) - r = 0. Por lo tanto r es un punto fijo de x=g(x) y r es una raz real de f(x) = 0
3.2.2
Sea g una funcin continua en un intervalo [a, b] tal que g(a) > a y g(b) < b y sea r un punto
fijo en [a, b]. Si x(a,b)( |g(x)|<1), entonces la secuencia xi+1 = g(xi), i = 0, 1, 2, 3, . . .
converge al punto fijo r y g(x) es el factor de convergencia:
Demostracin
Sean las ecuaciones equivalentes:
f(x) = 0, x = g(x)
Si r es una raz de f(x)=0 se cumple que r = g(r) f(r) = 0
36
La ecuacin x=g(x) sugiere una frmula iterativa xi+1 = g(xi), i = 0, 1, 2, 3, . . . siendo x0 el valor
inicial elegido para generar la secuencia {xi}
Definiciones:
Ei = r xi : Error de truncamiento en la iteracin i
Ei+1 = r xi+1: Error de truncamiento en la iteracin i + 1
Si g es continua en el intervalo que incluye a r y a cada punto calculado xi.
37
3.2.4
Un grfico de f nos muestra que la ecuacin tiene dos races reales en el intervalo [0, 2]
x2 = g(x1) = e / = e
0.5800
= 0.5800
/ = 0.5685
38
x3 = g(x2) = e 0.5685 /
x4 = g(x3) = e 0.5620 /
= 0.5620
= 0.5584
x5 = g(x4) = e 0.5584 /
= 0.5564
0.5564
x6 = g(x5) = e
/
= 0.5552
...
La diferencia entre cada par de valores consecutivos se reduce en cada iteracin. En los ltimos
la diferencia est en el orden de los milsimos, por lo tanto podemos considerar que el mtodo
converge y el error est en el orden de los milsimos.
Para calcular la segunda raz, usamos la misma frmula iterativa:
x
xi+1 = g(xi) = e i /, i = 0, 1, 2, 3, . . .
El valor inicial elegido es x0 = 1.7 (cercano a la segunda raz, tomado del grfico)
Calcular los siguientes valores
x
= 1.7424
x1 = g(x0) = e 0 / = e1.7 /
x1
1.7424
/ = 1.8179
x2 = g(x1) = e / = e
x3 = g(x2) = e1.8179 /
= 1.9604
x4 = g(x3) = e1.9604 /
x5 = g(x4) = e 2.2608 /
= 2.2608
= 3.0528
x6 = g(x5) = e 3.0528 /
x6 = g(x5) = e 6.7399 /
= 6.7399
= 269.1367
...
La diferencia entre cada par de valores consecutivos aumenta en cada iteracin. Se concluye
que el mtodo no converge.
En el ejemplo anterior, las races reales de la ecuacin f(x)=0 son las intersecciones de f con el
eje horizontal. En el problema equivalente x=g(x), las races reales son las intersecciones entre
g y la recta x:
39
x
0.6
0.59
0.58
0.57
0.56
0.55
0.54
0.53
g(x)
0.52
0.51
0.5
0.5
0.62
0.6
0.58
0.56
x
0.54
0.52
Ejemplo. Encuentre el intervalo de convergencia para para calcular las races de la ecuacin
x
anterior: f(x) = e - x = 0 con el mtodo del punto fijo.
Ecuacin equivalente:
x
x = g(x) = e /
Condicin de convergencia:
|g(x)| < 1
g(x) = e /
|e /| < 1
x < ln()
Segn
la
condicin
de
convergencia
establecida,
el
grfico muestra que ser imposible
calcular la primera raz. La
segunda raz si podr ser
calculada, lo cual se puede
verificar numricamente.
1.8
1.6
1.4
g(x)
1.2
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
40
Ejemplo. Calcular con MATLAB la segunda raz de la ecuacin: f(x)=exp(x)-x mediante la
frmula de recurrencia:
x=g(x)=ln(x)
>> g=inline('log(pi*x)');
>> ezplot('x',[0,2]),grid on,hold on
>> ezplot(g,[0,2])
>> x=1.6;
>> x=g(x)
x=
1.6147
>> x=g(x)
x=
1.6239
>> x=g(x)
x=
1.6296
>> x=g(x)
x=
1.6330
Reusar el comando
>> x=g(x)
x=
1.6385
3.2.5
El mtodo del punto fijo tiene convergencia lineal o de primer orden debido a que Ei y Ei+1 estn
relacionados directamente mediante el factor de convergencia: Ei+ 1 = g'(z) Ei , por lo tanto este
mtodo tiene convergencia lineal: Ei+ 1 = O(Ei ) y g'(z) es el factor de convergencia. Si su
magnitud permanece mayor a 1, el mtodo no converge.
41
3.3
Mtodo de Newton
Sean f: RR, y la ecuacin f(x)=0. Sea r tal que f(r)=0, entonces r es una raz real de la
ecuacin.
El mtodo de Newton es una frmula itarativa eficiente para encontrar r. Es un caso especial del
mtodo del punto fijo en el que la ecuacin f(x) = 0 se re-escribe en la forma x = g(x) eligiendo g
de tal manera que la convergencia sea de segundo orden.
3.3.1
La frmula de Newton
Suponer que g es una funcin diferenciable en una regin que incluye a la raz r y al valor xi
(calculado en la iteracin i). Desarrollando con la serie de Taylor:
2
Ei+ 1 = xi+1 - r:
Error en la iteracin i + 1
Finalmente se obtiene:
Ei+ 1 = Ei g(r) + Ei2 g(r)/2! + . . .
Si se hace que g(r) = 0, y si g(r) 0, entonces se tendr:
Ei+ 1 = O( Ei2 ),
Con lo que el mtodo tendr convergencia cuadrtica.
El procedimiento para hacer que g(r) = 0, consiste en elegir una forma apropiada para g(x):
g(x) = x - f(x) h(x), en donde h es alguna funcin que debe especificarse
Es necesario verificar que la ecuacin x = g(x) se satisface con la raz r de la ecuacin f(x) = 0
g(r) = r - f(r) h(r) = r g(r) = r
Se deriva g(x) y se evala en r
g(x) = 1 - f(x) h(x) - f(x) h(x)
g(r) = 1 - f(r) h(r) - f(r) h(r) = 1 - f(r) h(r)
Para que la convergencia sea cuadrtica se necesita que g(r) = 0
g(r) = 0 0 = 1 - f(r) h(r) h(r) = 1/f(r) h(x) = 1/f(x), f'(x)0
Con lo que se puede especificar h(x) para que la convergencia sea cuadrtica.
Al sustituir en la frmula propuesta se obtiene x = g(x) = x - f(x)/f(x), y se puede escribir la
frmula iterativa de Newton:
Definicin: Frmula iterativa de Newton
f(xi )
xi + 1 =
xi
, f '(xi ) 0 , i = 0, 1, 2, . . .
f '(xi )
42
3.3.2
Para calcular una raz r real de la ecuacin f(x) = 0 con error E se usa la frmula iterativa .
f(xi )
xi + 1 =
xi
, f '(xi ) 0 . Comenzando con un valor inicial x0 se genera una sucesin de
f '(xi )
valores xi , i = 0, 1, 2, 3, ... esperando que tienda a un valor que satisfaga la ecuacin.
Algoritmo: Newton-Raphson
Restriccin: No detecta divergencia
Entra: f
Ecuacin a resolver
x
Valor inicial
E
Error que se espera en la respuesta
Sale:
r
Aproximacin a la raz con error E
Ingresar(f, x, E)
r x f(x)/f(x)
Mientras |r x| > E
xr
r x f(x)/f(x)
Fin
Mostrar(r)
Ejemplo. Calcule las races reales de f(x) = e - x = 0 con el mtodo de Newton.
x
Un grfico de f nos muestra que la ecuacin tiene dos races reales en el intervalo [0, 2]
x0 = 0.5
x1 =
x0
f(x 0 )
e x0 x 0
e0.5 0.5
=
=
=
x0
0.5
0.5522
f '(x 0 )
e0.5
e x0
x 2 =
x1
f(x1 )
e x1 x1
e0.5522 0.5522
x1
0.5522
0.5538
=
=
=
f '(x1 )
e0.5522
e x1
x 3 =
x2
f(x 2 )
e x2 x 2
e0.5538 0.5538
=
x2
=
0.5538
=
0.5538
f '(x 2 )
e0.5538
e x2
43
Para la segunda raz tomamos el valor inicial:
x0 = 1.8
x1 =
x0
f(x 0 )
e x0 x 0
e1.8 1.8
=
=
=
x0
1.8
1.6642
f '(x 0 )
e1.8
e x0
x 2 =
x1
f(x1 )
e x1 x1
e1.6642 1.6642
=
x1
=
1.6642
=
1.6393
f '(x1 )
e1.6642
e x1
x 3 =
x2
f(x 2 )
e x2 x 2
e1.6393 1.6393
=
=
=
x2
1.6393
1.6385
f '(x 2 )
e1.6393
e x2
x 4 =
x3
f(x 3 )
e x3 x 3
e1.6385 1.6385
=
x3
=
1.6385
=
1.6385
f '(x 3 )
e1.6385
e x3
A diferencia del mtodo del Punto Fijo, la frmula de Newton converge a ambas races. Para
entender este importante comportamiento, una interpretacin grfica de la frmula nos muestra
la transformacin geomtrica que permite la convergencia en ambas races:
Frmula de Newton interpretado como frmula del Punto Fijo para el ejemplo anterior
xi + 1 =
g(xi ) =
xi
f(xi )
e xi xi
=
xi
f '(xi )
e xi
x
2
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.5
1
x
1.5
44
3.3.3
Sea f(x) = 0 la ecuacin que se desea resolver. La siguiente interpretacin grfica es til para
comprender el proceso de clculo de la frmula de Newton.
Suponer que f(x) tiene el siguiente grfico:
tan(0 ) = f(x0 ) =
( )
( )
( )
El procedimiento anterior se puede repetir. Se traza una tangente a f(x) en el punto f(x1). El punto
de interseccin con el eje horizontal estar ms cerca de r, y se lo designa x2, mientras que el
ngulo de interseccin ser como se muestra en el siguiente grfico
tan(1 ) = f(x1 ) =
( )
( )
( )
45
tan(i ) = f(xi ) =
( )
+ =
( )
,
( )
+ =
( )
( )
i = 0, 1, 2, . . .
Esta interpretacin grfica permite observar que la secuencia de valores calculados con la
frmula de Newton sigue la trayectoria de las tangentes a f(x). Si hay convergencia, esta
secuencia tiende a la raz r. En la siguiente seccin se analiza la propiedad de convergencia de
ste mtodo.
3.3.4
Se estableci en el mtodo del punto fijo que la ecuacin recurrente x=g(x) tiene la siguiente
propiedad de convergencia: | Ei+ 1 |=| g'(z) || Ei | , i = 0, 1, 2, 3, . . . La convergencia se produce si
se cumple que |g(x)|<1
Para el mtodo de Newton se obtuvo la siguiente ecuacin recurrente:
x = g(x) = x - f(x)/f(x),
f(x)f ''(x)
Entonces,
g'(x) =
, f(xi ) 0
[f '(x)]2
Si se supone que en alguna regin cercana a r en la cual se incluyen los valores calculados x,
se tiene que f(x)0, y si r es una raz de f(x)=0, entonces f(r) = 0, y por lo tanto:
f(r)f ''(r)
g'(r) =
0
=
[f '(r)]2
Este resultado ya se estableci, pero demuestra que existe algn intervalo cercano r en el que
|g(x)|<1 siempre que g sea continua en ese intervalo La frmula de Newton converge si los
valores calculados se mantienen dentro de este intervalo.
Para obtener el intervalo de convergencia, no es prctico usar la definicin anterior pues
involucra resolver una desigualdad complicada. Existen otros procedimientos para demostrar la
convergencia de esta frmula como se muestra a continuacin.
3.3.5
Dada la ecuacin f(x)=0. Suponer que f(x), f(x), f(x) son continuas y limitadas en un intervalo
[a, b] que contiene a la raz r como se muestra en el siguiente grfico:
46
a) f(x) > 0, x(r, b]
b) f(x) > 0, x(r, b]
c) f(x) > 0, x(r, b]
Partiendo de estas premisas se demuestra que la frmula de Newton converge para cualquier
valor inicial x0 elegido en el intervalo (r, b].
Demostracin
1) Las premisas a) y b) implican que xi+ 1 < xi :
En la frmula de Newton:
f(xi )
xi + 1 < xi
xi+=
xi
1
f '(xi )
El enunciado es vlido al suprimir un trmino positivo pues f(x), f'(x) son positivos
2) La premisa c) implica que r < xi+ 1 :
(1)
(2)
El enunciado es vlido pues el ltimo trmino que se suprime es positivo, si f''(x) es positivo
Combinando los resultados (1) y (2) se tiene
r y prueba la
Si se dispone del grfico de f es fcil reconocer visualmente si se cumplen las condiciones a), b)
y c) como el caso anterior y se puede definir un intervalo para la convergencia del mtodo.
Si f tiene otra forma, igualmente se pueden enunciar y demostrar las condiciones para que se
produzca la convergencia en cada caso.
47
Con un desarrollo similar al anterior, se puede probar que el mtodo converge para cualquier
valor inicial x0 elegido en el intervalo [a, r), (a la izquierda de la raz r).
El uso de esta propiedad es simple si se dispone de un grfico de la ecuacin. Se elige como
intervalo de convergencia aquella regin en la que se observa que la trayectoria de las tangentes
produce la convergencia a la raz. Si se elije un valor inicial arbitrario no se puede asegurar que
el mtodo converge.
Ejemplo.- Si un crculo de radio a rueda en el plano a lo largo del eje horizontal, un punto P de
la circunferencia trazar una curva denominada cicloide. Esta curva puede expresarse mediante
las siguientes ecuaciones paramtricas
x(t) = a(t sen t),
y(t) = a(1 cos t)
Suponga que el radio es 1 metro, si (x, y) se miden en metros y t representa tiempo en
segundos, determine el primer instante en el que la magnitud de la velocidad es 0.5 m/s. Use el
mtodo de Newton, E=0.0001
Grfico de la cicloide
Su trayectoria:
u(t) = (x(t), y(t)) = (t sen t, 1 cos t)
Su velocidad:
u(t) = (1 cos t, sen t)
Magnitud de la velocidad:
u'(t) =
(1 cos t)2 + (sent)2
Grfico de la magnitud de la velocidad
Dato especificado:
(1 cos t)2 + (sent)2 = 0.5
Mtodo de Newton
f(ti )
(1 cos ti )2 + (senti )2 0.25
=
ti+ 1 =
ti
ti
f '(ti )
2(1 cos ti )(senti ) + 2(senti )(cos ti )
(frmula iterativa)
48
t0 = 0.5
t1 = ... = 0.505386
t2 = ... = 0.505360
t3 = ... = 0.505360
3.3.6
(del grfico)
(iteraciones)
Prctica computacional
En esta seccin se describe el uso de MATLAB para usar el mtodo de Newton. Se lo har
directamente en la ventana de comandos.
Para calcular una raz debe elegirse un valor inicial cercano a la respuesta esperada de acuerdo
a la propiedad de convergencia estudiada para este mtodo.
Para realizar los clculos se usa la frmula de Newton en notacin algortmica:
f(xi )
, i=0, 1, 2, 3,
xi+=
xi
1
f '(xi )
es el valor inicial
x0
son los valores calculados
x1, x2, x3,
En los lenguajes computacionales como MATLAB no se requieren ndices para indicar que el
valor de una variable a la izquierda es el resultado de la evaluacin de una expresin a la
derecha con un valor anterior de la misma variable.
La ecuacin se puede definir como una cadena de caracteres entre comillas simples. La
derivada se obtiene con la funcin diff de MATLAB, y con la funcin eval se evalan las
expresiones matemticas.
Forma computacional de la frmula de Newton en MATLAB. Previamente debe definir f y el
valor inicial x:
>> x=x eval(f)/eval(diff(f))
Presionando repetidamente la tecla del cursor se reutiliza la frmula y se obtienen resultados
sucesivos. La convergencia o divergencia se puede observar en los resultados.
En algunas versiones de MATLAB el comando diff cambia el tipo de la expresin definida en f
por lo que debe usar la funcin char para volver al tipo texto:
>> x=x eval(f)/eval(char(diff(f)))
Ejemplo. Calcule con MATLAB las races reales de f(x) = e - x = 0 con la frmula de Newton.
x
49
A continuacin se utliza la frmula de Newton en MATLAB eligiendo del grfico un valor inicial.
Reutilizando este comando se obtiene una secuencia de aproximaciones:
>> format long
>> x=0.5;
>> x=x-eval(f)/eval(diff(f))
x=
0.552198029112459
>> x=x-eval(f)/eval(diff(f))
x=
0.553825394773978
>> x=x-eval(f)/eval(diff(f))
x=
0.553827036642841
>> x=x-eval(f)/eval(diff(f))
x=
0.553827036644514
>> x=x-eval(f)/eval(diff(f))
x=
0.553827036644514
El ltimo resultado tiene quince decimales fijos.
Se puede observar la rapidez con la que el mtodo se acerca a la respuesta duplicando
aproximadamente, la precisin en cada iteracin. Esto concuerda con la propiedad de
convergencia cuadrtica.
Finalmente, es necesario verificar que este resultado satisface a la ecuacin:
>> eval(f)
ans =
0
50
Ejemplo. Se propone el siguiente modelo para describir la demanda de un producto, en donde x
es tiempo en meses:
-20
-40
-60
-80
0
10
20
30
40
50
Ejemplo. Una partcula se mueve en el plano X-Y de acuerdo con las ecuaciones paramtricas
siguientes, donde t es tiempo, entre 0 y 1:
x(t)=t*exp(t); y(t)=1+t*exp(2t)
Con la frmula de Newton calcule el tiempo en el que la partcula est ms cerca del punto (1,1)
Distancia de un punto (x, y) al punto (1, 1) :
=
d
51
9
8
7
6
5
4
3
2
1
0
0.5
1.5
2.5
>> d=sqrt((t*exp(t)-1)^2+(1+t*exp(2*t)-1)^2);
>> f=diff(d);
>> t=0.5;
>> t=t-eval(f)/eval(diff(f))
t=
0.278246639067713
>> t=t-eval(f)/eval(diff(f))
t=
0.258310527656699
>> t=t-eval(f)/eval(diff(f))
t=
0.256777599742604
>> t=t-eval(f)/eval(diff(f))
t=
0.256768238259669
>> t=t-eval(f)/eval(diff(f))
t=
0.256768237910400
>> t=t-eval(f)/eval(diff(f))
t=
0.256768237910400
>> eval(d)
ans =
0.794004939848305
52
90
120
60
2
150
30
1
180
330
210
300
240
270
>> f=2+cos(3*t)-(2-exp(t));
>> t=-1;
>> t=t-eval(f)/eval(diff(f))
t=
-0.213748703557153
>> t=t-eval(f)/eval(diff(f))
t=
-0.832049609116596
>> t=t-eval(f)/eval(diff(f))
t=
-0.669680711112045
>> t=t-eval(f)/eval(diff(f))
t=
-0.696790503081824
>> t=t-eval(f)/eval(diff(f))
t=
-0.697328890705191
>> t=t-eval(f)/eval(diff(f))
t=
-0.697329123134159
>> t=t-eval(f)/eval(diff(f))
t=
-0.697329123134202
>> t=t-eval(f)/eval(diff(f))
t=
-0.697329123134202
>> r=2+cos(3*t)
r=
1.502086605214547
(valor inicial)
(radio)
53
3.3.7 Instrumentacin computacional del mtodo de Newton
Para evitar iterar desde la ventana de comandos, se puede instrumentar una funcin que reciba
la ecuacin a resolver f, la variable independiente v entre comillas y el valor inicial x.
Adicionalmente se debe enviar un parmetro E para controlar la precisin requerida y otro
parmetro m para el mximo de iteraciones.
La funcin entrega la solucin calculada r y el nmero de iteraciones realizadas k. Si el mtodo
no converge en el mximo de iteraciones previsto, u contendr un valor nulo y el nmero de
iteraciones k ser igual al mximo m.
function [r,k]=newton(f,v,x,E,m)
% f: Ecuacin a resolver (formato texto)
% v: Variable independiente (formato texto)
% x: Valor inicial
% E: Error esperado en la respuesta
% m: Mximo de iteraciones permitido
% r: Raz calculada
% k: Cantidad de iteraciones realizadas
r=x;
for k=1:m
x=x-subs(f,v,x)/subs(char(diff(f,v)),v,x);
if abs(r-x)<E
return
end
r=x;
end
u=[ ];
k=m;
Ejemplo. Calcule las dos races reales de f(x) = e - x = 0 con la funcin newton. Los valores
iniciales son tomados del grfico.
x
>> f=exp(x)-pi*x;
>> ezplot(f,[0,2]),grid on
exp(x) - x
1.2
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
Primera raz
54
>> [u,k]=newton(f, 'x', 1.6, 0.000001, 10)
u=
1.638528419970363
k=
4
Segunda raz
3.3.8
>> f='exp(x)-pi*x';
>> r=fzero(f, [0.4, 0.8])
r=
0.55382703664451
>> f='exp(x)-pi*x';
>> r=fzero(f, 0.4)
r=
0.553827036644514
>> r=fzero(f, 1.6)
r=
1.638528419970363
La funcin solve
Se usa resolver ecuaciones en forma simblica exacta. En algunos casos la solucin queda
expresada mediante smbolos predefinidos en MATLAB. Con la funcin eval se convierten las
soluciones al formato numrico decimal. Esta funcin no siempre entrega todas las soluciones
de una ecuacin.
Ejemplo. Resuelva la ecuacin f(x) = e - x = 0 usando solve
x
>> f='exp(x)-pi*x';
>> r=eval(solve(f))
r=
0.553827036644514
La funcin roots
Sirve para calcular todas las races de ecuaciones polinmicas. Los coeficientes del polinomio
deben almacenarse en un vector.
3
55
56
10. Calcule una raz real positiva de la ecuacin sin(x) + 1 = x.
11. Para que f sea una funcin de probabilidad se tiene que cumplir que su integral en el dominio
2
de f debe tener un valor igual a 1. Encuentre el valor de b para que la funcin f(x)=2x + x sea
una funcin de probabilidad en el dominio [0, b].
2
15. Una empresa compra una mquina en 20000 dlares pagando 5000 dlares cada ao
durante los prximos 5 aos. La siguiente frmula relaciona el costo de la mquina P, el pago
anual A, el nmero de aos n y el inters anual x:
A =P
x(1 + x)n
(1 + x)n 1
18. Un modelo de crecimiento poblacional est dado por. f(x) = kx + 2e , siendo k una
constante que debe determinarse y x tiempo en aos. Se conoce que f(10)=50.
a) Determine la poblacin en el ao 25
b) Determine el ao en el que la poblacin alcanzar el valor 1000.
0.1t
57
20. La concentracin de bacterias contaminantes
1.5 t
0.075 t
=
c 70e
+ 25e
relacin:
.
Se necesita determinar el tiempo para que la concentracin de bacterias se reduzca a 15
unidades o menos.
a) Determine un intervalo de existencia de la raz de la ecuacin. Use un grfico
b) Aproxime la raz indicando la cota del error.
21. En un modelo de probabilidad se usa la siguiente frmula para calcular la probabilidad f(k)
que en el intento nmero k se obtenga el primer resultado favorable:
k-1
f(k) = p(1-p) ,0p1, k=0, 1, 2, 3, .
a) Si en una prueba se obtuvo que f(5) = 0.0733, encuentre cuales son los dos posibles valores
de p posibles en la frmula.
b) Con el menor valor obtenido para p encuentre el menor valor de k para el que f(k)<0.1
22. Para simular la trayectoria de un cohete se usar el siguiente modelo:
y(t) =
6 + 2.13t 2 0.0013t 4
En donde y es la altura alcanzada, en metros y t es tiempo en segundos. El cohete est
colocado verticalmente sobre la tierra.
a) Encuentre el tiempo de vuelo.
b) Encuentre la altura mxima del recorrido.
23. El movimiento de una partcula en el plano, se encuentra representado por las ecuaciones
paramtricas:
x(t)= 3sen3 (t) 1; y(t)= 4sen(t) cos(t); t 0
Donde x, y son las coordenadas de la posicin expresadas en cm, t se expresa en seg.
a) Demuestre que existe un instante t [0, / 2] tal que sus coordenadas x e y coinciden.
b) Encuentre con un error de 105 en qu instante las dos coordenadas sern iguales en el
intervalo dado en a).
24. Los polinomios de Chebyshev Tn(x) son utilizados en algunos mtodos numricos. Estos
polinomios estn definidos recursivamente por la siguiente formulacin:
To(x) = 1, T1(x) = x
Tn(x) = 2.x.Tn-1(x)-Tn-2(x), n= 0, 1, 2, 3,
Calcule todas las races reales positivas de T7(x).
25. La posicin del ngulo central en el da t de la luna alrededor de un planeta si su perodo de
revolucin es P das y su excentricidad es e, se describe con la ecuacin de Kepler:
2 t - P + P e sen = 0
Encuentre la posicin de la luna (ngulo central) en el da 30, sabiendo que el perodo de
revolucin es 100 das y la excentricidad 0.5.
26. Una partcula se mueve en el plano XY (la escala est en metros) con una trayectoria
descrita por la funcin u(t) = (x(t), y(t)) = 2t e t + 4 t , 2t 3 , t[0,1], t medido en horas.
58
0.2x
xe dx = 10 .
x
31. Una partcula sigue una trayectoria elptica centrada en el origen (eje mayor 4 y eje menor 3)
comenzando en el punto ms alto, y otra partcula sigue una trayectoria parablica ascendente
hacia la derecha comenzando en el origen (distancia focal 5). El recorrido se inicia en el mismo
instante.
a) Encuentre el punto de interseccin de las trayectorias.
b) Si la primera partcula tiene velocidad uniforme y pasa por el punto ms alto cada minuto,
2
determine el instante en el cual debe lanzarse la segunda partcula con aceleracin 10 m/s para
que intercepte a la primera partcula.
32. La velocidad V de un paracaidista est dada por la frmula:
ct
gx
=
V
(1 e x )
c
2
En donde
g=9.81 m/s (gravedad terrestre,
c=14 kg/s (coeficiente de arrastre)
t: tiempo en segundos,
x: masa del paracaidista en kg.
Cuando transcurrieron 7 segundos se detect que la velocidad es 35 m/s. Determine la masa del
paracaidista. E=0.001
33. Se desea dividir un pastel circular de 35 cm. de dimetro, mediante dos cortes paralelos, de
tal manera que las tres porciones obtenidas tengan igual cantidad. Formule el modelo
matemtico (una ecuacin no lineal con una incgnita: altura de la perpendicular del centro a
cada lnea de corte) y obtenga el ancho de cada uno de los tres cortes.
34. Una esfera de densidad 0.4 y radio 5 flota parcialmente sumergida en el agua. Encuentre la
profundidad h que se encuentra sumergida la esfera.
Nota: requiere conocer la densidad del agua y el volumen de un segmento esfrico.
35. Se necesita un recipiente rectangular, sin tapa, de un litro de capacidad. Para construirlo se
usar una lmina rectangular de 32 cm de largo y 24 cm de ancho. El procedimiento ser
recortar un cuadrado idntico en cada una de las cuatro esquinas y doblar los bordes de la
lmina para formar el recipiente. Se necesita determinar la medida del lado del cuadrado que se
debe recortar en cada esquina para que el recipiente tenga la capacidad requerida.
-4
59
3.5
En general este es un problema difcil, por lo que conviene intentar reducir el nmero de
ecuaciones y en caso de llegar a una ecuacin, poder aplicar alguno de los mtodos conocidos.
Si no es posible reducir el sistema, entonces se intenta resolverlo con mtodos especiales para
sistemas de ecuaciones no-lineales.
Debido a que el estudio de la convergencia de estos mtodos es complicado, se prefiere utilizar
algn mtodo eficiente, de tal manera que numricamente pueda determinarse la convergencia o
divergencia con los resultados obtenidos.
Una buena estrategia consiste en extender el mtodo de Newton, cuya convergencia es de
segundo orden, al caso de sistemas de ecuaciones no lineales. En esta seccin se describe la
frmula para resolver un sistema de n ecuaciones no lineales y se la aplica a la solucin de un
sistema de dos ecuaciones. Al final de este captulo se propone una demostracin ms formal de
esta frmula.
3.5.1
Sean F: f1, f2, , fn sistema de ecuaciones no lineales con variables X: x1, x2, , xn. Se
requiere calcular un vector real que satisfaga al sistema F
En el caso de que F contenga una sola ecuacin f con una variable x, la conocida frmula
iterativa de Newton puede escribirse de la siguiente manera:
+ 1)
x (k=
x (k) (
df (k) 1 (k)
) f , k=0, 1, 2,
dx
(iteraciones)
Si F contiene n ecuaciones, la frmula se puede extender, siempre que las derivadas existan:
F(k) 1 (k)
X (k + 1) =
X (k) (
) F =
X (k) (J(k) )1F(k)
X
En donde:
X (k + 1)
f
x
f
x
x
(k)
(k)
=
, X =
, F =
, J(k)
...
...
...
(k + 1)
(k)
(k)
fn
xn
xn
(k + 1)
1
(k + 1)
2
(k)
1
(k)
2
(k)
1
(k)
2
f1(k)
x 1
f (k)
2
= x 1
...
fn(k)
x 1
f1(k)
x 2
...
f2(k)
x 2
...
...
...
fn(k)
x 2
...
f1(k)
x n
f2(k)
x n
...
fn(k)
x n
J es la matriz jacobiana
Esta ecuacin de recurrencia se puede usar iterativamente con k=0, 1, 2, partiendo de un
(0)
(1)
(2)
(3)
vector inicial X generando vectores de aproximacin: X , X , X ,
3.5.2
En forma general la convergencia de este mtodo para sistemas no lineales requiere que:
a) f1, f2, fn as como sus derivadas sean continuas en la regin de aplicacin.
b) El determinante del Jacobiano no se anule en esta regin
c) El valor inicial y los valores calculados pertenezcan a esta regin, la cual incluye a la raz
que se intenta calcular
60
3.5.3
F
X
U X (J)1F
Mientras ||U-X||>E
XU
U X (J)1F
Fin
-1
-2
0.5
1.5
2
x
2.5
3.5
61
Clculo manual con el mtodo de Newton
f1 f1
x y 2x + y 4 x + 2y 2
=
J =
f2 f2 e x + y (1 + x) xe x + y + 1
x y
f1 (x 2)2 + (y 1)2 + xy 3
x
F =
X = ,=
xe x + y + y 3
y
f2
Ecuacin de recurrencia
+ 1)
X (k=
X (k) (J(k) )1F(k)
0.5 0.25
x (1) 0.5 2
=
1.0 6.7225 3.2408 0.2408
(1)
y
(1)
x 0.5 0.3293 0.0508 0.25 0.4055
(1) =
Prctica computacional
Obtencin de las races de las ecuaciones para el ejemplo anterior mediante comandos de
MATLAB. Se usarn variables de tipo simblico
Ecuacin de recurrencia:
+ 1)
X (k=
X (k) (J(k) )1F(k)
>> syms x y
>> f1=(x-2)^2 + (y-1)^2+x*y-3;
>> f2=x*exp(x+y)+y-3;
>> F=[f1; f2];
>> X=[x; y];
>> U=[0.5; 1.0];
>> J=[diff(f1,x) diff(f1,y); diff(f2,x) diff(f2,y)]
J=
[
2*x + y - 4,
x + 2*y - 2]
[ exp(x + y) + x*exp(x + y), x*exp(x + y) + 1]
62
En lugar de usar la ecuacin de recurrencia directamente en la ventana de comandos se
instrumentar una funcin computacional la cual incluir la obtencin de la matriz jacobiana y
realizar los clculos en cada iteracin
3.5.5 Instrumentacin computacional del mtodo de Newton para un sistema de n
ecuaciones no-lineales.
Sea
Ecuacin de recurrencia:
+ 1)
X (k=
X (k) (J(k) )1F(k) , k=0, 1, 2,
U:
Salida
U=U-inv(eval(J))*eval(F);
63
Ejemplo. Use la funcin snewton para encontrar una raz real del sistema
f1 (x, y) = (x 2)2 + (y 1)2 + xy 3 = 0
f 2 (x,=
y) xe x + y + y =
3 0
>> syms x y
>> f1=(x-2)^2 + (y-1)^2+x*y-3;
>> f2=x*exp(x+y)+y-3;
>> F=[f1; f2];
>> X=[x; y];
>> U=[0.5; 1];
>> U=snewton(F, X, U)
U=
0.405451836483295
1.121807345933181
>> U=snewton(F, X, U)
U=
0.409618877363502
1.116191209478472
>> U=snewton(F, X, U)
U=
0.409627787030011
1.116180137991845
>> U=snewton(F, X, U)
U=
0.409627787064807
1.116180137942814
>> U=snewton(F, X, U)
U=
0.409627787064807
1.116180137942814
Se observa la rpida convergencia.
Para verificar que son races reales de las ecuaciones debe evaluarse f
>> subs(f1,X,U)
ans =
4.440892098500626e-016
>> subs(f2,X,U)
ans =
0
Los valores obtenidos son muy pequeos, por lo cual se aceptan las races calculadas
Para calcular la otra raz, tomamos del grfico los valores iniciales cercanos a esta raz.
>> U=[2.4; -1.5];
>> U=snewton(F, X, U)
U=
2.261842718297048
-1.535880731849205
>> U=snewton(F, X, U)
U=
2.221421001369104
-1.512304705819129
64
>> U=snewton(F, X, U)
U=
2.220410814294533
-1.511478104887419
>> U=snewton(F, X, U)
U=
2.220410327256473
-1.511477608846960
>> U=snewton(F, X, U)
U=
2.220410327256368
-1.511477608846834
>> U=snewton(F, X, U)
U=
2.220410327256368
-1.511477608846835
>> subs(f1,X,U)
ans =
-8.881784197001252e-016
>> subs(f2,X,U)
ans =
8.881784197001252e-016
65
3.5.6
La funcin solve de MATLAB se puede usar para resolver sistemas no lineales como el ejemplo
anterior:
>> syms x y
>> f1=(x-2)^2 + (y-1)^2+x*y-3;
>> f2=x*exp(x+y)+y-3;
>> F=[f1;f2];
>> [x,y]=solve(F)
x=
0.409627787064806898766476190893
y=
1.116180137942813562571698234565
El mtodo solve de MATLAB proporciona solamente una de las dos soluciones. Con esto
concluimos que no siempre los programas computacionales disponibles producen todas las
respuestas esperadas.
3.5.7
f1(x1, x2) = 0, f2(x1, x2) = 0 dos ecuaciones no-lineales con variables x1, x2.
Sean r1, r2 valores reales tales que f1(r1, r2) = 0, f2(r1, r2) = 0, entonces (r1, r2) constituye una
raz real del sistema y es de inters calcularla.
Suponer que f1, f2 son funciones diferenciables en alguna regin cercana al punto (r1, r2)
Con el desarrollo de la serie de Taylor expandimos f1, f2 desde el punto (x1(k) , x 2(k) ) al punto
+ 1)
(x1(k + 1) , x (k
)
2
(k + 1)
1
=
f + (x
(k)
1
(k + 1)
1
(k)
f1(k)
(k + 1)
(k) f1
x )
+ (x 2 x 2 )
+ O(x1(k + 1) x1(k) )2 + O(x 2(k + 1) x 2(k) )2
x 1
x 2
(k)
1
f2(k + 1) =
f2(k) + (x1(k + 1) x1(k) )
f2(k)
f (k)
+ (x 2(k + 1) x 2(k) ) 2 + O(x1(k + 1) x1(k) )2 + O(x 2(k + 1) x 2(k) )2
x 1
x 2
+ 1)
f1(k) = f1 (x1(k) , x 2(k) ) , f1(k + 1) = f1 (x1(k + 1) , x (k
) , etc.
2
En los ltimos trminos de ambos desarrollos se han escrito nicamente los componentes de
inters, usando la notacin O( ).
Las siguientes suposiciones, son aceptables en una regin muy cercana a (r1, r2):
66
(x1(k) , x (k)
cercano a la raz (r1, r2)
2 )
+ 1)
Si el mtodo converge cuadrticamente entonces (x1(k + 1) , x (k
) estar muy cercano a (r1, r2)
2
f1 (x1(k + 1) , x 2(k + 1) ) 0
f2 (x1(k + 1) , x 2(k + 1) ) 0
+ 1)
Por otra parte, si (x 1 , x 2 ) es cercano a (x1(k + 1) , x (k
) , las diferencias sern pequeas y al
2
elevarse al cuadrado se obtendrn valores ms pequeos y se los omite.
(k)
(k)
0=
f1(k) + (x1(k + 1) x1(k) )
f1(k)
f (k)
+ (x 2(k + 1) x 2(k) ) 1
x 1
x 2
0=
f2(k) + (x1(k + 1) x1(k) )
f2(k)
f (k)
+ (x 2(k + 1) x 2(k) ) 2
x 1
x 2
En notacin matricial:
=
F(k) J(k) (X (k + 1) X (k) )
Siendo
f (k)
F(k) = 1(k) ,
f2
x (k)
X (k) = 1(k) ,
x2
x (k + 1)
X (k + 1) = 1(k + 1) ,
x2
J(k)
f1(k)
x 1
= (k)
f
2
x1
f1(k)
x 2
f2(k)
x 2
J(k)=
X (k + 1) J(k) X (k) F(k)
+ 1)
X (k=
X (k) (J(k) )1F(k) ,
| J(k) | 0
67
3.5.8
+ a incluya a los
4. Determine los coeficientes a, b para que la funcin f(x) = (ax+b)e
puntos (1,3), (2,4)
a) Plantee un sistema de dos ecuaciones no lineales para obtener la respuesta
-6
b) Elija los valores (0, 1) como valores iniciales para (a, b). Obtenga la respuesta con error 10
68
4
Valor pagado
$18.00
$27.30
$16.20
Anlisis
Sean x1,x 2 ,x 3 variables que representan al precio unitario de cada producto en dlares por Kg.
Entonces, se puede escribir:
4x1 + 2x 2 + 5x 3 =
18.00
2x1 + 5x 2 + 8x 3 =
27.30
2x1 + 4x 2 + 3x 3 =
16.20
El modelo matemtico resultante es un sistema lineal de tres ecuaciones con tres variables.
En donde
ai,j : Coeficientes
bi : Constantes
xi : Variables cuyo valor debe determinarse
En notacin matricial:
a1,1
a
2,1
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,n x1 b1
a2,n x 2 b2
=
... ... ...
an,n xn bn
Simblicamente
AX = B
Siendo
a1,1
a
2,1
=
A
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,n
a2,n
=
; B
...
an,n
b1
b
2
=
; X
...
bn
x1
x
2
...
xn
69
4.1
AX =
B A 1AX =
A 1B
=
X A 1B =
X A 1B
4.2
4x1 + 2x 2 + 5x 3 =
18.00
2x1 + 5x 2 + 8x 3 =
27.30
2x1 + 4x 2 + 3x 3 =
16.20
70
1.2500
1.3750
0.5000
4.5000
4.5750
7.2000
2.2125
4.5750
-6.5250
0.5625
1.3750
1.0000
2.2125
4.5750
1.8000
0
0
1.0000
1.2000
2.1000
1.8000
18.0
=
27.3 B
16.2
71
4.2.1
Para establecer la descripcin algortmica, conviene definir la matriz aumentada A con el vector
B pues deben realizarse simultneamente las mismas operaciones:
a1,1 a1,2 ... a1,n a1,n+1
a
a1,1 a1,2
a
2,1 a 2,2
A |B =
...
...
a
a
n,2
n,1
... a1,n
... a2,n
... ...
... an,n
a1,n+1
1 0
a2,n+1
0 1
...
...
... ...
an,n+ 1
0 0
... 0 a1,n+ 1
... 0 a2,n+ 1
... ... ...
... 1 an,n+ 1
Si es posible realizar esta transformacin, entonces los valores que quedan en la ltima columna
constituirn el vector solucin X
Las transformaciones deben ser realizadas en forma sistemtica en n etapas, obteniendo
sucesivamente en cada etapa, cada columna de la matriz identidad, de izquierda a derecha.
En cada etapa, primero se har que el elemento en la diagonal tome el valor 1. Luego se har
que los dems elementos de la columna tomen el valor 0.
1 0
0 1
... ...
0 0
... 0 a1,n+ 1
... 0 a2,n+ 1
... ... ...
... 1 an,n+ 1
Etapa 1
Etapa n
Etapa 2
Etapa 1
Normalizar la fila 1:
A |B
a1,1
a2,1
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,n a1,n+ 1
1
a2,n a2,n+ 1
0
...
...
...
an,n an,n+ 1
0
a1,2
a2,2
...
...
an,1
...
a1,n a1,n+ 1
a2,n a2,n+ 1
...
...
an,n an,n+ 1
Valores
transformados
72
Etapa 2
Normalizar la fila 2: (colocar 1 en el lugar del elemento a2,2
j=2, 3, ..., n+1; a 2,2 0
1
0
a1,2
a2,2
...
...
an,1
...
...
0
a1,n a1,n+ 1
1
a2,n a2,n+ 1
0
...
...
...
an,n an,n+1
0
0
1
...
...
...
a1,n a1,n+ 1
a2,n a2,n+ 1
...
...
an,n an,n+1
Valores
transformados
( a e,e 0 )
4.2.2
73
4.2.3
El mtodo de Gauss-Jordan es un mtodo directo. Los mtodos directos pueden estar afectados
por el error de redondeo, es decir los errores en la representacin de los nmeros que se
producen en las operaciones aritmticas. Para cuantificar la magnitud del error de redondeo se
define la funcin de eficiencia del mtodo.
Sea n el tamao del problema y T(n) la cantidad de operaciones aritmticas que se realizan
2
(Dos ciclos anidados)
En la normalizacin:
T(n) = O(n )
3
(Tres ciclos anidados)
En la reduccin:
T(n) = O(n )
3
i
n-1
n-1
.
.
.
n-1
n-1
j
n+1
n
.
.
.
3
2
3
4.2.4
Prctica computacional
Definicin de la matriz
Vector de constantes
Matriz aumentada
18.0000
27.3000
16.2000
Normalizar fila 1
4.5000
27.3000
16.2000
74
>> a(2,1:4)=a(2,1:4)-a(2,1)*a(1,1:4)
a=
1.0000 0.5000 1.2500 4.5000
0 4.0000 5.5000 18.3000
2.0000 4.0000 3.0000 16.2000
>> a(3,1:4)=a(3,1:4)-a(3,1)*a(1,1:4)
a=
1.0000 0.5000 1.2500 4.5000
0 4.0000 5.5000 18.3000
0 3.0000 0.5000 7.2000
>> a(2,2:4)=a(2,2:4)/a(2,2)
a=
1.0000 0.5000 1.2500 4.5000
0 1.0000 1.3750 4.5750
0 3.0000 0.5000 7.2000
>> a(1,2:4)=a(1,2:4)-a(1,2)*a(2,2:4)
a=
1.0000
0 0.5625 2.2125
0 1.0000 1.3750 4.5750
0 3.0000 0.5000 7.2000
>> a(3,2:4)=a(3,2:4)-a(3,2)*a(2,2:4)
a=
1.0000
0 0.5625 2.2125
0 1.0000 1.3750 4.5750
0
0 -3.6250 -6.5250
>> a(3,3:4)=a(3,3:4)/a(3,3)
a=
1.0000
0 0.5625 2.2125
0 1.0000 1.3750 4.5750
0
0
1.0000 1.8000
>> a(1,3:4)=a(1,3:4)-a(1,3)*a(3,3:4)
a=
1.0000
0
0 1.2000
0 1.0000 1.3750 4.5750
0
0 1.0000 1.8000
>> a(2,3:4)=a(2,3:4)-a(2,3)*a(3,3:4)
a=
1.0000
0
0 1.2000
0 1.0000
0 2.1000
0
0 1.0000 1.8000
>> x=a(1:3,4)
x=
1.2000
2.1000
1.8000
>> a*x
ans =
18.0000
27.3000
16.2000
Reducir fila 2
Reducir fila 3
Normalizar fila 2
Reducir fila 1
Reducir fila 3
Normalizar fila 3
Reducir fila 1
Reducir fila 2
Vector solucin
Verificar la solucin
75
4.2.5
Instrumentacin computacional
En esta primera versin del algoritmo se supondr que el determinante de la matriz es diferente
de cero y que no se requiere intercambiar filas.
La codificacin en MATLAB sigue la formulacin matemtica descrita. Se usa la notacin
abreviada para manejo de matrices
function x=gaussjordan(a,b)
n=length(b);
a=[a,b];
for e=1:n
a(e,e:n+1)=a(e,e:n+1)/a(e,e);
for i=1:n
if i~=e
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);
end
end
end
x=a(1:n,n+1);
Ejemplo. Desde la
resolver el sistema:
2 3
2 5
8 9
%matriz aumentada
%normalizar fila e
%vector solucin
Matriz de coeficientes
Vector de constantes
Llamada a la funcin
Solucin proporcionada por MATLAB
Verificar la solucin
La solucin satisface al sistema
76
4.2.6
t m t m-1 . . . t 2 t1 A
=I
t m t m-1 . . . t 2 t1 A 1 A = A 1 I
t m t m-1 . . . t 2 t1 I = A 1
Lo cual significa que las mismas transformaciones que convierten A en la matriz I, convertirn
la matriz
I en la matriz A 1 .
1
Para aplicar este algoritmo, suponiendo que se desea conocer la matriz A , se debe aumentar
la matriz anterior con la matriz I: A | B | I
Las transformaciones aplicadas simultneamente proporcionarn finalmente el vector solucin X
y la matriz identidad
A 1
4x1 + 2x 2 + 5x 3 =
18.00
2x1 + 5x 2 + 8x 3 =
27.30
2x1 + 4x 2 + 3x 3 =
16.20
Solucin. La matriz aumentada es:
4 2 5
A | B = 2 5 8
2 4 3
18.00
27.30
16.20
1 0 0
0 1 1
0 0 1
Clculos
Normalizar fila 1 y reducir filas 2 y 3
1.0000 0.5000 1.2500
0
4.0000 5.5000
0
3.0000 0.5000
4.5000
18.3000
7.2000
0.2500
-0.5000
-0.5000
0
0
1.0000
0
0
1.0000
77
Normalizar fila 2 y reducir filas 1 y 3
1.0000
0
0.5625
0
1.0000 1.3750
0
0
-3.6250
2.2125
4.5750
-6.5250
0.3125 -0.1250
0
-0.1250 0.2500
0
-0.1250 -0.7500 1.0000
1.2000
2.1000
1.8000
0.0345
0.2069 0.2759
4.3
Mtodo de Gauss
4x1 + 2x 2 + 5x 3 =
18.00
2x1 + 5x 2 + 8x 3 =
27.30
2x1 + 4x 2 + 3x 3 =
16.20
Solucin: Se define la matriz aumentada A | B para transformar simultneamente A y B:
4 2 5 18.00
A | B = 2 5 8 27.30
2 4 3 16.20
Las transformaciones sucesivas de la matriz aumentada se describen en los siguientes cuadros
Dividir fila 1 para 4
1.0000
2.0000
2.0000
78
Restar de cada fila, la fila 1 multiplicada por el elemento de la columna 1
1.0000
0
0
1.2500
1.3750
0.5000
4.5000
4.5750
7.2000
4.5000
4.5750
-6.5250
1.2500
1.3750
1.0000
4.5000
4.5750
1.8000
x 3 = 1.8
x2 =
4.575 1.375(1.8) =
2.1
x1 =
4.5 0.5(2.1) 1.25(1.8) =
1.2
4.3.1
a
a
... a2,n a2,n+ 1
2,1
2,2
A |B =
...
...
...
79
Para cada columna e = 1, 2, , n
Normalizar la fila e
a e,j a e,j / a e,e , j=e, e+1, e+2, ..., n+1 ,
( a e,e 0 )
a1,1
a2,1
=
A |B
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,n a1,n+ 1
a2,n a2,n+ 1
. . . .
...
...
an,n an,n+ 1
1
0
...
0
a1,2
1
...
...
...
1 a1,2
1
0
... ...
0
0
0
0
0
0
... a1,n 2
a1,n1
a1,n
... a2,n 2
a2,n1
a2,n
...
...
...
...
an 2,n1 an 2,n
...
an1,n
...
a1,n a1,n+ 1
a2,n a2,n+ 1
...
...
1 an,n+ 1
Para facilitar la notacin
a1,n+ 1
a2,n+ 1
...
an 2,n+ 1
an1,n+ 1
an,n+ 1
. . . etc
Con la formulacin anterior se define el algoritmo para el mtodo de Gauss bsico:
4.3.2 Algoritmo de Gauss bsico
Algoritmo: Gauss bsico
Restriccin: No se verifica unicidad y existencia de la solucin
Coeficientes
Entra: ai,j
Constantes
bi
Solucin calculada
Sale: xi
n Cantidad de ecuaciones
Para i 1, 2, , n
Matriz aumentada
ai,n+1 bi
Fin
Para e = 1, 2, . . ., n
Para j=e, e+1, ..., n+1
a e,j a e,j / a e,e
Fin
Para i=e + 1, e + 2, n
Para j=e+1,e+2,..., n+1
ai,j ai,j ai,e a e,j
Fin
80
Fin
Fin
xn an, n+ 1
Para i=n-1, n-2, ..., 1
s0
Para j=i+1, i+2, ..., n
s s + ai,j x j
Fin
xi ai,n+ 1 s
Fin
4.3.3
Sea n el tamao del problema y T(n) la cantidad de operaciones aritmticas que se realizan
2
(dos ciclos anidados)
En la normalizacin:
T(n) = O(n )
3
(tres ciclos anidados)
En la reduccin:
T(n) = O(n )
2
(dos ciclos anidados)
En la obtencin de la solucin: T(n) = O(n )
3
Con estos puntos se construye la funcin T(n) = n^3/3 + n^2/2 - (5*n)/6 = O(n )
El polinomio obtenido es exacto. Si se usaran ms puntos, el resultado sera igual
81
4.3.4
Instrumentacin computacional
En esta primera versin del algoritmo se supondr que el determinante de la matriz es diferente
de cero y que no se requiere intercambiar filas. La codificacin en MATLAB sigue directamente
la formulacin matemtica descrita anteriormente. Se usa notacin compacta para manejo de
matrices.
function x=gaussbasico(a,b)
n=length(b);
a=[a,b];
for e=1:n
a(e,e:n+1)=a(e,e:n+1)/a(e,e);
for i=e+1:n
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);
end
end
x(n,1)=a(n,n+1);
for i=n-1:-1:1
x(i,1)=a(i,n+1)-a(i,i+1:n)*x(i+1:n,1);
end
%Matriz aumentada
%Normalizar la fila e
%Reducir otras filas
82
4.3.5
Estrategia de pivoteo
Al examinar la eficiencia de los mtodos directos para resolver sistemas de ecuaciones lineales
se observa que la operacin de multiplicacin est en la seccin crtica del algoritmo con
3
eficiencia O(n ).
Formulacin del mtodo de Gauss:
Etapa e = 1, 2, . . ., n
Normalizar la fila e:
a e, j a e, j / a e, e ,
a e, e 0
a i, j a i, j a i, e a e, j ,
Etapa e:
Columna e
Transformaciones
Fila e
Tansformaciones
1 a1,2
0
1
... ...
0
0
... ...
0
0
0
0
... a1,e
... a2,e
...
...
... a e,e
...
...
... an1,e
... an,e
... a1,n
... a2,n
...
...
... a e,n
...
...
... an1,n
... an,n
a1,n+ 1
a2,n+ 1
...
a e,n+ 1
...
an1,n+ 1
an,n+ 1
83
4.3.6 Algoritmo de Gauss con pivoteo
Algoritmo: Gauss bsico con pivoteo parcial
Coeficientes
Entra: ai,j
Constantes
bi
Solucin calculada o un vector nulo si la solucin no es nica
Sale: xi
n cantidad de ecuaciones
Para i 1, 2, , n
Matriz aumentada
ai,n+1 bi
Fin
Para e = 1, 2, . . ., n
pe
Para i = e+1,e+2, ..., n
Si |ai,e| > |ae,p|
pi
Fin
Fin
Intercambiar las filas e y p
Si ae,e = 0
X nulo
Terminar
Fin
Para j=e, e+1, ..., n+1
a e,j a e,j / a e,e
Fin
Para i=e + 1, e + 2, n
Para j=e, e+1, ..., n+1
ai,j ai,j ai,e a e,j
Fin
Fin
Fin
xn an, n+ 1
Para i=n-1, n-2, ..., 1
s0
Para j=i+1, i+2, ..., n
s s + ai,j x j
Fin
xi ai,n+ 1 s
Fin
84
4.3.7
function x=gauss(a,b)
n=length(b);
a=[a,b];
for e=1:n
[z, p]=max(abs(a(e:n,e)));
p=p+e-1;
t=a(e,e:n+1);
a(e,e:n+1)=a(p,e:n+1);
a(p,e:n+1)=t;
if abs(a(e,e))<1.0e-10
x=[ ];
return;
end
a(e,e:n+1)=a(e,e:n+1)/a(e,e);
for i=e+1:n
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);
end
end
x(n,1)=a(n,n+1);
for i=n-1:-1:1
x(i,1)=a(i,n+1)-a(i,i+1:n)*x(i+1:n,1);
end
%Matriz aumentada
%Pivoteo por filas
%Intercambio de filas
%Normalizar la fila e
%Reducir otras filas
Ejemplo. Desde
sistema:
2
2
3 7 x1 3
5 6 x 2 =
5
9 4 x 3 8
Matriz de coeficientes
Vector de constantes
Llamada a la funcin
Solucin calculada
85
4.3.8
MATLAB tiene un soporte muy potente para resolver sistemas de ecuaciones lineales.
Sugerimos entrar al sistema de ayuda de MATLAB y revisar la amplia informacin relacionada
con este tema.
La forma ms simple de resolver un sistema lineal, si la matriz de coeficientes es cuadrada y nosingular, es usando la definicin de inversa de una matriz MATLAB.
Ejemplo. Resuelva el ejemplo anterior con la funcin inv de MATLAB
>> a=[2, 3, 7; -2, 5, 6; 8, 9, 4];
>> b=[3; 5; 8];
>> x=inv(a)*b
x=
-0.0556
0.9150
0.0523
Matriz de coeficientes
Vector de constantes
Invertir la matriz de coeficientes
Solucin calculada por MATLAB
Una forma ms general para resolver sistemas lineales, incluyendo sistemas singulares se
puede hacer con la funcin rref de MATLAB. Esta funcin reduce una matriz a su forma
escalonada con 1s en la diagonal.
Ejemplo. Resuelva el ejemplo anterior con la funcin rref de MATLAB
>> a=[2 3 7;-2 5 6;8 9 4];
>> b=[3;5;8];
>> a=[a, b];
>> c=rref(a)
c=
1.0000
0
0 -0.0556
0 1.0000
0 0.9150
0
0 1.0000 0.0523
Matriz aumentada
86
4.3.10 Instrumentacin computacional para calcular el determinante
function d=determinante(a)
%Determinante de una matriz cuadrada
%Mediante reduccin a una matriz triangular
%El determinante es el producto de los pivotes
[n,m]=size(a);
if n~=m
%La matriz debe ser cuadrada
d=0;
return
end
signo=1;
%cambios de fila
d=1;
for e=1:n
[z, p]=max(abs(a(e:n,e)));
%Pivoteo por filas
p=p+e-1;
t=a(e,e:n);
%Intercambio de filas
a(e,e:n)=a(p,e:n);
a(p,e:n)=t;
if e~=p
%Cambio de fila = cambio de signo
signo=signo*(-1);
end
if abs(a(e,e))<1.0e-10
%Divisor cercano a 0: matriz singular
d=0;
return;
end
d=d*a(e,e);
%Multiplicacin de pivotes
a(e,e:n)=a(e,e:n)/a(e,e);
%Normalizar la fila e
for i=e+1:n
%Reducir otras filas
a(i,e:n)=a(i,e:n)-a(i,e)*a(e,e:n);
end
end
d=d*signo;
%Determinante
Ejemplo
>> a=[5 3 7; 2 9 8; 5 8 2]
a=
5 3 7
2 9 8
5 8 2
>> d=determinante(a)
d=
-325
87
4.4
Valor pagado
50.78
47.36
91.48
98.17
Sean x1,x 2 ,x 3 ,x 4 variables que representan al precio unitario ($/kg) de cada producto.
Entonces, se puede escribir:
2.6x1 + 0.3x 2 + 2.4x 3 + 6.2x 4 =
50.78
7.7x1 + 0.4x 2 + 4.7x 3 + 1.4x 4 =
47.36
5.1x1 + 9.9x 2 + 9.5x 3 + 1.5x 4 =
91.48
6.0x1 + 7.0x 2 + 8.5x 3 + 4.8x 4 =
98.17
En notacin matricial
2.6 0.3 2.4 6.2 x1 50.78
7.7 0.4 4.7 1.4 x 47.36
2 =
5.1
6.1
88
En la siguiente prueba, se modific el ltimo coeficiente 4.8 y se lo sustituy por 4.7
0.3 2.4 6.2 x1 50.78
0.4 4.7 1.4 x 2 47.36
=
9.9 9.5 1.5 x 3 91.48
2.6
7.7
5.1
6.0
Si se resuelve este sistema nuevamente con un mtodo directo se obtiene una solucin
totalmente incoherente:
X=
[ 31.5482, 37.0942, 65.5637, 2.1644]T
Los resultados obtenidos con este tipo de sistemas no son confiables para tomar decisiones.
Esta situacin se origina en el hecho de que algunas ecuaciones pueden depender de otras
ecuaciones lo cual puede afectar a la incertidumbre en la solucin calculada cuando s modifican
algunos coeficientes. Este hecho se puede asociar al valor del determinante de la matriz. En el
ejemplo, si la matriz se normaliza dividindola para la magnitud del mayor elemento, el
determinante es:
= .
Si el determinante fuera cero, no habra una solucin nica, pero este valor muy pequeo es un
indicio que las ecuaciones son casi linealmente dependientes.
Es necesario detectar si un sistema es mal condicionado. Para esto, se debe cambiar
ligeramente el valor de algn coeficiente y observar el cambio en el vector solucin. Si la
solucin cambia significativamente, entonces es un sistema mal condicionado y debe revisarse la
elaboracin del modelo matemtico.
En esta seccin se establece una medida para cuantificar el nivel de mal condicionamiento de un
sistema de ecuaciones lineales.
4.4.1
Definiciones
X =
x
i=1
=
X max
=
xi ,i 1,2,...,n
n
X = ( x 2 )1/ 2
i=1
=
A max
=
ai,j , j 1,2,...,n
i=1
n
=
A max
=
ai,j ,i 1,2,...,n
j=1
A = (
=i 1=j 1
2 1/ 2
i,j
Las dos primeras se denominan norma 1 y norma infinito, tanto para vectores como
para matrices. La tercera es la norma euclideana.
89
Ejemplo. Dada la siguiente matriz
2
5 3
=
A 4
8 4
2
6
1
Calcule la norma infinito (norma de fila).
Esta norma es el mayor valor de la suma de las magnitudes de los componentes de cada fila
Fila 1: |5| + |-3| + |2| = 10
Fila 2: |4| + |8| + |-4| = 16
Fila 3: |2| + |6| + |1| = 9
Por lo tanto, la norma por fila de la matriz es 16
4.4.2
-1
4.4.3
Nmero de condicin
El nmero de condicin de una matriz se usa para cuantificar su nivel de mal condicionamiento.
Definicin: Nmero de condicin
Sea AX = B un sistema de ecuaciones lineales, entonces
-1
cond(A) = || A || || A || es el nmero de condicin de la matriz A.
-1
-1
-1
-1
Ejemplo.
0.010 0.005
10 5
A=
=
=
; B 1000A
0.025 0.032
25 32
Determinante
Norma1 de la matriz
Norma1 de la inversa
Nmero de condicin
A
0.000195
0.0370
292.3077
10.8154
B
195
37
0.2923
10.8154
90
Si la matriz tiene filas casi linealmente dependientes, su determinante tomar un valor muy
pequeo y su inversa tendr valores muy grandes, siendo esto un indicio de que la matriz es mal
condicionada o es casi singular. Este valor interviene en el nmero de condicin de la matriz.
Por otra parte, si la matriz tiene valores muy pequeos, su determinante ser muy pequeo y su
inversa contendr valores grandes aunque la matriz no sea mal condicionada.
Si el nmero de condicin solo dependiera de la norma de la matriz inversa, esta norma tendra
un valor grande en ambos casos. Por esto, y usando la propiedad anotada anteriormente, es
necesario multiplicar la norma de la matriz inversa por la norma de la matriz original para que el
nmero de condicin sea grande nicamente si la matriz es mal condicionada.
6.0
A 1
=
164.4788
37.0436
194.3121 283.9787
34.9495
4.6161
23.9171
20.0676
-1
cond(A) = || A || || A || = 17879.09
Es un valor muy alto, respecto al valor mnimo que es 1
Una matriz puede considerarse mal condicionada si una ligera perturbacin, error o cambio, en la
matriz de coeficientes produce un cambio muy significativo en el vector solucin.
91
4.4.4
= A 1A X + A 1EX
= I X + A 1EX
= X + A 1EX
X X A 1 E X
X X = A 1EX
X X A 1 A
E
X
A
|| X X ||
|| X ||
cond(A)
|| A A ||
|| A ||
eX cond(A) (eA)
Ejemplo. Encuentre una cota para el error en la solucin del ejemplo inicial
Matriz original
2.6
7.7
A=
5.1
6.0
92
Matriz modificada
2.6
7.7
A=
5.1
6.1
Error en la matriz:
0
0
EA = A - A =
0
0.1
0 0 0
|| E A ||
0.1
=
= 0.0038 = 0.38%
26.3
|| A ||
Nmero de condicin:
cond(A) = 17879.09
Cota para el error relativo de la solucin:
Sistema original:
2.6
7.7
5.1
6.0
2.5
3.2
Solucin: X =
4.1
5.4
Sistema modificado:
2.6
7.7
5.1
6.1
0.1494
0.4182
_
Solucin: X =
8.3432
4.8778
Error en la solucin:
0.1494
0.4182
EX = X - X =
8.3432
4.8778
2.5 -2.3506
3.2
= -2.7818
4.1 4.2432
5.4 -0.5222
|| E X ||
|| X ||
4.2432
= 0.5086 = 50.86%
8.3432
93
Norma del error relativo de la matriz:
eA =
|| E A ||
0.1
=
= 0.0038 = 0.38%
26.3
|| A ||
A
2
3
B
5
9
C
4
8
Total
35
k
17
Sean x1,x 2 ,x 3 variables que representan al precio unitario de cada producto. Entonces, se
puede escribir:
2x1 + 5x 2 + 4x 3 =
35
3x1 + 9x 2 + 8x 3 =
k
2x1 + 3x 2 + x 3 =
17
Con el mtodo de Gauss-Jordan encuentre la solucin en funcin de k
2 5 4 35
=
A | B 3 9 =
8 k
2 3 1 17
457 7k
X 6k 387
=
264 4k
35 / 2
1 5 / 2 2
0 3 / 2 2 k 105
=
/ 2
18
0 2 3
1 0 4 / 3 105 5k / 3
0 1 4 / 3 2k / 3=
35
0 0 1/ 3 4k / 3 88
1 0 0 457 7k
0 1 0 6k 387
0 0 1 264 4k
Suponga que el valor pagado en la segunda factura es 65 dlares. Entonces la solucin exacta
2
X = 3
4
Para verificar que la solucin es confiable, en la matriz de coeficientes se sustituye 5 por 5.1 y
Se obtiene nuevamente la solucin con el mtodo anterior con k=65.
94
2 51/ 10 4 35 1 51/ 20 2 35 / 2
=
A | B 3
9 =
8 65 0 27 / 20 2=
25 / 2
2
3
1 17 0 21/ 10 3 18
17
X = 10
13
1 0 16 / 9 55 / 9 1 0 0 17
0 1 40 / 27 =
250 / 27 0 1 0 10
0 0
1/ 9
13 / 9 0 0 1 13
=
ex
X X
= 3.75
= 375%,
X
=
eA
A A
= 0.005
= 0.5%
A
0.5% de distorsin en la matriz produjo una distorsin de 375% en la solucin. Estos resultados
confirman que el sistema es muy sensible a cambios o errores en los datos. Los errores son
amplificados al calcular la solucin. Se concluye que es un sistema mal condicionado.
4.4.5
4 5
Ejemplo. Calcule el nmero de condicin de la matriz A =
4.1 5
Escribimos en la pantalla de comandos de MATLAB:
>> a=[4, 5; 4.1, 5];
>> norm(a,inf)
ans =
9.5
>> inv(a)
ans =
-10.0000 10.0000
8.2000 -8.0000
>> cond(a,inf)
ans =
182.0000
(Matriz)
(Norma de fila
(Matriz inversa)
(Nmero de condicin)
(Matriz mal condicionada)
95
4.5
Sistemas singulares
En esta seccin se describe un mtodo directo para intentar resolver un sistema lineal propuesto
de n ecuaciones con m variables, n<m. Estos sistemas tambin se obtienen como resultado de
la reduccin de un sistema dado originalmente con m ecuaciones y m variables, en los que
algunas ecuaciones no son independientes. En ambos casos la matriz de coeficientes contendr
una o ms filas nulas y por lo tanto no tienen inversa y se dice que la matriz es singular, en
este caso tambin diremos que el sistema es singular. Estos sistemas no admiten una solucin
nica.
Sin embargo, si el sistema es un modelo que representa algn problema de inters, es
importante detectar si el sistema es incompatible para el cual no existe solucin, o se trata de un
sistema incompleto para el cual existe infinidad de soluciones. Ms an, es til reducirlo a una
forma en la cual se facilite determinar las variables libres, a las que se pueden asignar valores
arbitrarios analizar las soluciones resultantes en trminos de stas variables y su relacin con el
problema.
Para facilitar el anlisis de estos sistemas, es conveniente convertirlo en una forma ms simple.
La estrategia que usaremos es llevarlo a la forma de la matriz identidad hasta donde sea posible
4.5.1 Formulacin matemtica y algoritmo
Se desea resolver el sistema de n ecuaciones lineales con m variables, siendo nm
a1,1x1 + a1,2 x1 + ... + a1,m x m =
b1
a2,1x1 + a2,2 x1 + ... + a2,m x m =
b2
...
an,1x1 + an,2 x1 + ... + an,m x m =
bn
En donde
ai,j : Coeficientes
bi : Constantes
xi : Variables cuyo valor debe determinarse
En notacin matricial:
a1,1
a
2,1
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,m x1 b1
a2,m x 2 b2
=
... ... ...
an,m x m bn
Simblicamente: AX = B, en donde
a1,1
a
2,1
=
A
...
an,1
a1,2
a2,2
...
...
an,1
...
a1,m
a2,m
=
; B
...
an,m
b1
b
2
=
; X
...
bn
x1
x
2
...
xm
96
Para unificar la descripcin algortmica, es conveniente aumentar la matriz A con el vector B
pues en ambos deben realizarse simultneamente las mismas operaciones:
a1,1 a1,2
a
2,1 a 2,2
A |B =
...
...
an,1 an,2
... a1,m
... a2,m
...
...
... an,m
a1,m+ 1
a2,m+ 1
...
an,m+ 1
an,1 an,2
... a1,m
... a2,m
...
...
... an,m
...
... ... ... ... ... ... ...
...
...
an,m+ 1
0 0 ... 1 an,n+ 1 ... an,m an,m+ 1
En el sistema resultante, las variables xn+1, xn+2, , xm se denominan variables libres y pueden
tomar valores arbitrarios, normalmente asociados al problema que se analiza, mientras que las
otras variables x1, x2, , xn pueden tomar valores dependientes de las variables libres. Los
valores ai,j que aparecen en la matriz reducida, son los valores resultantes de las
transformaciones aplicadas. La forma final facilita asignar valores a estas variables.
En cada etapa, primero se har que el elemento en la diagonal tome el valor 1. Luego se har
que los dems elementos de la columna correspondiente, tomen el valor 0. Realizando
previamente intercambios de filas para colocar como divisor el elemento de mayor magnitud.
Esta estrategia se denomina pivoteo parcial y se usa para determinar si el sistema es singular.
La formulacin es similar al mtodo de Gauss-Jordan descrito en una seccin anterior, pero el
algoritmo incluye el registro de las variables libres.
97
Algoritmo: Gauss-Jordan para sistemas singulares
Entra
a: matriz aumentada del sistema de n ecuaciones lineales
v: vector de variables libres (inicialmente nulo)
Sale
x: Solucin calculada o un vector nulo si la solucin no es nica
a: Matriz reducida a la forma diagonal
Para e = 1, 2, . . ., n
Elegir el valor de mayor magnitud de la columna e en las filas e, e+1, ..., n
Si este valor es cero
agregar e al vector v de las variable libres
avanzar a la siguiente etapa e
Sino (continuar con la transformacin matricial)
Para j=e, e+1, ..., n+1
ae,j ae,j / ae,e
Normalizar la fila e ( a e,e 0 )
Fin
Para i=1, 2, ,n; i n
Para j=e, e+1, ..., n+1
Fin
Fin
Fin
Fin
Si el vector v no contiene variables libres
El vector solucin x es la ltima columna de la matriz a
Sino
Entregar un vector x nulo
Entregar la matriz a reducida
Fin
Ejemplo. Una empresa produce cuatro productos: P1, P2, P3, P4 usando tres tipos de
materiales M1, M2, M3. Cada Kg. de producto requiere la siguiente cantidad de cada material,
en Kg.:
M1
M2
M3
P1
0.2
0.3
0.5
P2
0.5
0
0.5
P3
0.4
0.5
0.1
P4
0.2
0.6
0.2
La cantidad disponible de cada material es: 10, 12, 15 Kg. respectivamente, los cuales deben
usarse completamente. Se quiere analizar alguna estrategia de produccin factible.
Sean x1, x2, x3, x4 cantidades en Kg. producidas de P1, P2, P3, P4, respectivamente
Se obtienen las ecuaciones:
0.2x1 + 0.5x2 + 0.4x3 + 0.2x4 = 10
+ 0.5x3 + 0.6x4 = 12
0.3x1
0.5x1 + 0.5x2 + 0.1x3 + 0.2x4 = 15
98
Es un sistema de tres ecuaciones y cuatro variables. En notacin matricial
x1
0.2 0.5 0.4 0.2 10
0.3 0 0.5 0.6 x 2 = 12
x
0.5 0.5 0.1 0.2 3 15
x 4
Reduccin con el mtodo de Gauss-Jordan usando pivoteo
1.00
0
0
1.00
0
0
1.00
0
0.20
0.44
0.36
0.40
0.48
0.12
30.00
3.00
4.00
1.66
2.00
1.00
0
-1.46
0.80
-1.60
0.60
40.00
-10.00
7.00
0
1.00
0
0
0.75
-0.50
1.00
0.75
1.00
-0.30
0.30
25.41
2.83
8.75
+ 0.75x4 = 25.41
- 0.50x4 = 2.83
+ 0.75x4 = 8.75
x4 = t, t0, t
(variable libre)
Dependiendo del problema se pueden afinar los rangos para las variables. En este ejemplo, las
variables no pueden tomar valores negativos:
Rango para la variable libre:
x3 = 8.75 - 0.75 t 0 t 11.66
x2 = 2.83 + 0.50 t 0 t 0
x1 = 25.41 - 0.75 t 0 t 33.88
Se concluye que 0 t 11.66
Rango para las otras variables
0 x4 11.66
x3 = 8.75 - 0.75 t
0 x3 8.75
x2 = 2.83 + 0.50 t
2.83 x2 8.66
x1 = 25.41 - 0.75 t
16.66 x1 25.41
Esta informacin puede ser til para decidir la cantidad que debe producirse de cada artculo
usando todos los recursos disponibles y usando cualquier artculo como referencia.
Ejemplo. Si se decide producir 10 Kg del producto P4, entonces para que no sobren materiales,
la produccin ser:
x4=10 t = x4, x3=1.25, x2=7.83, x1=17.91
99
Ejemplo. Si se decide producir 20 Kg del producto P1, entonces para que no sobren materiales,
la produccin ser:
x1=20 t=x4=7.21, x3= 3.34, x2=6.43
4.5.2
Instrumentacin computacional
La instrumentacin se realiza mediante una funcin con el nombre slin utilizando la notacin
compacta de matrices de MATLAB. En la codificacin se incluyen algunos comentarios
ilustrativos. La matriz es estandarizada dividiendo por el elemento de mayor magnitud para
reducir el error de truncamiento y detectar en forma consistente si el sistema es singular.
Por los errores de redondeo se considerar que el elemento de la diagonal es nulo si su valor
-10
tiene una magnitud menor que 10 .
Parmetros de entrada
a: matriz de coeficientes
b: vector de constantes
Parmetros de salida
x: vector solucin
a: matriz de coeficientes reducida a la forma escalonada
Puede llamarse a la funcin slin especificando nicamente un parmetro de salida, el vector
solucin:
>> x=slin(a,b)
Si se obtiene como respuesta un vector nulo
x=
[]
Entonces se puede llamar usando los dos parmetros de salida para analizar el resultado de la
transformacin matricial, como se indicar en los ejemplos posteriores:
>> [x,c]=slin(a,b)
Si el vector solucin no es un vector nulo, entonces el sistema es consistente y la solucin
obtenida es nica y la matriz se habr reducido a la matriz identidad.
Si el vector solucin es un vector nulo, entonces el sistema es singular y la matriz de coeficientes
reducida permitir determinar si es un sistema redundante o incompatible.
function [x,a]=slin(a,b)
[n,m]=size(a);
z=max(max(a));
v=[n+1:m];
a(1:n,m+1)=b;
if n>m
x=[ ];
a=[ ];
return;
end
a=a/z;
for e=1:n
100
[z,p]=max(abs(a(e:n,e)));
%Pivoteo por filas
p=p+e-1;
t=a(e,e:m+1);
%Cambiar filas
a(e,e:m+1)=a(p,e:m+1);
a(p,e:m+1)=t;
if abs(a(e,e))<1.0e-10
%Sistema singular
v=[v, e];
%Agregar variable libre y continuar
else
a(e,e:m+1)=a(e,e:m+1)/a(e,e);
%Normalizar la fila e
for i=1:n
%Reducir otras filas
if i~=e
a(i,e:m+1)=a(i,e:m+1)-a(i,e)*a(e,e:m+1);
end
end
end
end
x=[ ];
if length(v)==0;
x=a(1:n,m+1);
a(:,m+1)=[ ];
return;
end
En los siguientes ejemplos se utiliza una notacin informal para identificar cada tipo de sistema
que se resuelve. Los resultados obtenidos deben interpretarse segn lo descrito en la
instrumentacin computacional de la funcin slin.
Sistema completo:
Tiene n ecuaciones y n variables
Sistema incompleto:
Tiene n ecuaciones y m variables, n<m. Puede ser dado inicialmente o
puede ser resultado del proceso de transformacin matricial en el que
algunas ecuaciones desaparecen pues son linealmente dependientes.
Sistema consistente: Tiene una solucin nica
Sistema redundante: Tiene variables libres y por lo tanto, infinidad de soluciones
Sistema incompatible: Contiene ecuaciones incompatibles. La transformacin matricial reduce
el sistema a uno conteniendo proposiciones falsas
Las variables libres se reconocen porque no estn diagonalizadas, es decir que no contienen 1
en la diagonal principal de la matriz transformada.
1) Sistema consistente
+ 2x3 + 4x4 = 1
x1
=0
x2 + 2x3
=0
x1 + 2x2 + x3
+ 2x4 = 2
x1 + x2
>> a = [1 0 2 4; 0 1 2 0; 1 2 1 0; 1 1 0 2]
a=
1 0 2 4
0 1 2 0
1 2 1 0
1 1 0 2
>> b=[1; 0; 0; 2]
b=
1
0
101
0
2
>> x=slin(a,b)
x=
-3.0000
2.0000
-1.0000
1.5000
2) Sistema completo reducido a incompleto redundante
>> a=[1 1 2 2;1 2 2 4;2 4 2 4 ;1 3 0 2]
a=
1 1 2 2
1 2 2 4
2 4 2 4
1 3 0 2
>> b=[1; 2; 2; 1]
b=
1
2
2
1
>> x=slin(a,b)
x=
[]
>> [x,c]=slin(a,b)
x=
[]
c=
1 0 0 -4 -2
0 1 0 2 1
0 0 1 2 1
0 0 0 0 0
Se obtiene un sistema equivalente. Las soluciones se asignan mediante la variable libre x4 :
- 4x4 = -2
x1 = 4x4 - 2
x1
x2
- 2x4 = 1
x2 = 2x4 + 1
x3 + 2x4 = 1
x3 = -2x4 + 1
Sea x4 = t, t R, entonces el conjunto solucin es {4t-2, 2t+1, -2t +1}
3) Sistema incompleto
>> a=[1 0 2 4;4 1 2 4;2 4 5 2]
a=
1 0 2 4
4 1 2 4
2 4 5 2
>> b=[1; 0; 2]
b=
1
0
2
>> x=slin(a,b)
102
x=
[]
>> [x,c]=slin(a,b)
x=
[]
c=
1.0000
0
0 0.6400 -0.2800
0 1.0000
0 -1.9200 -0.1600
0
0 1.0000 1.6800 0.6400
Se obtiene un sistema equivalente. Las soluciones se asignan mediante la variable libre x4:
x1
x2
+ 0.64x4 = -0.28
- 1.92x4 = -0.16
x3 + 1.68x4 = 0.64
Sistema equivalente:
- 4x4 = -2
x1
- 2x4 = 1
x2
x3 + 2x4 = 1
0x4 = 3
103
4.5.3
Comparacin de la funcin slin con la funcin rref de MATLAB resolviendo un sistema singular.
Resolver el sistema incompleto:
1
0
0
0
0 1
0 0
0 1
1 1
0 0
x1
0 0 0 2
x2
1 0 1 30
x3
0 1 0 = 4
x4
0 0 0 10
x5
1 0 0 50
x 6
-1
-1
-1
0
0
0
0
0
0
1
-2
6
-4
50
20
(variable libre)
(matriz
(vector
104
4.6
Sistemas tridiagonales
En un sistema tridiagonal la matriz de los coeficientes contiene todos sus componentes iguales a
cero excepto en las tres diagonales principales. Estos sistemas se presentan en la aplicacin de
cierto tipo de mtodos numricos como el caso de los trazadores cbicos y en la solucin de
ecuaciones diferenciales con diferencias finitas.
Se puede disear un mtodo directo para resolver un sistema tridiagonal con eficiencia de primer
orden: T(n)=O(n) lo cual representa una enorme mejora respecto a los mtodos directos
3
generales para resolver sistemas de ecuaciones lineales, cuya eficiencia es T(n)=O(n ).
4.6.1 Formulacin matemtica y algoritmo
Un sistema tridiagonal de n ecuaciones expresado en notacin matricial:
b1 c1
x1 d1
a b c
x d
2
2
2
2 2
x 3 = d3
a 3 b3 c 3
... ... ... ... ...
an bn xn dn
Para obtener la formulacin se puede considerar nicamente un sistema de tres ecuaciones para
luego extenderla al caso general. Las transformaciones son aplicadas a la matriz aumentada:
d1
b1 c1
a
b
c
d
2
2
2
2
a3 b3 d3
a2
2) Sea g1 =
c1
w1
b2
a3
c2
b3
d1
w1
d2
d3
d1
. Restar de la segunda fila, la primera multiplicada por a2
w1
0 b2
c1
w1
a2
c1
w1
a3
b2 a 2
3) Sea w=
2
c1
1 w
1
0 1
a3
d2 a2 g1
d3
g1
c2
b3
c1
. Dividir la segunda fila para w2
w1
d2 a2 g1
w2
d3
g1
c2
w2
b3
105
4) Sea g2 =
d2 a2 g1
. Restar de la tercera fila, la segunda multiplicada por a3
w2
c1
g1
1
w1
c2
g2
0 1
w2
c2
0 b3 a 3
d3 a3 g2
w2
c
b3 a3 2 . Dividir la tercera fila para w3
5) Sea w=
3
w2
c1
1
w
1
0 1
6) Sea g3 =
g2
d3 a3 g2
w3
g1
c2
w2
1
d3 a3 g2
. Finalmente se obtiene:
w3
c1
1 w
1
0 1
c2
w2
1
g1
g2
g3
c2
x3
w2
x=
g1
1
c1
x2
w1
(2)
d1
w1
ac
wi =
bi i i1 ,
w i1
i=
2,3,...,n
di aigi1
=
,
i 2,3,...,n
wi
Obtencin de la solucin
xn = gn
=
gi
xi =
gi
(2)
ci x i + 1
,
wi
Algoritmo de Thomas
i =
n 1, n 2,...,2,1
106
El algoritmo incluye un ciclo dependiente del tamao del problema n para reducir la matriz y otro
ciclo separado para obtener la solucin, ambos dependientes de n. Por lo tanto este algoritmo
tiene eficiencia T(n)=O(n).
4.6.2
Instrumentacin computacional
Con la formulacin anterior se escribe una funcin para resolver un sistema tridiagonal de n
ecuaciones lineales. La funcin recibe los coeficientes y las constantes en los vectores a, b, c, d.
La solucin es entregada en el vector x
function x = tridiagonal(a, b, c, d)
n = length(d);
w(1) = b(1);
g(1) = d(1)/w(1);
for i = 2:n
w(i) = b(i) - a(i)*c(i-1)/w(i-1);
g(i) = (d(i) - a(i)*g(i-1))/w(i);
end
x(n) = g(n);
for i = n-1:-1:1
x(i) = g(i) - c(i)*x(i+1)/w(i);
end
%Transformacin matricial
%Obtencin de la solucin
7 5
x1 6
2 8 1 x 5
2 =
6 4 3 x3 7
9 8 x 4 8
>> a = [0 2 6 9];
>> b = [7 -8 4 8];
>> c = [5 1 3 0];
>> d = [6 5 7 8];
>> x = tridiagonal(a, b, c, d)
x=
0.7402
0.1637
4.8288
-4.4324
Solucin calculada
107
La resolucin de sistemas de ecuaciones lineales tambin puede hacerse con frmulas iterativas
que permiten acercarse a la respuesta mediante aproximaciones sucesivas, sin embargo desde
el punto de vista prctico es preferible usar mtodos directos que con el soporte computacional
actual resuelven grandes sistemas en forma eficiente y con mucha precisin, a diferencia de los
sistemas de ecuaciones no-lineales cuya solucin no se puede obtener mediante mtodos
directos.
Las frmulas iterativas no siempre convergen, su anlisis puede ser complicado, la convergencia
es de primer orden y se requiere elegir algn vector inicial para comenzar el proceso iterativo. En
la poca actual el estudio de estos mtodos iterativos se puede considerar principalmente como
de inters terico matemtico, excepto para resolver grandes sistemas de ecuaciones lineales
con matrices esparcidas y cuya convergencia se puede determinar fcilmente.
Para definir un mtodo iterativo, se expresa el sistema AX = B en la forma X = G(X) con el
mismo fundamento descrito en el mtodo del Punto Fijo para resolver ecuaciones no lineales.
5.1
Mtodo de Jacobi
5.1.1
Formulacin matemtica
(k)
(iteraciones)
(1)
(2)
X es el vector inicial. A partir de este vector se obtienen sucesivamente los vectores X , X , ...
(k)
Si el mtodo converge, entonces X tiende a la solucin X a medida que k crece:
X (k) X
k
108
Ejemplo. Dadas las ecuaciones:
5x1 3x2 + x3 = 5
2x1 + 4x2 x3 = 6
2x1 3x2 + 8x3 = 4
Formule un sistema iterativo con el mtodo de Jacobi:
(k+1)
(k)
(k)
= 1/5 (5 + 3x2 x3 )
x1
(k+1)
(k)
(k)
= 1/4 (6 2x1 + x3 )
x2
(k+1)
(k)
(k)
= 1/8 (4 2x1 + 3x2 )
k = 0, 1, 2, ...
x3
(0)
(0)
(0)
(0)
(0)
(2)
(1)
(1)
k=0:
k=1:
5.1.2
Vector inicial
Repita este comando y observe la convergencia
etc.
109
5.1.3
Algoritmo de Jacobi
Entra
a: matriz de coeficientes, b: vector de constantes del sistema de n ecuaciones lineales
e: estimacin del error para la solucin, m: mximo de iteraciones permitidas
x: vector inicial para la solucin, k es el conteo de iteraciones
Sale
x: vector solucin
tx
Para k = 1, 2, . . ., m
Calcular el vector x con la frmula de Jacobi
Si la norma del vector x t es menor que e
x es el vector solucin con error e
Terminar
sino
tx
fin
fin
Al exceder el mximo de iteraciones entregar un vector x nulo
5.1.4
110
5.1.5
a1,1 a1,2
a
2,1 a 2,2
A=
... ...
an,1 an,2
... a1,n
0
0
... a2,n
a2,1 0
=L + D + U =
... ...
... ...
... an,n
an,1 an,2
0 a1,1 0
0 0 a 2,2
+
... ... ...
0 0
0
...
...
...
...
0 0 0 a1,2
0 0 0 0
+
... ... ... ...
0 an,n 0 0
Sustituyendo en la ecuacin:
(L + D + U)X = B
LX + DX + UX = B
-1
-1
-1
-1
X = D B - D LX - D UX,
Ecuacin recurrente del mtodo de Jacobi segn el mtodo del Punto Fijo X = G(X)
-1
-1
X = D B - D (L + U)X
En donde
1
D 1 =
ai,i nxn
Ecuacin recurrente desarrollada
x1
x
2
=
:
x2
0
b1 / a1,1
b / a a / a
2 2,2 2,1 2,2
:
:
bn / an,n an,1 / an,n
a1,2 / a1,1
a1,3 / a1,1
a2,3 / a2,2
an,2 / an,n
an,3 / an,n
(iteraciones)
:
x (k + 1)
n
0
b1 / a1,1
b / a a / a
2 2,2 2,1 2,2
:
:
bn / an,n an,1 / an,n
a1,2 / a1,1
0
:
an,2 / an,n
a1,3 / a1,1
a2,3 / a2,2
:
an,3 / an,n
(k)
... a1,n / a1,1 x1
...
0
xn(k)
... a1,n
... a2,n
... ...
0 0
111
(0)
(1)
(2)
Matriz diagonal
Vector inicial
112
5.2
Mtodo de Gauss-Seidel
Se diferencia del mtodo anterior al usar los valores ms recientes del vector X, es decir aquellos
que ya estn calculados, en lugar de los valores de la iteracin anterior como en el mtodo de
Jacobi. Por este motivo, podemos suponer que el mtodo de Gauss-Seidel en general converge
o diverge ms rpidamente que el mtodo de Jacobi.
5.2.1
Formulacin matemtica
1
(bi ai,i
i1
ai,jx(kj +1) j= 1
ai,jx(k)
j );
i = 1, 2, ..., n; k = 0, 1, 2, ...
j= i + 1
(0)
(0)
(0)
(0)
(2)
(1)
(1)
k=0:
k=1:
113
5.2.2
Vector inicial
Repetir este comando y observar la convergencia
etc.
5.2.3
114
function [x,k] = gaussseidelm(a,b,x,e,m)
n=length(x);
for k=1:m
t=x;
for i=1:n
s=a(i,1:i-1)*x(1:i-1)+a(i,i+1:n)*x(i+1:n);
x(i) = (b(i) - s)/a(i,i);
end
if norm((x-t),inf)<e
return
end
end
x=[ ];
k=m;
Ejemplo. Use la funcin gaussseidelm para encontrar el vector solucin del ejemplo anterior
con un error de 0.0001 y determine cuntas iteraciones se realizaron si se comienza con el
vector inicial x=[1; 1; 1]
>> a=[5, -3, 1; 2, 4, -1; 2, -3, 8];
>> b=[5; 6; 4];
>> x=[1; 1; 1];
>> [x,k]=gaussseidelm(a,b,x,0.0001,20)
x=
1.4432
0.8973
0.4757
k=
7
5.2.4
-1
-1
X = D B - D LX - D UX,
-1
115
Ecuacin recurrente con las matrices desarrolladas
0
0
0
... 0 x1 0 a1,2 / a1,1 a1,3 / a1,1
x1 b1 / a1,1
x b / a a / a
0
0
... 0 x 2 0
0
a2,3 / a2,2
2 2,2 2,1 2,2
2 =
:
:
:
:
:
... : : :
:
:
0
0
x 2 bn / an,n an,1 / an,n an,2 / an,n an,3 / an,n ... 0 xn 0
El sistema est en la forma recurrente del punto fijo X = G(X) que sugiere su uso iterativo. En el
mtodo de Gauss-Seidel se utilizan los valores recientemente calculados del vector X.
Frmula iterativa
X (k +1) =
D1B D1LX (k +1) D1UX (k) , k =
0,1,2,...
(0)
(1)
(2)
es el vector inicial. A partir de este vector se obtienen sucesivamente los vectores X , X , ...
(k)
0
0
x 2 b2 / a2,2 a2,1 / a2,2
:
:
:
:
:
(k
1)
+
b /a
a /a
an,2 / an,n an,3 / an,n
x
5.3
(k + 1)
... 0 x1 0 a1,2 / a1,1 a1,3 / a1,1
+ 1)
... 0 x (k
0
a2,3 / a2,2
0
2
... : : :
:
:
(k
1)
+
... 0 x
0
0
0
n
a1,n / a1,1 x1
...
0
xn(k)
...
Mtodo de relajacin
Formulacin matemtica
+ 1)
(bi - ai,j x (k
- ai,j x (k)
xi(k + 1) = xi(k) +
j
j ); i = 1, 2, ..., n; k = 0, 1, 2, ...
ai,i
j= 1
j= i
(k)
(k)
(k)
(k)
(k)
116
Realice una iteracin con el vector inicial: x1 = x2 = x3 = 1, y con =1.1:
(0)
(0)
(0)
k=0:
(1)
(0)
(0)
(0)
(0)
x1 = x1 + 1.1/5 (5 5x1 + 3x2 x3 ) = 1 + 1.1/5 (5 5(1) + 3(1) 1) = 1.4400;
(1)
(0)
(1)
(0)
(0)
x2 = x2 + 1.1/4 (6 2x1 4x2 + x3 ) = 1 + 1.1/4 (6 2(1.6) 4(1) + 1) = 1.0330
(1 )
(0)
(1)
(1)
(0)
x3 = x3 + 1.1/8 (4 2x1 + 3x2 8x3 ) = 1 + 1.1/8 (4 2(1.6) 3(0.925) 8(1)) = 0.4801
5.3.2
Vector inicial
Repita este comando y observe la convergencia
-1
-1
-1
X = D B - D LX - D SX + D DX,
-1
-1
-1
X = X + D B - D LX - D SX
-1
117
Ecuacin recurrente con las matrices desarrolladas
0
0
x1 x1 b1 / a1,1 0
x x b / a a / a
0
0
2 =
2 + 2 2,2 2,1 2,2
: : :
:
:
:
x 2 x 2 bn / an,n an,1 / an,n an,2 / an,n an,3 / an,n
El sistema est en la forma recurrente del punto fijo X = G(X) que sugiere su uso iterativo. En el
mtodo de Relajacin se agrega un factor
Frmula iterativa en forma matricial
+ 1)
X (k=
X (k) + (D1B D1LX (k + 1) D1SX (k) ), =
k 0,1,2,...
es el factor de relajacin. Este factor modifica al residual tratando de reducirlo a cero con
mayor rapidez que el mtodo de Gauss-Seidel.
Si =1 la frmula iterativa se reduce a la frmula del mtodo de Gauss-Seidel
Si (0,1) se denomina mtodo de subrelajacin.
Si (1,2) se denomina mtodo de sobrerelajacin.
(0)
AX = B
Se puede re-escribir en un sistema equivalente recurrente como en el Punto Fijo: X = G(X)
X= C + TX
En donde C es un vector y T se denomina matriz de transicin
Forma iterativa de la ecuacin de recurrencia:
X (k +1) =
C + TX (k) , k =
0,1,2,...
De la resta de las ecuaciones se obtiene
(k+1)
(k)
X-X
= T (X - X )
Si se define el error de truncamiento vectorialmente entre dos iteraciones consecutivas
(k)
(k)
=X-X
(k+1)
(k+1)
=X-X
(k)
= TE
Definicin
Convergencia del error de truncamiento
(k+1)
(k)
E
= TE
En donde T es la matriz de transicin
118
Definicin
Si A es una matriz, entonces su radio espectral se define como
(A)
= max { i | i es un valor caracterstico de A}
1 i n
La sucesin { X
(0)
(k + 1)
=
C + TX (k) , k =
0,1,2,...
X (k + 1) =
C + TX (k) , k =
0,1,2,...
Para obtener T se usar la definicin de convergencia con el error de truncamiento
(k+1)
(k)
= TE
X =D1B D1 (L + U)X ,
-1
XX
(k+1)
-1
(k+1)
(k)
= TE
(k)
= -D (L+U)(X X )
-1
= -D (L+U)E
(k)
Matriz de transicin:
0
a / a
2,1
2,2
T=
D1(L + U) =
an,1 / an,n
a1,2 / a1,1
0
:
an,2 / an,n
a1,3 / a1,1
a2,3 / a2,2
:
an,3 / an,n
...
:
...
0
En la matriz de transicin del mtodo de Jacobi se puede establecer una condicin suficiente de
convergencia, ms dbil que la condicin general de convergencia:
Si la matriz de coeficientes A es de tipo diagonal dominante, entonces el mtodo de Jacobi
(0)
n
converge a la solucin X para cualquier vector inicia X R
Convergencia definida con el error de truncamiento
(k+1)
(k)
= TE
Su norma:
(k+1)
|| E
|| || T || || E
(k)
||, k = 0, 1, 2, ...
119
Esta relacin define una condicin suficiente para la convergencia del mtodo de Jacobi
mediante la norma de la matriz de transicin: || T || < 1
Se conoce tambin la relacin (A) || T ||
La forma de la matriz T establece que si en cada fila de la matriz A la magnitud de cada
elemento en la diagonal es mayor que la suma de la magnitud de los otros elementos de la fila
respectiva, entonces || T || < 1 usando la norma de fila. Si la matriz A cumple esta propiedad se
dice que es diagonal dominante y constituye una condicin suficiente para la convergencia
i (|ai,i| >
=j 1,ji
| ai,j | ) || T || < 1
Ejemplo. Se plantea resolver el siguiente sistema con el mtodo iterativo de Jacobi y se desea
determinar la convergencia examinando la matriz de transicin:
8x1 + 9x 2 + 2x 3 =
69
2x1 + 7x 2 + 2x 3 =
47
2x1 + 8x 2 + 6x 3 =
68
Frmula iterativa de Jacobi
X (k + 1) =
C + TX (k) =
D1B D1 (L + U)X (k) , k =
0,1,2,...
Matriz de transicin T
0 9 / 8 2 / 8
T=
D (L + U) =
2 / 7 0 2 / 7
2 / 6 8 / 6 0
1
Norma de T:
|| T=
|| 5 / 3 > 1
Por lo tanto, la convergencia del mtodo de Jacobi no se puede asegurar
Para determinar con certeza la convergencia se debe encontrar el radio espectral:
(A)
= max { i | i es un valor caracterstico de A}
1 i n
Matriz de transicin
Obtencin de los valores propios
(Eigen values)
Radio espectral
120
Matriz de transicin para el mtodo de Gauss-Seidel
Sistema de ecuaciones lineales
AX = B
Ecuacin recurrente equivalente sustituyendo A = L + D + U
-1
-1
-1
-1
X = D B D LX D UX,
-1
-1
(k+1)
-1
= D B D LX
(k)
D UX
-1
XX
(k+1)
(k+1)
(k+1)
-1
) D U(X X )
-1
(k)
(k+1)
-1
(k)
= TE
(k)
= -D L(X X
= -D LE
(k+1)
D UE
-1
-1
(k)
(I + D L) = -D UE
(k+1)
-1
-1
-1
(k)
= (I + D L) ( -D U)E
Matriz de transicin:
-1
-1
-1
T = (I + D L) ( -D U)
Matriz de transicin para el mtodo de Relajacin
Sistema de ecuaciones lineales
AX = B
Ecuacin recurrente equivalente sustituyendo A = L + D + S D incluyendo el factor
X = X + D B - D LX - D SX,
-1
-1
-1
-1
(k)
=X
+ D B - D LX
-1
-1
(k+1)
- D SX
-1
(k)
(k)
XX
(k+1)
=XX
(k)
=E
- D L(X X
-1
- D LE
-1
(k+1)
(k+1)
D SE
-1
(k)
(k+1)
(I + D L) = E ( I - D S)
(k+1)
= (I + D L) ( I - D S)E
E
E
-1
(k)
-1
-1
-1
-1
Matriz de transicin:
T = (I + D L) ( I - D S)
-1
-1
-1
(k)
) D S(X X )
-1
(k)
(k+1)
(k)
= TE
121
5.5
La frmula del error de truncamiento expresa que la convergencia de los mtodos iterativos es
de primer orden:
(k+1)
(k)
= O(E )
Cada iteracin requiere multiplicar la matriz de transicin por un vector, por lo tanto la cantidad
2
de operaciones aritmticas realizadas T en cada iteracin es de segundo orden: T(n)=O(n )
Si k representa la cantidad de iteraciones que se realizan hasta obtener la precisin requerida,
2
entonces la eficiencia de clculo de los mtodos iterativos es: T(n) = k O(n )
5.6
(k)
(k+1)
X, si k
(k+1)
|| X
(k)
-X
|| 0, si k
|| X
(k)
-X
arbitrariamente
|| <
Para que el error se independiente de la magnitud de los resultados se puede usar la definicin
de error relativo:
|| X (k + 1) X (k) ||
< ,
|| X (k + 1) ||
5.7
La siguiente instrumentacin del mtodo de Jacobi usa el radio espectral para determinar la
convergencia. En caso de convergencia, entrega la solucin y la cantidad de iteraciones
realizadas hasta que se cumple el requisito del error permitido. Caso contrario, entrega un vector
nulo.
a: matriz de coeficientes
b: vector de constantes
e: error permitido
x: vector solucin
k: conteo de iteraciones realizadas
function [x,k]=jacobie(a,b,e)
d=diag(diag(a));
l=tril(a)-d;
u=triu(a)-d;
T=-inv(d)*(l+u);
v=eig(T);
r=max(abs(v));
%Matriz de transicin
%Radio espectral
122
if r>=1
x=[ ];
k=r;
return;
end
x=[1; 1; 1];
for i=1:1000000000
xn=inv(d)*b-inv(d)*(l+u)*x;
if norm(x-xn,inf)<e
k=i;
return;
end
x=xn;
end
Ejemplo. Resolver el siguiente sistema de ecuaciones con el mtodo iterativo de Jacobi en caso
de que converja y determine la cantidad de iteraciones realizadas hasta que los resultados
4
tengan error E=10
8x1 + 9x 2 + 2x 3 =
69
2x1 + 7x 2 + 2x 3 =
47
2x1 + 8x 2 + 6x 3 =
68
>> a=[8 9 2; 2 7 2; 2 8 6]
a=
8 9 2
2 7 2
2 8 6
>> b=[69; 47; 68]
b=
69
47
68
>> [x,k]=jacobie(a,b,0.0001)
x=
2.0000
5.0000
4.0000
k=
2096
Vector solucin
Cantidad de iteraciones
NOTA: La gran cantidad de iteraciones requeridas demuestra lo ineficiente que puede ser este
mtodo iterativo cuando el radio espectral es cercano a 1
123
5.8 Prctica computacional con los mtodos iterativos
Ejemplo. Dado el sistema de ecuaciones:
9x1 + 3x2 + 7x3 = 5
2x1 + 5x2 + 7x3 = 6
6x1 + 2x2 + 8x3 = 4
Determine la convergencia y resuelva con los mtodos iterativos anteriores
>> a=[9 3 7; 2 5 7; 6 2 8]
a=
9 3 7
2 5 7
6 2 8
>> b=[5;6;4]
b=
5
6
4
>> d=diag(diag(a))
d=
9 0 0
0 5 0
0 0 8
>> l=tril(a)-d
l=
0 0 0
2 0 0
6 2 0
>> u=triu(a)-d
u=
0 3 7
0 0 7
0 0 0
>> t=-inv(d)*(l+u)
t=
0 -0.3333 -0.7778
-0.4000
0 -1.4000
-0.7500 -0.2500
0
>> e=eig(t)
e=
-1.1937
0.5969 + 0.0458i
0.5969 - 0.0458i
>> r=norm(e,inf)
r=
1.1937
>> x=[1;1;1]
x=
1
1
1
>> x=jacobi(a,b,x)
x=
-0.5556
-0.6000
-0.5000
No es diagonal dominante
pero pudiera ser que converja
matriz diagonal
Mtodo de Jacobi
Matriz de transicin
valores caractersticos
124
>> t=inv((eye(3)+inv(d)*l))*(-inv(d)*u)
t=
0 -0.3333 -0.7778
0 0.1333 -1.0889
0 0.2167 0.8556
>> r=norm(eig(t),inf)
r=
0.5916
>> x=[1;1;1]
x=
1
1
1
>> x=gaussseidel(a,b,x)
x=
-0.5556
0.0222
0.9111
>> x=gaussseidel(a,b,x)
x=
-0.1605
-0.0114
0.6232
>> x=gaussseidel(a,b,x)
x=
0.0746
0.2977
0.3696
>> s=triu(a)
s=
9 3 7
0 5 7
0 0 8
>> w=0.9;
>> t=inv(eye(3)+w*inv(d)*l)*(eye(3)-w*inv(d)*s)
t=
0.1000 -0.3000 -0.7000
-0.0360 0.2080 -1.0080
-0.0594 0.1557 0.7993
>> r=norm(eig(t),inf)
r=
0.6071
>> x=[1;1;1]
x=
1
1
1
>> x=relajacion(a,b,x,0.9)
x=
-0.4000
0.0640
0.8056
Mtodo de Gauss-Seidel
Matriz de transicin
Si converge
Matriz de transicin
Si converge
125
>> x=relajacion(a,b,x,0.9)
x=
-0.1231
0.1157
0.5876
>> w=1.1;
>> t=inv(eye(3)+w*inv(d)*l)*(eye(3)-w*inv(d)*s)
t=
-0.1000 -0.3667 -0.8556
0.0440 0.0613 -1.1636
0.0704 0.2856 0.9258
>> r=norm(eig(t),inf)
r=
0.6076
>> w=1.5;
>> t=inv(eye(3)+k*inv(d)*l)*(eye(3)-k*inv(d)*s)
t=
-0.5000 -0.5000 -1.1667
0.3000 -0.2000 -1.4000
0.4500 0.6375 1.3375
>> r=norm(eig(t),inf)
r=
0.9204
>> w=1.6;
>> t=inv(eye(3)+w*inv(d)*l)*(eye(3)-w*inv(d)*s)
t=
-0.6000 -0.5333 -1.2444
0.3840 -0.2587 -1.4436
0.5664 0.7435 1.4708
>> r=norm(eig(t),inf)
r=
1.0220
Si converge
Mtodo de relajacin (w=1.5)
Matriz de transicin
Si converge
Mtodo de relajacin (w=1.6)
Matriz de transicin
No converge
Ejemplo
La siguiente matriz es del tipo que aparece frecuentemente en Anlisis Numrico
4 1 1 1
1 4 1 1
a=
1 1 4 1
1 1 1 4
Use el Teorema general de convergencia: (T) < 1, para determinar cul es el mtodo iterativo
ms favorable para realizar los clculos con esta matriz.
126
>> a=[4 -1 -1 -1; -1 4 -1 -1;-1 -1 4 -1; -1 -1 -1 4]
a=
4 -1 -1 -1
-1 4 -1 -1
-1 -1 4 -1
-1 -1 -1 4
>> d=diag(diag(a));
>> l=tril(a)-d;
>> u=triu(a)-d;
>> s=triu(a);
>> t=-inv(d)*(l+u);
>> rjacobi=norm(eig(t),inf)
rjacobi =
0.7500
Mtodo de Jacobi
>> t=inv((eye(4)+inv(d)*l))*(-inv(d)*u);
>> rgaussseidel=norm(eig(t),inf)
rgaussseidel =
0.5699
Mtodo de Gauss-Seidel
>> w=0.9;
>> t=inv(eye(4)+w*inv(d)*l)*(eye(4)-w*inv(d)*s);
>> rrelajacion=norm(eig(t),inf)
rrelajacion =
0.6438
Mtodo de Relajacin
>> w=1.1;
>> t=inv(eye(4)+w*inv(d)*l)*(eye(4)-w*inv(d)*s);
>> rrelajacion=norm(eig(t),inf)
rrelajacion =
0.4754
>> w=1.2;
>> t=inv(eye(4)+w*inv(d)*l)*(eye(4)-w*inv(d)*s);
>> rrelajacion=norm(eig(t),inf)
rrelajacion =
0.3312
>> w=1.3;
>> t=inv(eye(4)+w*inv(d)*l)*(eye(4)-w*inv(d)*s);
>> rrelajacion=norm(eig(t),inf)
rrelajacion =
0.3740
>> w=1.4;
>> t=inv(eye(4)+w*inv(d)*l)*(eye(4)-w*inv(d)*s);
>> rrelajacion=norm(eig(t),inf)
rrelajacion =
0.4682
Estos resultados muestran que para esta matriz, los tres mtodos convergeran. La convergencia
ser ms rpida si se usa el mtodo de relajacin con w = 1.2. Se puede verificar realizando
las iteraciones con las funciones respectivas escritas en MATLAB
127
5.9
3x 1 x 3 = 5
x 1 + 2x 2 x 3 = 2
x 1 + x 2 + ( + 1)x 3 = 1
Indique para cuales valores de el sistema tiene una solucin
2. Dado el sistema [ai, j] x = [bi], i, j = 1, 2, 3
Siendo ai, j = i/(i + j), bi = 2i
a) Escriba el sistema de ecuaciones lineales correspondiente
b) Resuelva el sistema con el Mtodo de Gauss-Jordan
3. Los puntos (x, y): (1, 3), (2,5), (4,2), (5, 4) pertenecen a la siguiente funcin:
2
0.1x
+ a3 x + a4
f(x) = a1x + a2 e
a) Escriba el sistema de ecuaciones con los puntos dados,
b) Resuelva el sistema con el Mtodo de Gauss usando la estrategia de pivoteo con 4 decimales
4. Demuestre mediante un conteo que la cantidad de multiplicaciones que requiere el mtodo de
3
2
directo de Gauss-Jordan para resolver un sistema de n ecuaciones lineales es n /2 + O(n ) y que
3
2
para el Mtodo de Gauss es n /3 + O(n )
5. En el mtodo de Gauss con pivoteo parcial, en cada etapa e de la transformacin, se elige
como divisor el coeficiente con mayor magnitud de los coeficiente ubicados en la columna e y en
las filas e, e+1, e+2, , n.
Describa en seudocdigo un algoritmo para realizar el pivoteo total que consiste en elegir como
divisor el coeficiente de mayor magnitud en la submatriz ubicada desde la fila e hasta la fila n y
desde la columna e hasta la columna n. Su algoritmo debe describir nicamente el intercambio
de filas y columnas indicando los ciclos y los ndices para comparar e intercambiar filas y
columnas.
6. Describa, en notacin simblica o en cdigo MATLAB, un algoritmo que reciba una matriz
Anxn y entregue como resultado las matrices L, D, U tales que A = L+D+U. Describa la
descomposicin matricial mediante ciclos e ndices. L: sub matriz debajo de la diagonal, D:
matriz diagonal, U: submatriz sobre la diagonal. No use comandos diag, tril, triu de MATLAB
7. Considere la matriz de los coeficientes del ejercicio 3 de la seccin anterior
a) Use el mtodo de Gauss-Jordan para encontrar la matriz inversa
b) Calcule el nmero de condicin. Es una matriz mal condicionada?
8. Dado el siguiente sistema de ecuaciones
1 1/ 2 1/ 3 x1 4
1/ 4 1/ 5 1/ 6 x = 5
2
1/ 7 1/ 8 1/ 9 x 3 6
a) Resuelva el sistema usando el mtodo de Gauss-Jordan. Simultneamente encuentre la
inversa de la matriz
b) Modifique la matriz de coeficientes sustituyendo el valor de elemento a1,1 con el valor 0.9
Resuelva nuevamente el sistema. Encuentre la variacin en la solucin calculada.
128
c) Obtenga el nmero de condicin de la matriz original.
d) Suponga que el error en los coeficientes no excede a 0.01. Use la definicin indicada para
encontrar una cota para el error en la solucin
9. Un comerciante compra tres productos: A, B, C. Estos productos se venden por peso en Kg.
pero en las facturas nicamente consta el total que debe pagar. El valor incluye el impuesto a las
ventas y supondremos, por simplicidad que es 10%. El comerciante desea conocer el precio
unitario de cada artculo, para lo cual dispone de tres facturas con los siguientes datos:
Factura Kg. de A Kg. de B Kg. de C Valor pagado
1
4
2
5
$19.80
2
2
5
8
$30.03
3
2
4
3
$17.82
Formule el modelo matemtico para encontrar la solucin y obtngala mediante un mtodo
directo.
10. El siguiente programa se puede usar para construir una matriz Anxn mal condicionada con
nmero de condicin mayor a 1000.
n=input('Ingrese dimensin ');
c=0;
while c<1000
a=fix(10*rand(n,n));
c=cond(a,inf);
end
disp(c);
disp(a);
a) Use este programa para construir una matriz mal condicionada de dimensin 5x5
b) Defina un vector de constantes y con la matriz anterior, defina un sistema de ecuaciones
lineales
c) Use un mtodo directo computacional para obtener la solucin del sistema anterior.
d) Modifique ligeramente algn coeficiente de la matriz, recalcule la solucin y verifique la
sensibilidad de la solucin a este cambio.
e) Use el nmero de condicin para establecer una cota para el error relativo de la solucin en
trminos del error relativo de la matriz de coeficientes.
11. Suponga que el siguiente modelo describe la cantidad de personas que son infectadas por
2
0.15X
. Se conoce adems que la
un virus, en donde x es tiempo en das: f(x) = k1 x + k2 x + k3 e
cantidad de personas infectadas fue 25, 130 y 650 en los das 10, 15 y 20 respectivamente. En
el modelo, k1, k2 y k3 son coeficientes que deben determinarse.
a) Plantee el sistema de ecuaciones lineales que permitira determinar los coeficientes
T
b) Verifique que el vector K = [-17.325094, -2.242168, 94.265303] es la solucin
c) Suponga que el dato 650 realmente corresponda al da 21. Al resolver nuevamente el
T
sistema se obtiene el vector solucin K = [-14.427522, -0.897956, 57.8065182] .
Es confiable la solucin calculada?
d) Determine la variacin relativa de la solucin con respecto a la variacin relativa de la matriz
de coeficientes, sabiendo que la inversa de la matriz original es:
. . .
. . .
. . .
129
12. Dado el siguiente sistema de ecuaciones
2 5 4 x1 35
3 9 8 x = 65
2
2 3 1 x 3 17
a) Obtenga la solucin con un mtodo directo
b) En la matriz de coeficientes sustituya 5 por 5.1 y obtenga nuevamente la solucin con un
mtodo directo y compare con la solucin del sistema original
c) Encuentre el error relativo de la solucin y compare con el error relativo de la matriz. Comente
acerca del tipo de sistema
13. Use la funcin slin para resolver el siguiente sistema. Identifique las variables libres. Escriba
el conjunto solucin en trminos de la variable libre. Asigne un valor a la variable libre y
determine el valor de cada una de las otras variables:
8
5
1
9
6
2
2
5
3
9
8
9
9
3
2
1
5
9
7 6
2 2
6 4
3 3
8 6
9 1
1
7 1
4 2 4
2 3 = 2
1 4 4
6 5 6
8 6 5
14. Determine si el sistema de ecuaciones lineales obtenido con la siguiente frmula converge a
la solucin con el Mtodo de Jacobi
3kX k-1 - 6kX k + 2kX k + 1 = 2k -1
X0 = -3, Xn = 4, k=1, 2, 3, ..., n -1, n>3
2 X1 X 3 =
1
16. Una empresa produce semanalmente cuatro productos: A, B, C, D usando tres tipos de
materiales M1, M2, M3. Cada Kg. de producto requiere la siguiente cantidad de cada material,
en Kg.:
M1
M2
M3
P1
0.1
0.2
0.7
P2
0.3
0.6
0.1
P3
0.6
0.3
0.1
P4
0.4
0.4
0.2
La cantidad disponible semanal de cada material es: 100, 120, 150 Kg. respectivamente, los
cuales deben usarse completamente. Se quiere analizar la estrategia de produccin.
a) Formule un sistema de ecuaciones lineales siendo x1, x2, x3, x4 cantidades en Kg. producidas
semanalmente de los productos A, B, C, D respectivamente
b) Obtenga una solucin con la funcin slin y re-escriba el sistema de ecuaciones resultante.
130
c) Escriba el conjunto solucin expresado mediante la variable libre.
d) Encuentre el rango factible para la variable libre
e) Encuentre el rango factible para las otras variables
f) Defina cuatro casos de produccin eligiendo un valor para cada una de las cuatro variables y
estableciendo el nivel de produccin para las restantes variables.
17. Dado el sistema siguiente. Reordene las ecuaciones tratando de acercarlo a la forma
diagonal dominante.
4x1 + 2x 2 + 5x 3 =
18.00
2x1 + 5x 2 + x 3 =
27.30
2x1 + 4x 2 + 3x 3 =
16.20
a) Escriba la matriz de transicin del mtodo de Jacobi y determine si se cumple la condicin
suficiente de convergencia al ser de tipo diagonal dominante.
b) Determine si la matriz de transicin de Jacobi cumple la condicin general de convergencia.
Puede calcular los valores caractersticos con la funcin eig de MATLAB
c) Escriba la matriz de transicin del mtodo de Gauss-Seidel y verifique que cumple la condicin
general de convergencia. Puede calcular los valores caractersticos con la funcin eig de
MATLAB
b) Use la funcin Gauss-Seidel para realizar 15 iteraciones. Comente los resultados obtenidos.
18. Con el propsito de analizar las preferencias de los consumidores una empresa ha dividido la
ciudad en 16 cuadrculas. Los resultados de las mediciones se incluyen en el siguiente cuadro.
Sin embargo, en algunas cuadrculas no se pudo realizar la medicin y sus valores se los
estimar mediante un promedio de las cuadrculas que estn inmediatamente a su alrededor. En
el clculo de cada promedio incluya tambin los valores desconocidos adyacentes.
25
28
34
27
30
40
32
35
20
26
43
50
a) Plantee un sistema de ecuaciones para obtener la solucin (valores de las casillas vacas).
b) Si se utiliza el mtodo de Jacobi, determine si se cumple alguna condicin de convergencia
c) Usando notacin matricial y comenzando con un vector con sus cuatro valores iguales al
promedio de los 12 datos conocidos, realice una iteracin con el mtodo de Jacobi.
19. Considere el siguiente sistema [ai,j][xi] = [bi], i = 1, 2, 3; j = 1, 2, 3
-1
131
20. La distribucin de dinero a 16 comunidades se describe en el siguiente cuadro. No fue
posible contactar a cinco comunidades X1, X2, X3, X4, X5 por lo que se decidi asignar a ellas el
promedio del valor asignado a las comunidades que estn a su alrededor, por ejemplo, X1
recibir el promedio de 30 + X2 + X3 + 45 + 50.
Determine cuales son los valores que sern asignados a estas cinco comunidades.
50
45
60
55
X1
X3
X4
20
30
X2
X5
15
40
25
10
35
21. Suponga que en el siguiente modelo f(x) describe la cantidad de personas que son
infectadas por un virus, en donde x es tiempo en das:
2
0.15X
f(x) = k1 x + k2 x + k3 e
En el modelo k1 , k2 y k3 son coeficientes que deben determinarse.
Se conoce la cantidad de personas infectadas en los das 10, 15 y 20:
f(10)=25, f(15)=130, f(20)=650
Plantee un sistema de ecuaciones lineales para determinar los coeficientes y use la solucin
para definir el modelo f(x) para determinar en cual da la cantidad de personas infectadas por el
virus ser 10000. Muestre el grfico de la ecuacin y los valores intermedios calculados.
22. En una regin se desean instalar tres nuevos distribuidores X1, X2, X3 de un producto. En
las cercanas ya existen otros distribuidores: A, B, C, D, E, F, G del mismo producto. En el
grfico, los crculos indican el precio de venta del producto en cada distribuidor. Las lneas
indican con que otros distribuidores estn directamente conectados. Determine el precio de
venta que deben establecer los distribuidores x1, x2, x3, de tal manera que sean el promedio de
los precios de los distribuidores con los que estn directamente conectados.
23. Para probar las propiedades de tres nuevos productos (1, 2, 3) se mezclarn tres
ingredientes (A, B, C) de los que se dispone respectivamente de 23.92, 20.68 y 31.40 Kg.
Cada Kg. del producto se obtiene mezclando los ingredientes de la siguiente forma:
1 Kg. de Producto 1: 0.70 Kg. de A, 0.25 Kg. de B, 0.05 Kg.de C
1 Kg. de Producto 2: 0.20 kg. de A, 0.60 Kg. de B, 0.20 Kg. de C
1 Kg. de Producto 3: 0.16 kg. de A, 0.04 Kg. de B, 0.80 Kg. de C
Se necesita conocer la cantidad de Kg. que se obtendr de cada producto sin que hayan
sobrantes de ingredientes
a) Con los datos formule un sistema de ecuaciones lineales.
b) Determine si el mtodo de Jacobi cumple alguna condicin de convergencia.
132
c) Use notacin matricial para obtener la solucin con el mtodo de Jacobi. Comience con
valores iniciales iguales al promedio de la cantidad disponible de los ingredientes y realice las
iteraciones necesarias hasta que la norma de la diferencia del vector solucin en dos iteraciones
consecutivas sea menor a 0.01
24. La matriz insumo-producto propuesto por W. Leontief, es un modelo muy importante en
Economa. En esta matriz se describe la produccin de los diferentes sectores econmicos y la
demanda interna para satisfacer a estos mismos sectores, expresada como una fraccin de su
produccin. Ejemplo. Suponga que hay tres sectores, A: agricultura, M: manufactura, y S:
servicios y su demanda interna es:
A
M
S
Demanda
Produccin
A
0.42
0.03
0.02
M
0.06
0.37
0.10
S
0.12
0.15
0.19
Sea T el nombre de esta matriz. Para los datos propuestos, en la primera columna de la matriz T,
el sector A requiere 0.4 de su propia produccin, 0.06 del sector M, y 0.12 del sector S, etc.
Sea D el vector de demanda externa de cada sector, y X el vector de la produccin total de
cada sector, requerida para satisfacer las demandas interna y externa:
90
=
140 , X
D =
200
x1
x , en donde x , x , x representan la produccin total de cada sector.
1
2
3
2
x 3
133
25. Las cerchas son estructuras reticuladas con elementos triangulares, usualmente metlicas,
que se utilizan para soportar grandes cargas. Es importante conocer las fuerzas que actan en
cada nodo. Para ello se plantean ecuaciones de equilibrio de fuerzas verticales y horizontales
para cada nodo, las cuales conforman un sistema de ecuaciones lineales.
Determine las fuerzas que actan en cada nodo en la siguiente cercha con las cargas verticales,
en Kg, especificadas en los nodos 2 y 4. La cercha est sostenida en los nodos 1 y 5:
F1, F2, F3, F4, F5, F6, F7 son las fuerzas en los elementos que actan para mantener la
estructura unida, juntando los nodos y evitando que se separen. Sus valores son desconocidos.
Se convendr que si las fuerzas en cada nodo actan hacia la derecha y hacia arriba tienen
signo positivo. H es la fuerza horizontal y V1, V2 son las fuerzas verticales que soportan la
estructura. Sus valores son desconocidos.
Ecuaciones de equilibrio en cada nodo:
Nodo 1:
V1 + F1 sen(45) = 0
H + F1 cos(45) + F2 = 0
Nodo 2:
Nodo 3:
F3 sen(70) + F5 sen(60) = 0
-F2 F3 cos(70) + F5 cos(60) + F7 = 0
Nodo 4:
Nodo 5:
V2 + F6 sen(70) = 0
-F7 F6 cos(70) = 0
134
26. Se desea conocer la corriente i que fluye en un circuito que incluye una fuente de voltaje V y
resistencias R como se indica en el grfico:
10 i1 + 20 i1 10 i2 20 i3 = 0
30 i2 + 20 i2 10 i1 = 0
20 i3 + 40 i3 20 i2 = 120
135
6
INTERPOLACIN
Para introducir este captulo se analiza un problema para el cual se requiere como modelo un
polinomio de interpolacin.
Problema. La inversin en la promocin para cierto producto en una regin ha producido los
siguientes resultados:
(x, f): (5, 1.2), (10, 2.5), (15, 4.3), (20, 4.0)
En donde x: tiempo invertido en la promocin del producto en horas
f: porcentaje de incremento en las ventas del producto
Se desea usar los datos para determinar la cantidad ptima de horas deberan invertirse en
regiones similares para maximizar la eficiencia de las ventas.
Con los datos obtenidos se debe construir alguna funcin que permita obtener la respuesta y
tambin estimar el error en el resultado.
6.1
El Polinomio de Interpolacin
g(xi) = fi, i = 0, 1, 2, . . . , n
136
6.1.1
n
x1 xn1 1 ... x1 1
entonces | D | =
Sea
D=
(x j - xi ), i = 1,2,...,n
... ... ... ... ...
=
j 0, j < i
n
n1
... xn 1
xn xn
D = x12 x1 1 | D | =
(x j - xi ) = (x0 - x1)(x0 - x2)(x1 - x2)
=
<
j
0,j
i
2
x 2 x 2 1
De la definicin anterior, se concluye que el determinante de esta matriz ser diferente de cero si
los valores de X dados no estn repetidos. Por lo tanto, una condicin necesaria para la
existencia del polinomio de interpolacin es que las abscisas de los datos dados sean diferentes
entre si.
Ejemplo. Dados los siguientes puntos: (2, 5), (4, 6), (5, 3)
a) Encuentre y grafique el polinomio de interpolacin que los incluye.
Con la definicin anterior y usando un mtodo directo se obtiene:
22 2 1 a0 5
a0 -1.1666
2
4
4
1
a
=
6
1 a1 = 7.5
52 5 1 a2 3
a2 -5.3333
137
b) Calcule el nmero de condicin de la matriz.
22
D= 42
52
2 1
4 1
5 1
En general, la matriz de Vandermonde es una matriz mal condicionada, por lo tanto la solucin
obtenida es muy sensible a los errores en los datos y los clculos involucran el uso de algoritmos
3
de tercer orden: T(n)=O(n )
Existen mtodos para encontrar el polinomio de interpolacin que no utilizan la matriz anterior y
tienen mejor eficiencia.
6.1.2
Dados los datos (xi, fi), i = 0, 1, 2, . . ., n, el polinomio de interpolacin que incluye a todos los
puntos es nico.
Demostracin
Suponer que usando los mismos datos y con mtodos diferentes se han obtenido dos polinomios
de interpolacin: p(x), y q(x). Ambos polinomios deben incluir a los puntos dados:
p(xi) = fi , i=0, 1, 2, . . ., n
q(xi) = fi , i=0, 1, 2, . . ., n
Sea la funcin h(x) = p(x) - q(x). Esta funcin tambin debe ser un polinomio y de grado no
mayor a n. Al evaluar la funcin h en los puntos dados se tiene:
h(xi) = p(xi) - q(xi) = fi - fi = 0, i=0, 1, 2, . . ., n
Esto significara que el polinomio h cuyo grado no es mayor a n tendra n+1 races,
contradiciendo el teorema fundamental del lgebra. La nica posibilidad es que la funcin h sea
x[h(x)=0] x[p(x)-q(x)=0] x[p(x) = q(x)]
la funcin cero, por lo tanto,
138
6.2
Dados los datos (xi, fi), i = 0, 1, 2, . . ., n. La siguiente frmula permite obtener el polinomio de
interpolacin:
Definicin: Polinomio de Interpolacin de Lagrange
n
pn (x) =
fi Li (x)
i=0
x-x j
Li (x) =
, i = 0, 1, . . . , n
j=0,j i xi -x j
n
pn (x) = f0L0 (x) + f1L1 (x) + . . . + fi-1Li 1 (x) + fiLi (x) + fi+1Li + 1 (x) + . . . + fnLn (x)
Li (x) =
De la definicin (2):
Li (xi ) = 1, i=0,1,...,n
(1)
(2)
pn (x 0 ) = f0L0 (x 0 ) + f=
f=
f0
1L1 (x 0 ) + . . . + fnLn (x 0 )
0 (1) + f1 (0) + . . . + fn (0)
pn (x1 ) = f0L0 (x1 ) + =
f1L1 (x1 ) + . . . + fnLn (x1 ) f=
f1
0 (0) + f1 (1) + . . . + fn (0)
...
pn (xn ) = f0L0 (xn ) + f=
f=
fn
0 (0) + f1 (0) + . . . + fn (1)
1L1 (x n ) + . . . + fnLn (x n )
En general:
pn (xi ) = fi ; i = 0, 1, . . . , n
Por otra parte, cada factor Li(x) es un polinomio de grado n, por lo tanto pn(x) tambin ser
un polinomio de grado n con lo cual la demostracin est completa.
6.2.1 Algoritmo del polinomio de interpolacin de Lagrange
Algoritmo: Lagrange
Restriccin: No se verifica la existencia del polinomio de interpolacin
Puntos (datos)
Entra: xi, fi
Sale: p
Polinomio de interpolacin
n numeracon del ltimo punto
p0
Para i 0, 1, , n
L1
Para j 0, 1, , n; (j i)
LL
Fin
p p + fi L
Fin
139
Ejemplo. Dados los siguientes puntos: (2, 5), (4, 6), (5, 3)
Con la frmula de Lagrange, encuentre el polinomio de interpolacin que incluye a estos puntos.
2
p2 (x) =
fL (x) = f L
i
(x) + f1L1 (x) + f2L2 (x) = 5L0 (x) + 6L1 (x) + 3L2 (x)
i=0
Li (x) =
(x-x j )
j=0,j i
(xi -x j )
(x-x j )
L0 (x) =
L1 (x) =
j=0,j 0
(x 0 -x j )
(x-x j )
(x1 -x j )
j=0,j 1
(x-x1 )(x-x 2 )
(x-4)(x-5)
x 2 - 9x+20
=
=
(x 0 -x1 )(x 0 -x 2 )
(2-4)(2-5)
6
(x-x 0 )(x-x 2 )
(x-2)(x-5)
x 2 - 7x+10
=
=
(x1 -x 0 )(x1 -x 2 )
(4-2)(4-5)
-2
(x-x 0 )(x-x1 )
(x-2)(x-4)
x 2 - 6x+8
=
=
(x 2 -x 0 )(x 2 -x1 )
(5-2)(5-4)
3
(x-x j )
L2 (x) =
, i=0, 1, 2
j=0,j 2
(x 2 -x j )
p2 (x) = 5(
x 2 - 9x+20
x 2 - 7x+10
x 2 - 6x+8
7
15
16
) + 6(
) + 3(
) = - x2 +
x6
-2
3
6
2
3
Se puede verificar que este polinomio incluye a los tres puntos dados.
Si nicamente se desea evaluar el polinomio de interpolacin, entonces no es necesario obtener
las expresiones algebraicas Li(x). Conviene sustituir desde el inicio el valor de x para obtener
directamente el resultado numrico.
Ejemplo. Dados los siguientes puntos: (2, 5), (4, 6), (5, 3)
Con la frmula de Lagrange, evale en x = 3, el polinomio de interpolacin que incluye a estos
tres puntos dados.
2
p2 (3) =
fL (3) = f L
i
(3) + f1L1 (3) + f2L2 (3) = 5L0 (3) + 6L1 (3) + 3L2 (3)
i=0
Li (3) =
(3-x j )
j=0,j i
(xi -x j )
(3-x j )
(3-x j )
L0 (3) =
L1 (3) =
j=0,j 0 (x 0 -x j )
j=0,j 1
2
L2 (3) =
, i=0, 1, 2
j=0,j 2
(x1 -x j )
(3-x j )
(x 2 -x j )
(3-x1 )(3-x 2 )
(3-4)(3-5)
=
=1/3
(x 0 -x1 )(x 0 -x 2 )
(2-4)(2-5)
(3-x 0 )(3-x 2 )
(3-2)(3-5)
=
=1
(x1 -x 0 )(x1 -x 2 )
(4-2)(4-5)
(3-x 0 )(3-x1 )
(3-2)(3-4)
=
= -1/3
(x 2 -x 0 )(x 2 -x1 )
(5-2)(5-4)
140
6.2.2
La frmula de Lagrange involucra dos ciclos anidados que dependen del nmero de datos n:
n
pn (x) =
fi Li (x)
i=0
n
Li (x) =
x-x j
j=0,j i x -x
i
i = 0, 1, . . . , n
La evaluacin de esta frmula es un mtodo directo que incluye un ciclo para sumar n+1
trminos. Cada factor Li(x) de esta suma requiere un ciclo con 2n multiplicaciones, por lo tanto,
2
la eficiencia de este algoritmo es T(n) = 2n(n+1) = O(n ), significativamente mejor que el mtodo
3
matricial que involucra la resolucin de un sistema lineal cuya eficiencia es T(n) = O(n ).
6.2.3
Instrumentacin computacional
La siguiente funcin recibe los puntos dados y entrega el polinomio de interpolacin en forma
algebraica usando la frmula de Lagrange. Opcionalmente, si la funcin recibe como parmetro
adicional el valor a interpolar, el resultado entregado es un valor numrico, resultado de la
interpolacin.
x, f:
puntos base para la interpolacin
v:
valor para interpolar (parmetro opcional). Puede ser un vector
t:
variable simblica para construir el polinomo de interpolacin
function p = lagrange(x, f, v)
n=length(x);
if nargin==2
syms t;
%variable para construir el polinomio
else
t=v;
%evaluar el polinomio con el valor dado
end
p=0;
for i=1:n
L=1;
for j=1:n
if i ~= j
L=L*(t-x(j))/(x(i)-x(j));
end
end
p=p+L*f(i);
%entrega p(t) simblico o el valor el valor interpolado
end
if nargin==2
p=expand(p);
%simplificacin algebraica (expandir factores)
end
141
Ejemplo. Use la funcin Lagrange para el ejemplo anterior:
>> x = [2, 4, 5];
Datos
>> f = [5, 6, 3];
>> p=lagrange(x, f)
Obtencin del polinomio de interpolacin
p=
-7/6*t^2+15/2*t-16/3
>> r=lagrange(x, f, 4)
Evaluar p en un punto dado (para verificar)
r=
6
>> r=lagrange(x, f, 4.25)
Evaluar p en un punto desconocido
r=
5.4687
>> plot(x, f, 'o'), grid on
Graficar los puntos
>> hold on, ezplot(p, [2, 5])
Graficar el polinomio sobre los puntos
142
6.3 Interpolacin mltiple
Se puede extender la interpolacin a funciones de ms variables. El procedimiento consiste en
interpolar en una variable, fijando los valores de las otras variables y luego combinar los
resultados. En esta seccin se usar el polinomio de Lagrange en un ejemplo que contiene datos
de una funcin que depende de dos variables. No es de inters encontrar la forma analtica del
polinomio de interpolacin que tendra trminos con ms de una variable.
Ejemplo. Se tienen tabulados los siguientes datos f(x,y) de una funcin f que depende de las
variables independientes x, y. Usar todos los datos disponibles para estimar mediante
interpolacin polinomial el valor de f(3,12)
y
10
15
20
3.7
4.2
5.8
7.1
4.1
5.3
6.1
7.9
5.6
6.7
7.4
8.2
Existen solo tres datos en la direccin X, por lo tanto conviene interpolar primero en X con los
datos de cada columna. Se requiere un polinomio de grado dos:
2
p2 (x) =
fL (x) = f L
i
i=0
Li (x) =
(x-x j )
j=0,j i
(xi -x j )
, i=0, 1, 2
L0 (3) =
j=0,j 0
L2 (3) =
(x 0 -x j )
(3-x j )
(3-x j )
L1 (3) =
(3-x j )
j=0,j 1 (x 1 -x j )
j=0,j 2 (x 1 -x j )
(3-x1 )(3-x 2 )
(3-4)(3-6)
=
= 3/8
(x 0 -x1 )(x 0 -x 2 )
(2-4))(2-6)
(3-x 0 )(3-x 2 )
(3-2)(3-6)
=
= 3/4
(x1 -x 0 )(x1 -x 2 )
(4-2))(4-6)
(3-x 0 )(3-x1 )
(3-2)(3-4)
=
= -1/8
(x 2 -x 0 )(x 2 -x1 )
(6-2))(6-4)
143
Con los cuatro resultados se interpola en y = 12 con un polinomio de tercer grado:
y
f(3, y)
10
3.7625
4.7125
p3 (y) =
fL (y) = f L
i
15
5.8250
20
7.5625
i=0
(y-y j )
Li (y) =
j=0,j i (yi -y j )
, i=0, 1, 2, 3
L0 (12) =
L1 (12) =
j=0,j 0
(y0 -y j )
(12-y j )
j=0,j 1
L3 (12) =
(y1 -y j )
(12-y j )
(12-y j )
L2 (12) =
(12-y j )
j=0,j 2 (y2 -y j )
j=0,j 3 (y2 -y j )
Resultado final:
y=12:
144
6.3.1 Instrumentacin computacional
Para interpolar en dos o ms variable, se puede usar la funcin lagrange para interpolar en una
variable. Al aplicarla en cada direccin se obtienen los resultados parciales. Interpolando con
estos resultados producir el resultado final.
Para el ejemplo anterior:
>> x = [2, 4, 6];
>> f = [3.7, 4.1, 5.6];
>> r1 = lagrange(x, f, 3);
>> f = [4.2, 5.3, 6.7];
>> r2 = lagrange(x, f, 3);
>> f = [5.8, 6.1, 7.4];
>> r3 = lagrange(x, f, 3);
>> f = [7.1, 7.9, 8.2];
>> r4 = lagrange(x, f, 3);
Resultado final
Si se planea usar este tipo de interpolacin con frecuencia, conviene instrumentar una funcin en
MATLAB para interpolar en dos dimensiones con la frmula de Lagrange.
Esta funcin se llamar lagrange2, y usar internamente a la funcin lagrange para interpolar
con una variable, y con los resultados realizar la interpolacin con la otra variable.
Sean:
x,y:
vectores con valores de las variables independientes X, Y
f:
matriz con los datos de la variable dependiente organizados en filas
u,v:
valores para los cuales se realizar la interpolacin en x e y respectivamente
function p=lagrange2(x, y, f, u, v)
[n,m]=size(f);
for i=1:m
r(i)=lagrange(x, f(:, i), u);
% cada columnas es enviada (resultados parciales)
end
p=lagrange(y, r, v);
% interpolacin final en la otra direccin
145
6.4
Error en la interpolacin
Para entender este concepto usaremos un polinomio de interpolacin para aproximar a una
funcin conocida. As puede determinarse en forma exacta el error en la interpolacin.
Ejemplo. Suponga que se desea aproximar la funcin f(x)=e , 0x2, con un polinomio de
segundo grado.
x
Para obtener este polinomio tomamos tres puntos de la funcin f: (0, e ), (1, e ), (2, e ) y
usamos la frmula de Lagrange para obtener el polinomio de interpolacin, con cinco decimales:
2
p2(x) = 1.4762x + 0.24204x+1
En el caso general, se tienen los puntos (xi, fi), i=0, 1, ..., n, pero f es desconocida
Sea pn(x) el polinomio de interpolacin, tal que pn(xi) = fi , i=0, 1, ..., n
Suponer que se desea evaluar f en un punto t usando pn como una aproximacin:
f(t) pn(t), t xi, i=0, 1, ..., n
Definicin. Error en la interpolacin
146
Representacin grfica del error en la interpolacin
pn(t)
...
f(t)
Siendo f desconocida, no es posible conocer el error pues el valor exacto f(t) es desconocido.
En los puntos dados el error es cero: En(xi) = f(xi) pn(xi) = 0, i=0,1,..., n, pero es importante
establecer una cota para el error en la interpolacin en el punto t: En(t) = f(t) pn(t)
6.4.1
En las aplicaciones comunes, nicamente se conocen puntos de la funcin f si se los usa para
realizar una interpolacin, es importante estimar la magnitud del error. A continuacin se
desarrolla un procedimiento para estimar el error
n
Sean
g(x) =
i=0
(n+1)
(z) = 0
(n+1)
Siendo g(x) =
(x x )
i
i=0
(n+1)
(n+1)
(z).
147
6.5
Diferencias finitas
Las siguientes definiciones establecen algunas relaciones simples entre los puntos dados. Estas
definiciones tienen varias aplicaciones en anlisis numrico.
Suponer que se tienen los puntos (xi, fi), i=0, 1, ..., n, tales que las abscisas estn espaciadas
regularmente en una distancia h:
xi+1 - xi = h, i=0, 1, ..., n-1
...
Definiciones
fi = fi+1 - fi ,
1
i = 0,1,2, ...
f0 = f1 - f0
1
f1 = f2 - f1, etc
1
f0 = f1 - f0
2
1
1
f1 = f2 - f1, etc
2
k-1
k-1
con fi = fi
0
xi
x0
x1
x2
x3
...
fi
f0
f1
f2
f3
...
fi
1
f0
1
f1
1
f2
...
...
1
fi
2
f0
2
f1
...
...
...
2
fi
3
f0
...
...
...
...
3
fi
...
...
...
...
...
4
Cada diferencia finita se obtiene restando los dos valores consecutivos de la columna anterior.
148
Ejemplo. Tabule las diferencias finitas correspondientes a los siguientes datos
(1.0, 5), (1.5, 7), (2.0, 10), (2.5, 8)
i
0
1
2
3
xi
1.0
1.5
2.0
2.5
fi
5
7
10
8
fi
2
3
-2
1
fi
1
-5
2
fi
-6
3
1f0
es una aproximacin para f en el intervalo [x0, x1].
h
149
En general,
Definicin. Relacin entre derivadas y diferencias finitas
f (n) (z) =
n f0
hn
n f0
(n)
es una aproximacin para f en el intervalo [x0, xn].
hn
Si suponemos que f tiene derivadas cuyos valores no cambian significativamente en el intervalo
considerado, esta frmula puede usarse para aproximar sus derivadas. El valor de h debe ser
pequeo, pero si es demasiado pequeo puede aparecer el error de redondeo al restar nmeros
muy cercanos y la estimacin de las derivadas de orden alto no ser aceptable.
Si se usa esta aproximacin para acotar el error, se debera tomar el mayor valor de la diferencia
finita tabulada respectiva. En general, esta aproximacin es aceptable si los valores de las
diferencias finitas en cada columna no cambian significactivamente y tienden a reducirse.
6.5.2
n-1
+ . . . + an
(n)
f (x) = n! a0
n (n)
Ejemplo
2
Tabule las diferencias finitas de f(x) = 2x + x + 1, para x = -2, -1, 0, 1, 2, 3
I
0
1
2
3
4
5
xi
-2
-1
0
1
2
3
fi
-5
-1
3
7
11
1
fi
7
2
1
4
11
22
fi
4
4
4
4
2
fi
0
0
0
3
fi
0
0
4
f(x) = 2x +
i2
, x = 1, 2, 3, ...
i=1
Solucin
La funcin con el sumatorio expresado en forma desarrollada:
2
f(x) = 2x + (1 + 2 + 3 + ... + x ), x = 1, 2, 3,
150
xi
1
2
3
4
5
6
fi
3
9
20
38
65
103
fi
6
11
18
27
38
1
fi
5
7
9
11
2
fi
2
2
2
3
fi
0
0
4
Siendo f(x) una expresin algebraica, y observado que la tercera diferencia finita es constante,
se puede concluir que es un polinomio de grado tres. Para encontrar el polinomio de
interpolacin podemos usar la conocida frmula de Lagrange. Tambin se puede obtener el
polinomio de interpolacin con mtodos basados en los valores tabulados de diferencias finitas.
6.6
Dado un conjunto de puntos (xi, fi), i=0, 1,, n espaciados en forma regular en una distancia h
y que provienen de una funcin desconocida f(x), pero supuestamente diferenciable, se desea
obtener el polinomio de interpolacin. Si se tienen tabuladas las diferencias finitas se puede
obtener el polinomio de interpolacin mediante un procedimiento de recurrencia y generalizacin.
Suponer que se tienen dos puntos (x0, f0), (x1, f1) con los cuales se debe obtener el polinomio de
primer grado, es decir, la ecuacin de una recta:
p1(x) = a0 + a1(x-x0)
Sustituyendo los dos puntos y despejando a0 y a1 se obtienen, agregando la notacin usual:
a0 = f0
a1
=
f1 f0
1f0
=
x1 x 0
h
p 1(x) =
f0 +
1f0
(x x 0 )
h
En el caso de tener tres puntos (x0, f0), (x1, f1), (x2, f2), se debe obtener el polinomio de segundo
grado. Se propone la siguiente forma para este polinomio:
p2(x) = a0 + a1(x-x0) + a2(x-x0)(x-x1)
Sustituyendo los tres puntos y despejando a0, a1 y a2 se obtienen, incluyendo la notacin
usual:
151
a0 = f0
=
a1
=
a2
1f0
f1 f0
=
x1 x 0
h
f f
f2 f1
1 0
x 2 x1 x 1 x 0
=
x2 x0
1f1 1f0
1f1 1f0 2 f0
h
h
=
=
2h
2h2
2h2
1f0
2 f0
(x x 0 ) +
(x x 0 )(x x1 )
h
2h2
p2 (x) =f0 +
pn (x) =f0 +
+
n f0
n!hn
Si las diferencias finitas estn tabuladas en forma de un tringulo, los coeficientes del polinomio
de interpolacin se toman directamente de la primera fila del cuadro de datos (fila sombreada):
xi
fi
fi
1
fi
2
fi
x0
f0
f0
1
f0
2
f0
3
f0
x1
f1
f1
1
f1
2
fn
3
f2
f2
f2
x2
fi
x3
f3
f3
xn
fn
Ejemplo. Dados los siguientes puntos: (2, 5), (3, 6), (4, 3), (5, 2), encuentre el polinomio de
interpolacin que incluye a los cuatro datos usando el mtodo de diferencias finitas
El mtodo de diferencias finitas es aplicable pues h es constante e igual a 1
Tabla de diferencias finitas:
i
xi
fi
fi
1
fi
2
fi
-4
-3
-1
152
x
)(x
x
)
+
(x x 0 )(x x1 )(x x 2 )
0
1
h
2!h2
3!h3
Reemplazando los coeficientes, tomados de la primera fila, y simplificando:
1
6
4
p3 (x) =
5 + (x 2) +
(x 2)(x 3) +
(x 2)(x 3)(x 4)
2
1
2(1 )
3!(13 )
=x 3 11x 2 + 37x 33
6.6.1
Prctica computacional
-1
153
(
)(
)(
)(
0
0
3
t
+
0
1
h
2!h2
3!h3
+
n f0
(x x 0 )
h
( 1f0 +
(x x1 )
2h
( 2 f0 +
(x x 2 )
3h
( 3 f0 + ... +
(x xn 2 )
(n 1)h
( n 1f0 +
(x xn 1 )
nh
n
f0 )...)))
154
p0 = n f0
n 1f0 +
p1 =
(x x n 1 )
p0
nh
(x x n 2 )
n 2 f0 +
p2 =
p1
(n 1)h
.
.
1f0 +
pn 1 =
(x x 1 )
pn 2
2h
(x x 0 )
0 f0 +
siendo 0 f0 =
pn =
pn 1 ,
f0
h
La evaluacin del polinomio con este procedimiento requiere 2n sumas y restas y 3n
multiplicaciones y divisiones: T(n) = O(n). Esto constituye una mejora significativa con respecto
a los mtodos anteriores. Sin embargo, la tabulacin de las diferencias finitas tiene eficiencia
2
O(n ) pero nicamente contiene restas y debe calcularse una sola vez para interpolar en otros
puntos.
Ejemplo. Dados los siguientes puntos: (1.2, 5), (1.4, 6), (1.6, 3), (1.8, 2), use el algoritmo
recursivo anterior para evaluar en x=1.5 el polinomio de interpolacin que incluye a los cuatro
datos.
Tabla de diferencias finitas:
i
xi
fi
fi
1
fi
2
fi
1.2
-4
1.4
-3
1.6
-1
1.8
p0 = 6
p 0 = 3 f0
p1 =
2 f0 +
p2 =
1f0 +
p3 =
0 f0 +
(x x 2 )
3h
(x x 1 )
2h
(x x 0 )
h
p1 =4 +
p0
p1
p2
p2 =
1+
p3 =
5+
(1.5 1.6)
6 =5
3(0.2)
(1.5 1.4)
( 5) =
0.25
2(0.2)
(1.5 1.2)
0.2
( 0.25) =
4.625
155
6.6.3
+
0
1
h
2!h2
3!h3
+
n f0
n!hn
En (x) = g(x)
f (n+ 1) (z)
, xxi, z[x0, xn ] ,
(n + 1)!
Si los puntos estn regularmente espaciados a una distancia h, se estableci una relacin entre
las derivadas de f y las diferencias finitas:
n f
f (n) (t) = n 0 , para algn t en el dominio de los datos dados
h
Es una aproximacin para la derivada si no cambia significativamente y h es pequeo.
Extendiendo esta relacin a la siguiente derivada y sustituyendo en la frmula del error en la
interpolacin
n+ 1f
n+ 1f
f (n+ 1) (z)
En (x) =
g(x)
(x x 0 )(x x1 )...(x xn ) n+ 1 0
g(x) n+ 1 0
=
(n + 1)!
h (n + 1)!
h (n + 1)!
Si se compara con el polinomio de diferencias finitas avanzadas se observa que el error en la
interpolacin es aproximadamente igual al siguiente trmino que no es incluido en el polinomio
de interpolacin.
n+ 1f0
n+ 1
(n + 1)!
(x x 0 )(x x1 )...(x xn )
Si se toman n+1 puntos para construir el polinomio de interpolacin de grado n, y los puntos
(n+1)
( ) es cero y tambin n f , por lo tanto
provienen de un polinomio de grado n, entonces el f
En(x) tambin es cero, en forma consistente con la propiedad de unicidad del polinomio de
interpolacin.
156
Ejemplo. Para aplicar esta definicin se usan los siguientes datos
i
0
1
2
3
4
xi
0.0
0.1
0.2
0.3
0.4
fi
1.000000
1.110517
1.244281
1.404958
1.596730
fi
0.110517
0.133764
0.160677
0.191772
1
fi
0.023247
0.026913
0.031095
2
fi
0.003666
0.004182
3
fi
0.000516
4
En la tabla puede observarse que las diferencias finitas tienden a reducir su valor, entonces un
polinomio de interpolacin es una aproximacin adecuada para esta funcin. Adicionalmente, las
diferencias finitas en cada columna tienen valores de similar magnitud, por lo tanto se pueden
usar para estimar a las derivadas.
El grado del polinomio de interpolacin depende del error que toleramos y su valor est
relacionado directamente con el orden de la diferencia finita incluida.
Supongamos que deseamos evaluar el polinomio de interpolacin en x = 0.08 usando el
polinomio de diferencias finitas avanzadas de segundo grado.
1f0
2 f0
f(x) p2 (x) =f0 +
(x x 0 ) +
(x x 0 )(x x1 )
h
2!h2
0.110517
0.023247
f(0.08) p2 (0.08) =
1+
(0.08 0) +
(0.08 0)(0.08 0.1) =
1.086554
0.1
2(0.1)2
Estimar el error en la interpolacin:
3 f0
E2 (x)
(x x 0 )(x x1 )(x x 2 )
3!h3
0.003666
E2 (0.08)
(0.08 0)(0.08 0.1)(0.08 0.2) =
0.0001173
3!0.13
Para comparar, calculemos el valor exacto de f(0.08) con la funcin de la cual fueron tomados
x
los datos: f(x) = x e + 1
0.08
f(0.08) = 0.08 e
+ 1 = 1.086663
El error exacto es
1.083287 1.086554 = 0.0001089
El valor calculado con el polinomio de interpolacin de segundo grado concuerda muy bien con
el valor exacto.
157
6.6.4
+
0
1
h
2!h2
3!h3
+
n f0
n!hn
x x0
h
1f0
(x x 0 ) =
1f0 S
h
2 f0
2 f0
2 f0 (x x 0 ) (x x 0 h) 2 f0
(x
x
)(x
x
)
=
(x
x
)(x
(x
+
h))
=
=
S(S 1)
0
1
0
0
h
h
2!
2!h2
2!h2
2!h2
.
. (sucesivamente)
.
S
S
S
S
pn (S) =f0 + 1f0 + 2 f0 + 3 f0 + ... + n f0 =
1
2
3
n
i i f0
i= 0
n+ 1f0
(x x 0 )(x x1 )...(x xn )
Sustituyendo la definicin S =
x x0
:
h
n+ 1f0
(n + 1)!
Que finalmente se puede expresar de la siguiente forma
En (S) S(S 1)(S 2)...(S n)
S n+ 1
x x0
En (S)
f0 , S
, x xi
=
h
n + 1
158
6.7
Dado un conjunto de puntos (xi, fi), i=0, 1,, n espaciados en forma arbitraria y que provienen
de una funcin desconocida f(x) pero supuestamente diferenciable, se desea obtener el
polinomio de interpolacin.
Una forma alternativa al mtodo de Lagrange es el polinomio de diferencias divididas cuya
frmula se la puede obtener mediante un procedimiento de recurrencia. La frmula resultante es
ms eficiente que la frmula de Lagrange pues en promedio requiere menos operaciones
aritmticas.
Suponer que se tienen dos puntos (x0, f0), (x1, f1) con los cuales se debe obtener el polinomio de
primer grado, es decir, la ecuacin de una recta:
p1(x) = a0 + a1(x-x0)
Sustituyendo los dos puntos, despejando a0 y a1 y adoptando una nueva notacin se obtiene:
a=
f=
f[x 0 ]
0
0
=
a1
f1 f0
=
f[x 0:1 ]
x1 x 0
p1(x) =
f[x 0 ] + f[x 0:1 ](x x 0 )
f1 f0
f[x1 ] f[x 0 ]
=
denota la primera diferencia dividida en el rango [x0, x1]
x1 x 0
x1 x 0
=
f[x 0:1 ]
La diferencia dividida f[x 0:1 ] es una aproximacin para f( ) en el intervalo [x0, x1]
En el caso de tener tres puntos (x0, f0), (x1, f1), (x2, f2), se debe obtener un polinomio de segundo
grado. Se propone la siguiente forma para este polinomio:
p2(x) = a0 + a1(x-x0) + a2(x-x0) (x-x1)
Sustituyendo los tres puntos y despejando a0, a1 y a2 se obtienen:
a=
f=
f[x 0 ]
0
0
=
a1
=
a2
f1 f0
f[x1 ] f[x 0 ]
=
= f[x 0:1 ]
x1 x 0
x1 x 0
f f
f2 f1
1 0
x 2 x1 x 1 x 0 f[x1:2 ] f[x 0:1 ]
= = f[x 0:2 ]
x2 x0
x2 x0
f[x 0:2 ] =
159
Al extender la recurrencia y generalizar al conjunto de puntos (xi, fi), i=0, 1,, n se tiene:
f[x 0 : n ] =
pn (x)= f[x 0 ] + f[x 0 : 1 ](x x 0 ) + f[x 0 : 2 ](x x 0 )(x x1 ) + f[x 0 : 3 ](x x 0 )(x x1 )(x x 2 ) + ...
+ f[x 0 : n ](x x 0 )(x x1 ) ... (x xn1 )
Es conveniente tabular las diferencias divididas en forma de un tringulo en el que cada columna
a la derecha se obtiene de la resta de los dos valores inmediatos de la columna anterior. Este
resultado debe dividirse para la longitud del rango de los datos incluidos en el rango.
Los coeficientes del polinomio de interpolacin sern los valores resultantes colocados en la
primera fila del cuadro tabulado (fila sombreada):
Para la tabulacin, la frmula se puede extender a cada punto i:
f[xi : i+k ] =
xi
f[xi]
f[xi:i+1]
f[xi:i+2]
f[xi:i+3]
f[xi:i+4]
x0
f[x0]
f[x0:1]
f[x0:2]
f[x0:3]
f[x0:4]
x1
f[x1]
f[x1:2]
f[x1:3]
f[x1:4]
x2
f[x2]
f[x2:3]
f[x2:4]
x3
f[x3]
f[x3:4]
x4
f[x4]
160
Ejemplo. Dados los siguientes puntos: (2, 5), (4, 6), (5, 3), (7, 2), encuentre y grafique el
polinomio de interpolacin que incluye a los cuatro datos, usando el mtodo de diferencias
divididas:
Tabla de diferencias divididas:
i
xi
f[xi]
f[xi : i+1]
f[xi : i+2]
65 1
=
42 2
3 1/ 2
7
=
52
6
36
= 3
54
23
1
=
75
2
1/ 2 (3) 5
=
74
6
f[xi : i+3]
5 / 6 (7 / 6) 2
=
72
5
p3 (x) = f[x 0 ] + f[x 0 : 1 ](x x 0 ) + f[x 0 : 2 ](x x 0 )(x x1 ) + f[x 0 : 3 ](x x 0 )(x x1 )(x x 2 )
Reemplazando los coeficientes, tomados de la primera fila, y simplificando:
p3 (x) =+
5 (1/ 2)(x 2) + (7 / 6)(x 2)(x 4) + (2 / 5)(x 2)(x 4)(x 5)
2
167 2 227
64
= x3
x +
x
5
30
10
3
8
7
6
5
4
3
2
1
0
4
x
161
6.7.1
f[x
=
0:n ]
xn x 0
n!hn
n!
162
6.8
Dados los puntos (xi, fi), i = 1, 2,..., n, que corresponden a observaciones o mediciones. Si se
considera que estos datos contienen errores y que es de inters modelar nicamente su
tendencia, entonces el polinomio de interpolacin no es una buena opcin. Una alternativa es el
polinomio de mnimos cuadrados. Estos polinomios tienen mejores propiedades para realizar
predicciones o extrapolaciones.
Si los datos tienen una tendencia lineal, la mejor recta ser aquella que se coloca entre los
puntos de tal manera que se minimizan las distancias de los puntos dados a esta recta, la cual
se denomina recta de mnimos cuadrados y se la obtiene con el siguiente procedimiento:
Para cada valor xi se tiene el dato fi y el valor p(xi) obtenido con la recta de mnimos cuadrados.
Sea p(x) = a1 + a2x la recta de mnimos cuadrados
Si ei = fi - p(xi) es la diferencia entre el dato y el punto de la recta de mnimos cuadrados.,
2
entonces, el objetivo es minimizar e i para todos los puntos. El cuadrado es para considerar
distancia, no importa si el punto est sobre o debajo de la recta
Criterio de para obtener la recta de mnimos cuadrados
n
n
2
i
=i 1=i 1
Minimizar
S=
n
2
i
=i 1
e = (f p(x )) = (f a
i
a 2 x)2
Para minimizar esta funcin S cuyas variables son a1, a2 se debe derivar con respecto a cada
variable e igualar a cero:
n
n
n
S
2
+
=
f
a
a
x
0
na
a
x
=0:
(
)
i 1 2 i
fi
1
2 i
a 1 i 1
a 1
=
=i 1=i 1
n
n
n
n
S
2
= 0:
( fi a1 a2 xi ) =0 a1 xi + a2 xi2 = xi fi
a 2 i 1
a 2
=
=i 1 =i 1=i 1
a1n + a 2 xi =
fi
=i 1=i 1
a1 xi + a 2 xi2 =
xi fi
=i 1
=i 1=i 1
163
Ejemplo
Los siguientes datos corresponden a una muestra de 5 estudiantes que han tomado cierta
materia. Los datos incluyen la calificacin parcial y la calificacin final. Se pretende encontrar un
modelo que permita predecir la calificacin final que obtendra un estudiante dada su calificacin
parcial.
Estudiante
1
2
3
4
5
Nota Parcial
43
64
38
57
30
Nota final
75
82
70
76
68
5a1 + a 2 xi =
fi
=i 1=i 1
a1 xi + a 2 xi2 =
xi fi
=i 1
=i 1=i 1
164
De donde se obtiene la recta de mnimos cuadrados
p(x) = a1 + a2 x = 56.7610 + 0.3758 x
Cuyo forma se muestra en el siguiente grfico:
6.8.1
Prctica computacional
165
6.9 Ejercicios y problemas con el polinomio de interpolacin
1. Los siguientes datos son observaciones de los ingresos f en base al monto de inversin x
realizada en cierto negocio (miles de dlares): (5.5, 83.0), (8.2, 94.5), (12.4, 105.0), (19.0, 92.0)
a) Encuentre el polinomio de interpolacin de tercer grado con la frmula de Lagrange
Con este polinomio determine:
b) La ganancia que se obtiene si la inversin fuese 15.0
c) Cuanto habra que invertir si se desea una ganancia de 100.0
d) Para que valor de inversin se obtiene la mxima ganancia.
2. Encuentre un polinomio de interpolacin para expresar en forma exacta la suma de los cubos
de los primeros k nmeros naturales:
3
s(k) = 1 + 2 + 3 + . . . + k ,
k = 1, 2, 3, 4,
% de ingreso global
10
25
70
100
166
a) Encuentre la demanda en la semana 3.5
b) Encuentre en que da la demanda fue 50
c) Encuentre en que da se tuvo la mayor demanda
6. Suponga que en el siguiente modelo f(x) describe la cantidad de personas que son
2
0.1X
infectadas por un virus: f(x) = a x + b x + c e
, en donde x es tiempo en das.
Siendo a, b, c coeficientes que deben determinarse.
Se conoce que la cantidad de personas infectadas en los das 0, 5 y 10 son respectivamente:
f(0)=1, f(5)=4, f(10)=20
a) Plantee un sistema de ecuaciones lineales y resulvalo para determinar los coeficientes.
b) Use el modelo f(x) para determinar en cual da la cantidad de personas infectadas por el virus
ser 1000. Obtenga la solucin con el mtodo de la Biseccin. Previamente encuentre un
intervalo de convergencia y obtenga la respuesta con un decimal exacto. Muestre los valores
intermedios calculados hasta llegar a la solucin.
x
3.534
-----------------------------
-----------------------------
0.192
---------------
0.053
--------
0.002
Tambin se haba hecho una interpolacin con un polinomio de primer grado en x = 1.4
obtenindose como resultado de la interpolacin el valor 4.0755
167
a) Con los datos suministrados reconstruya la tabla de diferencias finitas
b) Encuentre el valor de f(1.62) con un polinomio de interpolacin de diferencias finitas de tercer
grado, y estime el error en la interpolacin.
c) Encuentre el valor de x tal que f(x) = 5.4 con un polinomio de interpolacin de diferencias
finitas de tercer grado. Para obtener la respuesta debe resolver una ecuacin cbica. Use el
Mtodo de Newton y obtenga el resultado con cuatro decimales exactos. Previamente encuentre
un intervalo de convergencia.
10. La suma de los cuadrados de los primeros k nmeros pares:
2
2
2
2
s(k) = 2 + 4 + 6 + . . . . + (2k)
Se puede expresar exactamente mediante un polinomio de interpolacin.
a) Encuentre el polinomio de interpolacin con el polinomio de diferencias finitas
b) Calcule s(100) usando el polinomio.
11. Se registraron los siguientes datos de la cantidad de producto obtenido experimentalmente
en parcelas de cultivo en las que se suministraron tres cantidades diferentes de fertilizante tipo 1
y cuatro cantidades diferentes de fertilizante tipo 2:
Fert. 1
1.0
1.5
2.0
Fertilizante 2
1.4
1.6
7.8
7.5
8.6
9.2
9.6
9.3
1.2
7.2
8.2
9.5
1.8
7.3
9.0
8.6
Use todos los datos dados para determinar mediante una interpolacin polinomial con el mtodo
de Lagrange, la cantidad de producto que se obtendra si se usaran 1.2 de fertilizante 1 y 1.5
de fertilizante 2.
12. Una empresa que vende cierto producto ha observado que su demanda depende del precio
al que lo vende (P en $/unidad) y tambin del precio al que la competencia vende un producto de
similares caractersticas (Q en $/unidad). Recopilando informacin histrica respecto a lo que ha
sucedido en el pasado se observ que la demanda diaria (unidades vendidas por da) de este
producto fueron de:
P
1
1.1
1.2
1.3
1.1
1.2
100
110
120
130
91
100
109
118
83
92
100
108
Use todos los datos dados y el polinomio de interpolacin de Lagrange para estimar los
ingresos mensuales de la empresa por la venta de este producto si decide venderlo a $1.15
por unidad y conoce que la competencia estableci un precio de $1.25 por unidad.
168
13. Se han registrado los siguientes datos del crecimiento demogrfico V de los individuos en
una regin en donde x es tiempo en meses
x = [5, 10, 15, 20]
V = [12, 25, 80, 200]
Observando el crecimiento rpido de los valores de V se ha propuesto el siguiente modelo
exponencial: V = c (d)
169
6.10 El trazador cbico
El polinomio de interpolacin es til si se usan pocos datos y estos tienen un comportamiento
tipo polinomial. Normalmente, un polinomio de grado bajo es una representacin adecuada de
los datos. Si no se cumplen estas condiciones, el polinomio puede tomar una forma
distorsionada y en algunos casos puede ser inaceptable como un modelo para representar a los
datos, como se muestra en el siguiente ejemplo:
Ejemplo. Se tienen cinco observaciones y se desea construir con estos datos un modelo cuyo
perfil tenga una forma tipo campana aproximadamente: (2, 4), (4,6), (5,8), (6,7), (8,4)
Con el mtodo de Lagrange obtenemos el polinomio
4
3
2
p(x) = 19/144 x 389/144 x + 1375/72 x 484/9 x + 164/3
El grfico se muestra a continuacin
2
2
5
t
Se observa que en los intervalos izquierdo y derecho la forma del polinomio no es apropiada
para expresar la tendencia de los datos.
Una opcin pudiera ser colocar polinomios de interpolacin en tramos. Por ejemplo un polinomio
de segundo grado con los puntos (2, 4), (4,6), (5,8), y otro polinomio de segundo grado con los
puntos (5,8), (6,7), (8,4). Sin embargo, en el punto intermedio (5, 8) en el que se uniran ambos
polinomios de segundo grado se tendra un cambio de pendiente inaceptable.
Una mejor opcin consiste en usar el trazador cbico. Este dispositivo matemtico equivale a
la regla flexible que usan algunos dibujantes y que permite acomodarla para seguir de una
manera suave la trayectoria de los puntos sobre un plano.
6.10.1 El trazador cbico natural
Dados los puntos (xi, yi), i = 1, 2, ..., n, el trazador cbico natural es un conjunto de n-1
polinomios de grado tres colocados uno a uno entre cada par de puntos consecutivos, de tal
manera que haya continuidad, manteniendo igual pendiente y curvatura con los polinomios de
intervalos adyacentes.
Definicin:
3
2
x2 x x3
a (x x 2 ) + b2 (x x 2 ) + c2 (x x 2 ) + d2 ,
T(x) = 2
.
.
.
3
2
an1(x x n1) + bn1(x xn1 ) + cn1(x xn1 ) + dn1, xn-1 x xn
170
Formulacin del trazador cbico natural
Polinomio para cada intervalo:
y = p(x) = ai (x xi )3 + bi (x xi )2 + ci (x xi ) + di
(0)
x i x x i+ 1, =
i 1,2,...,n 1
(3)
(4)
ai =
Si + 1 Si
6hi
(5)
(6)
171
Sustituimos (1), (5), y (6) en (2)
S Si 3 Si 2
hi +
hi + ci hi + yi
yi+1 = i + 1
6hi
2
De donde se obtiene:
y yi 2hi Si + hi Si + 1
(7)
ci = i + 1
hi
6
Con lo que los coeficientes de p(x) quedan expresados mediante los datos dados y los valores
de las segundas derivadas S
Coeficientes del trazador cbico
ai =
Si + 1 Si
6hi
Si
2
yi + 1 yi 2hi Si + hi Si + 1
ci =
hi
6
di = yi
bi =
(8)
i = 1, 2, ..., n-1
En el punto intermedio entre dos intervalos adyacentes, la pendiente de los polinomios debe ser
igual:
yi + 1 yi 2hi Si + hi Si + 1
S Si 1 2
y yi 1 2hi 1Si 1 + hi 1Si
S
= 3( i
) hi 1 + 2( i 1 )hi-1 + i
6hi
6
6hi 1
hi
6
2
172
Despus de simplificar se obtiene:
hi-1Si-1 + 2(hi-1 + hi)Si + hiSi+1 = 6 (
yi + 1 yi yi yi 1
) , i = 2, 3, ..., n-1
hi
hi 1
(9)
Esta ecuacin debe evaluarse con los datos dados, con lo que se obtiene un sistema de n 2
ecuaciones lineales con las n variables: S1, S2, ..., Sn
Para obtener dos datos adicionales se considera que en el trazador cbico natural los puntos
extremos inicial y final estn sueltos por lo que no tienen curvatura. Con esta suposicin el valor
de la segunda derivada tiene un valor nulo en los extremos, y se puede escribir:
S1 = 0, Sn = 0
(10)
yi + 1 yi yi yi 1
) , i = 2, 3, ..., n-1
hi
hi 1
S1 = 0, Sn = 0
ai =
(9)
(10)
Si + 1 Si
6hi
Si
2
yi + 1 yi 2hi Si + hi Si + 1
ci =
hi
6
di = yi
bi =
(8)
i = 1, 2, ..., n-1
y = p(x) = ai (x xi )3 + bi (x xi )2 + ci (x xi ) + di
x i x x i+ 1, =
i 1,2,...,n 1
(0)
173
Ejemplo. Dados los datos (2, 5), (4,6), (5,9), (8,5), (10,4) encuentre el trazador cbico natural
Solucin:
Anotamos los datos en la terminologa del trazador cbico
n=5
i
xi
yi
hi = xi+1 - xi
1
2
5
2
2
4
6
1
3
5
9
3
4
8
5
2
5
10
4
S1 = 0, S5 = 0, de acuerdo a la definicin (10)
Al sustituir en (9) se obtiene un sistema de ecuaciones lineales
y yi yi yi 1
) , i = 2, 3, 4
hi-1Si-1 + 2(hi-1 + hi)Si + hiSi+1 = 6 ( i + 1
hi
hi 1
i = 2:
y3 y2 y2 y1
)
h2
h1
96 65
6S2 + S3 = 15
)
1
2
y y3 y3 y2
)
59 96
S2 + 8S3 + 3S4 = -26
)
3
1
y y 4 y 4 y3
)
i = 4:
3
0 3 10 S 4
59 96
)
3
1
S3 + 10S4 = 5
15
26 Resolviendo este sistema resulta
S2
S =
3
S 4
3.2212
4.3269
1.7981
2x4
4x5
5x8
8 x 10
174
6.10.3
175
p=[ ];
m=length(z);
for k=1:m
t=z(k);
for i=1:n-1
if t>=x(i) & t<=x(i+1)
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
end
if m>1
k=m;i=n-1;
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
Ejemplo. Encuentre el trazador cbico natural usando la funcin anterior para los siguientes
puntos: (2, 4), (4, 6), (5, 8), (6, 7), (8, 4)
>> x = [2 4 5 6 8];
>> y = [4 6 8 7 4];
>> p=trazador(x,y);
Vector de celdas con los polinomios segmentarios
>> p{1}
ans =
(27*t^3)/176 - (81*t^2)/88 + (49*t)/22 + 2
>> p{2}
ans =
- (101*t^3)/88 + (1293*t^2)/88 - (1325*t)/22 + 938/11
>> p{3}
ans =
(79*t^3)/88 - (1407*t^2)/88 + (1025*t)/11 - 3749/22
>> p{4}
ans =
- (5*t^3)/176 + (15*t^2)/22 - (301*t)/44 + 326/11
La funcin tambin permite evaluar el trazador en puntos especficos.
Ejemplo. Con el trazador cbico, evaluar el resultado para x = 3:
>> r=trazador(x, y, 3)
r=
4.5398
Para observar el perfil del trazador, se pueden graficar los polinomios simblicos obtenidos, pero
es ms simple generar muchos puntos y conectarlos con segmentos de recta usando la funcin
plot de MATLAB:
Ejemplo. Dibujar el perfil del trazador cbico natural sobre los puntos dados y el polinomio de
interpolacin
>> plot(x, y, o), grid on, hold on
>> p=lagrange(x, y);
>> ezplot(p, [2, 8]);
>> u = [2: 0.01: 8];
>> v = trazador(x, y, u);
>> plot(u, v)
176
8
Trazador cbico
natural
4
Polinomio de interpolacin
3
2
2
5
t
Puede observarse la notable mejora en el modelo para representar a los datos dados.
6.10.4
Puede ser de inters asignar alguna pendiente especfica a los extremos inicial y final del
trazador cbico. Esta versin se denomina trazador cbico sujeto o fijo. Por lo tanto, ya no se
aplica la definicin del trazador cbico natural en el que se supone que los extremos estn
sueltos o libres con pendiente constante, y sus segundas derivadas tendrn un valor nulo:
S1 = 0, Sn = 0
Formulacin del trazador cbico sujeto
Dados los puntos (xi, yi), i = 1, 2, ..., n.
Adicionalmente se especifica como datos, la inclinacin del trazador en los extremos:
y(x1) = u
y(xn) = v
Utilizamos la expresin (3) del anlisis anterior:
2
y = 3ai(x xi) + 2bi(x xi) + ci
Sustituimos los datos dados para los polinomios en el primero y ltimo intervalo:
En el primer intervalo:
2
x = x1: y(x1) = u = 3a1(x1 x1) + 2b1(x1 x1) + c1 = c1
Se sustituye la definicin de c1 y se tiene
y y1 2h1S1 + h1S2
u= 2
h1
6
Finalmente,
y y1
1
1
u 2
h1S1 h1S2 =
3
6
h1
En el ltimo intervalo:
2
x = xn: y(xn) = v = 3an-1(xn xn-1) + 2bn-1(xn xn-1) + cn-1
v = 3an-1 hn2 1 + 2bn-1 hn-1 + cn-1
(11)
177
Se sustituyen las definiciones de los coeficientes:
S Sn 1 2
S
y yn 1 2hn 1Sn 1 + hn 1Sn
=
v 3( n
)hn 1 + 2( n 1 )hn 1 + n
6hn 1
2
hn 1
6
De donde se tiene
S Sn 1
y yn 1 2hn 1Sn 1 + hn 1Sn
=
v ( n
)hn 1 + Sn 1hn 1 + n
2
hn 1
6
Finalmente:
y yn 1
1
1
hn 1Sn 1 + hn 1Sn =
v n
6
3
hn 1
(12)
Las ecuaciones (11) y (12) junto con las ecuaciones que se obtienen de (9) conforman un
sistema tridiagonal de n ecuaciones lineales con las n variables S1, S2, ..., Sn
El resto del procedimiento es similar al que corresponde al trazador cbico natural.
y y1
1
1
h1S1 h1S2 = u 2
h1
3
6
hi-1Si-1 + 2(hi-1 + hi)Si + hiSi+1 = 6 (
(11)
yi + 1 yi yi yi 1
) , i = 2, 3, ..., n-1
hi
hi 1
y yn 1
1
1
hn 1Sn 1 + hn 1Sn = v n
hn 1
6
3
ai =
(9)
(12)
Si + 1 Si
6hi
Si
2
yi + 1 yi 2hi Si + hi Si + 1
ci =
hi
6
i = 1, 2, ..., n-1
di = yi
bi =
(8)
y = p(x) = ai (x xi )3 + bi (x xi )2 + ci (x xi ) + di
(0)
x i x x i+ 1, =
i 1,2,...,n 1
178
6.10.6
function p=trazadorsujeto(x,y,u,v,z)
% Trazador Cbico Sujeto
% u,v son las pendientes en los extremos
% a(i)(z-x(i))^3+b(i)(z-x(i))^2+c(i)(z-x(i))+d(i), n>2
% z es opcional: es el vector de puntos para evaluar al trazador
% Entrega los polinomios segmentarios en un vector de celdas
% o puntos del trazador
n=length(x);
clear A B C D;
if n<3
p=[ ];
return
end
for i=1:n-1
h(i)=x(i+1)-x(i);
end
B(1)=-2*h(1)/6;
C(1)=-h(1)/6;
D(1)=u-(y(2)-y(1))/h(1);
for i=2:n-1
A(i)=h(i-1);
B(i)=2*(h(i-1)+h(i));
C(i)=h(i);
D(i)=6*((y(i+1)-y(i))/h(i)-(y(i)-y(i-1))/h(i-1));
end
A(n)=h(n-1)/6;
B(n)=h(n-1)/3;
D(n)=v-(y(n)-y(n-1))/h(n-1);
s=tridiagonal(A,B,C,D);
for i=1:n-1
% Coeficientes del trazador cbico sujeto
a(i)=(s(i+1)-s(i))/(6*h(i));
b(i)=s(i)/2;
c(i)=(y(i+1)-y(i))/h(i)-(2*h(i)*s(i)+h(i)*s(i+1))/6;
d(i)=y(i);
end
if nargin==4
%Polinomios segmentarios
syms t
for i=1:n-1
p{i}=expand(a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i));
end
else
% Puntos del trazador cbico sujeto
p=[ ];
m=length(z);
179
for k=1:m
t=z(k);
for i=1:n-1
if t>=x(i) & t<=x(i+1)
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
end
if m>1
k=m;i=n-1;
p(k)=a(i)*(t-x(i))^3+b(i)*(t-x(i))^2+c(i)*(t-x(i))+d(i);
end
end
Ejemplo. Corregir el perfil del trazador cbico del ejemplo anterior para que la curva comience y
termine con pendiente nula. De esta manera se acercar ms al perfil de una distribucin tipo
campana, lo cual fue el objetivo inicial. Usar los mismos datos:
(2, 4), (4, 6), (5, 8), (6, 7), (8, 4)
>> x = [2 4 5 6 8];
>> y = [4 6 8 7 4];
>> p = trazadorsujeto(x, y, 0, 0);
Vector de celdas con los polinomios segmentarios
>> p{1}
ans =
(11*t^3)/160 - t^2/20 - (5*t)/8 + 49/10
>> p{2}
ans =
- (21*t^3)/20 + (107*t^2)/8 - (2173*t)/40 + 153/2
>> p{3}
ans =
(7*t^3)/10 - (103*t^2)/8 + (3077*t)/40 - 569/4
>> p{4}
ans =
(41*t^3)/160 - (391*t^2)/80 + 29*t - 232/5
La funcin tambin permite evaluar el trazador en puntos especficos.
Ejemplo. Con el trazador cbico sujeto, evaluar el resultado para x = 3:
>> r=trazadorsujeto(x, y, 0, 0, 3)
r=
4.4313
Igual que en el trazador cbico natural, para observar el perfil del trazador sujeto, es ms simple
generar muchos puntos y conectarlos con segmentos de recta usando la funcin plot:
Ejemplo. Dibujar el perfil del trazador cbico sujeto sobre los puntos dados, el polinomio de
interpolacin y el trazador cbico natural
>> u = [2: 0.01: 8];
>> t = trazadorsujeto(x, y, 0, 0, u);
>> plot(u, t);
180
(
7
Trazador cbico
natural
6
5
Polinomio de
interpolacin
Trazador cbico
sujeto
2
2
5
t
El perfil del trazador cbico sujeto suaviza los extremos y proporciona un mejor modelo.
La biblioteca de MATLAB tiene la funcin spline para obtener puntos del trazador cbico natural.
Sin embargo, los resultados no siempre son aceptables como se muestra en el siguiente
ejemplo. Adicionalmente, no proporciona la forma simblica de los polinomios segmentarios.
Ejemplo. Usar la funcin spline de MATLAB para obtener puntos del trazador cbico natural y
dibujarlos sobre los grficos anteriores para comparar y evaluar.
>> u = [2: 0.01: 8];
>> t = trazadorsujeto(x, y, 0, 0, u);
>> plot(u, t);
(
7
Trazador cbico
natural
6
5
Polinomio de
interpolacin
Trazador cbico
sujeto
Trazador cbico
spline
2
2
5
t
181
6.10.7 Ejercicios con el trazador cbico
1. Con los siguientes datos (x, y): (1.2, 4.6), (1.5, 5.3), (2.4, 6.0), (3.0, 4.8), (3.8, 3.1)
a) Encuentre el trazador cbico natural
b) Encuentre el valor interpolado para x=2.25
2. Con los siguientes datos (x, y): y(1.2) = 1, (1.5, 5.3), (2.4, 6.0), (3.0, 4.8), y(3.8) = -1
a)
b)
182
7
INTEGRACIN NUMRICA
f(z) =
1
2
1
z2
2
P(a Z b) =
f(z)dz
a
A =
f(x)dx
a
En general hay dos situaciones en las que son tiles los mtodos numricos:
1) El integral existe pero es muy difcil o no se puede evaluar analticamente.
2) nicamente se conocen puntos de f(x) pero se requiere calcular en forma aproximada el
integral debajo de la curva descrita por los puntos dados
En ambos casos se trata de sustituir f(x) por alguna funcin ms simple, siendo importante
adems estimar la precisin del resultado obtenido.
7.1
Frmulas de Newton-Cotes
183
7.1.1 Frmula de los trapecios
Esta frmula usa como aproximacin para f un polinomio de primer grado:
f(x) p1(s) = f0 + f0 s
En general, la aproximacin mediante una sola recta en el intervalo [a, b] tendra poca precisin
por lo que conviene dividir el intervalo [a, b] en m sub-intervalos y colocar en cada uno, una
recta cuyos extremos coinciden con f(x).
La figura geomtrica en cada intervalo es un trapecio. Sea Ai el rea del trapecio i y sea Ti el
error de truncamiento respectivo, es decir la diferencia entre el rea debajo de f(x) y el rea de
cada trapecio i, i = 1, 2, 3, , m. El rea se puede aproximar con:
b
A = f(x)dx A1 + A2 + A3 + . . .+ Am =
i=1
A
i=1
A=
f(x)dx
x1
x2
xm
x0
x1
x m 1
p 1(s)dx +
p1(s)dx + . +
p1(s)dx
A = A1 + A2 + . . . + Am
m: cantidad de franjas espaciadas regularmente en h, siendo h =
ba
m
x1
x1
x0
x0
p1(s)dx =
(f0 + f0 s)dx
184
Mediante las sustituciones:
s = (x x0)/h
x = x0 S = 0
x = x1 S = 1
dx = h ds
1
A1 =
(f0 + f0 s)hds = h
f0s +
1
2
f0s
2
= h [f0 +
0
1
(f1 f0)]
2
h
A1 =
[f0 + f1], es la conocida frmula de la geometra para el rea de un trapecio
2
0 f(x)dx
h
ba 20
[f0 + 2f1 + 2f2 + 2f3 + f4],=
h
= = 0.5
2
m
4
0.5
=
[f(0) + 2f(0.5) + 2f(1) + 2f(1.5) + f(2)] = 1.5225
2
Sin embargo, es necesario poder contestar una pregunta fundamental: Cul es la precisin del
resultado calculado?
7.1.2
s 2 (2)
E1(s) = h f (z1), x0<z1<x1
2
Clculo del rea correspondiente al error en el uso del polinomio para aproximar a f
x1
T1 =
E1(s)dx =
x0
x1
s 2 (2)
2 h f (z1)dx =
x0
x1
2 s(s 1)h
x0
2 (2)
(z1 )dx
185
x = x0 S = 0
x = x1 S = 1
dx = h ds
h3
2
T1 =
Con el teorema del valor medio para integrales, puesto que s(s-1), no cambia de signo en el
intervalo [0,1], se puede sacar del integral la funcin f evaluada en algn punto z1 desconocido,
en el mismo intervalo.
1
h3
f(z1) s(s 1)ds , x0<z1<x1
2
0
T1 =
h2
(b a) f(z), a z b
12
A
i=1
Sean Am =
Ai , Am' =
i=1
A
m'
A
i=1
'
| Am Am' |
| Am' |
186
Hay que tener la precaucin de no usar valores muy grandes para m por el efecto del error de
redondeo acumulado en las operaciones aritmticas y que pudiera reducir la precisin en el
resultado.
En caso de conocer nicamente puntos de f, al no disponer de ms informacin para estimar el
error de truncamiento, un criterio simple puede ser tomar el mayor valor de las segundas
diferencias finitas como una aproximacin para la segunda derivada en la frmula del error,
siempre que no cambien significativamente:
h2
(b a) f(z), a z b
12
2f
f(z) 2 i
h
(b-a)
| max(| 2 fi |)
T |12
T=-
Esta frmula tambin pudiera usarse para estimar el error de truncamiento en el caso de que f(x)
se conozca explcitamente y m haya sido especificado. Habra que tabular las diferencias finitas
para los puntos usados en la integracin numrica y estimar el error con la frmula anterior.
Ejemplo. Estime cuantos trapecios deben usarse para integrar f(x) = sen(x) en el intervalo [0,2]
de tal manera que la respuesta tenga el error absoluto menor a 0.0001
Se requiere que error de truncamiento cumpla la condicin:
| T | < 0.0001
h2
(b a) f(z) | < 0.0001
|
12
Siendo el valor de z desconocido se debe usar el mximo valor de f(z) = -sen(z), 0<z<2
max | f(z) | = 1
h2
|
(2 0) (1)| < 0.0001
12
De donde
Entonces
h < 0.0006
h < 0.0245
ba
< 0.0245
m
m > (2 0)/0.0245
m > 81.63 m = 82 trapecios
Ejemplo. Estime cuantos trapecios deben usarse para integrar f(x) = x sen(x) en el intervalo
[0,2] de tal manera que la respuesta tenga el error absoluto menor a 0.0001
Se requiere que error de truncamiento cumpla la condicin:
| T | < 0.0001
h2
(b a) f(z) | < 0.0001
|
12
Siendo el valor de z desconocido se debe usar el mximo valor de
cos(z)
sen(z)
f=
''(z)
zsen(z)
, 0<z<2
z
4 z3
Problema demasiado complicado para estimar el mayor valor de la derivada y acotar el error.
187
En esta situacin, se puede estimar el error comparando resultados con valores sucesivos de m
hasta que la diferencia sea suficientemente pequea. Para los clculos conviene instrumentar
una funcin en MATLAB.
En este ejemplo no se pueden tabular las diferencias finitas para estimar f''(x) con f(x) pues m
no est especificado
2
f
0.0000
0.3390
0.8415
1.2217
1.2859
T |-
f
0.3390
0.5025
0.3802
0.0643
f
0.1635
-0.1223
-0.3159
2
(b-a)
(2-0)
| max(| 2 fi |) =
(0.3159) = 0.0527
12
12
Ejemplo. Dados los puntos de una funcin f: (0.1, 1.8), (0.2, 2.6), (0.3, 3.0), (0.4, 2.8), (0.5, 1.9)
Calcule el rea A debajo de f aproximando mediante cuatro trapecios y estime el error en el
resultado obtenido.
0.1
[1.8 + 2(2.6) + 2(3.0) + 2(2.8) + 1.9] = 1.0250
2
Al no disponer de ms informacin, se usarn las diferencias finitas para estimar el error
A=
X
0.1
0.2
0.3
0.4
0.5
T |-
f
1.8
2.6
3.0
2.8
1.9
f
0.8
0.4
-0.2
-0.9
f
-0.4
-0.6
-0.7
2
(b-a)
(0.5-0.1)
| max(| 2 fi |) =
(0.7) = 0.0233
12
12
7.1.3
Si se quiere integrar debajo de una funcin dada en forma explcita, conviene definir una funcin
de MATLAB para evaluar el integral dejando como dato el nmero de trapecios m. Los
resultados calculados pueden usarse como criterio para estimar el error de truncamiento.
En la siguiente instrumentacin debe suministrarse la funcin f (definida en forma simblica y en
formato inline), el intervalo de integracin a, b y la cantidad de franjas o trapecios m
188
function r = trapecios(f, a, b, m)
f=inline(f);
h=(b-a)/m;
s=0;
for i=1: m - 1
s=s + f(a + i*h);
end
r = h/2*(f(a) + 2*s + f(b));
Ejemplo. Probar la funcin esta funcin para integral f(x)=sen(x), 0x2
>> f = sin(x);
>> t = trapecios(f, 0, 2, 5)
t=
1.397214
Se puede probar con ms trapecios para mejorar la aproximacin
>> t = trapecios(f, 0, 2, 50)
t=
1.415958
>> t = trapecios(f, 0, 2, 500)
t=
1.416144
Compare con el valor exacto que proporciona MATLAB
>> t = eval(int(f,0,2))
t=
1.416146
Los resultados tienden hacia el valor exacto a medida que se incrementa el nmero de trapecios.
Estos resultados pueden usarse como criterio para determinar la precisin de la aproximacin.
Ejemplo. La siguiente funcin no es integrable analticamente: S =
x s en(x)dx
Use la frmula de los trapecios para obtener la respuesta aproximada y estimar el error.
>> f=sqrt(x)*sin(x);
>> ezplot(f,[0,2]),grid on
>> r=trapecios(f,0,2,10)
r=
1.5313
>> r=trapecios(f,0,2,20)
r=
1.5323
>> r=trapecios(f,0,2,40)
r=
1.5326
>> r=trapecios(f,0,2,50)
r=
1.5326
x 1/2 sin(x)
1.4
1.2
1
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
El ltimo resultado tiene cuatro decimales que no cambian y se pueden considerar correctos.
189
7.1.4
Frmula de Simpson
Esta frmula usa como aproximacin para f un polinomio de segundo grado, o parbola:
f(x) p2(s) = f0 + f0 s +
1 2
f0 s(s-1)
2
x2
x4
xm
x0
x2
x m 2
f(x)dx
p2 (s)dx +
p2 (s)dx + . +
p 2 (s)dx
A A1 + A2 + . + Am/2
El rea de dos intervalos consecutivos es aproximada mediante el rea debajo de parbolas. Los
puntos son numerados desde cero: x0, x1, ..., xm, e donde m debe ser un nmero par, as la
cantidad de parbolas es m/2.
h=(b-a)/m
Para obtener la frmula se debe encontrar el valor del rea para una parbola:
x2
A1 =
p2 (s)dx =
x0
x2
[f0 + fs s + 2
f0 s(s 1)] dx
x0
A1 =
(f0 + f0 s + 2
f0 s(s 1)hds
190
Definicin.
h
[f0 + 4f1 + 2f2 + 4f3 +.. + 2fm-2 + 4fm-1 + fm]
3
m es un parmetro para la frmula (debe ser un nmero par)
A=
7.1.5
f
1.8
2.6
3.0
2.8
1.9
f
0.8
0.4
-0.2
-0.9
f
-0.4
-0.6
-0.7
2
h4
(4)
(b a) f (z), a<z<b
180
(b-a)
(0.5-0.1)
| max| 4 fi | =
(0.1) = 0.00022
T |180
180
T=
f
-0.2
-0.1
3
f
0.1
4
191
Esto indicara que podemos tener confianza en la respuesta hasta el tercer decimal. Resultado
mejor que el obtenido con la Regla de los Trapecios
Ejemplo. Si f es una funcin diferenciable en el intervalo [a,b], la longitud del arco de la curva
f(x) en ese intervalo se puede calcular con el integral
=
S
b
a
1 + [f '(x)]2 dx
=
s
g(x)dx
=
1 + [f '(x)]2 dx
1 + cos2 (x)dx
ba 20
= = 0.5
m
4
h
S = [f0 + 4f1 + 2f2 + 4f3 + f4]
3
0.5
[g(0) + 4g(0.5) + 2g(1) + 4g(1.5) + g(2)]
S=
3
S = 2.3504
=
h
(b-a)
(2-0)
| max( 4 fi )=
(0.0148) = 0.00016
180
180
7.1.6
192
Ejemplo. Integrar f ( x=
)
1 + cos 2 ( x ) 0x2, con la frmula de Simpson iterativamente
hasta que el error de truncamiento sea menor que 0.0001
>> f = sqrt(1+(cos(x))^2);
>> r=simpson(f,0,2,4)
r=
2.3504
>> r=simpson(f,0,2,8)
r=
2.3516
>> r=simpson(f,0,2,12)
r=
2.3517
>> r=simpson(f,0,2,16)
r=
2.3517
7.1.7
ba
, cuando h 0 m R puede crecer
h
193
x
Ejemplo. Encontrar el rea entre f(x) = 4 + cos(x+1), y g(x)=e sen(x), que incluya el rea entre
las intersecciones de f y g en el primer cuadrante. Use la Regla de Simpson, m=10.
>> f=4+x*cos(x+1);
>> g=exp(x)*sin(x);
>> ezplot(f,[0,3.5]),grid on
>> hold on
>> ezplot(g,[0,3.5])
e p( ) s ( )
8
6
4
-2
-4
-6
0
0.5
1.5
2.5
3.5
194
7.2
En esta seccin se describe una tcnica denominada de los Coeficientes Indeterminados para
obtener frmulas de integracin numrica.
El procedimiento consiste en proponer una frmula conteniendo algunas incgnitas. Esta frmula
es aplicada a casos conocidos con el propsito de obtener ecuaciones, de las cuales se
determinan finalmente los valores para las incgnitas.
Como ejemplo se usa este mtodo para obtener una frmula de tres puntos espaciados en h:
Frmula propuesta
2h
A=
f(x)dx =
Deben determinarse los coeficientes c0, c1, c2. Para obtenerlos, se usarn tres casos con
polinomios de grado 0, 1 y 2 con los cuales queremos que se cumpla la frmula. Es suficiente
considerar la forma ms simple de cada caso:
1) f(x) = 1,
2h
A=
(1)dx =
2) f(x) = x,
2h
A=
xdx =
0
2
3) f(x) = x ,
2h
A=
x
0
dx=
8 3
8
h = c0 f(0) + c1f(h) + c2 f(2h)= c0 (0) + c1(h2 ) + c2 (4h2 ) c1 + 4c2=
h
3
3
h
4h
h
=
, c1
=
, c2
3
3
3
Reemplazando en la frmula propuesta se llega a la conocida frmula de Simpson
h
A=
(f(0) + 4f(h) + f(2h))
3
Resolviendo las tres ecuaciones resultantes se obtienen:
=
c0
195
7.3
Cuadratura de Gauss
=
A
=
f(x)dx
Los puntos t0, t1, ..., tm, son desconocidos. Adicionalmente tambin deben determinarse los
coeficientes c0, c1, ..., cm
El caso simple es la frmula de dos puntos. Se usa el mtodo de los coeficientes indeterminados
para determinar las cuatro incgnitas
7.3.1
Frmula propuesta
b
=
A
=
f(x)dx
c0 f(t 0 ) + c1f(t1 )
=
A
f(t)dt
=
c0 f(t 0 ) + c1f(t1 )
Habiendo cuatro incgnitas se tomarn cuatro casos en los que la frmula sea exacta. Se usarn
polinomios de grado 0, 1, 2, 3. Es suficiente considerarlos en su forma ms simple:
1
1) f(t)=1, A =
1
1
2) f(t)=t, A =
1
1
3) f(t)=t , A =
2
dt =
1
1
4) f(t)=t , A =
3
2
2
= c0 f(t 0 ) + c1f(t1 ) =c0 t 20 + c1t12 = c0 t 20 + c1t12
3
3
Se genera un sistema de cuatro ecuaciones no-lineales. Una solucin para este sistema se
obtiene con facilidad mediante simple sustitucin:
Los valores c0 = c1 = 1 satisface a la ecuacin 1).
De la ecuacin 2) se tiene t0 = -t1. Esto satisface tambin a la ecuacin 4).
2
196
Definicin:
A=
c0 f(t 0 ) + c1f(t1 ) =
f(
f(t)dt =
1
1
3
) + f(
1
3
Esta simple frmula es exacta si f es un polinomio de grado menor o igual a tres. Para otra f es
una aproximacin equivalente a sustituir f con un polinomio de grado tres.
1
(2t
Ejemplo. Calcule =
A
+ t 2 1)dt
1
1
1
1
1 3
1 2
1
1
-4/3
A=
f(
) + f( ) =
[2(
) + (
) 1] + [2( )3 + ( )2 1] =
f(t)dt =
3
3
3
3
3
3
1
=
A
=
f(x)dx
c0 f(t 0 ) + c1f(t1 )
Sea
=
x
ba
b+a
t+
2
2
Se tiene que t = 1 x = b,
t = -1 x = a,
dx =
ba
dt
2
Sustituyendo se tiene
Definicin:
A=
f(x)dx=
a
ba
ba
b+a
ba
ba 1 b+a
ba 1 b+a
+
+
f(
t+
)dt=
f(
) + f(
)
2 1
2
2
2
2
2
2
2
3
3
Ejemplo. Calcule A = xe x dx con la frmula de la Cuadratura de Gauss con dos puntos (m=1)
1
b
A = f(x)dx =
a
ba
ba b+a
ba
f(
t+
)dt
[f(t 0 ) + f(t1 )],
2 1
2
2
2
ba 1 b+a
ba 1 b+a
t0 =
,
t1 = +
+
2
2
2
2
3
3
21 1 2+1
1
3
+
=
+ =
t0 =
1.2113
2
2
2
3
2 3
21 1 2+1
1
3
=
+ =
+= 1.7886
t1
2
2
2
3
2 3
1
[ f(1.2113) + f(1.7886)] = 7.3825
2
La respuesta exacta con cuatro decimales es 7.3890. Se observa que usando nicamente dos
puntos se tiene una precisin mejor que usando la frmula de Simpson con tres puntos.
197
1/ 2
1 + 5u + u du
2
Aplique la cuadratura de Gauss con m = 1, 2, 3. Con estos resultados haga una estimacin de la
precisin de la respuesta.
1/ 2
A=
1 + 5u + u du ,
f(u) =
A=
ba
ba 1 b+a
ba 1 b+a
f(
+
) + f(
+
)
2
2
2
2
2
3
3
f(x)dx=
a
1/ 2
m=1: A
5
1 + 5u + u2
f(u)du =
1/ 2 0
1/ 2 0 1 1/ 2 + 0
1/ 2 0 1 1/ 2 + 0
f(
+
) + f(
+
)
2
2
2
2
2
3
3
m=2 : A
1/ 2
f(u)du +
f(u)du
1/ 4
1/ 4 0
1/ 4 0 1 1/ 4 + 0
1/ 4 0 1 1/ 4 + 0
f(
) + f(
)
+
+
2
2
2
2
2
3
3
1/ 2 0
1/ 2 1/ 4 1 1/ 2 + 1/ 4
1/ 2 1/ 4 1 1/ 2 + 1/ 4
f(
) + f(
)
+
+
2
2
2
2
2
3
3
= 1.2237
1/ 6
m=3 : A
2/6
f(u)du +
3/6
f(u)du +
1/ 6
f(u)du
2/6
= 1.2251
E1 = 1.2237 1.2117 = 0.0120
E2 = 1.2251 1.2237 = 0.0014
-3
198
7.3.2
>> f=x*exp(x);
>> s=cgauss(f,1,2)
s = 7.3832
Para mejorar la precisin de sta frmula se la puede aplicar ms de una vez dividiendo el
intervalo de integracin en sub-intervalos.
A = xe x dx = A1 + A2 =
1
1.5
xe x dx +
xe
dx
1.5
Ejemplo. Aplicar sucesivamente la Cuadratura de Gauss incrementando el nmero de subintervalos, hasta que la respuesta tenga cuatro decimales exactos
>> f=x*exp(x)';
>> s=cgaussm(f,1,2,1)
199
s=
7.3833
>> s=cgaussm(f,1,2,2)
s=
7.3887
>> s=cgaussm(f,1,2,3)
s=
7.3890
>> s=cgaussm(f,1,2,4)
s=
7.3890
En el ltimo clculo se han usado 4 sub-intervalos. El valor obtenido tiene cuatro decimales fijos
Para obtener frmulas de cuadratura de Gauss con ms puntos no es prctico usar el mtodo de
coeficientes indeterminados. Se puede usar un procedimiento general basado en la teora de
polinomios ortogonales. En la bibliografa se pueden encontrar estas frmulas as como
expresiones para estimar el error de truncamiento pero imprcticas para su uso.
7.4
Estos integrales se denominan integrales impropios del Tipo I. Adicionalmente debe verificarse si
el integral definido converge a un valor finito.
Ocasionalmente puede ser de inters calcular integrales cuyos lmites no estn acotados, por lo
tanto no se pueden aplicar directamente las frmulas de integracin . Mediante alguna
sustitucin deben reducirse a una forma simple eliminando estos lmites impropios.
Ejemplo. Calcule A =
dx
(1 + x2 )3
dx
dx
dx
A=
A1 + A 2
(1 + x2 )3 =
(1 + x2 )3 + (1 + x2 )3 =
0
0
1
=
A2
dx
(1 +=
x 2 )3
1
dt
2)
(1 + 1/ t2 )3 (=
t
1
t4
(1 + t2 )3 dt
0
200
7.5
Estos integrales se denominan integrales impropios de Tipo II. Adicionalmente debe verificarse si
el integral definido converge a un valor finito. Mediante alguna sustitucin deben reducirse a una
forma integrable eliminando los puntos singulares.
1
Ejemplo. Calcule A =
sen(x)
(x 1)2 / 3 dx
No se puede aplicar directamente la frmula de Simpson por el punto singular. Mediante una
sustitucin adecuada se debe tratar de eliminarlo:
1/3
(x-1) = u. Se elige la potencia 1/3 y n 2/3 para no perder el signo
x = u3 + 1:
1
x = 1 u = 0; x = 0 u = -1; dx = 3u du
2
sen(x)
dx
(x 1)2 / 3=
0
=
A
sen(u3 + 1)
u2
(3u2=
du)
3sen(u3 + 1)du
=
f(u)du
f
0
1.6394
2.3026
2.4988
2.5244
2f
3f
4f
1.6394
0.6633
0.1961
0.0256
-0.9761
-0.4671
-0.1705
0.5090
0.2966
-0.2124
(b-a)
(0 - (-1))
| max(| 4 fi |) =
(-0.2124) = -0.0012
180
180
Ejemplo. Calcule A =
sen(x)
dx con la Cuadratura de Gauss con m = 1, 2
x
0
A=
f(x)dx=
a
ba
ba 1 b+a
ba 1 b+a
f(
+
) + f(
+
)
2
2
2
2
2
3
3
201
Comparando ambos resultados se puede estimar el error en el quinto decimal.
NOTA: Para calcular el integral no se puede aplicar la frmula de Simpson pues sta requiere
evaluar f(x) en los extremos. En este ejemplo, se tendra un resultado indeterminado al evaluar
en x = 0
e1/ x
2 x5 / 3 dx con la frmula de Simpson, m=4.
Esta expresin no es integrable ni analtica, ni numricamente.
Ejemplo. Calcule S =
S=
e1/ x
2 x5 / 3 dx =
1/ 2
eu
2
5 / 3 (du / u )=
1/ 2 1/ u
eu
du
u1/ 3
Sustitucin: t=u :
1/ 2
=
S
eu
=
0 u1/ 3 du
1/3
(1/ 2)1/ 3
et 2
=
3t dt
t
(1/ 2)1/ 3
3te t dt
h
t3
[f0 + 4f1 + 2f2 + 4f3 + f4], f(t) = 3te
3
(1/2)1/3
m=4 h=
= 0.198425
4
S=
7.6
Integrales mltiples
Para evaluar integrales mltiples se pueden usar las reglas de integracin numrica anteriores
integrando separadamente con cada variable:
db
d b
Suponer que se desea integrar V = f(x, y)dxdy = f(x, y)dx dy con la regla de
ca
=
y c=
x a
202
b
b
b
b
f(x,y
)dx
+
4
f(x,y
)dx
+
2
f(x,y
)dx
+
4
f(x,y
)dx
+
.
.
.+
f(x,y
)dx
0
1
2
3
m
a
a
a
a
a
f(x, y0 )dx
a
b
f(x, y1)dx
a
b
f(x, y2 )dx
a
b
f(x, y3 )dx
a
x
( f(x0 , y0 ) + 4f(x1, y0 ) + 2f(x2 , y0 ) + 4f(x3 , y0 ) + . . . + f(xm , y0 ) )
3
x
( f(x0 , y1 ) + 4f(x1, y1 ) + 2f(x2 , y1) + 4f(x3 , y1) + . . . + f(xm , y1 ) )
3
x
( f(x0 , y2 ) + 4f(x1, y2 ) + 2f(x2 , y2 ) + 4f(x3 , y2 ) + . . . + f (xm , y2 ) )
3
x
( f(x0 , y3 ) + 4f(x1, y3 ) + 2f(x2 , y3 ) + 4f(x3 , y3 ) + . . . + f(xm , y3 ) )
3
. . .
b
f(x, ym )dx
a
x
( f(x0 , ym ) + 4f(x1, ym ) + 2f(x2 , ym ) + 4f(x3 , ym ) + . . . + f(xm , ym ) )
3
=
sen(x
+
y)dxdy
sen(x + y)dx dy,
20
=
x 2=
y 0
=
V
1
1
1
0.5
sen(x+2)dx + 4 sen(x+2.5)dx + sen(x+3)dx
3 0
0
0
1
sen(x + 2)dx
0
1
0.5
0.5741
( sen(0 + 2) + 4sen(0.5 + 2) + sen(1 + 2) ) =
3
sen(x + 2.5)dx
0
1
sen(x + 3)dx
0
x =y =0.5
0.5
0.1354
( sen(0 + 2.5) + 4sen(0.5 + 2.5) + sen(1 + 2.5) ) =
3
0.5
-0.3365
( sen(0 + 3) + 4sen(0.5 + 3) + sen(1 + 3) ) =
3
0.5
0.1299
[ 0.5741+ 4(0.1354) +(-0.3365)] =
3
100
200
300
400
0
0
1
0
0
0
3
5
2
0
4
5
6
3
1
6
7
9
5
2
0
3
5
1
0
203
Con todos los datos de la tabla estime el volumen aproximado de agua que contiene el lago.
Utilice la frmula de Simpson en ambas direcciones.
d
V=
f(x, y)dxdy
=
y c=
x a
x y
f(x 0 , y0 ) + 4f(x 0 , y1 ) + 2f(x 0 , y2 ) + 4f(x 0 , y3 ) + f(x 0 , y4 )
3 3
y
+4
f(x1 , y0 ) + 4f(x1 , y1 ) + 2f(x1 , y2 ) + 4f(x1 , y3 ) + f(x1 , y3 )
3
y
+2
f(x 2 , y0 ) + 4f(x 2 , y1 ) + 2f(x 2 , y2 ) + 4f(x 2 , y3 ) + f(x 2 , y4 )
3
y
+4
f(x 3 , y0 ) + 4f(x 3 , y1 ) + 2f(x 3 , y2 ) + 4f(x 3 , y3 ) + f(x 3 , y4 )
3
y
+
f(x 4 , y0 ) + 4f(x 4 , y1 ) + 2f(x 4 , y2 ) + 4f(x 4 , y3 ) + f(x 4 , y4 )
3
=
V
V
=
100 50
[ 0 + 4(0) + 2(1) + 4(0) + 0]
3 3
50
+4
[ 0 + 4(3) + 2(5) + 4(2) + 0]
3
50
+ 2 [ 4 + 4(5) + 2(6) + 4(3) + 1]
3
50
+4
[ 6 + 4(7) + 2(9) + 4(5) + 2]
3
50
+
[ 0 + 4(3) + 2(5) + 4(1) + 0] }
3
Ejemplo. Calcule el integral de f(x,y)=(x +y ), 0x1, xy2x. Use la frmula de Simpson con
m = 2 en cada direccin.
1
=
V
2x
=
x 0=
y x
f(x,=
y)dydx
2x
(x 2 + y3 )dydx ,
=
x 0=
y x
2(0)
2(0.5)
x
f(0,y)dy + 4 f(0.5,y)dy +
3 0
0.5
2(1)
x = 0, 0.5, 1
f(1,y)dy
Los lmites para integrar en Y as como la longitud y de los sub-intervalos, cambian segn X:
=
V
0.5 0
{ [ f(0,0) + 4f(0,0) + f(0,0)] +
3 3
0.25
0.5
4
[ f(0.5,0.5) + 4f(0.5,0.75) + f(0.5,1)] +
[ f(1,1) + 4f(1,1.5) + f(1,2)] } = 1.03125
3
3
204
Integrales dobles con puntos singulares
Ejemplo. Calcule el valor del integral con la frmula de Simpson con m = 4 en cada direccin.
e y x
x0 x1/ 3 dx dy
=
y 0=
0.5 0.5
V=
1/3
Sea u = x
0.5 0.51/ 3
V=
3u e y u du dy
3
Esta funcin aunque es acotada, no es integrable analticamente, por lo que ahora se puede
integrar numricamente
Integrales dobles con puntos singulares y lmites variables
2
=
= 1
y 1x
sen(x + y)
2x
aproximada
2 x : x = 1 u = 1, x = y =
u
2
2 y
=
V
sen(2 u2 + y)
(2udu)
=
dy
u
2 y , x = 2 u2, dx = -2udu
2
2sen(2 u2 + y)du dy
2 y
y
2sen(2-u2 +1)du + 4 2sen(2-u2 +1.5)du + 2sen(2-u2 +2)du
3 2-1
2-1.5
2-2
1
1
1
0.5
2sen(2-u2 +1)du + 4 2sen(2-u2 +1.5)du + 2sen(2-u2 +2)du
V
3 1
0
0.5
2sen(2-u
+1)du = 0
1
1
2sen(2-u
+1.5)du=
0.5
1
2sen(2-u
+2)du=
0.1464
2sen(2 0.70712 + 1.5) + 4(2sen(2 0.85352 + 1.5)) + 2sen(2 12 + 1.5) =
0.2133
0.5
2sen(2 02 + 2) + 4(2sen(2 0.52 + 2)) + 2sen(2 12 + 2) =
-0.9673
3
0.5
0.0190
[ 0 + 4(0.2133)+(-0.9673)] =
3
205
7.6.1
Se instrumenta el mtodo de Simpson para una funcin de dos variables f(x,y). Primero se
integra en la direccin X y despus, con los resultados obtenidos, se aplica nuevamente la
frmula de Simpson en la direccin Y.
f:
funcin de dos variables
ax, bx, ay, by: lmites de integracin en las direcciones x, y respectivamente
mx, my:
cantidad de franjas en cada direccin
function s=simpson2(f, ax, bx, ay, by, mx, my)
dy=(by-ay)/my;
y=ay;
for i=1:my+1
g = subs(f,'y',y);
%Sustituye en f el smbolo y por cada valor
r(i) = simpson(char(g), ax, bx, mx);
y = y+dy;
end
s=0;
for i=2:my
s=s+2*(2-mod(i,2))*r(i);
end
s=dy/3*(r(1)+s+r(my+1));
Ejemplo. Calcule
=
V
=
y 0=
x 0
Se observa que el integral entre el plano X-Y debajo de la superficie existe y est acotado.
Solucin con la funcin simpson2
206
>> format long
>> f=cos(x^2+y)*(x+y);
>> v=simpson2(f,0,1,0,1,4,4)
v=
0.500415316612236
>> v=simpson2(f,0,1,0,1,8,8)
v=
0.500269266271819
>> v=simpson2(f,0,1,0,1,12,12)
v=
0.500258596816339
>> v=simpson2(f,0,1,0,1,16,16)
v=
0.500256714328757
>> v=simpson2(f,0,1,0,1,20,20)
v=
0.500256191304419
Si se incrementa el nmero de franjas, el resultado tiende a un valor fijo que es el integral.
Nota. Este integral no se puede resolver por mtodos analticos o con MATLAB:
>> f=cos(x^2+y)*(x+y);
>> v=eval(int(int(f,0,1),0,1))
Error using
207
7.7
frmula del error de truncamiento respectiva y sin realizar la integracin, estime la cantidad de
trapecios que tendra que usar para que la respuesta tenga cinco decimales exactos.
2. Se desea integrar f(x) = exp(x) + 5x , x [0, 2]
3
a) Use la frmula del error para determinar la cantidad de trapecios que se deberan usar para
obtener la respuesta con 2 decimales exactos.
b) Calcule la respuesta usando la cantidad de trapecios especificada
3. a) Encuentre en forma aproximada el rea debajo de f(x), 0x1.6 Use la frmula de Simpson
incluyendo los cinco puntos tomados mediante aproximacin visual del grfico.
Con la frmula de Simpson, encuentre en forma aproximada el rea total cubierta por el derrame
de petrleo.
5. La siguiente definicin se denomina funcin error:
erf(x) =
e t dt
2
Esta funcin se usa para definir la funcin de densidad de probabilidad de la distribucin normal
estndar. Calcule erf(1) con la frmula de Simpson con m=2,4,6. Con estos resultados estime la
precisin en la respuesta.
208
6. Una empresa est vendiendo una licencia para manejo de un nuevo punto de venta. La
experiencia indica que dentro de t aos, la licencia generar utilidades segn f(t) = 14000+490t
dlares por ao. Si la tasa de inters r permanece fija durante los prximos n aos, entonces el
valor presente de la licencia se puede calcular con
n
V = f(t)e rt dt
0
Calcule V si n=5 aos y r=0.07. Use la frmula de Simpson con m=4,6,8. Con estos resultados
estime el error de truncamiento
7. Un comerciante usa el siguiente modelo para describir la distribucin de la proporcin x del
total de su mercadera que se vende semanalmente:
3
f(x )=20x (1-x), 0x1
El rea debajo de f(x) representa entonces la probabilidad que venda una cantidad x en cualquier
semana.
Se desea conocer la probabilidad que en una semana venda ms de la mitad de su mercadera
(debe integrar f entre 0.5 y 1). Use la Frmula de Simpson con m=4
8. Segn la teora de Kepler, el recorrido de los planetas es una elipse con el Sol en uno de sus
focos. La longitud del recorrido total de la rbita esta dada por
/2
s = 4 a 1 k 2 sen 2 t dt ,
0
=
S
(x '(t))2 + (y '(t))2 dt
Use la frmula de Simpson, m=4, para calcular la longitud del arco de la curva dada con las
siguientes ecuaciones paramtricas
=
x 2 cos(t),
=
y
3sen(t), t [0, / 2]
11. Calcule el valor del integral A =
1
12. Calcule A =
dx
.
1)1/ 3
a) Use directamente la Cuadratura de Gauss de dos puntos
3
b) Use la Regla de Simpson con m=4. Previamente debe usar una transformacin: t = 2x -1
1/ 2 (2x
209
13. Calcule A =
dx
1 + x4
15. Calcule A =
dx
x2 + x 2 .
16. Escriba una tabla con los cinco puntos del grfico, para x = 0.2, 0.6, 1.0, 1.4, 1.8
aproximando visualmente con una precisin de tres decimales.
0.42
0.4
0.38
0.36
0.34
0.32
0.3
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
a) Encuentre en forma aproximada el rea debajo de f(x), 0.2x1.8 con la frmula de Simpson
incluyendo los cinco puntos tabulados.
b) Encuentre aproximadamente el rea debajo de f(x), 0.2x1.8 aplicando una vez la
cuadratura de Gauss. Estime t0 y t1 mediante una aproximacin visual con tres decimales.
1.8 2.5
17. Calcule
=
A
(x + y) sin(x)dxdy .
1 0.5
=
S
9 y2 dA
19. La funcin
0
modelos de probabilidad. Encuentre un valor aproximado de
Gauss.
Sugerencia: Separe el intervalo de integracin en dos intervalos: [0,1], [1, ]. Luego, para el
segundo intervalo use un cambio de variable para eliminar el lmite superior . Finalmente
aplique la Cuadratura de Gauss una vez en cada intervalo.
210
20. El siguiente cuadro contiene valores de una funcin f(x,y). Use la frmula de Simpson para
calcular el volumen entre el plano X-Y y la superficie f(x,y), 0.1 x 0.5, 0.2 y 1.0 . Use
todos los datos disponibles.
Y
X
0.1
0.2
0.3
0.4
0.5
0.2
0.4
0.6
0.8
1.0
0.04
0.41
0.81
0.76
0.06
0.08
0.47
0.83
0.70
0.02
0.12
0.53
0.84
0.62
0.01
0.16
0.58
0.83
0.53
0.01
0.20
0.62
0.82
0.42
0.02
21. Cuando un cuerpo de masa m se desplaza verticalmente hacia arriba desde la superficie de
la tierra, si prescindimos de toda fuerza de resistencia (excepto la fuerza de la gravedad), la
x
R
2
Donde R = 6371 km. es el radio promedio de la tierra, g = 9.81 m/s es la constante gravitacional.
Utilice cuadratura Gaussiana para hallar v.
22. El siguiente integral no puede resolverse analticamente. Aplique la frmula de Simpson con
2, 4, 6, 8 subintervalos. Con estos resultados estime la precisin del resultado de la integracin.
2
A = e sen(x)dx
0
23. El siguiente integral no puede resolverse analticamente y tampoco pueden aplicarse las
frmulas comunes de integracin numrica.:
1
sen(x)
0 x dx
Aplique la Cuadratura de Gauss con uno, dos y tres subintervalos. Con estos resultados estime
la precisin del resultado de la integracin.
sin(x)
dx
1 x
a) Use una sustitucin para eliminar el punto singular y aplique la regla de Simpson con m=4.
24. Encuentre un valor aproximado del siguiente integral
25. Evale de forma aproximada el siguiente integral impropio usando la frmula de Simpson con
5 puntos:
cos(x) -1
dx . Estime el error en la aproximacin.
0
x
211
2y
11
sen(x y)
2x
sen(x + y)
2x
a) Escriba la formulacin matemtica del mtodo numrico que utilizar
b) Realice los clculos con cuatro decimales.
NOTA: No olvide transformar previamente el integral con alguna sustitucin que permita eliminar
el punto singular que se produce al evaluar f(x,y) en el lmite superior.
27. En el techado de las casas se utilizan planchas corrugadas con perfil ondulado. Cada onda
tiene la forma f(x) = sen(x), con un periodo de 2 pulgadas
El perfil de la plancha tiene 8 ondas y la longitud de cada onda se la puede calcular con la
= + ( ())
siguiente integral:
Este integral no puede ser calculado por mtodos analticos.
a) Use la frmula de Simpson con m = 4, 6, 8, 10 para calcular y estime el error en el ltimo
resultado
b) Con el ltimo resultado encuentre la longitud del perfil de la plancha.
212
8
DIFERENCIACIN NUMRICA
En este captulo se describe con algo ms de formalidad algunas frmulas para evaluar
derivadas. Estas frmulas son de especial inters en algunos mtodos para resolver ecuaciones
diferenciales y que se estudiarn posteriormente.
8.1
Dados los puntos (xi, fi), i=0, 1, 2, ..., n, suponer que es de inters evaluar alguna derivada
(k)
f (xi) siendo f desconocida pero supuestamente diferenciable.
Un enfoque para obtencin de estas frmulas es construir el polinomio de interpolacin como
una aproximacin para f y luego derivar:
dk
(k)
f(x) pn(x) f (xi) k [pn (x)]x = xi
dx
Adicionalmente, con la frmula del error en la interpolacin se puede estimar el error para las
frmulas de las derivadas.
Un enfoque ms simple consiste en usar la serie de Taylor, bajo la suposicin de que la funcin f
se puede expresar mediante este desarrollo. Entonces mediante artificios algebraicos se pueden
obtener frmulas para aproximar algunas derivadas:
Al desarrollar la serie de Taylor alrededor del punto xi, usando la notacin f(xi) fi, se tiene:
hn + 1 (n+1)
hn (n)
h2
(1)
fi+1 = fi + hf i +
f i + ... +
f i+
f
(z), xi z xi+1
(n + 1)!
n!
2!
hn + 1 (n+1)
hn (n)
h2
f i - ... +
f if
(z), xi-1 z xi
n!
2!
(n + 1)!
(2)
fi-1 = fi - hf i +
8.2
Tomando tres trminos de (1) y despejando f se obtiene una aproximacin para la primera
derivada y para el error de truncamiento respectivo:
f f h
h2
f (z) f i = i + 1 i - f (z), xi z xi+1
fi+1 = fi + hf i +
2
h
2!
Definicin: Una frmula para la primera derivada con el error de truncamiento
fi + 1 fi fi
=
h
h
h
E = - f (z) = O(h), xi z xi+1
2
f i
213
Esta aproximacin significa que la pendiente
de la tangente a f en el punto i es aproximada
mediante la pendiente de la recta que incluye a
los puntos i e i+1, como se muestra en la
figura:
Para que la aproximacin sea aceptable,
debe ser suficientemente pequeo:
h0 E =
h
f (z) 0
2
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.863007978820316
5.477519670803988
5.440642892414083
5.436971417314140
5.436604431352520
5.436567733330121
5.436564065597337
5.436563599303667
0.426444321902225
0.040956013885896
0.004079235495992
0.000407760396049
0.000040774434429
0.000004076412030
0.000000408679246
0.000000057614424
214
0.000000001000000
0.000000000100000
0.000000000010000
0.000000000001000
0.000000000000100
0.000000000000010
0.000000000000001
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563656918091
5.436563643712587
5.436562311444957
5.436540106984465
5.436984196194316
5.431211036466265
5.373479439185757
5.773159728050813
0.000000013205504
0.000001345473134
0.000023549933626
0.000420539276225
0.005352620451826
0.063084217732334
0.336596071132722
Se observa que la precisin mejora cuando se reduce h, pero a partir de cierto valor de h, el
resultado pierde precisin.
La aproximacin propuesta para fi es una frmula de primer orden pues el error de truncamiento
es E=O(h). Por lo tanto, si se desea una aproximacin con alta precisin, se debe elegir para h
un valor muy pequeo, pero ya hemos mencionado que esto puede hacer que aparezca el error
de redondeo.
Adicionalmente, si nicamente se tienen puntos de f, no se puede elegir h. Entonces es
preferible usar frmulas con mayor precisin pero que usen nicamente los puntos dados.
8.3
Una frmula ms precisa para la primera derivada se obtiene restando (1) y (2) con cuatro
trminos:
h2
h3
f i +
f (z1) , xi z1 xi+1
(1)
fi+1 = fi + hf i +
2!
3!
h3
h2
(2)
fi-1 = fi - hf i +
f i f (z2) , xi-1 z2 xi
3!
2!
h3
h3
(1) (2): fi+1 - fi-1 = 2hf i +
f (z1) +
f (z2)
3!
3!
f f
f f
h2
h2
f i = i + 1 i 1 (f (z1) + f (z2)) = i + 1 i 1 (2f (z)), xi-1 z xi+1
2h
2h
12
12
Definicin: Una frmula de segundo orden para la primera derivada
fi + 1 fi 1
2h
h2
2
E=f (z) = O(h ), xi-1 z xi+1
6
f i
Ejemplo. Usar las frmulas para evaluar f'(1.1) dados los siguientes datos:
(x, f(x)): (1.0, 2.7183), (1.1, 3.3046), (1.2, 3.9841), (1.3, 4.7701)
f2 f1 3.9841 3.3046
=
= 6.7950,
h
0.1
f f
3.9841 2.7183
f 1 2 0 =
= 6.3293,
2h
2(0.1)
f 1
E=O(h)=O(0.1)
2
E=O(h )=O(0.01)
x
Para comparar, estos datos son tomados de la funcin f(x) = x e . El valor exacto es
f (1.1) = 6.3087. El error en la primera frmula es -0.4863 y para la segunda es -0.0206
215
En la realidad, nicamente se conocen puntos de f(x) con los cuales se debe intentar estimar el
error en los resultados de las frmulas mediante las aproximaciones de diferencias finitas,
recordando que esta aproximacin es aceptable si los valores de las diferencias finitas en cada
columna no cambian significactivamente y tienden a reducirse.
Ejemplo. Estime el error en los resultados del ejemplo anterior, con los dados dados:
(x, f(x)): (1.0, 2.7183), (1.1, 3.3046), (1.2, 3.9841), (1.3, 4.7701)
Tabulacin de las diferencias finitas:
i
xi
fi
fi
0
1.0
2.7183 0.5863
1
1.1
3.3046 0.6795
2
1.2
3.9841 0.7860
3
1.3
4.7701
fi
0.0932
0.1065
2
fi
0.0133
3
f2 f1 3.9841 3.3046
=
= 6.7950,
0.1
h
2 fi
h
h 2 fi
0.1066
=
=
0.5325
E = - f (z)
2
2
2 h
2h
2(0.1)
f f
3.9841 2.7183
f 1 2 0 =
= 6.3293,
2h
2(0.1)
f 1
3 fi
h2 3 fi
0.0133
h2
f (z)
=
=
0.0222
3
6
6 h
6h
6(0.1)
En el primer resultado, el error est en el primer decimal. En el segundo resultado, el error est
en el segundo decimal. Esto coincide los valores calculados.
E=-
8.4
Una frmula para la segunda derivada se obtiene sumando (1) y (2) con 5 trminos:
h4 iv
h2
h3
f i +
f i +
f (z1), xi z1 xi+1
(1)
fi+1 = fi + hf i +
4!
2!
3!
h2
h3
h4 iv
(2)
fi-1 = fi - hf i +
f i f i +
f (z2), xi-1 z2 xi
2!
3!
4!
h4 iv
h2
iv
(1) + (2): fi+1 + fi-1 = 2fi + 2(
f i)+
(f (z1) + f (z2))
4!
2!
f 2fi + fi + 1 h2
iv
f i = i 1
(2f (z)), xi-1 z xi+1
2
4!
h
Definicin: Una frmula para la segunda derivada con el error de truncamiento
fi 1 2fi + fi + 1
h2
h2 iv
2
E=f (z) = O(h ), xi-1 z xi+1
12
f i
216
Ejemplo. Use la frmula para calcular f''(1.1) dados los siguientes datos:
(x, f(x)): (1.0, 2.7183), (1.1, 3.3046), (1.2, 3.9841), (1.3, 4.7701)
8.5
Este mtodo permite obtener frmulas para derivadas usando como base cualquier grupo de
puntos.
Dados los puntos (xi, fi), i= 0, 1, 2,
f(x) con la siguiente forma propuesta:
La derivada debe evaluarse en el punto j que debe ser alguno de los puntos que intervienen en
la frmula.
Para determinar los coeficientes y el error de truncamiento se sigue el procedimiento:
1) Desarrollar cada trmino alrededor del punto j con la serie de Taylor
2) Comparar los trminos en ambos lados de la ecuacin
3) Resolver el sistema resultante y obtener los coeficientes y la frmula para E
Ejemplo. Con el Mtodo de Coeficientes Indeterminados obtenga una frmula para f en el punto
i usando los puntos i e i+1:
fi = cofi + c1fi+1 + E
1) Desarrollar cada trmino alrededor del punto i
h2
f (z))+ E
fi = cofi + c1 (fi + hf i +
2!
h2
fi = (c0 + c1)fi + c1hf i + c1
f (z)+ E
2!
2) Comparar trminos
0 = c0 + c1
1 = c1h
h2
f (z) + E
0 = c1
2!
3) Con las dos primeras ecuaciones se obtiene:
c1 = 1/h, c0 = -1/h
Con la tercera ecuacin se obtiene:
h2
f (z))
E = - (1/h)
2!
Sustituyendo en la frmula propuesta:
f f h
f i =(-1/h)fi + (1/h)fi+1 + E = i + 1 i - f (z), xi z xi+1
2
h
Igual a la que se obtuvo directamente con la serie de Taylor.
217
8.6
.
8.7
Esta tcnica se puede aplicar a la diferenciacin numrica para mejorar la exactitud del valor de
una derivada usando resultados previos de menor precisin.
Examinamos el caso de la primera derivada, comenzando con una frmula conocida:
f(xi + h) f(xi h)
+ O(h2 )
2h
Si se define el operador D:
f '(xi )
=
f(xi + h) f(xi h)
2h
2
f '(x
=
)
D(h)
+
O(h
)
i
Reduciendo h, la aproximacin mejora pero el error sigue de segundo orden:
D(h) =
=
f '(xi ) D(h / 2) + O(h2 )
La tcnica de extrapolacin permite combinar estas aproximaciones para obtener un resultado
ms preciso, es decir con un error de truncamiento de mayor orden
Para aplicar la extrapolacin se utiliza la serie de Taylor con ms trminos:
f(xi + h) =
fi + hfi(1) +
f(xi h) =fi hfi(1)
D(h) =
fi(1) +
h2 (3)
fi + O(h4 )
6
Definiendo
A=
fi(3)
D(h) =fi(1) + Ah2 + O(h4 )
6
D(h / 2) =
fi(1) + A
h2
+ O(h4 )
4
D(h) 4D(h / 2) =+
fi(1) Ah2 + O(h4 ) 4fi(1) Ah2 + O(h2 ) =
3fi(1) + O(h2 )
218
De donde se obtiene
4D(h / 2) D(h)
+ O(h4 )
3
Es una frmula mayor precisin que la frmula inicial, para evaluar la primera derivada.
=
fi(1) f=
'(xi )
f '(xi ) D(h) =
1.7845;
f '(xi ) D(h / 2) =
1.7625;
4D(h / 2) D(h)
=
1.7551
3
x
Para comparacin, estos datos fueron tomados de la funcin f(x)=x e
f '(xi )
Valor exacto f'(0.3) = 1.7548.... Se verifica que usando resultados con precisin limitada, se
obtuvo un resultado con mayor precisin.
8.8
1. Se tomaron los siguientes datos en Km. para las coordenadas del recorrido de un cohete: (50,
3.5), (80, 4.2), (110, 5.7), (140, 3.8), (170, 1.2).
Mediante aproximaciones de segundo orden determine
a) Velocidad en el centro de la trayectoria
b) Aceleracin en el centro de la trayectoria
fi + 1 fi 1
para aproximar la primera derivada no puede
2h
aplicarse en los puntos extremos del conjunto de datos pues se requiere un punto a cada lado.
Use el mtodo de coeficientes indeterminados para encontrar frmulas de segundo orden para la
primera derivada con los siguientes puntos:
219
9
ma =
cv kx
Fx =
En donde a es la aceleracin, v es la velocidad, x es desplazamiento horizontal, t tiempo:
d2 x c dx k
+
+ x=0
dt 2 m dt m
Es una ecuacin diferencial ordinaria lineal de segundo orden. Su solucin describe el
desplazamiento x en funcin del tiempo t partiendo de alguna condicin inicial.
La solucin se obtendr con la funcin dsolve de MATLAB con los siguientes datos: m=5,
c=0.25, k=0.8, x(0)=1, x'(0)=0. La solucin ser graficada en el intervalo, 0t50
220
Para usar la funcin dsolve, se escribe la ecuacin diferencial y la condicin inicial entre
comillas. La primera derivada se escribe D la segunda derivada se escribe D2. Tambin se debe
especificar cual es la variable independiente. El resultado es la solucin analtica:
>> x=dsolve('D2x+0.25/5*Dx+0.8/5*x=0','x(0)=1,Dx(0)=0','t')
x=
cos((255^(1/2)*t)/40)/exp(t/40) + (255^(1/2)*sin((255^(1/2)*t)/40))/(255*exp(t/40))
>> ezplot(x, [0,50]),grid on
d2 x c
dx k
+ (x 1)
+ x=0
2
dt
m
dt m
Al resolverla con la funcin dsolve de MATLAB usando los mismos datos, se obtiene:
>> x=dsolve('D2x+0.25/5*(x-1)*Dx+0.8/5*x=0','x(0)=1,Dx(0)=0')
Warning: Explicit solution could not be found.
x = [ empty sym ]
Este mensaje indica que no se puede obtener la solucin analtica. En estas situaciones toma
inters el estudio de los mtodos numricos.
9.1
dy
= f(x, y) , y(x0) = y0
dx
Su solucin es una funcin y(x) definida en algn intervalo, que satisface a la ecuacin e incluye
a la condicin inicial. La solucin de esta ecuacin se puede obtener integrando:
x
x0
dy = f(x, y)dx
x0
Los mtodos numricos permiten obtener una solucin aproximada cuando no es posible o es
muy complicado obtenerla en forma explcita.
221
Para adquirir confianza al resolver ecuaciones complicadas para las cuales ya no pueda obtener
la solucin analtica, es conveniente comparar la solucin numrica con la solucin analtica de
ecuaciones cuya solucin es conocida.
9.1.1 Existencia de la solucin
Condicin de Lipschitz
+
Sea la funcin f : A R, A R. Si existe una constante kR tal que
f(a) f(b)
k , para a,b A, a b
ab
Entonces, una funcin f satisface la condicin de Lipschitz si y solo si las pendientes de todos los
segmentos de recta que unen dos puntos de la grfica de y=f(x) en A, estn acotadas por algn
nmero positivo k
Teorema.- Si f : A R, A R es una funcin de Lipschitz, entonces el dominio y el rango de f
son conjuntos acotados.
Sea una ecuacin diferencial de primer orden con una condicin inicial:
y'(x)=f(x,y), y(x0)=y0, x0xxn
Teorema.- Si f es continua en x0xxn, -<y<. Si f satisface la condicin de Lipschitz en la
variable -<y<, entonces la ecuacin diferencial y'(x)=f(x,y), y(x0)=y0 tiene una solucin nica
y(x) en x0xxn
Es decir que f debe ser continua en el rectngulo x0xxn, -<y<, y el cambio de y'(x)=f(x,y)
para diferentes valores de y debe estar acotado.
Adicionalmente, es importante verificar si la solucin calculada es muy sensible a los errores en
la formulacin de la ecuacin diferencial o en la condicin inicial. Se puede detectar esta
situacin calculando numricamente el problema original y el problema modificado con alguna
perturbacin.
9.1.2
Se puede usar este desarrollo para obtener puntos de la solucin a partir de la condicin inicial
conocida y para estimar el error de truncamiento. Debe elegirse la distancia h entre los puntos:
hn+1
hn (n)
h2
(n+1)
yi+1 = yi + hy i +
yi + ... +
y i+
y
(z), xi z xi+1
(n + 1)!
2!
n!
La ventaja de este enfoque es que se puede mejorar la precisin incluyendo ms trminos del
desarrollo. Sin embargo, al usar las derivadas de y(x) se obtienen frmulas aplicables
nicamente para la ecuacin especificada. Esto contrasta con el objetivo de los mtodos
numricos que es proporcionar frmulas generales.
222
Ejemplo. Obtenga dos puntos de la solucin de la siguiente ecuacin diferencial utilizando los
tres primeros trminos de la serie de Taylor. Use h = 0.1
2
y - y - x + x - 1 = 0, y(0) = 1
Solucin
h2
h3
3
yi, E =
y(z) = O(h ) = O(0.001) (Error de truncamiento)
2!
3!
xi+1 = xi + h, i = 0, 1, 2, ...
yi+1 = yi + hy i +
y = f(x, y) = y - x + x + 1,
2
2
y = f(x, y) = y - 2x + 1 = (y - x + x + 1) - 2x + 1 = y - x - x + 2
x0 = 0, y0 = 1, h = 0.1
h2
2
yi+1 = yi + h(yi - x i + xi + 1) +
(yi - 2xi + 1)
(Derivar, sustituir y(x))
2!
h2
2
2
yi+1 = yi + h(yi - x i + xi + 1) +
( yi - x i + xi + 1 - 2xi + 1)
2
Frmula para obtener puntos de la solucin para el ejemplo anterior
2
yi+1 = yi + h(yi - x i + xi + 1) +
h2
2
( yi - x i - xi + 2)
2
xi+1 = xi + h, i = 0, 1, 2, ...
Puntos de la solucin:
i=0:
i=1:
h2
2
( y0 - x 0 - x0 + 2)
2
0.12
2
2
= 1 + 0.1(1 0 + 0 + 1) +
( 1 - 0 0 + 2) = 1.2150
2
x1 = x0 + h = 0 + 0.1 = 0.1
h2
2
2
( y1 - x 1 - x1 + 2)
y2 = y1 + h(y1 - x 1 + x1 + 1) +
2
0.12
2
2
= 1.2150 + 0.1(1.2150 0.1 + 0.1 + 1) +
( 1.2150 0.1 0.1 + 2) = 1.4610
2
x2 = x1 + h = 0.1 + 0.1 = 0.2
y1 = y0 + h(y0 - x
0 + x0 + 1) +
El error est en el orden de los diezmilsimos y concuerda con el orden del error de truncamiento
para esta frmula
En el siguiente grfico se muestran los dos puntos obtenidos junto con lel grfico de la solucin
analtica exacta. La concordancia es muy buena.
223
9.1.3
Instrumentacin computacional
La siguiente funcin en MATLAB permite obtener puntos de la solucin de una EDO de primer
orden con tres trminos de la Serie de Taylor. La funcin requiere especificar f(x,y), f(x,y), el
punto inicial (x0, y0) y los parmetros h (paso o distancia entre puntos), y m (cantidad de puntos).
y'(x)=f(x,y), y(x0)=y0, x0xxn
h2
h2
yi+1 = yi + hy i +
yi = yi + hf(xi,yi) +
f (xi,yi)
2!
2!
xi+1 = xi + h, i = 0, 1, 2, ...
Ecuacin diferencial:
Serie de Taylor:
% f(x,y)
% f(x,y)
% Puntos de la solucin
f(x, y) = y - x + x + 1
2
f(x, y) = y - x - x + 2
x0 = 0, y0 = 1,
h = 0.1,
m = 20 (cantidad de puntos)
>> f=y-x^2+x+1;
>> df=y-x^2-x+2;
>> [u, v] = taylor3(f, df, 0, 1, 0.1, 20);
>> plot(u, v, 'o');
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x')
g = x+x^2+exp(x)
>> hold on;
>> grid on;
>> ezplot(g, [0,2]);
p( )
14
12
10
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
224
La instrumentacin de la funcin taylor3 requiere enviar como parmetros f(x,y) y f(x,y). La
derivada de f debe obtenerse previamente dependiendo de la ecuacin que se va a resolver.
En la siguiente seccin se decribe una funcin para obtener las derivadas de y(x) = f(x,y)
computacionalmente.
9.1.4
Usando el manejo simblico y de texto de MATLAB describimos una funcin para obtener las
derivadas sucesivas de una funcin implcita con sustitucin de las derivadas. La expresin
resultante queda en formato simple y directamente evaluable, por lo tanto puede incorporarse en
un mtodo numrico para evaluar los trminos de la serie de Taylor.
function df=derive(f,nd)
% f es una funcin con variable independiente x, y variable dependiente y
% df derivada resultante
% f, df en formato texto
% nd es el orden de la derivada, nd1
t=char(f);
for j=1:nd
n=length(f);
g='';
for i=1:n
if f(i)=='y';
g=[g,'y(x)'];
else
g=[g,f(i)];
end
end
d=diff(g);
s=char(d);
s=compactar(s);
p=strfind(s,'y(x)');
while length(p)>0
i=p(1);
s(i+1:i+3)='';
p=strfind(s,'y(x)');
end
p=strfind(s,'diff(y,x)');
while length(p)>0
i=p(1);
s(i)='k';
s(i+1:i+8)='';
p=strfind(s,'diff(y,x)');
end
df='';
for i=1:length(s)
if s(i)=='k'
df=[df,'(',t,')'];
else
df=[df,s(i)];
end
end
p=strfind(df,'y(x)');
225
while length(p)>0
i=p(1);
df(i+1:i+3)='';
p=strfind(df,'y(x)');
end
df=sym(df);
f=char(df);
end
df=char(df);
function x=compactar(x)
while length(strfind(x,' '))>0
p=strfind(x,' ');
x(p(1))='';
end
2
Ejemplo. Sea y = y(x), obtenga la primera derivada de y(x) = f(x,y) = y sen(y)-x +x+1
>> f='y^2*sin(y)-x^2+x+1';
>> d=derive(f,1)
d=
y^2*cos(y)*(x + y^2*sin(y) - x^2 + 1) - 2*x + 2*y*sin(y)*(x + y^2*sin(y) - x^2 + 1) + 1
Para evaluar esta derivada se puede usar la funcin eval:
Ejemplo. Evaluar la derivada con x = 1.5, y = 2.3:
>> x=1.5;
>> y=2.3;
>> r=eval(d)
r=
-2.395803456310137
Tambin se puede evaluar con la funcin subs:
>> r=subs(d,{'x','y'},{1.5,2.3})
r=
-2.395803456310137
226
9.1.5
Con la funcin derive se puede instrumentar una funcin para obtener puntos de la solucin de
una ecuacin diferencial ordinaria de primer orden, lineal o no lineal, con una cantidad arbitraria
de trminos de la serie de Taylor con lo cual, en teora, la precisin puede ser ilimitada:
La funcin requiere especificar f = f(x,y) definida en formato texto, el punto inicial (x0, y0) y los
parmetros h (paso o distancia entre puntos), m (cantidad de puntos que se calcularn), k
(orden de la derivada de y(x) = f(x,y) que se desea incluir, k1 ).
Ecuacin diferencial:
y'(x) = f(x,y), y(x0) = y0, x0 x xn
Serie de Taylor:
yi+1 = yi + hf(xi, yi) +
xi+1 = xi + h, i = 0, 1, 2, ...
Error de truncamiento en cada paso:
E = O(h
k+2
function [u,v]=taylorg(f, x, y, h, m, k)
for j=1:k
d=char(derive(f,j));
d=[d,'+0*x+0*y'];
df{j}=inline(d);
end
f=[f,'+0*x+0*y'];
f=inline(f);
u=[ ];
v=[ ];
for i=1:m
t=y+h*f(x,y);
for j=1:k
t=t+h^(j+1)/factorial(j+1)*df{j}(x,y);
end
y=t;
x=x+h;
u(i)=x;
v(i)=y;
end
227
2
xi+1 = xi + h, i = 0, 1, 2, 4, 5
5
>> f='y+x-x^2+1';
>> [u,v]=taylorg(f, 0, 1, 0.1, 5, 3)
u=
0.1000 0.2000 0.3000 0.4000
v=
1.2152 1.4614 1.7399 2.0518
0.5000
2.3987
Este resultado coincide con la solucin exacta en los cuatro decimales mostrados
228
9.1.6
Frmula de Euler
Las siguientes frmulas constituyen los mtodos clsicos para resolver numricamente
ecuaciones diferenciales ordinarias. Son equivalentes a usar varios trminos de la serie de
Taylor pero sustituyen las derivadas por aproximaciones, de tal manera que no se requiere
especificarlas o usar el mtodo de derivacin implcita anterior. Las frmulas y los algoritmos
resultantes son independientes de una EDO particular.
Sea una ecuacin diferencial ordinaria explcita de primer orden con una condicin en el inicio:
y(x) = f(x, y), y(x0) = y0
La frmula de Euler usa los dos primeros trminos de la serie de Taylor:
h2
h2
y(z) = yi + hf(xi, yi) +
y(z), xi z xi+1
yi+1 = yi + hyi +
2!
2!
Definicin: Frmula de Euler
yi+1 = yi + h f(xi ,yi)
xi+1 = xi + h,
h2
2
E=
y(z) = O(h ),
2!
i = 0, 1, 2, ...
xi z xi+1
Algoritmo para calcular puntos de la solucin de una EDO de primer orden con la frmula
de Euler
1)
2)
3)
4)
5)
6)
Ejemplo. Obtenga dos puntos de la solucin de la siguiente ecuacin diferencial con la frmula
de Euler. Use h = 0.1
2
y - y - x + x - 1 = 0, y(0) = 1
Ecuacin diferencial
2
y = f(x, y) = y + x - x + 1, x0 = 0, y0 = 1, h = 0.1
Clculo de los puntos
2
i=0:
i=1:
y2 = y1 + h f(x1, y1) = 1.2 + 0.1 f(0.1, 1.2) = 1.2 + 0.1 (1.2 + 0.1 - 0.1 + 1] = 1.4290
x2 = x1 + h = 0.1 + 0.1 = 0.2
El error es significativo. Para reducirlo se pudiera reducir h. Esto hara que el error de
truncamiento se reduzca pero si la cantidad de clculos es muy grande, pudiera acumular error
de redondeo. Una mejor estrategia es usar mtodos ms precisos que no requieran que h sea
muy pequeo.
229
9.1.7
La frmula de Euler utiliza la pendiente de la recta en cada punto para predecir y estimar la
solucin en el siguiente punto, a una distancia elegida h. La diferencia del punto calculado, con
respecto al valor exacto es el error de truncamiento, el cual puede crecer al proseguir el clculo.
Siendo Ei =
E = E1 + E2 + E3 + ... + Em = mh ( D ) =
xf x0 2
h ( D ) = h[( x f x 0 ) D ]
h
y"(zi )
, independiente
2
de h. Se muestra que el error de truncamiento acumulado es solamente de orden O(h), por lo
tanto h debe ser un valor mas pequeo que el previsto para asegurar que la solucin calculada
sea suficientemente precisa hasta el final del intervalo.
230
Por otra parte, cada vez que se evala f(xi, yi) se puede introducir el error de redondeo Ri
debido a los errores en la aritmtica computacional y al dispositivo de almacenamiento.
Entonces, el error de redondeo se pudiera acumular en cada paso y al final del intervalo se
tendr:
xf x0
1
( R ) = [( x f x 0 ) R ]
h
h
R es algn valor promedio del error de redondeo en cada paso, independiente de h.
R = R1 + R2 + R3 + . . . + R m = m ( R ) =
El error total acumulado al realizar los clculos con la frmula de Euler hasta el final del intervalo
es:
1
[( x f x 0 ) R ]
h
Si m es muy grande, h ser muy pequeo y E ser pequeo, pero al reducir h, el error de
redondeo R puede crecer y llegar a ser mayor al error de truncamiento, por lo tanto el resultado
perder precisin en vez de aumentarla, lo cual se acepta equivocadamente como verdadero
porque solamente se considera el error de truncamiento.
EA = E + R = h[( x f x 0 ) D ] +
Como conclusin de lo anterior, es preferible usar frmulas cuyo error de truncamiento E sea de
mayor orden para que el valor de h no requiera ser muy pequeo si se buscan resultados con
alta precisin. Esto retardar tambin el efecto del error de redondeo acumulado R.
9.1.8
Una funcin en MATLAB para obtener puntos de la solucin de una EDO de primer orden con
dos trminos de la Serie de Taylor. La funcin requiere especificar f(x,y), el punto inicial (x0, y0) y
los parmetros h (paso o distancia entre puntos), y m (cantidad de puntos).
Ecuacin diferencial:
Serie de Taylor:
function [u,v]=euler(f, x, y, h, m)
f=[f, '+0*x+0*y'];
f=inline(f);
u=[ ];
v=[ ];
for i=1:m
y=y + h*f(x,y);
x=x+h;
u(i)=x;
v(i)=y;
end
Ejemplo. Para el ejemplo anterior, calcule 20 puntos de la solucin espaciados en una distancia
h = 0.1, usando la funcin euler.
2
y - y - x + x - 1 = 0, y(0) = 1
2
f(x, y) = y - x + x + 1
x0 = 0, y0 = 1,
h = 0.1,
m = 20 (cantidad de puntos)
231
>> f=y-x^2+x+1;
>> [u, v]= euler(f, 0, 1, 0.1, 20);
>> plot(u, v, 'o');
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x')
g=
x+x^2+exp(x)
>> hold on;
>> grid on;
>> ezplot(g,[0,2]);
9.1.9
Sea la ecuacin diferencial de primer orden con condicin en el inicio: y(x) = f(x, y), y(x0) = y0
La frmula de Heun o frmula mejorada de Euler es aproximadamente equivalente a usar los
tres primeros trminos de la serie de Taylor con un artificio para sustituir la primera derivada de
f(x, y)
h3
h2
h3
h2
yi +
y(z) = yi + hf(xi, yi) +
f(xi, yi) +
y(z), xi z xi+1
yi+1 = yi + hy i +
3!
2!
3!
2!
h2
3
yi+1 = yi + hf(xi, yi) +
f(xi, yi) + O(h )
2
f f
Para evaluar f(xi, yi) usamos una aproximacin simple: fi = i + 1 i + O(h)
h
h
h
h2 fi + 1 fi
3
3
yi+1 = yi + hfi +
[
+ O(h)] + O(h ) = yi + hfi + fi+1 - fi + O(h )
2
2
h
2
h
3
yi+1 = yi + (fi + fi+1) + O(h )
2
Para evaluar fi+1 = f(xi+1, yi+1) se usa yi+1 calculado con la frmula de Euler como aproximacin
inicial:
yi+1 = yi + hf(xi, yi)
h
(f(xi, yi) + f(xi+1, yi+1))
yi+1 = yi +
2
i = 0, 1, 2, ...
xi+1 = xi + h,
232
Definicin:
Frmula de Heun
K1 = hf(xi, yi)
K2 = hf(xi + h, yi + K1)
1
yi+1 = yi + (K1 + K2)
2
i = 0, 1, 2, ...
xi+1 = xi + h,
h3
3
E=
y(z) = O(h ), xi z xi+1
3!
Grficamente, se puede interpretar que esta frmula calcula cada nuevo punto usando un
promedio de las pendientes en los puntos inicial y final en cada intervalo de longitud h.
3
y = f(x, y) = x - x + y + 1, x0 = 0, y0 = 1, h = 0.1
Clculos
2
i=0:
i=1:
K1 = hf(x1, y1) = 0.1 f(0.1, 1.2145) = 0.1 (0.1 0.1 + 1.2145 + 1) =0.2305;
2
K2 = hf(x1 + h, y1 + K1) = 0.1 f(0.2, 1.4450) = 0.1 [ 0.2 0.2 + 1.4450 + 1] = 0.2605
1
y2 = y1 + (K1 + K2) = 1.2145 + 0.5(0.2305 + 0.2605) = 1.4600
2
x2 = x1 + h = 0.1 + 0.1 = 0.2
233
9.1.10 Instrumentacin computacional de la frmula de Heun
Una funcin en MATLAB para obtener puntos de la solucin de una EDO de primer orden con
una frmula aproximada equivalente a usar tres trminos de la Serie de Taylor pero sin describir
la derivada f(x,y). La funcin requiere nicamente f(x,y), el punto inicial (x0, y0) y los parmetros
h (paso o distancia entre puntos), y m (cantidad de puntos).
y'(x)=f(x,y), y(x0)=y0, x0xxn
Ecuacin diferencial:
K1 = hf(xi, yi)
K2 = hf(xi + h, yi + K1)
1
yi+1 = yi + (K1 + K2),
2
i = 0, 1, 2, ...
xi+1 = xi + h,
function [u,v]=heun(f, x, y, h, m)
f=[f, '+0*x+0*y'];
f=inline(f);
u=[ ];
v=[ ];
for i=1:m
k1=h*f(x,y);
k2=h*f(x+h, y+k1);
y=y+0.5*(k1+k2);
x=x+h;
u(i)=x;
v(i)=y;
end
Ejemplo. Para el ejemplo anterior, calcule 20 puntos de la solucin espaciados en una distancia
h = 0.1, usando la funcin heun.
2
y - y - x + x - 1 = 0, y(0) = 1
2
f(x, y) = y - x + x + 1
x0 = 0, y0 = 1,
h = 0.1,
m = 20 (cantidad de puntos)
>> f=y-x^2+x+1;
>> [u, v]= heun(f, 0, 1, 0.1, 20);
>> plot(u, v, 'o');
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x')
g=
x+x^2+exp(x)
>> hold on;
>> grid on;
>> ezplot(g,[0,2]);
234
Mediante sustituciones de las derivadas por aproximaciones, se desarrolla una frmula que no
requiere especificar las derivadas de f(x,y)
Dada una ecuacin diferencial de primer orden con una condicin en el inicio: y(x) = f(x, y),
y(x0) = y0, se define la frmula de Runge-Kutta de cuarto orden:
Definicin:
K1 = hf(xi, yi)
K2 = hf(xi + h/2, yi + K1/2)
K3 = hf(xi + h/2, yi + K2/2)
K4 = hf(xi + h, yi + K3)
1
yi+1 = yi + (K1 + 2K2 + 2K3 + K4)
6
i = 0, 1, 2, ...
xi+1 = xi + h,
5
h (5)
5
E=
y (z) = O(h ), xi z xi+1
5!
Grficamente, se puede interpretar que esta frmula calcula cada nuevo punto usando un
promedio ponderado de las pendientes en los puntos inicial, medio y final en cada intervalo de
longitud h.
5
235
Algoritmo para resolver una EDO de primer orden con la frmula de Runge-Kutta
1) Defina f(x,y) y la condicin inicial (x0, y0)
2) Defina h y la cantidad de puntos a calcular m
3) Para i =1, 2, ..., m
4)
K1 = hf(xi, yi)
5)
K2 = hf(xi + h/2, yi + K1/2)
6)
K3 = hf(xi + h/2, yi + K2/2)
7)
K4 = hf(xi + h, yi + K3)
1
.
8)
yi+1 = yi + (K1 + 2K2 + 2K3 + K4)
6
9)
xi+1 = xi + h
10) fin
236
9.1.12 Instrumentacin computacional de la frmula de Runge-Kutta
Una funcin en MATLAB para obtener puntos de la solucin de una EDO de primer orden con
una frmula equivalente a usar cinco trminos de la Serie de Taylor pero sin describir las
derivadas de f(x,y). La funcin requiere especificar f(x,y), el punto inicial (x0, y0) y los parmetros
h (paso o distancia entre puntos), y m (cantidad de puntos).
Ecuacin diferencial: y'(x) = f(x,y), y(x0) = y0, x0 x xn
K1 = hf(xi, yi)
K2 = hf(xi + h/2, yi + K1/2)
K3 = hf(xi + h/2, yi + K2/2)
K4 = hf(xi + h, yi + K3)
1
yi+1 = yi + (K1 + 2K2 + 2K3 + K4)
6
i = 0, 1, 2, ...
xi+1 = xi + h,
function [u,v]=rk4(f, x, y, h, m)
f=[f, '+0*x+0*y'];
f=inline(f);
u=[ ];
v=[ ];
for i=1:m
k1=h*f(x,y);
k2=h*f(x+h/2, y+k1/2);
k3=h*f(x+h/2, y+k2/2);
k4=h*f(x+h, y+k3);
y=y+1/6*(k1+2*k2+2*k3+k4);
x=x+h;
u(i)=x;
v(i)=y;
end
Ejemplo. Para el ejemplo anterior, calcule 20 puntos de la solucin espaciados en una distancia
h = 0.1, usando la funcin rk4.
2
y - y - x + x - 1 = 0, y(0) = 1
2
f(x, y) = y - x + x + 1
x0 = 0, y0 = 1,
h = 0.1,
m = 20 (cantidad de puntos)
>> f=y-x^2+x+1;
>> [u, v]= rk4(f, 0, 1, 0.1, 20);
>> plot(u, v, 'o');
>> g=dsolve('Dy-y-x+x^2-1=0','y(0)=1','x')
g=
x+x^2+exp(x)
>> hold on;
>> grid on;
>> ezplot(g,[0,2]);
237
14
12
10
Solucin analtica
8
Solucin numrica
4
0
0
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
9.2
Solucin analtica
Los mtodos numricos desarrollados para una ecuacin diferencial ordinaria de primer orden
pueden extenderse directamente a sistemas de ecuaciones diferenciales de primer orden.
Analizamos el caso de dos ecuaciones diferenciales ordinarias de primer orden con condiciones
en el inicio
F(x, y, z, y) = 0, y(x0) = y0
G(x, y, z, z) = 0, z(x0) = z0
Se deben escribir en la notacin adecuada para usar los mtodos numricos
y = f(x, y, z), y(x0) = y0
z = g(x, y, z), z(x0) = z0
238
9.2.1
La frmula de Heun o frmula mejorada de Euler para un sistema de dos EDOs de primer orden
con condiciones en el inicio, es una extensin directa de la frmula para una EDO:
Definicin:
i=1:
239
Los resultados calculados con la frmula de Heun tienen al menos dos decimales exactos, y
3
coinciden aproximadamente con E=O(h )
9.2.2
Una funcin para calcular puntos de la solucin de un sistema de dos ecuaciones diferenciales
ordinarias de primer orden con condiciones en el inicio con la frmula de Heun. La funcin
requiere f(x,y), g(x,y), los puntos iniciales (x0, y0), (x0, z0) y los parmetros h , m (cantidad de
puntos).
function [u,v,w]=heun2(f, g, x, y, z, h, m)
f=[f, '+0*x+0*y+0*z'];
%Previene que f no tenga alguna variable
f=inline(f);
%Se producira un error al evaluar f
g=[g, '+0*x+0*y+0*z'];
%Previene que g no tenga alguna variable
g=inline(g);
%Se producira un error al evaluar g
clear u v w;
for i=1:m
k1y=h*f(x,y,z);
k1z=h*g(x,y,z);
k2y=h*f(x+h,y+k1y,z+k1z);
k2z=h*g(x+h,y+k1y,z+k1z);
y=y+0.5*(k1y+k2y);
z=z+0.5*(k1z+k2z);
x=x+h;
u(i)=x;
v(i)=y;
w(i)=z;
end
Ejemplo. Con la frmula
ecuaciones diferenciales.
y x y z = 0,
z + x y + z = 0,
Ecuaciones diferenciales
y = f(x, y, z) = x + y + z, x0 = 0, y0 = 1
z = g(x, y, z) = -x + y - z, x0 = 0, z0 = 2
>> f=x + y + z;
>> g=-x + y - z;
>> [u, v, w]=heun2(f, g, 0, 1, 2, 0.1, 20);
>> plot(u, v, 'o'); hold on
u, v, w contienen los puntos calculados
>> plot(u, w, 'o');
>> [y, z]=dsolve('Dy-x-y-z=0,Dz+x-y+z=0','y(0)=1,z(0)=2','x')
Solucin analtica
y=
3/4*exp(2^(1/2)*x)-3/4*2^(1/2)*exp(-2^(1/2)*x)+3/4*2^(1/2)*exp(2^(1/2)*x)+3/4*exp(2^(1/2)*x)-1/2
z=
3/4*exp(2^(1/2)*x)+3/4*exp(-2^(1/2)*x)-x+1/2
>> ezplot(y, [0,2]);
240
>> ezplot(z, [0,2]);
241
9.2.4
Una funcin para calcular puntos de la solucin de un sistema de dos ecuaciones diferenciales
ordinarias de primer orden con condiciones en el inicio con la frmula de Runge-Kutta. La funcin
requiere f(x,y), g(x,y), los puntos iniciales (x0, y0), (x0, z0) y los parmetros h , m (cantidad de
puntos).
function [u,v,w]=rk42(f, g, x, y, z, h, m)
f=[f, '+0*x+0*y+0*z'];
%Previene que f no tenga alguna variable
f=inline(f);
%Se producira un error al evaluar f
g=[g, '+0*x+0*y+0*z'];
%Previene que g no tenga alguna variable
g=inline(g);
%Se producira un error al evaluar g
clear u v w;
for i=1:m
k1y=h*f(x,y,z);
k1z=h*g(x,y,z);
k2y=h*f(x+h/2,y+k1y/2,z+k1z/2);
k2z=h*g(x+h/2,y+k1y/2,z+k1z/2);
k3y=h*f(x+h/2,y+k2y/2,z+k2z/2);
k3z=h*g(x+h/2,y+k2y/2,z+k2z/2);
k4y=h*f(x+h,y+k3y,z+k3z);
k4z=h*g(x+h,y+k3y,z+k3z);
y=y+1/6*(k1y+2*k2y+2*k3y+k4y);
z=z+1/6*(k1z+2*k2z+2*k3z+k4z);
x=x+h;
u(i)=x;
v(i)=y;
w(i)=z;
end
Ejemplo. Con la frmula de Runge-Kutta obtenga 20 puntos de la solucin del siguiente sistema
de ecuaciones diferenciales. Use h = 0.1
y x y z = 0, y(0) = 1
z + x y + z = 0, z(0) = 2
Ecuaciones diferenciales
y = f(x, y, z) = x + y + z, x0 = 0, y0 = 1
z = g(x, y, z) = -x + y - z, x0 = 0, z0 = 2
>> f=x + y + z;
>> g=-x + y - z;
>> [u, v, w]=rk42(f, g, 0, 1, 2, 0.1, 20);
>> plot(u, v, 'o'); hold on
u, v, w contienen los puntos calculados
>> plot(u, w, 'o');
>> [y, z]=dsolve('Dy-x-y-z=0,Dz+x-y+z=0','y(0)=1,z(0)=2','x')
Solucin analtica
y=
3/4*exp(2^(1/2)*x)-3/4*2^(1/2)*exp(-2^(1/2)*x)+3/4*2^(1/2)*exp(2^(1/2)*x)+3/4*exp(2^(1/2)*x)-1/2
z=
3/4*exp(2^(1/2)*x)+3/4*exp(-2^(1/2)*x)-x+1/2
>> ezplot(y, [0,2]);
>> ezplot(z, [0,2]);
242
243
Clculo de los puntos de la solucin
i=0:
x0 = 0, y0 = 1, z0 = 2
K1,y = hf(x0, y0, z0) = 0.1 f(0, 1, 2) = 0.1 (2) = 0.2
K1,z = hg(x0, y0, z0) = 0.1 g(0, 1, 2) = 0.1 (0 1 + 2 1) = 0
K2,y = hf(x0 + h/2, y0 + K1,y/2, z0+ K1,z/2) = 0.1f(0.05, 1.1, 2) = 0.1( 2) = 0.2
K2,z = hgx0 + h/2, y0 + K1,y/2, z0+ K1,z/2) = 0.1g(0.05, 1.1, 2) =0.1(0.05-1.1+2-1) = -0.005
K3,y = hf(x0 + h/2, y0 + K2,y/2, z0+ K2,z/2) = 0.1 f( 0.05, 1.1, 1.9975) = 0.1998
K3,z = hg(x0 + h/2, y0 + K2,y/2, z0+ K2,z/2) = 0.1 g( 0.05, 1.1, 1.9975) = -0.0052
K4,y = hf(x0 + h, y0 + K3,y, z0 + K3,z) = 0.1 f(0.1, 1.1998, 1.9948) = 0.1995
K4,z = hgx0 + h, y0 + K3,y, z0 + K3,z) = 0.1 g0.1, 1.1998, 1.9948) = -0.0105
1
(K1,y + 2K2,y + 2K3,y + K4,y) = 1 +
6
1
z1 = z0 + (K1,z + 2K2,z + 2K3,z + K4,z) = 2 +
6
x1 = x0 + h = 0 + 0.1 = 0.1
y1 = y0 +
9.3.1
1
[0.2+2(0.2)+2(0.1998)+0.1995] = 1.1998
6
1
[0+2(-0.005)+2(-0.0052)-0.0105]=1.9948
6
Instrumentacin computacional
244
9.4
Los mtodos numricos pueden aplicarse igualmente para calcular la solucin aproximada de
ecuaciones diferenciales ordinarias no lineales, para las cuales no es posible o pudiese ser muy
laborioso obtener la solucin analtica
245
246
9.6
En esta seccin revisaremos los mtodos numricos para resolver ecuaciones diferenciales
ordinarias para las cuales se proporcionan condiciones iniciales en los bordes, siendo de inters
conocer la solucin en el interior de esta regin, como en el siguiente ejemplo:
y - y + y - 2e - 3 = 0, y(0) = 1, y(1) = 5, 0 x 1
x
9.6.1
Una opcin para obtener la solucin numrica consiste en realizar varios intentos suponiendo
una condicin adicional en el inicio para poder usar los mtodos vistos anteriormente. Para el
ejemplo anterior probamos:
x
y - y + y - 2e - 3 = 0, y(0) = 1, y(0) = 1, 0 x 1
Esta es ahora una ecuacin diferencial de segundo orden con condiciones en el inicio, la cual se
puede re-escribir como dos ecuaciones diferenciales de primer orden:
y = f(x,y,z) = z,
y(0) = 1
x
z = g(x,y,z) = 2e - y + z + 3, z(0) = 1
Aqu se puede aplicar alguno de los mtodos estudiados (Heun, Runge-Kutta, etc.). El clculo
debe continuar hasta llegar al otro extremo del intervalo de inters. Entonces se debe comparar
el resultado obtenido en el extremo derecho con el dato dado para ese borde: y(1) = 5.
Esto permite corregir la condicin inicial supuesta y volver a calcular todo nuevamente. Este
procedimiento se puede repetir varias veces.
En la siguiente figura se observan tres intentos con el mtodo de Runge-Kutta de cuarto orden
probando con valores iniciales z(0) = y(0) = 1, 0.5, 0.8
Usamos la conocida funcin rk42 para resolver el ejemplo. Se calculan 20 puntos de la solucin
espaciados en una distancia 0.05
>> f='z';
>> g='2*exp(x) - y + z+3';
>> x=0;
>> y=1;
>> z=1;
>> [u,v] = rk42(f, g, x, y, z, 0.05, 20);
>> plot(u, v, 'o'), grid on, hold on
247
ya, yb
ya, yb
yn
y0
248
9.6.2
Para describir el uso de esta ecuacin, supondremos que h=0.25. En la realidad debera ser
ms pequeo para que el error de truncamiento se reduzca. Con este valor de h el problema se
puede visualizar de la siguiente manera
249
2
0 y1 1.5540
3.875 1.75
2.25
3.875 1.75 y2 =
0.7872
2.25
3.875 y3 7.9628
0
Cuya solucin es
y1 = 1.3930, y2 = 2.1964, y3 = 3.4095
En el siguiente grfico se visualizan los resultados calculados
La aproximacin no es muy buena. Esto se debe a que la cantidad de puntos es muy pequea.
Si se desea una mejor aproximacin se debe reducir h.
El siguiente grfico muestra la solucin calculada con n=20. A este valor de n le corresponde
h=0.05.
Se obtiene un sistema de 19 ecuaciones lineales cuyas incgnitas son los puntos interiores. Se
observa que los resultados tienen una aproximacin aceptable
250
Las ecuaciones que se obtienen con el mtodo de diferencias conforman un sistema tridiagonal
de ecuaciones lineales. Estos sistemas pueden resolverse con un algoritmo definido en un
captulo anterior el cual tiene eficiencia tipo T(n) = O(n)
251
x
P='2+h';
Q='2*h^2-4';
R='2-h';
S='4*h^2*exp(x)+6*h^2';
[u,v]=edodif(P,Q,R,S,0,1,1,5,20);
plot(u,v,'o');
y=dsolve('D2y-Dy+y-2*exp(x)-3=0','y(0)=1','y(1)=5','x');
hold on, ezplot(y,[0,1])
%Solucin analtica
252
9.6.4
Luego de sustituir las derivadas y simplificar se tiene la ecuacin de diferencias como antes:
2
=
0
2.25
3.875 1.75 y2 0.7872
0
2.25
3.875 y3 7.8475
0
Cuya solucin es:
253
El sistema resultante tiene forma tridiagonal, y por lo tanto se puede usar un algoritmo especfico
muy eficiente para resolverlo.
Otra alternativa sera la aplicacin de la ecuacin de diferencias en los puntos interiores. Se
obtendra un sistema de tres ecuaciones con las cuatro incgnitas: y0, y1, y2, y3. La cuarta
ecuacin se la obtendra con una frmula de segundo orden para la derivada en el punto
izquierdo definida con los mismos puntos desconocidos:
3y0 + 4y1 y2
y 0 = 0.5 =
2h
El inconveniente es que el sistema final no tendr la forma tpica tridiagonal, conveniente para
resolver el sistema de ecuaciones con eficiencia.
9.6.5
Instrumentacin computacional
La siguiente instrumentacin del mtodo de diferencias finitas permite resolver problemas de tipo
similar al ejemplo anterior, con una derivada en el borde izquierdo. Instrumentaciones similares
pueden desarrollarse si la derivada est en el borde derecho, o si ambos bordes contienen
derivadas. La funcin entrega los n-1 puntos calculados de la solucin x, y en los vectores u, v
Dada la ecuacin diferencial de segundo orden con condiciones en los bordes:
F(x, y(x), y(x), y(x)) = 0, dados (x0, y0), (xn, yn)
Se conocen los datos en los bordes: (x0, y0) y (xn, yn), n es la cantidad de sub intervalos
espaciados a una distancia h.
La ecuacin de diferencias que se obtiene luego de la sustitucin de las derivadas debe
escribirse en forma estandarizada
(P)yi-1 + (Q)yi + (R)yi+1 = (S), i = 1, 2, 3, . . . , n-1, con los datos (x0, y0), (xn, yn)
En donde P, Q, R, S son expresiones que pueden contener xi y h
Dato de la derivada en el borde izquierdo:
y1 y 1
de donde se obtiene y-1 = y1 - 2h(y 0)
2h
Ecuacin de diferencias aplicada en el borde izquierdo: i = 0
y 0 =
254
function [u,v]=edodifdi(P,Q,R,S,x0,dy0,xn,yn,n)
% Mtodo de Diferencias Finitas
% Solucin de una EDO con una derivada a la izquierda
% y una condicin constante a la derecha
h=(xn-x0)/n;
clear a b c d;
for i=1:n
% corresponde a las ecuaciones i = 0, 1, 2, ..., n-1
x=x0+h*(i-1);
a(i)=eval(P);
b(i)=eval(Q);
c(i)=eval(R);
d(i)=eval(S);
u(i)=x;
end
x=h;
c(1)=eval(P)+eval(R);
%correccin para la primera ecuacin
d(1)=eval(S)+eval(P)*2*h*dy0;
d(n)=d(n)-c(n)*yn;
%correccin para la ltima ecuacin
v=tridiagonal(a,b,c,d);
%solucion del sistema tridiagonal
Uso de la funcin EDODIFDI para resolver el ejemplo anterior, con n=20 subintervalos
y - y + y - 2e - 3 = 0, y(0) = 0.5, y(1) = 5, 0 x 1
x
255
9.6.6
dt
1
=
dx b a
y '(x)
=
dy dy dt
1 dy
1
=
=
=
y '(t)
dx dt dx b a dt b a
=
y ''(x)
d2 y
d dy
d dy dt
d
1 dy dt
1
d2 y
1
=
=
=
=
=
(
)
(
)
(
)
y ''(t)
2
2
2
dx dx
dt dx dx dt b a dt dx (b a) dt
dx
(b a)2
256
9.7
1. Obtenga dos puntos de la solucin de la siguiente ecuacin diferencial utilizando tres trminos
de la Serie de Taylor. Use h = 0.1
2
y- 2x + 2y + 3=0, y(0)=1
2. Dada la siguiente ecuacin diferencial ordinaria de primer orden
2
y- 2y + 2x x + 3 = 0, y(0)=1.2
a) Obtenga dos puntos de la solucin con la frmula de Euler. Use h = 0.1
b) Obtenga dos puntos de la solucin con la frmula de Heun. Use h = 0.1
c) Obtenga dos puntos de la solucin con la frmula de Runge-Kutta de cuarto orden.
Use h = 0.1
2
2x
d) Compare con la solucin exacta: y(x) = x/2 + x 11/20 e + 7/4
3. Al resolver una ecuacin diferencial con un mtodo numrico, el error de truncamiento tiende a
acumularse y crecer. Use el mtodo de Euler con h=0.1 para calcular 10 puntos de la solucin de
la ecuacin:
y' 2x + 5y 1 = 0, y(0) = 2
-5x
Compare con la solucin analtica y(x) = 2x/5 + 47/25 e +3/25. Observe que el error de
truncamiento tiende a reducirse. Explique este comportamiento.
4. La solucin exacta de la ecuacin diferencial: y' 2xy = 1, y(0)=y0 es
2
=
y(x) e x (
e t dt
2
257
7. Dada la siguiente ecuacin diferencial
2
y'' + y' - y + 2x - 3x - 4 = 0, 2x5, y(2) = 11, y(5) = 56
a) Normalice la ecuacin al intervalo 0 t 1
b) Sustituya las derivadas por aproximaciones de diferencias finitas de segundo orden y
simplifique a la forma : P yi-1 + Q yi + R yi+1 = S
c) Resuelva el sistema resultante y obtenga la solucin. Use h=0.2
8. La siguiente es una ecuacin diferencial no lineal conocida con el nombre de Ecuacin de Van
der Pol y describe un sistema vibratorio masa-resorte-amortiguador:
x(t):
x(0)=0.75, x'(0)=0
9. La distribucin de temperatura u(x) en estado estable de una barra de longitud L con una
fuente de calor Q(x), temperatura constante en el extremo derecho y aislada en el extremo
izquierdo, est dada por
u''+ Q(x) =
0 , u'(0) = 0 , u(L) = T
2
Resuelva para T=100, Q(x)=x , L=1. Use el mtodo de diferencias finitas, h=0.2
10. Un problema importante en ingeniera es la deflexin de una viga de seccin transversal
uniforme sujeta a una carga distribuida y colocada con sus extremos apoyados de forma tal que
no pueden deflectarse, como se muestra en la figura:
d 2w
S
qx
La ecuacin que describe esta situacin fsica es:
=
w+
( x L)
2
2 EI
EI
dx
Siendo w(x): deflexin a una distancia x desde el extremo izquierdo.
q: intensidad de carga por unidad de longitud. E: mdulo de elasticidad.
S: tensin en los puntos extremos. I: momento principal de inercia. L: longitud de la viga.
La condicin de no deflexin en los extremos se expresa con: w(0) = w(L) = 0.
Suponga una viga de acero con las siguientes caractersticas:
7
258
11. Para resolver la siguiente ecuacin diferencial ordinaria no lineal
2
y = x(y) , 1x2
y(1) = 1.1071, y(1) = -0.4
Use la frmula mejorada de Euler (frmula de Heun) con h = 0.25, 1x2
Tabule los resultados obtenidos junto con los valores calculados con la solucin exacta y(x) =
arc cot(x/2). Comente el resultado de esta comparacin.
12. Una masa m = 1/8 se suspende en un resorte de constante k = 2. Inicialmente se la estira
hacia abajo 1.0 y se aplica una fuerza externa f(t) = 8sen(t). Entonces el desplazamiento vertical
Y(t) se describe con la siguiente ecuacin, en donde t es tiempo:
Y ''+
k
f(t)
Y=
m
m
Con el mtodo de diferencias finitas, h=0.1, encuentre Y(t) entre: Y(0) = -1 y Y(1) = 3
13. Al integrar una ecuacin diferencial de primer orden
xi +1
y(x) = f(x,y)
se
xi +1
s=
x i 1
(s + 1)s 2
fi2
2
x xi
.
h
Obtenga una frmula aproximada con la cual pueda obtener puntos de la solucin.
b) Con la frmula calcule y(0.08) de la solucin de la ecuacin (1 + 2x) y + 0.9 y = 0, dados
la condicin inicial (0, 1) y dos puntos de la solucin: (0.02,0.9825), (0.04, 0.9660). Use h=0.02
259
10
u u 2 u 2 u 2 u
,
,
,
,
)=0
x y x 2 y 2 xy
Una forma de clasificar estas ecuaciones es por su tipo: parablicas, elpticas e hiperblicas,
En forma similar a las ecuaciones diferenciales ordinarias, el mtodo numrico que usaremos
consiste en sustituir las derivadas por aproximaciones de diferencias finitas. El objetivo es
obtener una ecuacin denominada ecuacin de diferencias que pueda resolverse por mtodos
algebraicos. Esta sustitucin discretiza el dominio con espaciamiento que debe elegirse.
ui + 1,j u i,j
x
ui,j+ 1 u i,j
y
ui,j u i,j1
+ O(x)
(8.1)
+ O(y)
(8.2)
+ O(y)
y
ui + 1,j u i 1,j
+ O(x)2
2(x)
3u0,j + 4u 1,j u2,j
+ O(x)2
2(x)
(8.3)
(8.4)
(8.5)
(8.6)
(8.7)
260
10.2 Ecuaciones diferenciales parciales de tipo parablico
Estas ecuaciones se caracterizan porque en su dominio una de las variables no est delimitada.
Para aplicar el mtodo de diferencias finitas usaremos un ejemplo bsico para posteriormente
interpretar los resultados obtenidos.
Ejemplo. Resolver la ecuacin de difusin en una dimensin con los datos suministrados
2u
u
u(x,t):
=k
2
t
x
Suponer que u es una funcin que depende de x, t, en donde u representa valores de
temperatura, x representa posicin, mientras que t es tiempo,
Esta ecuacin se puede asociar al flujo de calor en una barra muy delgada aislada
transversalmente y sometida en los extremos a alguna fuente de calor. La constante k depende
del material de la barra. La solucin representa la distribucin de temperaturas en cada punto x
de la barra y en cada instante t
u(x, t)
Tb
Ta
L
To
Ta, Tb son valores de temperatura de las fuentes de calor aplicadas en los extremos. En este
primer ejemplo suponer que son valores constantes. To es la temperatura inicial y L es la
longitud de la barra.
Estas condiciones se pueden expresar de manera simblica en un sistema de coordenadas
u(0, t) = Ta, t 0
u(L, t) = Tb, t 0
u(x, 0) = To, 0 < x < L
Para aplicar el mtodo de diferencias finitas, debe discretizarse el dominio de u mediante una
malla con puntos en un plano en el cual el eje horizontal representa la posicin xi mientras que
el eje vertical representa el tiempo tj.
u=u(x,t), 0 x L, t 0
261
10.2.1
Para el primer intento elegimos las frmulas (8.6) y (8.2) para sustituir las derivadas de la
ecuacin diferencial:
ui + 1,j 2u i,j +ui 1,j
ui,j+ 1 u i,j
2u
u
2
+ O(x) = k
+ O(t)
=k
2
2
t
t
(x)
x
Se obtiene la ecuacin de diferencias
ui + 1,j 2u i,j +ui 1,j
ui,j+ 1 u i,j
2
= k
, cuyo error de truncamiento es T = O(x) + O(t).
2
t
(x)
Si x, t 0 T 0 y la ecuacin de diferencias tiende a la ecuacin diferencial parcial
Para que esta sustitucin sea consistente, todos los trminos de la ecuacin deben tener un
error de truncamiento de orden similar. Esto significa que t debe ser menor que x,
aproximadamente en un orden de magnitud.
Es conveniente analizar cuales puntos estn incluidos en la ecuacin de diferencias. Para esto
consideramos un segmento de la malla y marcamos los puntos de la ecuacin.
Los puntos que estn incluidos en la ecuacin de diferencia conforman un tringulo. Este
tringulo puede colocarse en cualquier lugar de la malla asignando a i, j los valores apropiados.
Por ejemplo, si i=1, j=0, la ecuacin de diferencias se ubica en el extremo inferior izquierdo de la
malla. Los puntos en color rojo son los datos conocidos. Los puntos en amarillo son los puntos
que deben calcularse.
262
Se puede observar que solo hay un punto desconocido en la ecuacin. Por lo tanto, esta
ecuacin de diferencias proporciona un mtodo explcito de clculo. Esto significa que cada
punto de la solucin puede ser obtenerse en forma individual y directa cada vez que se aplica la
ecuacin.
Despejamos el punto desconocido ui,j+ 1
=
ui,j+ 1
Definiendo
t
(ui 1,j 2ui,j + ui + 1,j ) + ui,j
k(x)2
t
=
ui,j+ 1 =
(ui 1,j 2ui,j + ui + 1,j ) + ui,j
k(x)2
La forma final de la ecuacin de diferencias se obtiene sustituyendo los datos del ejemplo:
t
0.1
==
= 0.4
k(x)2
4(0.25)2
j = 1, i = 1:
i = 2:
i = 3:
En el siguiente grfico se anotan los resultados para registrar el progreso del clculo
263
Para que la precisin de la solucin sea aceptable, los incrementos x y t deberan ser mucho
ms pequeos, pero esto hara que la cantidad de clculos involucrados sea muy grande para
hacerlo manualmente.
Ei, j = e
1 xi +t j
=
M
Ei, j+ 1 e 1xi + (t j + t)
=
= e t
1 xi +t j
Ei,j
e
ui,j+ 1 =
(ui 1,j 2ui,j + ui + 1,j ) + ui,j ,
1 xi + (t j + t)
Dividiendo por
1 (x + x) +t j
i
=
(e
2e
1 xi +t j
k xi +t j
e t = (e
1x
2+e
1i ( x)
)+1
e t = (2 cos(x) 2) + 1
+e
1 (xi x) +t j
)+e
1 xi +t j
264
| (2 cos(x) 2) + 1| 1
Sustituyendo los valores extremos de cos(x) = 1, cos(x) = 1
Se obtiene la restriccin para que este mtodo sea estable:
1
t
1
k(x)2 2
2
Si se cumple esta condicin, el error propagado no crecer.
Si se fija k y x, debera elegirse t para que se mantenga la condicin anterior.
Se puede verificar que si no se cumple esta condicin, el mtodo se hace inestable rpidamente
y los resultados obtenidos son incoherentes. Esto puede interpretarse como que la ecuacin de
diferencias ya no es consistente con la ecuacin original.
Desde el punto de vista del error de truncamiento x debera ser suficientemente pequeo para
que la informacin sea suficientemente precisa. Por otra parte, t debera ser aproximadamente
un orden de magnitud menor que x. Pero, desde el punto de vista del error de redondeo x y t
no deberan ser demasiado pequeos para evitar la acumulacin del error de redondeo
265
lambda = dt/(k*dx^2);
P=lambda;
Q=1-2*lambda;
R=lambda;
hold on;
title('Curvas de distribucin trmica');
xlabel('X (distancia)');
ylabel('U (temperatura)');
x=0:dx:L;
% Coordenadas para el grfico
plot(x,U,'r'); grid on; % Distribucin inicial
for j=1:n
U= edpdif(P,Q,R,U,m);
if mod(j,5)==0
plot(x,U,'r'); % Para graficar curvas cada 5 niveles de t
pause
end
end
function u=edpdif(P,Q,R,U,m)
% Solucin U(x,t) de una EDP con condiciones constantes en los bordes
% Mtodo explcito de diferencias finitas
u(1)=U(1);
for i=2:m-1
u(i)=P*U(i-1)+Q*U(i)+R*U(i+1);
end
u(m)=U(m);
Curvas de distribucin trmica para el ejemplo. La distribucin tiende a una forma estable.
La ejecucin controlada con el comando pause permite visualizar el progreso de los clculos
266
Con esta instrumentacin se puede verificar que al incrementar t a un valor tal que > 0.5 ,
ya no se cumple la condicin de estabilidad y el mtodo se hace inestable. Los resultados que se
obtienen son incoherentes.
10.2.4 Un esquema de diferencias finitas implcito
En un segundo intento elegimos las aproximaciones (8.6) y (8.3) para sustituir las derivadas de la
ecuacin diferencial
ui + 1,j 2u i,j +ui 1,j
ui,j u i,j1
2u
u
2
+ O(x) = k
+ O(t)
=k
2
2
(x)
t
t
x
Se obtiene la ecuacin de diferencias
ui + 1,j 2u i,j +ui 1,j
ui,j u i,j1
= k
t
(x)2
2
Su error de truncamiento es igualmente T = O(x) + O(t), debiendo cumplirse que t < x
Marcamos los puntos incluidos en esta ecuacin de diferencias.
Los puntos marcados conforman un tringulo de puntos invertido. Este tringulo correspondiente
a los puntos incluidos en la ecuacin de diferencias y puede colocarse en cualquier lugar de la
malla asignando a i, j los valores apropiados. Por ejemplo, si i=1, j=1, la ecuacin de diferencias
se aplicada en el extremo inferior izquierdo de la malla:
= k
ui,j u i,j1
t
t
(ui + 1, j 2ui, j + ui 1, j ) = ui,j ui,j 1
k(x)2
267
Definiendo
t
, la ecuacin se puede escribir
k(x)2
2,1 25
0
0.4 1.8 u3,1 41
Cuya solucin es
u1,1 33.0287
u2,1 = 26.1290
u3,1 28.5842
Instrumentacin computacional
268
269
Curvas de distribucin trmica para el ejemplo. La distribucin tiende a una forma estable.
10.2.6
Prctica computacional
u(x,t):
2u
u
, 0 x 1, t 0
=k
2
t
x
u(0,t)
t0
= 5 ,
x
u(1, t) = 20 + 10 sen(t), t 0
u(x, 0) = 40 x,
0<x<1
x = 0.25, t = 0.1, k = 4
270
i = 0:
i = 1:
i = 2:
i = 3:
(1)
(2)
(3)
(4)
Se tiene un sistema de cuatro ecuaciones y cinco puntos desconocidos: u-1,1, u0,1, u1,1, u2,1, u3,1
incluyendo el punto ficticio u-1,1
u(0,t)
El dato adicional conocido:
= 5 es aproximado ahora mediante una frmula de
x
diferencias finitas central:
u0,j u1,j u1,j
2
=
= 5, j = 1, 2, 3, . . . , E = O(x)
x
2(x)
271
De donde se obtiene u-1,j = u1,j + 5(2x) para sustituir en la ecuacin (1) anterior:
j = 1, i = 0: 0.4u-1,1 1.8u0,1 + 0.4u1,1 = 0
0.4[u1,j + 5(2x)] -1.8u0,1 + 0.4u1,1 = 0 -1.8u0,1 + 0.8u1,1 = -1
En notacin matricial:
0
0 u0,1 1
1.8 0.8
=
0
0.4 1.8 0.4 u2,1 20
0
0.4 1.8 u3,1 38.4
0
Cuya solucin es:
El sistema de ecuaciones lineales resultante tiene forma tridiagonal, y por lo tanto se puede usar
un algoritmo especfico muy eficiente para resolverlo.
10.2.8 Instrumentacin computacional
La siguiente instrumentacin del mtodo de diferencias finitas implcito permite resolver
problemas con una derivada en el borde izquierdo. Instrumentaciones similares se pueden
desarrollar si la derivada est a la derecha o en ambos bordes.
Dada la ecuacin diferencial parcial parablica con condiciones en los bordes:
u 2 u
u(0,t)
, 2 ) = 0, u(x,t0)=T0,
= 0, u(1,t)=Tb
u=u(x,t), F(t, x, u,
t x
x
Luego de sustituir las derivadas para el mtodo implcito se escribe la ecuacin de diferencias
estandarizada:
(P)ui-1,j + (Q)ui,j + (R)ui+1,j = -ui,j-1,
i = 1, 2, 3, . . . , m-1
u0,j
x
u1,j u1,j
2(x)
= 0
2u
u
, 0 x 1, t 0
=k
2
t
x
u(0,t)
t0
= 5 ,
x
u(1, t) = 60,
t0
u(x, 0) = 40,
0<x<1
x = 0.1, t = 0.1, k = 4
272
273
Almacenar la funcin, el programa y ejecutarlo para obtener el grfico siguiente
Curvas de distribucin trmica
65
U (temperatura)
60
55
50
45
40
0.1
0.2
0.3
0.4
0.5
0.6
X (distancia)
0.7
0.8
0.9
u
u
2u
=
u
k 2
t
x
x
ui,j+ 1 ui,j
t
Se obtiene un esquema explcito de diferencias finitas que permitir calcular cada punto en la
malla que represente al dominio de la ecuacin diferencial siempre que estn previamente
definidas las condiciones en los bordes as como los parmetros k, t, x . Tambin debera
analizarse la estabilidad del mtodo.
ui,j+ 1 =t(ui,j
(x)2
) + ui,j
274
10.3 Ecuaciones diferenciales parciales de tipo elptico
Este tipo de ecuaciones se caracteriza porque su dominio es una regin cerrada. Para aplicar el
mtodo de diferencias finitas usaremos un ejemplo particular para posteriormente interpretar los
resultados obtenidos.
Ejemplo. Resolver la ecuacin de difusin en dos dimensiones:
2u 2u
+
=
0
u(x,y):
x 2 y 2
Suponer que u es una funcin que depende de x, y, en donde u representa valores de
temperatura, x, y representan posicin.
Esta ecuacin se puede asociar al flujo de calor en una placa muy delgada aislada trmicamente
en sus caras superior e inferior y sometida en los bordes a alguna condicin. La solucin
representa la distribucin final de temperaturas en la placa en cada punto (x, y)
Ta, Tb, Tc, Td son valores de temperatura, suponer constantes, de alguna fuente de calor
aplicada en cada borde de la placa. L1, L2 son las dimensiones de la placa.
Estas condiciones se pueden expresar simblicamente en un sistema de coordenadas X-Y:
u(0, y) = Ta,
u(L1, y) = Tb,
u(x, 0) = Tc,
u(x, L2) = Td,
0 < y < L2
0 < y < L2
0 < x < L1
0 < x < L1
Para aplicar el mtodo de diferencias finitas, debe discretizarse el dominio de u mediante una
malla con puntos u(xi, yj), en la cual xi , yj representan coordenadas
u=u(x,y), 0 x L1, 0 y L2
275
10.3.1
Elegimos las siguientes aproximaciones de diferencias finitas para sustituir las derivadas de la
ecuacin diferencial
2ui,j ui + 1,j 2u i,j +ui 1,j
=
+ O(x)2
x 2
(x)2
=0
Para que esta sustitucin sea consistente, x debe ser muy cercano a y en magnitud.
Es conveniente analizar los puntos incluidos en la ecuacin de diferencias. Para esto
consideramos un segmento de la malla y marcamos los puntos de la ecuacin.
Los puntos marcados conforman un rombo. Este rombo describe los puntos incluidos en la
ecuacin de diferencias y puede colocarse en cualquier lugar de la malla asignando a i, j los
valores apropiados.
Por ejemplo, si i=1, j=1, la ecuacin de
diferencias se aplica al extremo inferior
izquierdo de la malla.
Se puede observar que la ecuacin de
diferencias contiene tres puntos
desconocidos
276
=0
-4u1,1 + u2,1
+ u1,2
= -110
u1,1 - 4u2,1 + u3,1
+ u2,2
= -50
u2,1 - 4u3,1
+ u3,2 = -90
u1,1
u2,1
1 0
0 u1,1 110
4 1 0
1 4 1 0
1 0 u2,2 50
0
1 4 0
0
1 u3,2 90
=
0 4 1 0 u1,2 140
1 0
0
1 0
1 4 1 u2,2 80
0
1 0
1 4 u3,2 120
0
Cuya solucin es
- 4u1,2 + u2,2
= -140
+ u1,2 - 4u2,2 + u3,2 = -80
u3,1
+ u2,2 -4u3,2 = -120
277
u1,1 57.9917
u
2,1 56.1491
u 3,1 51.3251
u1,2 65.8178
u2,2 65.2795
u3,2 59.1511
Se ha usado un mtodo directo para resolver el sistema cuya forma es diagonal dominante, por
lo que tambin se podran usar mtodos iterativos dado que la convergencia es segura.
10.3.2
Instrumentacin computacional
La siguiente instrumentacin en MATLAB est diseada para resolver una ecuacin diferencial
parcial elptica con condiciones constantes en los bordes. Se supondr adems que x = y
Al aplicar la ecuacin de diferencias en los puntos de la malla, cada ecuacin tiene no ms de
cuatro componentes y tiene una forma adecuada para instrumentar un mtodo iterativo para
obtener la solucin.
Ecuacin de diferencias
; j = 1, 2, 3,
Frmula iterativa
(k + 1)
ui,j
=
1 (k)
(k)
(k)
(ui 1,j + ui(k)
+ 1,j + ui,j 1 + ui,j + 1 ) , k = 0, 1, 2, ...
4
(iteraciones)
278
k=0;
%conteo de iteraciones
conv=0;
%seal de convergencia
while k<miter & conv==0
k=k+1;
t=u;
for i=2:n+1
for j=2:m+1
u(i,j)=0.25*(u(i-1,j)+u(i+1,j)+u(i,j+1)+u(i,j-1));
end
end
if norm((u-t),inf)/norm(u,inf)<e
conv=1;
end
end
if conv==1
disp(u);
% Muestra la solucin final en la malla
disp(k);
% Cantidad de iteraciones realizadas
[x,y]=meshgrid(1:m+2, 1:n+2);
% Malla para el grafico en tres dimensiones
surf(x,y,u)
% Grafico en tres dimensiones
colormap copper
% Color
shading flat
% Suavizado
else
disp('No converge');
end
60.0000
55.0555
53.1504
52.3140
51.9277
51.7775
51.7911
51.9651
52.3661
53.2029
55.0911
60.0000
60.0000
57.1094
55.2931
54.2564
53.7079
53.4827
53.5081
53.7780
54.3539
55.3914
57.1760
60.0000
Error relativo:
Cantidad de iteraciones:
60.0000
58.1502
56.7522
55.8324
55.3016
55.0770
55.1116
55.3973
55.9657
56.8866
58.2412
60.0000
60.0000
58.8179
57.8553
57.1733
56.7603
56.5863
56.6271
56.8731
57.3301
58.0135
58.9249
60.0000
60.0000
59.3552
58.8149
58.4166
58.1708
58.0739
58.1173
58.2907
58.5835
58.9831
59.4689
60.0000
60.0000
59.8800
59.7729
59.6826
59.6256
59.6166
59.6589
59.7427
59.8454
59.9370
59.9908
60.0000
60.0000
60.4789
60.8462
61.0788
61.2131
61.2895
61.3274
61.3179
61.2245
60.9930
60.5780
60.0000
60.0000
61.2649
62.1676
62.7133
63.0120
63.1550
63.1856
63.0965
62.8308
62.2860
61.3448
60.0000
60.0000
62.4714
63.9325
64.7007
65.0824
65.2488
65.2700
65.1409
64.7821
64.0145
62.5267
60.0000
0.1%
41
60.0000
64.7253
66.4446
67.1404
67.4393
67.5585
67.5691
67.4687
67.1813
66.4858
64.7531
60.0000
60.0000
70.0000
70.0000
70.0000
70.0000
70.0000
70.0000
70.0000
70.0000
70.0000
70.0000
60.0000
279
70
65
60
55
50
15
15
10
10
5
5
0
280
10.4 Ecuaciones diferenciales parciales de tipo hiperblico
En este tipo de ecuaciones el dominio est abierto en uno de los bordes Para aplicar el mtodo
de diferencias finitas usaremos un ejemplo particular para posteriormente interpretar los
resultados obtenidos.
2
2u
2 u
=
c
t 2
x 2
Suponer que u es una funcin que depende de x, t en donde u representa el desplazamiento
vertical de la cuerda en funcin de la posicin horizontal x, y el tiempo t, mientras que c es una
constante. L es la longitud de la cuerda
1),
0.5 < x < 1
Para aplicar el mtodo de diferencias finitas, debe discretizarse el dominio de u mediante una
malla con puntos en dos dimensiones en la cual el eje horizontal representa la posicin xi
mientras que el eje vertical representa el tiempo tj.
u=u(x,t), 0 x L, t 0
=c
281
Esta ecuacin se puede expresar de la siguiente forma:
c2 (t)2
ui,j+ 1 2u i,j + ui,j1 =
( ui + 1,j 2u i,j + ui 1,j )
(x)2
Mediante un anlisis se demuestra que si
c2 (t)2
1, entonces la solucin calculada con el
(x)2
i = 1, 2, 3, 4;
j = 1, 2, 3, . . .
(1)
Se puede notar observando el grfico que para obtener cada nuevo punto de la solucin se
requieren conocer dos niveles previos de la solucin
Describimos el dominio de u mediante una malla con puntos en dos dimensiones en la cual el eje
horizontal representa la posicin xi mientras que el eje vertical representa tiempo tj. En esta
malla se representan los datos en los bordes y los puntos interiores que deben ser calculados
(2)
u(x,0)
=0
t
282
Esta ecuacin incluye el punto ficticio ui,-1 entonces debe evaluarse la ecuacin (1) cuando t=0:
j = 0:
ui,1 =
1
(ui + 1,0 + ui 1,0 ) , i = 1, 2, 3, 4
2
(3)
La ecuacin (3) debe aplicarse nicamente cuando t = 0, para encontrar ui,j en el nivel j=1
1
1
j = 0, i = 1: u1,1 =(u2,0 + u0,0 ) =(0.2 + 0) =
0.1
2
2
1
1
i = 2: u2,1 = (u3,0 + u1,0 ) = (0.2 + (0.1)) =0.15
2
2
1
1
i = 3: u3,1 = (u4,0 + u2,0 ) = (0.1 + (0.2)) =0.15
2
2
1
1
i = 4: u4,1 = (u5,0 + u3,0 ) = (0 + (0.2)) =0.1
2
2
Los valores calculados son colocados en la malla:
Ahora se tienen dos niveles con puntos conocidos. A partir de aqu se debe usar nicamente la
ecuacin (1) como un esquema explcito para calcular directamente cada punto en los siguientes
niveles j, cada uno a una distancia t = 0.1
j = 2,
j = 1, 2, 3, . . .
i = 1:
i = 2:
i = 3:
i = 4:
i = 1:
i = 2:
i = 3:
283
j = 3,
i = 4:
i = 1:
i = 2:
i = 3:
i = 4:
etc.
284
U1(1)=U0(1);
% Calculo del primer nivel
for i=2:m-1
U1(i)=0.5*(U0(i-1)+U0(i+1));
end
U1(m)=U0(m);
plot(x,U1,'r');
axis([0,1,-0.5,0.5]);
pause;
clf;
for j=1:n
% Siguientes niveles
Uj(1)=U1(1);
for i=2:m-1
Uj(i)=U1(i+1)+U1(i-1)-U0(i);
end
Uj(m)=U1(m);
plot(x,Uj,'r');
axis([0,1,-0.5,0.5]);
pause;
clf;
U0=U1;
U1=Uj;
end
function U1= edpdifh1 (U0,m)
% Solucin U(x,t) de una EDP hiperbolica con parametro igual a 1
% Clculo del primer nivel de la solucion
U1(1)=U0(1);
for i=2:m-1
U1(i)=0.5*(U0(i-1)+U0(i+1));
end
U1(m)=U0(m);
function Uj= edpdifhj (U0,U1,m)
% Solucin U(x,t) de una EDP hiperbolica con parametro igual a 1
% Clculo de los siguientes niveles de la solucion
Uj(1)=U1(1);
for i=2:m-1
Uj(i)=U1(i+1)+U1(i-1)-U0(i);
end
Uj(m)=U1(m);
La ejecucin del programa produce el siguiente resultado grfico:
0.5
0.4
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
285
En la siguiente prueba el desplazamiento inicial es asimtrico. En el punto x=0.25, se tensa 0.25
hacia abajo y se suelta la cuerda. Las otras condiciones se mantienen igual.
Ecuacin de la cuerda en el instante inicial:
0 < x 0.25
x,
u(x, 0) = 1
3 (x 1), 0.25 < x < 1
for i=2:m-1
x=x+dx;
if x<L/4;
U0(i)=-x;
else
U0(i)=1/3*(x-1);
end
end
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
286
10.5 Ejercicios con ecuaciones diferenciales parciales
1. Dada la siguiente ecuacin diferencial parcial de tipo parablico
2u
u
=
C =
, u u(x, t), 0 < x < 2, t > 0 , con las condiciones
2
x
t
a) u(x,0)=25 sen(x), 0<x<2
b) u(0,t)=10 t, t0
c)
u(2, t)
= 5, t 0
x
a) Calcule manualmente dos niveles de la solucin con el mtodo explcito de diferencias finitas
Utilice x=0.5, C=1.6
1
t
Para que el mtodo sea estable use la condicin
=
C(x)2 2
Use una aproximacin de diferencias finitas de segundo orden para la condicin c)
b) Calcule dos niveles de la solucin con el mtodo implcito de diferencias finitas. Use las
mismas especificaciones dadas en 1.
2. Con el criterio de Von Newman, analice la estabilidad del mtodo implcito de diferencias
finitas para resolver la EDP de tipo parablico. Demuestre que es incondicionalmente estable.
2u
u
=C
t
x 2
cui1,j + (1 2c)ui,j + cui+ 1,j =ui,j1 , c = t 2
C(x)
3. Resuelva la siguiente ecuacin diferencial parcial de tipo elptico con el mtodo de diferencias
finitas.
2u 2u
+
=0
x 2 y 2
u(0, y) = 10,
u(2, y) = 20 sen (y),
uy (x, 0) = 20,
u(x, 3) = 25x,
0y3
0y3
0x2
0x2
2u
2u
=
(1
+
2x)
, 0<x<1, t>0
t 2
x 2
Use las siguientes condiciones iniciales y de borde:
u(x, 0) = 0; 0x1
u(x,0)
= x(1 x)
t
Use x = t = 0.25, y encuentre la solucin cuando t = 1
287
5. Resolver el siguiente problema de valor en la frontera:
2u 2u
x 2 + y 2 = x + y , 0 < x < 1 , 0 < y < 1
y2
0,
0
,
1,
, 0 y 1
=
=
u
y
u
y
(
)
(
)
1 3
, 0 ) u ( x=
,1)
x , 0 x 1
u ( x=
6
2u 2u
+
+ cos (x + y ) + cos (x y ) = 0 , 0 < x < 2 , 0 < y < 4
x 2 y 2
Sujeta a las condiciones de frontera:
u (0 , y ) = cos( y ) , u ( 2 , y ) = 0 , 0 y 4
u ( x ,0 ) = cos( x ) , u ( x , 4 ) =
cos( x )
, 0 x 2
2
hx = 6 y h y = 12
288
BIBLIOGRAFA
1. Burden R., Faires J. Anlisis Numrico, Thomson Learning, 2002, Mexico
2. Gerald, C., Aplied Numerical Anlysis, Addison-Wesley Publishing Company
3. Conte S., Boor C., Anlisis Numrico Elemental, McGraw-Hill
4. Carnahan B., Luther H. Wilkes J., Applied Numerical Methods, John Wiley & Sons, Inc
5. Nakamura S., Anlisis Numrico y Visualizacin Grfica con MATLAB, Prentice-Hall
6. The Mathworks, Inc. Using MATLAB Computation, Visualization, Programming
7. Prez Lpez C. MATLAB y sus Aplicaciones a las Ciencias y la Ingeniera, Pearson Ed.