Está en la página 1de 260

1

PRESENTACIÓN.
En estas notas modulares se presenta el contenido mínimo de un curso de Métodos Numéricos
para cualquier programa de ingeniería. Las notas como tales no alcanzan la categoría de libro de
texto, pero su contenido es una guía que le permite al alumno abordar el estudio de cualquier libro
de texto.
Este material es el producto de mi experiencia docente en el curso a partir de 1986. En 1988
publiqué unas notas muy resumidas sin la componente de software. En 2004 se publicaron unas
notas en las que se manejaban los ambientes Matlab y Mathcad.
El autor se desempeñado, durante sus 30 años en la actividad docente, en los cursos de: Cálculo
diferencial, Cálculo integral, Geometría Euclidiana, Geometría Vectorial, Ecuaciones Diferenciales,
Matemáticas Avanzadas, Física Moderna, Física del estado Sólido, Semiconductores, Circuitos
Eléctricos en el dominio del tiempo, Circuitos Eléctricos en el dominio de la frecuencia y Métodos
Numéricos.
Las notas están acompañadas de un buen número de programas en el ambiente Matlab y de una
bibliografía que incluye los textos clásicos de análisis numérico.
En el desarrollo de estas notas se prescinde del formalismo matemático típico de los textos de
análisis numérico. Se incorporan algunos temas de aplicaciones de ingeniería y ciencias y, en el
caso de las ecuaciones diferenciales, se contextualiza el estudio en las soluciones de problemas
de valor inicial y problemas con valor en la frontera.
A continuación se presenta una guía para estudiar las notas:

Módulo 1. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 2. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 3. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de


docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

Módulo 4. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 5. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 6. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 7. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 8. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 9. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de


docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

Módulo 10. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de
docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

Módulo 11. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de
docencia directa y que el estudiante le dedique, como mínimo, 8 horas.
2

Módulo 12. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 13. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 14. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 15. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 16. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de
docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

Módulo 17. Se sugiere que el profesor lo exponga de manera presencial en dos horas de docencia
directa y que el estudiante le dedique, como mínimo, 4 horas.

Módulo 18. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de
docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

Módulo 19. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de
docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

Módulo 20. Se sugiere que el profesor lo exponga de manera presencial en cuatro horas de
docencia directa y que el estudiante le dedique, como mínimo, 8 horas.

En total son 60 horas de docencia directa por parte del profesor y 120 horas de auto estudio por
parte del estudiante. Para la evaluación del curso se sugiere la siguiente distribución.

Quiz 10%. Módulos: 1-4


Tarea 10%. Módulos: 5-8
Parcial 30%. Módulos: 1-8
Quiz 10%. Módulos: 9-11
Tarea 10%. Módulos: 12-14
Final 30%. Módulos: 15-20

Un 10% del examen final puede ser un trabajo sobre los módulos 22 y 23
3

CONTENIDO
MÓDULO 1 FUNCIONES DE VARIABLE REAL 1

1.1 Introducción a los métodos numéricos para calcular los ceros reales de una 1
función de una variable.
1.2 Funciones de variable real 2
1.3 Programa en Matlab para representar gráficamente una función 2
1.4 Funciones resultantes de modelos matemáticos 4
1.5 Función polinómica 8
1.6 Función racional 10
1.7 Función exponencial 12
1.8 Función senoidal 12
EJERCICIOS 13

MÓDULO 2 RAÍCES DE ECUACIONES. MÉTODOS CERRADOS 17

2.1 Introducción 14
2.2 El método de bisección. 14
2.3 El método de la regla falsa 15
EJERCICIOS 16

MÓDULO 3 RAÍCES DE ECUACIONES. MÉTODO DE ITERACIÓN DE PUNTO FIJO 17

3.1 Introducción 17
3.2 El método de iteración de punto fijo 17
3.3 Programa para iteración de punto fijo 20
3.4 Iteración de punto fijo como función 21
3.5 La técnica SOR 22
3.6 Programa SOR 24
EJERCICIOS 25

MÓDULO 4 RAÍCES DE ECUACIONES. MÉTODOS DE NEWTON-RAPHSON Y 27


SECANTE

4.1 El método de Aitken para acelerar la convergencia de una sucesión. 27


4.2 El método de Newton-Raphson 29
4.3 El método de Newton mejorado 32
4.4 Programa para el método de Newton 33
4.5 Método de la secante 34
4.6 Solución de una ecuación usando fzero. 34
4.7 Raíces de polinomios. 35
EJERCICIOS 36

MODULO 5 SISTEMAS DE ECUACIONES LINEALES. MÉTODOS DIRECTOS. 38


SISTEMAS TRIDIAGONALES

5.1 5.1. Introducción a los sistemas lineales 38


5.2 5.2. Eliminación Gaussiana 38
5.3 5.3. La regla de Kramer 41
5.4 5.4. Método de la inversa 43
5.5 5.5. Sistemas tridiagonales 44
5.6 5.6. Programa para sistemas tridiagonales 46
5.7 EJERCICIOS 48
4

MODULO 6 SISTEMAS DE ECUACIONES LINEALES. MÉTODOS ITERATIVOS 49

6.1 Sistemas diagonalmente dominantes 49


6.2 Método de Jacobi con número de iteraciones 49
6.3 Método de Gauss-Seidel con número de iteraciones 52
6.4 Método de Gauss-Seidel con tolerancia 54
EJERCICIOS 55

MODULO 7 SISTEMAS DE ECUACIONES NO LINEALES. MÉTODO DE NEWTON 57

7.1 Representación gráfica de relaciones en el plano 57


7.2 Sistemas con una ecuación lineal y una cuadrática 59
7.3 Sistemas de dos ecuaciones con dos incógnitas. Método de Newton 60
7.4 Sistemas de tres ecuaciones con tres incógnitas. Método de Newton 66
EJERCICIOS 69

MODULO 8 SISTEMAS DE ECUACIONES NO LINEALES. MÉTODOS DE JACOBI Y 71


GAUSS-SEIDEL

8.1 Sistemas de segundo orden diagonalmente dominantes. 71


8.2 Método iterativo para sistemas de segundo orden 71
8.3 Sistemas de tercer orden diagonalmente dominantes. 73
8.4 Método de Gauss-Seidel. 74
8.5 Sistemas de orden cuatro. 76
EJERCICIOS 77

MODULO 9 REGRESIÓN POLINOMIAL 78

9.1 Introducción. 78
9.2 Regresión polinomial 79
9.3 Programa en Matlab para efectuar regresión polinomial 82
9.4 Regresión exponencial 84
9.5 Programa en Matlab para efectuar regresión exponencial 85
EJERCICIOS 87

MODULO 10 INTERPOLACIÓN POLINÓMICA 89

10.1 Introducción 89
10.2 Programa de interpolación directa 90
10.3 Polinomios de Lagrange 92
10.4 Método de las diferencias divididas 95
10.5 Programa para interpolación por diferencias divididas 97
EJERCICIOS 99

MODULO 11 INTERPOLACIÓN POR SEGMENTOS 100

11.1 Introducción 100


11.2 Interpolación Cuadrática por segmentos 101
11.3 Programa para interpolación cuadrática 106
11.4 Interpolación cúbica por segmentos 107
11.5 Programa para interpolación cúbica 114
EJERCICIOS 116

MODULO 12 DIFERENCIACIÓN NUMÉRICA 117


5

12.1 Introducción 117


12.2 Derivación usando Matlab 117
12.3 Diferencias divididas centradas de primero y segundo orden 120
12.4 Programa para diferenciación numérica 122
EJERCICIOS 124

MODULO 13 INTEGRACIÓN NUMÉRICA POR LAS REGLAS DE NEWTON-COTES 125

13.1 Introducción 125


13.2 Integración por series de potencias 127
13.3 Aproximación por interpolación polinómica 128
13.4 Fórmulas de Newton Cotes 130
13.5 Regla de los trapecios 130
13.6 Análisis del error en la regla de los trapecios 132
13.7 Integración por el método de Romberg 135
13.8 Regla de Simpson 1/3 136
13.9 Regla de Simpson 3/8 139
13.10 Programa para integrar con las fórmulas de Newton-Cotes 142
EJERCICIOS 143

MODULO 14 INTEGRACIÓN NUMÉRICA POR CUADRATURA GAUSSIANA 144

14.1 Polinomios de Legendre 144


14.2 Desarrollo de una función mediante los polinomios de Legendre 147
14.3 Integración por cuadratura de dos puntos 149
14.4 Cuadratura Gaussiana de tercer orden 150
14.5 Cuadratura Gaussiana generalizada 151
EJERCICIOS 152

MODULO 15 PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN. TEORÍA 153


GENERAL

15.1 Introducción 153


15.2 Problema de valor inicial 153
15.3 Teorema de existencia y unicidad 154
15.4 Ecuaciones diferenciales de variables separables 157
15.5 Ecuaciones diferenciales homogéneas 158
15.6 Ecuaciones diferenciales exactas 160
15.7 Ecuaciones diferenciales lineales 164
15.8 Solución de ecuaciones diferenciales usando dsolve 168
EJERCICIOS 171

MODULO 16 PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN. SOLUCIÓN 173


NUMÉRICA

16.1 Introducción 173


16.2 Método de Euler 173
16.3 Método de la serie de potencias 178
16.4 Método de la serie de potencias con Matlab 181
16.5 Métodos de Runge-Kutta de segundo orden 182
16.6 Método de Runge-Kutta de tercer orden 185
16.7 Método de Runge-Kutta de cuarto orden 187
16.8 Método de Runge-Kutta de cuarto orden con Matlab 188
EJERCICIOS 189
6

MODULO 17 PROBLEMAS DE VALOR INICIAL DE SEGUNDO ORDEN. TEORÍA 191


GENERAL

17.1 Introducción 191


17.2 La ecuación diferencial lineal de segundo orden. 193
17.3 Problemas de valor inicial de segundo orden 196
17.4 Ecuaciones diferenciales lineales de coeficientes constantes 199
17.5 La ecuación diferencial de Euler-Cauchy. 202
17.6 Solución de ecuaciones lineales con Matlab. 205
17.7 Ecuaciones diferenciales no lineales 207
EJERCICIOS 211

MODULO 18 PROBLEMAS DE VALOR INICIAL DE SEGUNDO ORDEN. SOLUCIÓN 213


NUMÉRICA

18.1 Formulación del problema 213


18.2 Método de Euler 213
18.3 Método de Euler con Matlab 216
18.4 Método de Runge-Kutta de orden cuatro con Matlab 220
EJERCICIOS 226

MODULO 19 PROBLEMAS CON VALOR EN LA FRONTERA DE SEGUNDO ORDEN. 227


SOLUCIÒN NUMÈRICA POR EL MÈTODO DEL DISPARO

19.1 Formulación del problema 227


19.2 Solución analítica. 227
19.3 Método del disparo 229
EJERCICIOS 236

MODULO 20 PROBLEMAS CON VALOR EN LA FRONTERA DE SEGUNDO ORDEN. 237


SOLUCIÓN NUMÉRICA POR EL MÉTODO DE LAS DIFERENCIAS
DIVIDIDAS

20.1 Formulación del problema 237


20.1 Método de las diferencias divididas 237
20.2 Programa en Matlab 240
EJERCICIOS 243
7

BIBLIOGRAFÍA.

1. Atkinson/harley; Introducción a los Métodos Numéricos con Pascal, Addison-Wesley


Iberoamericana, México, 1987

2. Burden/Faires; Análisis Numérico, Grupo Editorial Iberoamérica, México, 1985

3. Chapra/Canale; Métodos Numéricos para Ingenieros, McGraw-Hill, México, 1987

4. Hildebrand, F.B.,Métodos de Cálculo para Ingenieros, Aguilar, 1965

5. Hornbeck, Robert; Numerical Methods, QPI Series, New Cork, 1975

6. James/Smith/Wolford; Applied Numerical Methods for Digital Computation, Harper International


Edition, New York, 1977

7. Kreyszig, Erwin; Matemáticas Avanzadas para Ingeniería, LimusaWiley, México, 2003

8. Mathews, John; Numerical Methods for Mathematics, Science, and Egineering, Prentice-Hall,
New Jersey, 1992

9. NakamuraShoichiro, Métodos Numéricos Aplicados con Software, Prentice-Hall, México, 1992

10. Scheid/ Di Constanzo; Métodos Numéricos, McGraw-Hill, México, 1991


8

MÉTODOS NUMÉRICOS CON MATLAB


NOTAS MODULARES

NORMAN CÉSAR MERCADO CRUZ


Profesor Titular

Universidad de Antioquia
Facultad de Ingeniería
Departamento de Ingeniería Electrónica
Medellín, 2011
9

MÓDULO 1
FUNCIONES DE VARIABLE REAL

Contenido
En este módulo se hace un repaso de las funciones de variable real en una variable y su
representación gráfica usando el paquete Matlab. Los temas a desarrollar son los siguientes:

1.1. Introducción a los métodos numéricos para calcular los ceros reales de una función.
1.2. Funciones de variable real
1.3. Programa en Matlab para representar
r gráficamente una función
1.4. Funciones resultantes de modelos matemáticos
1.5. Función polinómica
1.6. Función racional
1.7. Función exponencial
1.8. Función senoidal

1.1. Introducción.
Existe una gran cantidad de problemas de aplicación en ciencias e ingeniería que conduc
conducen a la
solución de una ecuación o de un sistema de ecuaciones. En este módulo trataremos las
ecuaciones con una incógnita o una variable independiente, es decir, ecuaciones de la forma
f ( x ) = 0 , donde f (x ) es una función de variable real. Geométricamente, una raíz real de una
ecuación corresponde al punto de corte de la gráfica de la función con el eje de abscisas. Una
función puede tener raíces en el campo de los números complejos. Particularmente nos interesarán
las raíces complejas de ecuaciones polinómicas. Supongamos que la figura 1.1 corresponde a la
gráfica de una función de variable real f ( x ) = 0 .

Figura 1.1

Como puede verse, la función es continua en el intervalo mostrado y tiene dos raíces reales r1 , r2 .
La primera raíz está ubicada en el intervalo: [ a , b] y la segunda está en el intervalo [b, c ] . El
teorema del valor intermedio establece que, sí la func
función
ión es continua y uno a uno en el intervalo:
[ a, b] y f ( a ) ⋅ f (b) < 0 , entonces la ecuación f ( x ) = 0 tiene una raíz real en el intervalo. Más
adelante desarrollaremos métodos numéricos para encontrar una raíz aproximada
aproximad de una ecuación
en un intervalo dado.

Definición.
Se dice que x k es una raíz aproximada de la ecuación: f ( x ) = 0 si se verifica que
x k − x E < tol , siendo tol la tolerancia o grado de aproximación
ción deseado y x E la solución

exacta. La aproximación se puede medir también en los siguientes términos f ( x k ) < tol .
10

Por ejemplo, xk = 1.4142 es una raíz aproximada de la ecuación x 2 − 2 = 0 , con un error de


1.36 ⋅ 10 −5

1.2. Funciones elementales de variable real.


Sea x una variable independiente que toma valores en un dominio D ⊆ R , y sea y = f (x) una
función que depende de la variable independiente.
independiente. Por ejemplo, si nos interesa determinar la
posición de una partícula en todo instante a partir del instante t = 0 y denotamos por x (t ) dicha
posición, entonces x(t ) es la variable dependiente y t es la variable independiente. La posición
x(t ) es una función ya que para un instante determinado se tiene una única posición.
Normalmente una función se puede representar mediante una expresión matemática, una tabla ded
valores o mediante una gráfica. Un procedimiento usual en ingeniería consiste en encontrar una
expresión matemática para una función a partir de una tabla de valores. Este y otros temas se
estudiarán en el curso.

Ejemplo 1.1
Consideremos un cuadrado de lado x y definamos las tres funciones siguientes:
a) Área del cuadrado: a(x) = x 2

b) Perímetro del cuadrado: p ( x) = 4 x


c) Longitud de la diagonal: d ( x ) = 2x

Figura 1.2 Figura 1.3 Figura 1.4

Comentarios.
El área es una función cuadrática, mientras que el perímetro y la diagonal son funciones lineales.
El dominio de la función es el conjunto de los reales positivos.
positivos. En las figuras: 1.2, 1.3 y 1.4 se
representan gráficamente las tres funciones en el dominio: [0,2]

1.3. Programa en Matlab para representar gráficamente una función.


Cuando se tiene una expresión matemática para una función y = f ( x ) en el intervalo a, b , el [ ]
procedimiento para llevar a cabo la representación gráfica es el siguiente:
1) Partir el intervalo en n subintervalos igualmente espaciados, es decir, tomar el tamaño de paso:

h = (b − a ) / n

2) Generar el vector de abscisas X , así:


Para k = 1 hasta n + 1
X ( k ) = a + ( k − 1) h
Terminar

3) Generar el vector de ordenadas Y , así:


11

Para k = 1 hasta n + 1
x = X (k )
Y ( k ) = f ( x ) : Evaluar la función.
Terminar

4) Graficar Y vs X

Usando Matlab, el código es el siguiente:


%Programa para representar graficamente una funcion de una variable en el intervalo: [a,b],
% con N subintervalos
clearall
% Entrada de la informacion
a=input('Abscisa inicial= ');
b=input('Abscisa final= ');
N=input('numero de intervalos= ');
h=(b-a)/N;
f=input('entre la funcion f(x)= ');
% Ahora generamos el vector de abscisas y el vector de ordenadas
for i=1:N+1
X(i)=a+h*(i-1);
x=X(i);
Y(i)=eval(f);
end
% La tabla de valores es:
[X' Y'];
% La figura ilustra la gráfica de la funcion
plot(X,Y)
Gridon

Ejemplo 1.2.
Usando el programa, represente gráficamente la función f ( x ) = x cos( x ) + 4 sen ( x ) − 1 , en el
intervalo 0 ≤ x ≤ 5 , con 10 subintervalos.
Solución.
Se invoca el programa graf.m y se procede a suministrar la información, así:
Abscisa inicial= 0
Abscisa final= 5
numero de intervalos= 10
entre la funcion f(x)= 'x*cos(x)+4*sin(x)-1'
>> [X' Y']

ans =
0-1.0000
0.50001.3565
1.00002.9062
1.50003.0961
2.00001.8049
2.5000-0.6090
3.0000-3.4055
3.5000-5.6807
4.0000-6.6418
4.5000-5.8587
5.0000-3.4174
12

La figura 1.5 muestra la gráfica de la función. Observe que la gráfica no es de buena calidad dado
que solo se toman 10 subintervalos. La figura 1.6 corresponde a la misma función pero con 100
intervalos. Observe las diferencias. El estudiante puede constatar que la función tiene raíces reales
[ ] [ ]
en los intervalos 0,1 y 2,3

Figura 1.5 Figura 1.6

1.4. Funciones como modelos matemáticos.


Normalmente, las funciones resultan de modelos matemáticos en aplicaciones de ingeniería y
ciencias. A continuación se presentan algunos ejemplos elementales.

Ejemplo 1.3.
Se tiene una lámina rectangular de dimensiones a, b . En cada esquina se recorta un cuadrado de
lado x para formar una caja sin tapa. Determine el volumen y el área total de la caja en función
de: x

Solución.
Por simple inspección, a partir de las figuras 1.7 y 1.8, se obtienen las funciones para el área y el
volumen de la caja, así:

a) Volumen: v ( x ) = x ( a − 2 x )( b − 2 x )
b) Área: a( x) = ab − 4 x 2

Figura 1.7 Figura 1.8

Para ambas funciones, el dominio es el intervalo: [0, a / 2] siempre que a < b . La figura 1.9
muestra la gráfica de la función volumen, para: a = 4, b = 6
La gráfica se obtiene corriendo el programa, así:

>>graf
Abscisa inicial= 0
Abscisa final= 2
13

numero de intervalos= 100


entre la funcion f(x)= 'x*(4-2*x)*(6-2*x)'

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 1.9

El área es una función cuadrática y el volumen es una función cúbica; ambas funciones son casos
especiales de las funciones polinómicas, funciones de importancia fundamental en ingeniería y
ciencias. El estudiante puede constatar que la función volumen tiene un máximo local en el
intervalo 0.6 < x < 1 .

Ejemplo 1.4
Una cantidad de dinero: P se coloca en una corporación de ahorro a una tasa de interés
compuesto continuo mensual r . Encuentre una expresión matemática que permita hallar la
cantidad futura al cabo de n meses.

Solución
Hacemos el siguiente razonamiento:
Al cabo de un mes la cantidad inicial ha generado intereses por un monto de rP , con lo que la
cantidad disponible al principio del segundo mes es:

F (1) = P + rP = (1 + r ) P

Al final del segundo mes se tendrá la cantidad

F (2) = r (1 + r ) P + (1 + r ) P = (1 + r ) 2 P

Continuando con el mismo razonamiento, la cantidad de dinero al cabo de los: n meses será:

F (n) = (1 + r ) n P

Si la variable independiente es el número de meses n , la función encontrada es de tipo


exponencial. La figuras 1.10 ilustra las gráficas de la función para dos tasas de interés diferentes.
Para representar dos funciones en una misma gráfica se modifica ligeramente el programa, así:
14

%Programa para representar gráficamente dos funciones de una variable en el intervalo: [a,b],
% con N subintervalos
clearall
% Entrada de la informacion
a=input('Abscisa inicial= ');
b=input('Abscisa final= ');
n=input('numero de intervalos= ');
h=(b-a)/n;
f=input('entre la funcion f(x)= ');
g=input('entre la funcion g(x)= ');
% Ahora generamos el vector de abscisas y los vectores de ordenadas
for k=1:n+1
X(k)=a+h*(k-1);
x=X(k);
Y1(k)=eval(f);
Y2(k)=eval(g);
end

% Las tablas de valores son:


[X' Y1']
[X' Y2']
% La figura ilustra las graficas de las funciones
plot(X,Y1)
hold on
plot(X,Y2,’k’)
Gridon

Ejecutamos el programa modificado, así:


Abscisa inicial= 0
Abscisa final= 50
numero de intervalos= 500
entre la funcion f(x)= '1.015^x'
entre la funcion g(x)= '1.018^x'

2.5
r=1.5%
r=1.8%

1.5

1
0 5 10 15 20 25 30 35 40 45 50

Figura 1.10

Usando la función logarítmica, es decir, la inversa de una función exponencial, podemos


determinar el número de meses necesarios para obtener una cantidad final deseada, así:
15

ln (F / p )
n=
ln (1 + r )

Por ejemplo, el tiempo necesario para que una cantidad se duplique a una tasa del 1.5% mensual
es: n = 46.55 meses, es decir, 46 meses y 17 días aproximadamente. Las fórmulas deducidas se
utilizan muy a menudo en problemas de ingeniería económica y dan cuenta del valor del dinero en
el tiempo.

Ejemplo 1.5
Consideremos un triángulo rectángulo con hipotenusa c y catetos cuyas
as medidas son x, y . De
acuerdo con el teorema de Pitágoras, la medida de uno de los catetos está dada en función del
otro, así:
y ( x) = c 2 − x 2

Es claro que la longitud de un cateto es menor que la de la hipotenusa, con lo que el dominio de la
función es el intervalo 0 < x < c . La figura 1.11 muestra la gráfica de la función. Como puede
verse, corresponde a un arco de circunferencia en el primer cuadrante.

Figura 1.11 Figura 1.12

Ejemplo 1.6
Considere la figura 1.12. La medida del ángulo BAC es una función de la distancia: AO, así
θ = f (x ) . Puesto que el ángulo θ es la diferencia entre los ángulos OAC y OAB , tenemos
θ = ∠OAC − ∠OAB . Teniendo en cuenta la identidad trigonométrica:

tan(α ) − tan( β )
tan(α − β ) =
1 + tan(α ) tan( β )

Con base en dicha identidad, resulta


a+b b

tan(θ ) = x x
a+b b
1+
x x
Simplificando y despejando el ángulo, en radianes, se tiene:

 ax 
θ ( x) = arctan  
 x + (a + b)b 
2
16

Suponiendo los valores a = 1, b = 2 , se tiene:


 x 
θ ( x) = arctan 
 x + 6 
2

Ejecutamos el programa graf.m, así:

Abscisa inicial= 0
Abscisa final= 20
numero de intervalos= 200
entre la funcion f(x)= 'atan(x/(x^2+6))'

0.25

0.2

0.15

0.1

0.05

0
0 2 4 6 8 10 12 14 16 18 20

Figura 1.13

La figura 1.13 ilustra la gráfica de la función para a = 1 , b = 2 en el dominio: 0 ≤ x ≤ 20

1.5. Funciones Polinómicas


Una función polinómica tiene la forma general:

f ( x ) = a 0 + a1 x + a 2 x 2 + a 3 x 3 + .... + a n x n

Dónde los coeficientes son números reales en los casos de interés. La gráfica de una función
polinómica es una curva continua en el dominio de los reales, tal como se mostró en los dos
primeros ejemplos de esta sección. Las raíces reales de un polinomio son los cortes de la función
con el eje de abscisas.
La función polinómica de segundo grado tiene la forma general f ( x ) = a 0 + a1 x + a 2 x , su
2

representación gráfica es una parábola. Siempre es posible expresar la función cuadrática como el
producto de dos funciones lineales, así:

f ( x) = a 2 ( x − r1 )( x − r2 ) .

Donde: r1,r2 son números que pueden ser reales y distintos, reales e iguales o complejos
conjugados y se obtienen aplicando la fórmula general:
17

− a1 + a1 − 4a 2 a0
2
− a1 − a1 − 4a 2 a0
2

r1 = , r2 =
2a 2 2a 2

Las figuras 1.14, 1.15 y 1.16 ilustran los diferentes casos.

a) El discriminante de la ecuación es positivo. En este caso las raíces son reales y diferentes: r1,r 2
reales e iguales: r1 = r 2 = r
b) El discriminante de la ecuación es cero. En este caso las raíces son reales
c) El discriminante de la ecuación es negativo. En este caso las raíces son complejas conjugadas:
r1 = α − jω y r2 = α + jω . Observe que en este caso no hay cortes con el eje real.

igura 1.14
Figura Figura 1.15 Figura 1.16

La función polinómica de grado n y coeficientes reales siempre se podrá expresar mediante


factores lineales y cuadráticos. En tal caso, siempre es posible deter
determinar
minar las: n raíces de la
función polinómica. Más adelante se estará en capacidad de factorizar cualquier polinomio usando
un paquete de computador. La función polinómica nos servirá para aproximar cualquier función de
variable real.

Raíces de un polinomio o usando Matlab.


Para hallar las raíces de un polinomio de cualquier grado, se introducen los coeficientes en un
vector fila, así:
p = [a n a n −1 ...... a 2 a1 a0 ]

Se invoca el comando roots(p


( ) y se obtienen las raíces.

Ejemplo 1.7
Considere la función
ón polinómica:

f ( x) = x 4 − 2 x 3 + x 2 − 2 x − 3

a) Elabore una tabla de 6 valores en el intervalo: [-2,3]


[
b) Con base en la tabla de valores hallada, ubique las raíces reales de la ecuación f ( x) = 0
ecuación. f ( x ) = 0 .
c) Usando el paquete, determine las raíces de la ec
d) Determine los máximos y mínimos relativos de la función
e) Represente gráficamente la función en el intervalo: [-2,3]
[

Solución.
a) Hacemos la siguiente tabla de valores.

X -2 -1 0 1 2 3
Y 37 3 -3 -5 -3 27
18

b) A partir de la tabla se observa que hay raíces reales en los intervalos: (-1,0) y (2,3)

c) Para hallar las raíces usando Matlab, se procede de la siguiente manera:

p=
1 -2 1 -2 -3
>>roots(p)

ans =
2.2262
0.2485 + 1.3422i
0.2485 - 1.3422i
-0.7233

d) Para hallar los máximos y los mínimos encontramos la primera derivada de la función, así:

f ' ( x) = 4 x 3 − 6 x 2 + 2 x − 2

Las raíces de la primera derivada se encuentran con el Matlab, obteniendo que hay un punto crítico
en x = 1.398 . Para saber si es de máxima o de mínima hallamos la segunda derivada, así:

f ' ' ( x) = 12 x 2 − 12 x + 2

La segunda derivada evaluada en el punto crítico es f ' ' (1.398) = 8.677 , por tanto, el punto es de
mínima.

e) Ejecutamos el programa, así:


>>graf
Abscisa inicial= -2
Abscisa final= 3
numero de intervalos= 100
entre la funcion f(x)= 'x^4-2*x^3+x^2-2*x-3'

40

35

30

25

20

15

10

-5

-10
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3

Figura 1.17
19

1.6. Funciones Racionales


Una función racional es el cociente indicado de dos polinomios, así:

Q( x)
f ( x) =
P ( x)

La función racional se puede expresar en la siguiente forma:

b0 + b1 x + b2 x 2 + ..... + bm x m
f ( x) =
a 0 + a1 x + a 2 x 2 + ..... + a n x n

Después de factorizar los polinomios, la función queda de la siguiente manera:

( x − z1 )( x − z2 ).....( x − zm )
f ( x) = K
( x − p1 )( x − p2 ).....( x − pn )

Las raíces del numerador se denominan los ceros de la función y las del denominador son los
polos de la función. En general, tanto los ceros como los polos son números complejos.
Geométricamente, los ceros reales son los cortes de la función con el eje x, mientras que los polos
reales son asíntotas verticales de la función. El diagrama de polos y ceros es una gráfica en el
plano complejo de los polos y ceros de la función racional.

Ejemplo 1.8
Considere la función racional:
x 2 − 4x + 3
f ( x) =
x 2 − 6x + 8
a) Factorice tanto el numerador como el denominador
b) Represente gráficamente la función en el intervalo [0,5]

Solución.
a) El estudiante puede verificar que la función se puede expresar en su forma factorizada, así:
b)

f ( x) =
(x − 1)(x − 3)
(x − 2)(x − 4)
En consecuencia, la función tiene dos ceros reales y presenta asíntotas en x= 2 y x= 4
b) Ejecutamos el programa, así:
Abscisa inicial= 0
Abscisa final= 5
numero de intervalos= 513
entre la funcion f(x)= '(x^2-4*x+3)/(x^2-6*x+8)'
20

20

15

10

-5

-10

-15

-20
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Figura 1.18

Observe que la gráfica muestra las asíntotas verticales.

1.6. Función exponencial


En su forma más simple, una función exponencial presenta la forma f ( x) = e αx . Cuando la
t /τ
variable independiente es el tiempo, se acostumbra escribirla en la forma: f (t ) = e
Siendo: τ la constante de tiempo de la función. La función exponencial puede ser creciente o
decreciente y resulta al resolver una gran cantidad de problemas de ingeniería.

Ejemplo 1.9
Un cuerpo que tiene inicialmente una temperatura: Ti se introduce en un medio que tiene una
temperatura T f . Se puede demostrar que la temperatura del cuerpo en todo instante: t > 0 está
dada por:
T (t ) = T f + (Ti − T f )e −t / τ

Represente gráficamente la función en el intervalo 0 ≤ t ≤ 5 , en los siguientes casos:

a) τ = 1 , Ti = 0 y T f = 1
b) τ = 1 , Ti = 1 y T f = 0
Solución.
Ejecutamos el programa modificado, así:
>> graf2
Abscisa inicial= 0
Abscisa final= 5
numero de intervalos= 100
entrelafuncion f(x)= '1-exp(-x)'
entre la funcion g(x)= 'exp(-x)'
21

1
1-exp(-x)
0.9 exp(-x)

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Figura 1.19
1.6. Función senoidal.
La sinusoide es una función cuya forma general, para la variable independiente tiempo, es la
siguiente.
f (t ) = Asen(ωt + ϕ )
En la expresión anterior, tenemos:
Amplitud de la sinusoide A . Tiene las unidades de la función.
Frecuencia angular de la sinusoide ω . Se mide en radianes sobre segundo
Fase de la sinusoide ϕ . Se mide en radianes.
La figura 1.20 ilustra la gráfica de la sinusoide f (t ) = 5sen(πt ) , en el intervalo: [-3,3]

-1

-2

-3

-4

-5
-3 -2 -1 0 1 2 3

Figura 1.20
EJERCICIOS 1.

1) Considere la función: f ( x) = 8 x 4 − 8 x 2 + 1
a) Determine las raíces de la ecuación f ( x ) = 0
b) Determine los puntos de máxima y de mínima.
c) Represente gráficamente la función.
22

x3 − x
2) Considere la función: f ( x ) =
( x 2 − 4)( x 2 − 9)
a) Escríbala en su forma factorizada
b) Represente gráficamente la función.

2(1 − e − x )
3) Considere la función: f ( x) =
2 + e−x
a) Represente gráficamente la función.
b) Determine el valor de x para que la función sea igual a un medio.

4) Considere la función: f ( x ) = 10e sen(πx ) ; x ≥ 0


−x

a) Determine el primer punto de máxima de la función.


b) Represente gráficamente la función.

5) Represente gráficamente las siguientes funciones:


a) f ( x ) = xsen( x )
b) f ( x) = ( x + 1)e − x
c) f ( x ) = x − 2sen( x ) − 3
2

d) f ( x ) = 1 − x + x − x + x
2 3 4

−x
e) f ( x ) = x cos( x ) + e
23

MÓDULO 2
RAÍCES DE ECUACIONES. MÉTODOS CERRADOS

Contenido
En este módulo se presentan los métodos numéricos cerrados más comunes para hallar una raíz
real aproximada de una ecuación de una variable. Los temas a desarrollar son los siguientes:

2.1. Introducción a los métodos cerrados


2.2. El método de bisección.
2.3. El método de la regla falsa

2.1. Introducción a los métodos cerrados


Supongamos que se desea encontrar el valor aproximado de una raíz de la ecuación: f ( x ) = 0 en
el intervalo ( a, b) . La figura 2.1 ilustra la situación planteada.
De acuerdo con el teorema del valor intermedio, si la función es continua y uno a uno en el
intervalo [ a , b ] y se verifica que f ( a ) ⋅ f (b) < 0 , es decir, que f (a ) y f (b) tienen signos
contrarios, entonces la ecuación tiene una raíz en el intervalo.

Figura 2.1

2.2. Método de bisección


Al analizar la figura 2.1, supongamos que se calcula el punto medio del segmento: b − a y lo
a+b
denotamos por x1 , así x1 = . Al evaluar la función en el punto puede ocurrir que la solución
2
esté en uno de los dos intervalos: [a, x1 ] ó [ x1 , b] . En este caso se observa que f ( x1 ) es
negativa, con lo que la raíz está en el intervalo [ x1 , b] . El intervalo resultante se vuelve a bisecar,
resultando un nuevo valor x 2 . Siguiendo con el mismo procedimiento, se generarán tres
a + bk
sucesiones {a k }, {bk }, {x k } , de tal manera que x k = k , es decir, x k es el promedio o
2
punto medio del intervalo. El objetivo es que:

lim{x k } = x E
x →∞

Ahora bien, ya que es imposible que el contador se extienda hasta el infinito, se opta por encontrar
un valor aproximado xn , de tal manera que x n − x n −1 < tol , o también f ( x n ) < tol . En la
n − ésima iteración, la raíz estará en el intervalo: (b − a ) / 2
n
24

Cualquiera que sea el criterio de aproximación, lo importante es generar el número adecuado de


iteraciones. Se sugiere al estudiante que escriba un programa en cualquier lenguaje para aplicar el
método.

Ejemplo 2.1
Considere la ecuación: x + 2 x − 4 x + 3 = 0
3 2

a) Muestre que la ecuación tiene una raíz real en el intervalo: [-4,-3]


b) Encuentre una raíz aproximada con diez iteraciones.
c) Encuentre las otras dos raíces de la ecuación.

Solución
Evaluando la función en los extremos del intervalo, se tiene que f (−4) = −13 , f (−3) = 6 , es
decir, hay un cambio de signo y por tanto se tiene una raíz en el intervalo.
Resolviendo el problema con la ayuda de la calculadora para generar las diferentes sucesiones,
con el siguiente seudo código:
a = −4 , b = −3 , k = 1 , tol = 0.001, M = 10
1) x = ( a + b) / 2
2) Sí f ( x) < tol , entonces: raiz = x
3) Sí k = M , entonces: raiz = x
4) Sí f ( x) ⋅ f (a ) < 0 , entonces: b = x , en caso contrario a = x
5) k = k + 1 , ir a 1)
Se genera la siguiente tabla:

k ak bk f (a k ) f (bk ) xk f ( xk ) bk − a k
1 -4 -3 -13 6 -3.5 -1.375 1
2 -3.5 -3 -1.375 6 -3.25 2.797 0.5
3 -3.5 -3.25 -1.375 2.797 -3.375 0.8379 0.25
4 -3.5 -3.375 -1.375 0.8379 -3.438 -0.2449 0.025
5 -3.438 -3.375 -0.2449 0.8379 -3.406 0.3132 0.0125
6 -3.438 -3.406 -0.2449 0.3132 -3.422 0.0363 0.00625
7 -3.438 -3.422 -0.2449 0.0363 -3.43 -0.1038 0.003125
8 -3.43 -3.422 -0.1038 0.0363 -3.426 -0.0336 0.001563
9 -3.426 -3.422 -0.0336 0.0363 -3.424 0.0013 0.000781
10 -3.426 -3.424 -0.0336 0.0013 -3.425 -0.0016 0.000390
Puede observarse que la solución mas aproximada es: x10 = −3.425

El método de la bisección encierra irremediablemente a la raíz, es decir, es un método seguro pero


−4
lento. Si bien la serie es convergente, para lograr una aproximación de 10 se requieren,
aproximadamente trece iteraciones. De otro lado, puede ocurrir que en una iteración intermedia se
logren mejores resultados que en una iteración posterior. El ejemplo que se resolvió previamente
es una muestra, ya que f ( x 6 ) < f ( x 7 ) .

2.2. Método de la regla falsa


Es un método similar al de bisección, con la diferencia que la aproximación no se obtiene
bisecando el intervalo sino encontrando el punto de corte de la recta que une a los puntos:
(a, f (a)) y (b, f (b)) , tal como se muestra en la figura 2.2.
25

Figura 2.2

La pendiente de la recta que une a los extremos del intervalo viene dada por
m = ( f (b) − f (a)) / (b − a ) . La pendiente también se puede calcular como m = − f (a) / ( x1 − a ) .
f ( a)(b − a )
Con base en lo anterior, se puede escribir: x1 = a −
f (b ) − f ( a )
El algoritmo para aplicar el método es similar al de bisección, con la única diferencia que se cambia
la instrucción: x1 = (a + b) / 2 por la que se acaba de obtener. Para la siguiente iteración, la raíz
está en el intervalo [x1 , b] . En general se deben generar tres sucesiones {a k }, {bk }, {x k } , de
tal manera que:
f (a k )(bk − a k )
xk = ak −
f (bk ) − f (a k )
Ejemplo 2.2
La siguiente tabla se genera usando el método de la regla falsa para resolver la ecuación del
ejemplo anterior.

k ak bk f (a k ) f (bk ) xk f ( xk ) bk − a k
1 -4 -3 -13 6 -3.316 1.793 1
2 -4 -3.316 -13 1.793 -3.399 0.4331 0.684
3 -4 -3.399 -13 0.4331 -3.418 0.1059 0.602
4 -4 -3.418 -13 0.1059 -3.423 0.0188 0.572
5 -4 -3.423 -13 0.0188 -3.423 0.0013 0.576
6 -4 -3.424 -13 0.0013 -3.424

La ventaja del método es evidente pues se logra la misma aproximación en sólo cinco iteraciones.
Hay situaciones, sin embargo, en el que la convergencia es más lenta que en el método de
bisección, tal es el caso de ecuaciones en las que la pendiente de la recta tangente a la curva en el
intervalo es grande, es decir, f '( x ) es grande en el intervalo.
Se deja como ejercicio al estudiante elaborar un programa en Matlab para aplicar el método.

EJERCICIOS 2

Mediante los métodos de bisección y regla falsa, encuentre una raíz aproximada para cada una de
las siguientes ecuaciones. Use aritmética de cuatro dígitos y represente previamente cada función.

1) x + 3 x − 6 = 0 2) x + x − 3 = 0
3 8 3

3) x 2 + 2sen( x) − 2 = 0 4) xe − x + x − 1 = 0
5) arctan( x ) + x − 2 = 0 6) x cos( x) + 4 sen ( x ) − 1 = 0
7) e + x + sen( x ) − 2 = 0 8) x − tan( x ) − 1 = 0
x 2

9) x 2 e − x cos( x) + x − 1 = 0 10) x 2 + xarcsen( x + 1) − 2 = 0


26

MÓDULO 3
RAÍCES DE ECUACIONES. MÉTODOS ABIERTOS

Contenido
En este módulo se presenta el método de iteración de punto fijo y la técnica SOR para hallar una
raíz real aproximada de una ecuación de una variable. Los temas a desarrollar son los siguientes:

3.1. Introducción.
3.2. El método de iteración de punto fijo
3.3. Programa para iteración de punto fijo
3.4. Iteración de punto fijo como función
3.5. La técnica SOR
3.6. Programa SOR

3.1. Introducción.
A diferencia de los métodos cerrados, los métodos abiertos consisten en generar una sucesión a
partir de una semilla inicial y no se requiere que la raíz está encerrada en un intervalo
determinado, aunque es deseable tomar dicha semilla en las inmediaciones de la solución. Todos
los métodos abiertos se pueden formular mediante un valor inicial x1 y una fórmula de recurrencia:

x k +1 = g ( x k ) ; x = 1,2,3,...

A pesar de que no se requiere que la semilla esté encerrada en el intervalo, es conveniente partir
de una semilla que se encuentre justamente en dicho intervalo.

3.2. Método de iteración de punto fijo


Se desea encontrar la raíz de la ecuación: f ( x ) = 0 que está en el intervalo: [ a, b]. Supongamos
que la ecuación se puede escribir en la forma x = g (x) . Si x E es la solución exacta de la
ecuación, entonces se verifica que x E = g ( x E ) . Geométricamente, la solución será el punto de
corte de la recta: y = x y la curva y = g ( x) , tal como se muestra en la figura 3.1

Figura 3.1

Supongamos que la función: g ( x ) es continua y posee, por lo menos, las dos primeras derivadas
continuas, en un entorno del punto x E . En tal caso, la función tendrá un desarrollo en serie de
potencias de la forma:
1
g ( x) = g ( xE ) + g ' ( xE )( x − xE ) + g ' ' ( xE )( x − xE ) 2
2
27

Al evaluar la función en el punto: x1 mostrado en la figura, se tiene:


1
g ( x1 ) = g ( xE ) + g ' ( xE )( x1 − xE ) + g ' ' ( x E )( x1 − x E ) 2
2

De la gráfica se desprende que: g ( xE ) = x E y g ( x1 ) = x2


Con lo anterior, se tiene:
1
x2 = x E + g ' ( xE )( x1 − x E ) + g ' ' ( x E )( x1 − xE ) 2
2

Si se supone que g ' ( xE ) ≠ 0 y que ( x1 − xE ) 2 ≅ 0 , tenemos:

x2 − x E ≅ g ' ( x E )( x1 − x E )

La idea es que el valor x2 esté más cerca de la solución exacta que x1 , es decir, debe verificarse
que:
x2 − x E
<1
x1 − x E

Lo anterior significa que el valor absoluto de la pendiente de la recta tangente a la curva en las
inmediaciones de la solución sea menor que la unidad, así g ' ( xE ) < 1 .
Bajo el presupuesto que se cumpla lo anterior, podemos generar un nuevo valor para la sucesión,
así: x3 = g ( x2 ) y así sucesivamente.
En definitiva, si la raíz está en el intervalo: ( a, b) y si g (x ) es tal que g ' ( x) < 1 , entonces es muy
probable que la sucesión sea convergente. La sucesión a generar arranca con la semilla: x 1 y
tiene la ecuación de recurrencia:
xk +1 = g ( xk ) ; k = 1,2,3,...

Puesto que no es tan sencillo verificar la condición de que el valor absoluto de la pendiente en las
inmediaciones de la solución sea menor que la unidad, se opta por un criterio menos restrictivo
pero igualmente válido, así:
Sí en el intervalo: [ a, b] se verifica que el valor absoluto de la pendiente de la recta secante a la
curva: g (x ) es menor que la unidad, entonces es muy probable que la sucesión sea convergente,
esto es:
g (b) − g (a )
<1
b−a

Se está aplicando el teorema del valor medio para la derivada. La condición presentada es de
suficiencia mas no de necesidad, esto es, puede ocurrir que la condición no se cumpla y que sin
embargo la sucesión sea convergente. El criterio de paro para la sucesión será:

xk +1 − xk < tol
Ejemplo 3.1
Consideremos la función: f ( x) = x 3 + 2 x 2 − 4 x + 3
a) Represente gráficamente la función en el intervalo [− 4,0]
28

[
b) Verifique que la función tiene una raíz en el intervalo − 4,−3 ]
c) Exprese la ecuación de 6 maneras diferentes, es decir, 6 formas diferentes para la función:
g (x)
d) Verifique la condición de convergencia en cada caso.
e) En caso de garantizarse la convergencia, halle la raíz aproximada

Solución.
a) La figura 3.2 ilustra la gráfica de la función
b) En efecto, hay una raíz en el intervalo: [- 4, - 3]
15

10

-5

-10

-15
-4 -3.5 -3 -2.5 -2 -1.5 -1 -0.5 0

Figura 3.2

c) La ecuación se puede escribir, entre otras, de las siguientes maneras:

x3 + 2x2 + 3
i) x = g ( x) =
4
4x − 3
ii) x = g ( x ) = 2
x + 2x
− 2x2 − 3
iii) x = g ( x ) =
x2 − 4
4x − 3
iv) x = g ( x ) = −
x+2
v) x = g ( x ) = −3 2 x 2 − 4 x + 3
vi) x = g ( x) = x + 2 x − 3 x + 3
3 2

Puede verse que en cada caso, la función g ( x) es continua y derivable en el intervalo dado.

d) El estudiante puede verificar que la pendiente en cada caso es:


i) m sec = 5.75 . No se garantiza la convergencia.
ii) m sec = 2.625 . No se garantiza la convergencia
iii) m sec = 1.283 . No se garantiza la convergencia
29

iv) m sec = 0.791 . Se garantiza la convergencia


v) m sec = 0.501 . Se garantiza la convergencia.
vi) m sec = 0.20 . No se garantiza la convergencia
e) Generemos la sucesión para el caso x = −3 2 x 2 − 4 x + 3 , y llenemos la siguiente tabla,
arrancando con la semilla x1 = −3.5

k xk g (xk )
1 -3.5 -3.462
2 -3.462 -3.443
3 -3.443 -3.434
4 -3.434 -3.429
5 -3.429 -3.427
6 -3.427 -3.426
7 -3.426 -3.425
8 -3.425 -3.425

Es claro, que la raíz aproximada, con tres cifras decimales, es: -3.425

3.3. Programa para iteración de punto fijo.


A continuación se presenta un programa en Matlab para aplicar el método.
clear all
% Programa de iteracion de punto fijo
% Entrada de la informacion
n=input('numero de iteraciones=');
a=input('limite inferior=');
b=input('limite superior=');
g=input('g(x)=');
xe(1)=(a+b)/2;
for k=1:n-1;
x=xe(k);
xe(k+1)=eval(g);
end
xe'
sol=xe(n)

Ejemplo 3.2
Con base en el programa, resuelva la ecuación del ejemplo anterior: x3 + 2x2 − 4x + 3 = 0
4x − 3
a) Con x = g ( x) = −
x+2
b) Con x = g ( x ) = −3 2 x 2 − 4 x + 3

Solución.
a) Ejecutamos el programa, así:
>> puntofijo
numero de iteraciones=40
limite inferior=-4
limite superior=-3
30

g(x)='-sqrt((4*x-3)/(x+2))'
En la iteración 36 se obtiene el resultado: Sol=-3.4141

b) Ejecutamos el programa, así:


>> puntofijo
numero de iteraciones=10
limite inferior=-4
limite superior=-3
g(x)='-(2*x^2-4*x+3)^(1/3)'

ans =

-3.5000
-3.4622
-3.4432
-3.4337
-3.4289
-3.4265
-3.4253
-3.4247
-3.4244
-3.4242

sol =

-3.4242

Puede verse que no se alcanzó la convergencia. Si se ejecuta con 20 iteraciones, se tiene


convergencia en la iteración 13, con sol=-3.4141

3.4. Iteración de punto fijo como función.


Para la aplicación del método de iteración de punto fijo se puede generar una función en Matlab.
Los argumentos de la función pueden ser:

a) Valor inicial, valor final, la función g(x) y número de iteraciones


b) Valor inicial, valor final, la función g(x) y tolerancia.

( )
a) La función pfin a, b, g ( x ), n
La función genera la solución a partir de los argumentos. El código Matlab es el siguiente:
function raiz=pfin(a,b,g,n)
% a=input('valor inicial= ');
% b=input('valor final= ');
% n=input('numero de iteraciones= ');
% g=input('entre la funcion g(x)= ');
y(1)=(a+b)/2;
for k=1:n
x=y(k);
y(k+1)=eval(g);
end
r=y(n);
disp('raiz= ')
disp(r)

Al ejecutar la función con los datos del ejemplo anterior, resulta:


31

> pfin(-4,-3,'-(2*x*x-4*x+3)^(1/3)',10)
raiz=
-3.4242
( )
b) La función pfit a, b, g ( x ), tol

La función genera la solución a partir de los argumentos. En este caso, en lugar del número de
iteraciones se establece una tolerancia. El código Matlab es el siguiente:
function raiz=pfit(a,b,g,tol)
% a=input('valor inicial= ');
% b=input('valor final= ');
% tol=input('tolerancia= ');
% g=input('entre la funcion g(x)= ');
y(1)=(a+b)/2;
k=1;
x=y(k);
y(k+1)=eval(g);
while abs(y(k+1)-y(k))>tol
k=k+1;
x=y(k);
y(k+1)=eval(g);
end
r=y(k+1);
disp('raiz= ')
disp(r)

Al ejecutar la función con los datos del ejemplo anterior, resulta:

>> pfit(-4,-3,'-(2*x*x-4*x+3)^(1/3)',0.0001)
raiz=
-3.4242

3.5. La técnica SOR.


Es una técnica que permite acelerar la convergencia de una sucesión e, incluso, hacer converger a
una sucesión divergente. A continuación se presenta la fundamentación matemática del método.
Supongamos que la sucesión xk +1 = g ( xk ) converge muy lentamente o diverge, es decir, que el
valor absoluto de la recta secante es cercana a la unidad o mayor que la unidad. En tal caso se
puede recomponer la función para generar una nueva sucesión xk +1 = G ( xk ) .
Supongamos que la ecuación: x = g (x ) tiene un punto fijo (solución): xE en el intervalo (a, b) y
que no satisface la condición de convergencia: g ' ( x) < 1 en el intervalo.
Es posible que la pendiente en el intervalo sea muy cercana a la unidad en valor absoluto, con lo
que la convergencia es muy lenta. Puede ocurrir, igualmente, que la sucesión sea divergente. En
cualquier caso, si la pendiente de la recta secante a g (x ) es m se puede generar una nueva
función:
x = G ( x ) = αx + (1 − α ) g ( x)

Ahora, la pendiente asociada a la función: G (x) debe ser, en valor absoluto, menor que la unidad.
Lo anterior se traduce en la siguiente inecuación:

α + (1 − α ) g ' ( x) < 1

Puesto que g ' ( x) ≅ m podemos escribir la inecuación en la forma:


32

α + (1 − α )m < 1
Resolviendo la inecuación, se tiene:

− 1 < α + (1 − α )m < 1 ⇒
− 1 < α (1 − m) + m < 1 ⇒
− 1 − m < (1 − m)α < 1 − m

En este punto es preciso analizar las dos situaciones:

1) 1 − m > 0
En este caso, la inecuación queda en la forma:

−1− m
<α <1
1− m
Tomando el punto medio del intervalo, se tiene que:

1 −1 − m  m
α = 1 +  ⇒α =
2 1− m  m −1
2) 1 − m < 0
−1− m
En este caso, la inecuación queda en la forma: >α >1
1− m
1  −1 − m  m
Tomando el punto medio del intervalo, se tiene que: α = 1 +  ⇒α =
2 1− m  m −1
En conclusión, cualquiera que sea la pendiente de la recta secante de la función g (x) en el
intervalo ( a, b) , siempre es posible calcular un α ∈ R tal que la nueva sucesión sea convergente.
Para el valor promedio hallado para α , se tiene:

mx − g ( x)
G ( x) = ; m ≠1
m −1
Ejemplo 3.3
Considere la ecuación x + 2 x − 4 x + 3 =
3
0 , la cual tiene una raíz en: [-4,-3]. Usando la técnica
SOR, determine la solución para el caso:
4x − 3
x=−
x+2
Calculando la pendiente, se encuentra que:

g (−3) − g (−4)
m= = −0.7908
− 3 − −4
Evidentemente, puesto que el valor absoluto es cercano a la unidad, la convergencia puede ser
lenta. En efecto, sí se ejecuta el programa, la sucesión converge en la iteración número 33. Si le
aplicamos la técnica SOR, haciendo m = −0.7988 , se tiene:
33

mx − g ( x ) − 0.7908 x + (4 x − 3(/( x + 2)
G ( x) = =
m −1 − 1.7908
Sí ejecutamos el programa con la nueva función, resulta:
>> punfijo
numero de iteraciones=10
limite inferior=-4
limite superior=-3
g(x)='(0.7908*x-sqrt((4*x-3)/(x+2)))/1.7908'
ans =
-3.5000
-3.4255
-3.4241
-3.4241
-3.4241
-3.4241
-3.4241
-3.4241
-3.4241
-3.4241
-3.4241
sol = -3.4241

Ejemplo 3.4
Considere la ecuación x + 2 x − 4 x + 3 = 0 , la cual tiene una raíz en: [-4,-3]. Usando la técnica
3

SOR, determine la solución para el caso:


x3 + 2x2 + 3
x = g ( x) =
4
Solución.
Calculando la pendiente, se encuentra que:

g (−3) − g (−4)
m= = 5.75
− 3 − −4
Evidentemente, puesto que el valor absoluto es mayor que la unidad, la sucesión es divergente. Si
le aplicamos la técnica SOR, haciendo m = 5.75 se tiene:
x3 + 2x2 + 3
5.75 x −
mx − g ( x) 4
G ( x) = =
m −1 4.75
Sí ejecutamos el programa con la nueva función, resulta:
numero de iteraciones=10
limite inferior=-4
limite superior=-3
g(x)='(5.75*x-(x^3+2*x*x+3)/4)/4.75'
xe =
-3.5000 -3.4276 -3.4244 -3.4241 -3.4241 -3.4241 -3.4241 -3.4241 -3.4241
sol = -3.4241

La nueva sucesión converge al cabo de cinco iteraciones.


34

3.6. Programa en Matlab para aplicar la técnica SOR.


El siguiente programa aplica, de manera que se invoca una de las funciones estudiadas
previamente. El código es el siguiente, usando la función pfin , es el siguiente:
%Tecnica SOR
n=input('numero de iteraciones= ');
a=input('limite inferior= ');
b=input('limite isuperior= ');
g=input('entre g(x)= ');
x=b;
gb=eval(g);
x=a;
ga=eval(g);
m=(gb-ga)/(b-a);
c=m/(m-1);
G=cat(2,'c*x+(1-c)*','(',g,')');
raiz=pfin(a,b,G,n,c)
end

Al ejecutar el programa con la función del ejemplo anterior, resulta:


>> nsor
numero de iteraciones= 10
limite inferior= -4
limite isuperior= -3
entre g(x)= '(x^3+2*x*x+3)/4'
raiz=
-3.4241

EJERCICIOS

1) Considere la ecuación: x + 3x − 6 = 0
3

a) Represente gráficamente en el intervalo [1,2]


b) Muestre que la ecuación se puede expresar en la forma x = 6 /( x 2 + 3) , aplique la técnica SOR
y calcule la solución.
6 − 3x
c) Muestre que la ecuación se puede expresar en la forma x= , aplique la técnica SOR y
x
calcule la solución.
d) Muestre que la ecuación se puede expresar en la forma x = 3 6 − x , aplique la técnica SOR y
calcule la solución.
e) Muestre que la ecuación se puede expresar en la forma x = x + 4 x − 6 , aplique la técnica
3

SOR y calcule la solución.

2) Considere la ecuación:x 2 + 2 sen( x) − 2 = 0


a) Represente gráficamente en el intervalo [− 3,−1]
b) Muestre que la ecuación se puede expresar en la forma x = − 2 − 2 sen( x) , aplique la técnica
SOR y calcule la solución.
c) Muestre que la ecuación se puede expresar en la forma x = x + x 2 + 2sen( x) − 2 , aplique la
técnica SOR y calcule la solución.

3) Considere la ecuación: x 2 + 2 sen( x) − 2 = 0


35

a) Represente gráficamente en el intervalo [0,2]


b) Muestre que la ecuación se puede expresar en la forma x = 2 − 2 sen( x) , aplique la técnica
SOR y calcule la solución.
c) Muestre que la ecuación se puede expresar en la forma x = x + x 2 + 2sen( x) − 2 , aplique la
técnica SOR y calcule la solución.

10e − x sen( x) − 1 = 0
4) Considere la ecuación:
a) Represente gráficamente en el intervalo [0,1]
b) Muestre que la ecuación se puede expresar en la forma x ( )
= arcsen e x / 10 , tome x1 = 0.5 y
calcule la solución por iteración de punto fijo.
c) Muestre que la ecuación se puede expresar en la forma x = 10 xe − x sen( x) , aplique la técnica
SOR y calcule la solución.

5) Considere la ecuación:tan(2 − x) − x = 0
a) Represente gráficamente en el intervalo [1,1.5]
b) Muestre que la ecuación se puede expresar en la forma x = tan(2 − x) , aplique la técnica SOR
y calcule la solución.
c) Muestre que la ecuación se puede expresar en la forma x = 2 − arctan( x ) , aplique la técnica
SOR y calcule la solución.

6) Dada la ecuación: x − x cos( x ) − 1 = 0


2

a) Muestre que tiene una raíz en el intervalo: [-1,0]


b) Muestre que la ecuación se puede escribir como: x = − x cos( x) + 1 y resuélvala.

7) Dada la ecuación: 2 x 2 − x − 3 x cos( x) − 2 = 0


a) Represente gráficamente la función en el intervalo [− 2,−2]
b) Determine la raíz negativa al tomar x = g ( x) = 2 x − 3 x cos( x) − 2
2

c) Determine la raíz positiva al tomar x = g ( x) = 2 x 2 − 3 x cos( x) − 2

8) Dada la ecuación: x + x − 1 = 0
5 3

a) Muestre que tiene una raíz en el intervalo [0,1]]


b) Encuentre la solución al expresar la ecuación de 4 maneras diferentes de la forma x = g (x)
36

MÓDULO 4
RAÍCES DE ECUACIONES. MÉTODOS ABIERTOS

Contenido.
En este módulo se presentan los métodos de Aitken, Newton y de la secante para hallar una raíz
real aproximada de una ecuación de una variable. Adicionalmente se estudia un método para
resolver una ecuación usando el comando fzero de Matlab. Los temas a desarrollar son los
siguientes:

4.1. El método de Aitken para acelerar la convergencia de una sucesión.


4.2. El método de Newton-Raphson
4.3. El método de Newton mejorado
4.4. Programa para el método de Newton
4.5. Método de la secante
4.6. Solución de una ecuación usando fzero.
4.7. Raíces de polinomios.

4.1. Método de Aitken.


Consideremos una sucesión: {x k } que converge al valor x E , de tal manera que se verifica:

lim{x k } = x E
x →∞

Los errores absolutos cometidos en las iteraciones: k y k + 1 vienen dados por:

ε k = xk − x E
ε k +1 = x k +1 − x E
ε k +1
La convergencia se garantiza sí: se mantiene menor que la unidad en la medida que k tiende
εk
a infinito. Tan importante que una sucesión sea convergente es la rapidez con que lo hace. Es
pertinente la siguiente definición:

Una sucesión: {x k } converge al valor: x E con una rapidez de convergencia α , si se verifica que:
 ε 
lim  k +α1  = λ
x →∞  ε
 k 
Donde: λ es la constante de error asintótico y es menor que la unidad. En la medida en que mayor
sea α , mayor es la rapidez de convergencia.
Consideremos dos sucesiones: {xk } y { y k } que tienen el mismo error asintótico pero diferentes
rapideces de convergencia. Más concretamente, supongamos que la primera converge linealmente
y la segunda lo hace cuadráticamente; así, si denotamos por ε k el error en la primera sucesión y
por ε 'k el error en la segunda, resulta:

 ε k +1   ε ' 
a) lim 
x →∞ ε
=λ b) lim  k +21  = λ
x →∞  ε '
 k   k 
Puede verse que:
1) ε 2 = λε 1 ε 3 = λε 2 ε 3 = λ2 ε 1 ε k +1 = λk ε 1
37

k −1
ε '1 = λε '1 2 ε '3 = λε ' 2 2 ε '3 = λ3ε '1 4 ε ' k +1 k = λ2 ε '1 2
k
2)

Si en ambos casos el error inicial es la unidad y la tolerancia es la misma, se tiene que el número
mínimo de iteraciones requeridas para obtener una misma aproximación tol , es en cada caso:
a) Para la convergencia lineal λk ≥ tol , entonces:

log(tol )
k≥
log(λ )
k −1
b) Para la convergencia cuadrática λ2 ≥ tol , entonces:

 log(tol ) 
log 
 log(λ ) 
k≥ +1
log(2)

Comparando los resultados se tiene que para que la primera sucesión alcance una tolerancia
determinada tol , el número de iteraciones debe ser:

log(tol )
n1 =
log(λ )

De otro lado, el mínimo número de iteraciones en el segundo caso es significativamente menor y


viene dado por:
log(n1 )
n2 ≅
log(2)

Veamos ahora la manera de, a partir de una sucesión convergente linealmente, generar otra
sucesión que sea más rápidamente convergente.
lim ε k +1
Supongamos que la sucesión: {x k } converge linealmente, es decir = λ , con la
k → ∞ εk
condición 0 < λ < 1 . Con base en lo anterior, podemos escribir:

ε k +1 = λε k , ε k + 2 = λε k +1

Ahora bien, puesto que ε k = xk − x E , tenemos:

x k + 2 − x E = λ ( x k +1 − x E ) x k +1 = λ ( xk − x E )

De las ecuaciones anteriores, al eliminar λ se sigue que:

xk +1
xk +2 − xE = ( x k +1 − x E )
xk − xE

Con base en lo anterior, obtenemos una aproximación para la solución exacta, así:
38

( x k +1 − xk ) 2
x E ≅ xk −
xk + 2 − 2 xk +1 + x k

Supongamos que se genera una nueva sucesión:

( x k +1 − x k ) 2
x'k = xk −
xk + 2 − 2 xk +1 + x k

Para generar el primer término de la nueva sucesión se requieren tres términos de la sucesión
original. La idea es que la nueva sucesión sea más rápidamente convergente, es decir, ε ' k < ε k
para todo valor de k .
ε ' 
Demostraremos que: lim  k  = 0
k →∞ ε
 k 
Dado que ε ' k = x' k − x E tenemos:

ε 'k = ε k −
(ε k +1 − ε k ) 2
= εk −
ε k εk − 1 (
2 ε k +1
)
2

ε k + 2 − 2ε k +1 + ε k (
ε k εεk k+ 2 − 2 εεk k+1 + 1 )
ε k +1 ε k +2
Ahora bien, puesto que =λ y =λ se tiene que:
εk εk
( xk + 1 - xk ) 2
e 'k = xk - - xE
xk + 2 - 2 xk + 1 + xk
( xk + 1 - xE - xk + xE ) 2
= ek -
xk + 2 - xE - 2 xk + 1 + 2 xE + xk - xE

De lo anterior se sigue lo que se quería demostrar. De hecho, la técnica aumenta la rapidez de


convergencia a expensas de generar una nueva sucesión con los tres primeros términos de la
sucesión original. En la actualidad, sin embargo, la técnica es poco utilizada debido al trabajo
adicional requerido.

Ejemplo 4.1
Usando la técnica de Aitken, acelerar la convergencia de la sucesión:

x k +1 = −3 2 x k − 4 x k + 3 . Con: x1 = −3.5 y k ≥ 0
2

Solución.
La siguiente tabla muestra los resultados para las dos sucesiones:

k xk x' k
1 -3.5 -3.424
2 -3.462 -3.426
3 -3.443 -3.423
4 -3.434 -3.426
5 -3.429 -3.425
6 -3.427
39

Puede observarse que la nueva sucesión converge en la cuarta iteración.

4.2. Método de Newton-Raphson


Consideremos la ecuación f ( x ) = 0 , de tal manera que f (x) sea continua y posea todas sus
derivadas en cada punto del intervalo (a, b ) . Si la ecuación tiene una raíz: x E en el intervalo y xk
pertenece al intervalo, entonces podemos encontrar un desarrollo en series de potencias en un
entorno de x k así:
1 1
f ( x) = f ( x k ) + f ' ( x k )( x − x k ) + f ' ' ( x k )( x − x k ) 2 + ..... + f (n)
( x k )( x − x k ) n
2! n!
Si la primera derivada de la función es diferente de cero en el punto considerado, podemos
efectuar una aproximación lineal de la función, tal como lo muestra la figura 4.1

Figura 4.1

f ( x) ≅ f ( x k ) + f ' ( x k )( x − x k )

La recta de aproximación corta al eje de abscisas en el punto x k +1 , el cual se obtiene de la


siguiente manera:
f ( xk )
x k +1 = x k −
f ' ( xk )

De tal forma que, si se empieza con una semilla x1 se genera una sucesión rápidamente
convergente a la solución.

Ejemplo 4.2
Considere la ecuación: f ( x) = x + 2 x − 4 x + 3 = 0
3 2

a) Represente gráficamente la función.


b) Muestre que tiene una raíz en el intervalo: [-4,-3]
c) Usando el método de Newton-Raphson, encuentre un valor aproximado de la raíz usando
aritmética de cuatro dígitos.

Solución.
Usando el programa graficador, hacemos la gráfica de la figura 4.2 en la que se observa la posición
de la raíz.
40

15

10

-5

-10

-15
-4 -3 -2 -1 0 1 2

Figura 4.2
Para encontrar la solución aproximada, le aplicamos el método y llenamos la siguiente tabla.

k xk f ( xk ) f ' ( xk ) f ( xk ) / f ' ( xk )
1 -4 -13 28 -0.4643
2 -3.5357 -2.0555 19.3610 -0.1062
3 -3.4295 -0.0958 17.5672 -0.0055
4 -3.4241 -0.0002 17.4768 -1.4E-5

Se aconseja tomar la semilla en las inmediaciones de la raíz, ya que una semilla mal tomada
puede conducir a que la sucesión sea divergente.

Rapidez de convergencia
Tal como se aprecia en el ejemplo anterior, el método de Newton-Raphson converge rápidamente
a la solución. Demostraremos que la convergencia es cuadrática, es decir, que se cumple que:

 ε 
lim  k +21  = λ
k →∞  ε
 k 
Partamos de la fórmula de recurrencia:
f ( xk )
x k +1 ≅ x k −
f ' ( xk )

Ahora bien, cuando se hace una aproximación lineal de una función, se comete un error que es
proporcional a la segunda derivada de la función, así:

f ' ' (ω )
f ( x) = f ( x E ) + f ' ( x E )( x − x E ) + (x − xE )2
2!
El último término es el error cometido. Al evaluar la primera derivada de la función, a partir de la
serie, se tiene:
f ' ( x) = f ' ( x E ) + f ' ' (ω )( x − x E )

Evaluando la derivada en el punto xk tenemos:

f ' ( x k ) = f ' ( x E ) + f ' ' ( x E )( x k − x E )


41

Restando x E en ambos miembros de la ecuación de recurrencia, se obtiene:


f ( xk )
x k +1 − x E ≅ x k − x E −
f ' ( xk )
De todo lo anterior se tiene:
f ' ' (ω ) 2
f ( x E ) + f ' ( x E )ε k + εk
ε k +1 = ε k − 2
f ' ( x E ) + f ' ' (ω )ε k

Alternativamente, la expresión anterior se puede escribir como:

ε k +1 f ' ' (ω )
=
εk 2
2[ f ' ( x E ) + f ' ' (ω )ε k ]

Al analizar la expresión encontrada se observan dos posibilidades, así:


1. f ' ( x E ) ≠ 0 . En este caso la convergencia es cuadrática.

ε k +1 f ' ' (xE )


lim = =λ
k →∞
εk 2
2 f ' ( xE )

2. f ' ( x E ) = 0 .En este caso la convergencia es lineal.


ε k +1 1
lim = =λ
k →∞ εk 2

4.3. Método de Newton mejorado


Cuando la convergencia es lineal se acostumbra acelerar la convergencia usando la técnica de
Aitken o el método de Newton mejorado. El método de Newton mejorado consiste en resolver la
ecuación:
f ( x)
u ( x ) = 0 , siendo u ( x) =
f ' ( x)

Puesto que las raíces de u (x ) son las mismas raíces de f (x) le aplicamos el método de
Newton-Raphson a la primera ecuación, así:

u( xk ) f ( xk ) f ' ( xk )
x k +1 = x k − = xk −
u' ( xk ) [ f ' ( x k )]2 − f ( x k ) f ' ' ( xk )
El inconveniente que presenta el método es el de que es necesario evaluar la segunda derivada de
la función.

Ejemplo 4.3
Usando el método de Newton-Raphson y el método de Newton mejorado, encuentre una raíz
negativa para la ecuación: f ( x) = 49 x − 56 x − 75 x − 18 = 0
3 2

Primero que todo ubicamos la raíz, la cual está en el intervalo: [-2,-1]


42

a) Usando el método de Newton-Raphson, se encuentra la siguiente tabla, con cuatro dígitos


significativos. Tomando como semilla: x1 = −1

f ' ( x) = 147 x 2 − 112 x − 75

k xk f ( xk ) f ' (xk ) f (xk ) / f ' (xk )

1 -1 -48 184 -0.2649


2 -0.7351 -12.5925 86.7659 -0.1451
3 -0.5900 -3.3072 42.2507 -0.0783
4 -0.5117 -0.8505 20.8004 -0.0409
5 -0.4708 -0.2159 10.3125 -0.0209
6 -0.4499 -0.0546 5.1431 -0.0106
7 -0.4393 -0.0138 2.5703 -0.0053
8 -0.434 -0.0035 1.293 -0.0027
9 -0.4313 -0.0009 0.6505 -0.0014
10 -0.4299 -0.0002 0.3252 -0.0007
11 -0.4299

b) Para aplicar el método de Newton mejorado se requiere de la segunda derivada, así:


f ' ' ( x) = 294 x − 112

Empezamos con la misma semilla

k xk u( xk ) u' ( xk ) u( xk ) / u ' ( xk ) f (xk )


1 -1.0 -0.2609 0.0.4244 -0.6147 -48
2 -0.3853 0.0218 0.5093 0.0429 -0.2188
3 -0.4282 0.0020 0.5001 0.0040 -0.0002
4 -0.4286 0 0.5 0 0

En sí mismos, los resultados son bastante claros. En el caso que nos ocupa, la ecuación tiene una
4
raíz doble en x= ≅ 0.4286 es decir, el método de Newton mejorado no sólo converge más
7
rápidamente, sino que proporciona un valor más exacto

4.4. Programa para el método de Newton.

clear all
tol=input('tolerancia= ');
a=input('limite inferior= ');
b=input('limite isuperior= ');
f=input('entre f(x)= ');
Df=input('entre Df(x)= ');
y(1)=(a+b)/2;
k=1;
x=y(k);
y(k+1)=y(k)-eval(f)/eval(Df);
while abs(y(k+1)-y(k))>tol
k=k+1;
x=y(k);
y(k+1)=y(k)-eval(f)/eval(Df);
end
43

r=y(k+1);
disp('raiz= ')
raiz=r

Ejecutando el programa para la ecuación del ejemplo 4.2, se tiene:


>> newt
tolerancia= 0.0001
limite inferior= -4
limite isuperior= -3
entre f(x)= 'x^3+2*x^2-4*x+3'
entre Df(x)= '3*x*x+4*x-4'
raiz= -3.4241
A continuación se presenta una función para aplicar el método de Newton. Los argumentos de la
función vienen a ser: la semilla, la función, la derivada de la función y la tolerancia.

function Raiz=newf(X,f,Df,tol)
% s=input('semilla= ');
% tol=input('tolerancia= ');
% f=input('entre la funcion f(x)= ');
% Df=input('entre la derivada de la funcion Df(x)= ');
y(1)=X;
k=1;
x=y(k);
y(k+1)=y(k)-eval(f)/eval(Df);
while abs(y(k+1)-y(k))>tol
k=k+1;
x=y(k);
y(k+1)=y(k)-eval(f)/eval(Df);
end
r=y(k+1);
Raiz=r;

Al ejecutar la función, con los datos del ejemplo anterior, resulta:


newf(-3.5,'x^3+2*x^2-4*x+3','3*x*x+4*x-4',0.0001)
ans =-3.4241

4.5. Método de la secante


Tal como se mencionó previamente, el método de Newton-Raphson requiere de la evaluación de la
primera derivada de la función para generar la sucesión. Pueden presentarse ecuaciones para las
cuales no sea muy conveniente, desde el punto de vista operativo, el cálculo de la primera
derivada. Una alternativa interesante es el método de la secante que consiste en modificar el
método de Newton cambiando la pendiente de la recta tangente: f ' ( x k ) por la pendiente de la
recta secante en el intervalo [ x k , x k +1 ] . Como se puede ver, ahora se requiere de dos semillas:
x0 , x1 .Con base en lo anterior, la sucesión a generar es la siguiente:
f ( x k +1 ) f ( x k +1 ) − f ( x k )
x k + 2 = x k +1 − , siendo m k +1 =
mk +1 x k +1 − x k

Ejemplo 4.4
Encuentre una raíz aproximada en el intervalo: [0,1] para la siguiente ecuación, usando aritmética
de cuatro dígitos:
44

x 2 sen( x) + xe x − 3 = 0

Si tomamos como semillas x1 = 0, x 2 = 1 , llenamos la siguiente tabla:

k xk f ( xk ) mk f ( xk ) / mk
1 0 -3 xxxxx xxxxx
2 1 0.5598 3.5598 0.1573
3 0.8428 -0.5126 6.8219 -0.0751
4 0.9179 -0.0323 6.3955 -0.0051
5 0.9230

En el ejemplo anterior no hubo necesidad de calcular la primera derivada de la función. Si se


quisiera aplicar el método de Newton-Raphson hubiera sido necesario encontrar f ' ( x ) así:

f ' ( x) = x 2 cos( x) + 2 xsen( x) + xe x + e x

Se sugiere al estudiante que le aplique el método de Newton-Raphson a la ecuación del ejemplo


anterior y que compare los resultados.

4.6. Raíces usando fzero.


El paquete Matlab posee una función que permite encontrar un cero de la misma. La información a
suministrar consta de la función y de la semilla. La sintaxis de la función es:

Fzero(‘función’,semilla)
Ejemplo 4.5
Encuentre una raíz aproximada en el intervalo: [0,1] para la siguiente ecuación, usando fzero.

x 2 sen( x) + xe x − 3 = 0

Solución.
Tomaremos dos semillas, así:

a) Semilla1: x=0
>> fzero('x^2*sin(x)+x*exp(x)-3',0)

ans =

0.9227

a) Semilla2: x=1
>> fzero('x^2*sin(x)+x*exp(x)-3',1)

ans =

0.9227

Puede verse que se llega al mismo resultado.

4.7. Ceros de polinomios.


El estudiante debe estar familiarizado con los polinomios en una variable y coeficientes reales, así:

P( x) = a n x n + a n −1 x n −1 + ... + a 2 x 2 + a1 x + a 0
45

Con base en el teorema fundamental del álgebra se demuestra que el polinomio tiene exactamente
n ceros en el campo de los complejos. Particularmente, los ceros complejos de un polinomio de
coeficientes reales viene en parejas conjugadas. Los ceros de un polinomio de segundo grado se
encuentran aplicando la fórmula del bachiller. Si bien hay fórmulas para calcular los ceros de
polinomios de tercero y cuarto grado, lo que se hace es aplicar métodos numéricos para encontrar
ceros aproximados. Existen varios métodos para calcular ceros de polinomios, entre los que cabe
mencionar: Método de Lin, Método de Bairtow, Método de Muller, Método de Horner. En este
trabajo se presentará solamente la función roots de Matlab para calcular las raíces. La función
puede usarse también para calcular los ceros de polinomios de coeficientes complejos. Para
encontrar las raíces del polinomio P( x) = a n x n + a n −1 x n −1 + ... + a 2 x 2 + a1 x + a 0 se genera un
vector de coeficientes p = [a n , a n −1 ,...a 2 , a1 , a 0 ] y luego se ejecuta roots(p). Más adelante, en el
módulo 7 se presentará el método de Newton para hallar las raíces de un polinomio.

Ejemplo 4.7.
Determine todas las raíces del polinomio del ejemplo 4.2.

Solución.
El polinomio es f ( x ) = x + 2 x − 4 x + 3
3 2

Procediendo con Matlab, se tiene:


>> p=[1 2 -4 3]

p=

1 2 -4 3
>> roots(p)

ans =

-3.4241
0.7120 + 0.6076i
0.7120 - 0.6076i

Ejemplo 4.8.
Determine las raíces del polinomio f ( x) = x 5 − 2 x 3 + 4 x − 5

Solución.
Procediendo con Matlab, se tiene:
>> p=[1 0 -2 0 4 -5]

p=

1 0 -2 0 4 -5

>> roots(p)

ans =

-1.4234 + 0.8394i
-1.4234 - 0.8394i
1.3538
0.7465 + 0.8918i
0.7465 - 0.8918i
46

EJERCICIOS

Mediante los métodos de Newton, secante y fzero, encuentre una raíz aproximada para cada una
de las siguientes ecuaciones. Use aritmética de cuatro dígitos.

1) x 3 + 3x − 6 = 0
2) x + x − 3 = 0
8 3

3) x + 2sen( x) − 2 = 0
2

−x
4) xe + x − 1 = 0
5) arctan( x) + x − 2 = 0

6) Dada la ecuación: x − x cos( x ) − 1 = 0


2

a) Muestre que tiene una raíz en el intervalo: [-1,0]


b) Resuelva la ecuación por los métodos de Newton y secante

7) Verifique que las siguientes sucesiones son convergentes y acelere su convergencia usando el
método de Aitken

10 + 10 sen( x k )
a) x k +1 =
1 + xk
xk + 1
2

b) x k +1 =
xk + 2
2

Usando los métodos de Newton-Raphson, secante y fzero, encuentre una raíz real para cada una
de las siguientes ecuaciones:

8) x + x − 6 = 0
3

9) x 2 + 2sen( x) − 2 = 0
−x
10) xe + x − 1 = 0
11) x + a tan( x) − 2 = 0
12) x7 + x3 − 3 = 0
13) 49 x + 42 x + 58 x + 42 x + 9
4 3 2

14) 9 x − 3 x + x − 8 x + 4
4 3 2

15) x tan( x ) + 2 x sec ( x) − 1 = 0


2 2

16) x 2 ln( x) + e x − 3 = 0

Usando roots, determine las raíces de los siguientes polinomios

17)
1
16
(
231x 6 − 315 x 4 + 105 x 2 − 5 )
18) x + x − 3 = 0
7 3

19) 49 x + 42 x + 58 x + 42 x + 9
4 3 2

20) 9 x − 3 x + x − 8 x + 4
4 3 2
47

MÓDULO 5
SISTEMAS DE ECUACIONES LINEALES

Contenido
En este módulo se presentan, muy resumidamente, los métodos directos de solución de un sistema
lineal de ecuaciones. Los temas a desarrollar son los siguientes:

5.1. Introducción a los sistemas lineales


5.2. Eliminación Gaussiana
5.3. La regla de Kramer
5.4. Método de la inversa
5.5. Sistemas tridiagonales
5.6. Programa para sistemas tridiagonales

5.1. Introducción.
Un sistema de n ecuaciones lineales con n incógnitas presenta la forma general:

a11 x1 + a12 x 2 + a13 x3 + ..... + a1n x n = b1


a 21 x1 + a 22 x 2 + a 23 x3 + ..... + a 2 n x n = b2
a31 x1 + a32 x 2 + a33 x3 + ..... + a3n x n = b3
. . . . .
. . . . .
. . . . .
. . . . .
a n1 x1 + a n 2 x 2 + a n 3 x3 + ..... + a nn x n = bn

En forma matricial, el sistema se puede escribir en la forma Ax = b , siendo A la matriz de los


coeficientes, b el vector de términos independientes y x el vector solución. Para un sistema de
orden cuatro, tenemos:

 a11 a12 a13 a14   b1   x1 


a a 22 a 23 a 24  b  x 
A =  21 b =  2 x =  2
a31 a32 a 33 a34  b3   x3 
     
a 41 a 42 a 43 a 44  b4   x4 

5.2. Eliminación Gaussiana


El método consiste en convertir el sistema original en otro sistema equivalente de tipo triangular,
mediante operaciones aritméticas sobre la matriz aumentada. La matriz aumentada es una matriz
con n filas y n+1 columnas, es decir, está formada por la matriz de los coeficientes y por el vector
de los términos independientes. Para el sistema de orden dos, la matriz aumentada y la
correspondiente matriz triangular son las siguientes:

 a11 a12 b1  1 a '12 b'1 


   
a 21 a 22 b2  0 1 b ' 2 

Para un sistema de orden cuatro, la matriz aumentada y la matriz triangular, vienen dadas por:
48

 a11 a12 a13 a14 b1  1 a '12 a '13 a '14 b'1 


   
a 21 a 22 a 23 a 24 b2  0 1 a ' 23 a ' 24 b' 2 
 a31 a 32 a33 a34 b3  0 0 1 a '34 b'3 
   
a 41 a 42 a 43 a 44 b4  0 0 0 1 b' 4 

Para el sistema de segundo orden, mediante el procedimiento de sustitución hacia atrás, se tiene:

x 2 = b' 2 x1 = b'1 −a'12 x2

Para el sistema de orden cuatro, mediante el procedimiento de sustitución hacia atrás, se tiene:

x 4 = b' 4 ,
x3 = b'3 −a '34 x 4 ,
x 2 = b' 2 −a ' 24 x 4 − a ' 23 x3
x1 = b'1 −a '14 x 4 − a '13 x3 − a '12 x 2

En el proceso de encontrar la matriz triangular se hacen operaciones entre filas, tales como
combinaciones lineales entre filas, cuidando que no aparezcan ceros sobre la diagonal. Cuando
ocurra un cero en la diagonal se procede a intercambiar la fila correspondiente por otra en la que el
pivote sea diferente de cero.

Ejemplo 5.1
Para el siguiente sistema, encuentre la matriz triangular asociada y la solución.

2x + 3 y + 4z = 5
3x + 2 y − z = 3
4x − 3 y + 2z = 1

Solución.
A continuación se muestra la matriz aumentada y la que se obtiene al dividir cada fila por el
coeficiente de la primera variable.

2 3 45 1 3/ 2 2 5/ 2
3 2 − 13 1 2/3 − 1/ 3 1
4 −3 21 1 − 3/ 4 1/ 2 1/ 4

Si a las filas dos y tres le restamos la primera, obtenemos:

1 3/ 2 2 5/ 2
0 − 5/ 6 − 7 / 3− 3/ 2
0 − 9/ 4 − 3/ 2 − 9/ 4

Modificando las ecuaciones dos y tres, tenemos:


49

1 3/ 2 2 5/ 2 1 3/ 2 2 5/ 2
0 1 14 / 5 9 / 5 0 1 14 / 5 9/5
0 1 2/3 1 0 0 − 32 / 15 − 4 / 5

Finalmente, la matriz triangular es la siguiente:

1 3/ 2 2 5/ 2
0 1 14 / 5 9 / 5
0 0 1 3/8

Por el procedimiento de sustitución hacia atrás, se encuentra que:

z = 3/8 y = 3/ 4 x = 5/8

Al resolver un sistema por el método de eliminación Gaussiana pueden ocurrir tres posibles
situaciones, a saber:
a) El sistema tiene solución única, tal como ocurrió en el ejemplo anterior.
b) El sistema tiene infinitas soluciones, esto ocurre cuando las ecuaciones son linealmente
dependientes y se pone en evidencia cuando al encontrar la matriz triangular aparece una
identidad: 0 = 0
c) El sistema no tiene solución, esto ocurre cuando al encontrar la matriz triangular aparece una
contradicción 0 = numero ≠ 0 .

Ejemplo 5.2
Resuelva los siguientes sistemas de ecuaciones:

2 x + 3 y − 4 z = 12
x − 3 y + 2z = 6
x + 6 y − 6z = 6

2 x + 3 y − 4 z = 12
2) x − 3 y + 2 z = 6
x + 6 y − 6z = 8

Solución.
Procediendo de manera simultánea, tenemos:

2 3 − 4 12 2 3 − 4 12
1 −3 2 6 1 −3 2 6
1 6 −6 6 1 6 −6 8

1 3/ 2 − 26 1 3/ 2 − 26
1 −3 2 6 1 −3 2 6
1 6 − 66 1 6 − 68
50

1 3/ 2 − 26 1 3/ 2 − 26
1 −3 2 6 1 −3 2 6
1 6 − 66 1 6 − 68

1 3/ 2 − 26 1 3/ 2 − 26
0 −9/2 4 0 0 −9/2 4 0
0 9/2 − 40 0 9/2 − 42

1 3/ 2 −2 6 1 3/ 2 −2 6
0 1 − 8/90 0 1 −8/9 0
0 1 − 8/90 0 1 −8/9− 4/9

Claramente se observa que el primer sistema tiene infinitas soluciones y el segundo no tiene
solución. La mayoría de los textos de álgebra lineal presentan los algoritmos de solución de los
sistemas lineales en diferentes lenguajes de programación.

5.3. Regla de Kramer


El método consiste en que cada una de las incógnitas se calcula como el cociente de dos
determinantes, así:
Dado el sistema de ecuaciones Ax = b , la variable: x k se calcula como:
Ak
xk =
A
Dónde: A es el determinante de la matriz del sistema y Ak es el determinante de la matriz que
resulta de reemplazar la columna k por el vector de términos independientes.
Al aplicar la regla de Kramer aparecen tres posibles situaciones, a saber:

a) A ≠ 0 . En este caso el sistema tiene solución única.


b) A = 0 y para todo k se verifica que Ak = 0 . En este caso el sistema tiene infinitas soluciones.
c) A = 0 y existe al menos un valor de k tal que Ak ≠ 0 . En este caso el sistema no tiene
solución.
Para un sistema de orden tres, se tiene:

a11 x1 + a12 x2 + a13 x1 = b1


a 21 x1 + a 22 x1 + a 23 x1 = b2
a31 x1 + a32 x1 + a33 x1 = b3

 a11 a12 a13 


A = a 21 a 22 a 23 
a31 a32 a33 
51

 b1 a12 a13 
A1 = b2 a 22 a 23 
b3 a32 a33 
 a11 b1 a13 
A2 = a 21 b2 a 23 
a31 b3 a 33 
 a11 a12 b1 
A3 = a 21 a 22 b2 
a31 a32 b3 

Normalmente se usa el método de los cofactores para hallar los determinantes. Aquí usaremos el
paquete Matlab para hallar los valores de los determinantes.

Ejemplo 5.3
Resuelva los siguientes sistemas de ecuaciones, usando la regla de Kramer.

2 x + 3 y + 3 z + 3w = 6
 x + 3 y + w − 2 z = 12

1) 
3 x − 2 y − 2 z + 3w = 6
 x + 2 y − 2 z − 2 w = 2
2 x + 3 y + 3 z + 3w = 6
 x + 3 y + w − 2 z = 12

2)  0
 3 x − 2 y − 2 z + 3 w = 6
4 x − 2 y − 0 z + 8w =
2 x + 3 y + 3 z + 3w = 6
 x + 3 y + w − 2 z = 12

3) 
3 x − 2 y − 2 z + 3w = 6
4 x − 2 y − 0 z + 8w = 2

Solución.
Para el primer sistema, tenemos:
2 3 3 3
1 3 1 − 2
A= 
3 − 2 − 2 3 
 
1 2 − 2 − 2 

Usando el paquete se encuentra que el determinante del sistema es A = −106 , con lo que el
sistema tiene solución única. En este caso, la solución es:
52

x ≅ 7.3585 y ≅ −2.7925 z ≅ 4.2642 w ≅ − 5.3585

Para el segundo sistema tenemos:

2 3 3 3
1 3 1 − 2
A= 
3 − 2 − 2 3 
 
4 − 2 0 8 

Usando el paquete se encuentra que todos los determinantes son iguales a cero y por tanto el
sistema tiene infinitas soluciones. Para el tercer sistema el estudiante puede verificar que no tiene
solución.

5.4. Método de la inversa


Es el método que se usa más a menudo, siempre y cuando se tenga un algoritmo simple para
hallar la inversa de la matriz del sistema. Dado el sistema de ecuaciones Ax = b , la solución viene
−1
dada por x = A b , siempre que la matriz del sistema sea no singular, es decir, la inversa exista.
En álgebra lineal se estudia que una matriz es singular si su determinante es igual a cero. La
ventaja del método es que basta con tener la inversa de la matriz y multiplicarla por cualquier
vector de términos independientes.

Ejemplo 5.4.
Resuelva el sistema de ecuaciones: Ax = b

3 2 − 1 3
A = 2 4 5  b = 1
1 2 3  2
Solución.
Con la ayuda del paquete encontramos que A = 4 , con lo que la inversa existe y está dada por:

 0.5 −2 3.5 
A = − 0.25 2.5 − 4.25
−1

 0 −1 2 
Con base en lo anterior, la solución es:

 0.5 −2 3.5  3  6.5 


x = − 0.25 2.5 − 4.25 1  = − 6.75

 0 −1 2  2  3 

Para resolver un sistema usando Matlab, se genera el siguiente código:

>> A=[3 2 -1;2 4 5;1 2 3];


>> b=[3;1;2];
>> x=inv(A)*b;
>> x
x=
53

6.5000
-6.7500
3.0000

5.5. Sistemas tridiagonales


Un sistema de ecuaciones: Ax = b es de tipo tridiagonal sí la matriz del sistema: A presenta
elementos significativos sobre la diagonal principal y las dos adyacentes, es decir, por fuera de las
tres diagonales mencionadas, cada elemento es igual a cero.
El siguiente sistema de orden cuatro es tridiagonal.

 a11 a12 0 0   x1   b1 
a a 22 a 23 0   x 2  b2 
 21 =
0 a 32 a33 a 34   x3  b3 
    
0 0 a 43 a 44   x 4  b4 

Puede verse que de los 16 elementos de la matriz, seis son iguales a cero. En general, un sistema
tridiagonal de orden n tiene: ( n − 1)( n − 2) elementos iguales a cero, para: n ≥ 3
Lo anterior significa que si se tiene un sistema de orden diez, el número de datos significativos es
3n − 2 = 28 . Para resolver un sistema tridiagonal es conveniente usar un algoritmo que evite el
innecesario almacenamiento de los datos no significativos. A continuación presento un método que
cumple con lo planteado previamente. Supongamos que el sistema es de orden n y por tanto tiene
3n − 2 elementos significativos que se almacenan en un vector v , así:

v = [v1 v2 v3 v 4 ...... v m −1 vm ]
Dónde: m = 3n − 2

Los elementos del arreglo v son:

v1 = a11 v 2 = a12 v3 = a 21 v 4 = a 22 ….. v m = a nn

Supongamos que tenemos un sistema tridiagonal de orden cinco, de tal manera que la matriz
aumentada es la siguiente:

 a11 a12 0 0 0 b1   v1 v2 0 0 0 b1 
   
a 21 a 22 a 23 0 0 b2  v 3 v4 v5 0 0 b2 
0 a 32 a33 a34 0 b3  0 v6 v7 v8 0 b3 
   
0 0 a 43 a 44 a 45 b4  0 0 v9 v10 v11 b4 
0 0 0 a54 a55 b5  0 0 0 v12 v13 b5 
 

El algoritmo de solución consiste en encontrar ceros por debajo de la diagonal principal y unos
sobre la diagonal, así:
54

1 v ' 2 0 0 0 b'1 
 
0 1 v'5 0 0 b' 2 
0 0 1 v '8 0 b' 3 
 
0 0 0 1 v'11 b' 4 
0 0 0 0 1 b'5 

A continuación se muestra una rutina en Matlab para resolver un sistema tridiagonal de orden
mayor que tres. En general, el código para resolver el sistema es el siguiente:
Entrada de datos:
n = orden
Entre los elementos de la matriz : v(i ), i = 1 : 3n − 2
Entre los elementos ter min os independientes : b(i ), i = 1 : n
Cálculos a realizar:
m = 3n − 2
b(1) = b(1) / v(1)
v(2) = v(2) / v(1)
v(1) = 1
for i = 2 : n − 1
k = 3i − 2
b(i ) = b(i ) − b(i − 1)b(k − 1)
v(k ) = v(k ) − v(k − 1)v(k − 2)
v(k − 1) = 0
b(i ) = b(i ) / v(k )
v(k + 1) = v(k + 1) / v(k )
v(k ) = 1
End
b(n) = b(n) − b(n − 1)v(m − 1)
v(m) = v(m) − v(m − 1)v(m − 2)
b( n) = b( n) / v ( m)
v ( m) = 1
v(m − 1) = 0
x ( n) = b( n)
for i = n − 1 : −1 : 1
k = 3i − 1
x(i ) = b(i ) − x(i + 1)v(k )
end
x
A continuación se muestra un programa en Matlab para resolver un sistema tridiagonal.
55

5.6. Programa para resolver sistemas tridiagonales.


clear all
%Programa para resolver sistemas tridiagonales, es decir, sistemas de la forma:
%a(1,1)x(1)+a(1,2)x(2)+0x(3)+0x(4)+0x(5)+...+0x(n-2)+0x(n-1)+0x(n)=b(1)
%a(2,1)x(1)+a(2,2)x(2)+a(2,3)x(3)+0x(4)+0x(5)+...+0x(n-2)+0x(n-1)+0x(n)=b(2)
%0x(1)+a(3,2)x(2)+a(3,3)x(3)+a(3,4)x(4)+0x(5)+...+0x(n-2)+0x(n-1)+0x(n)=b(3)
%0x(1)+0x(2)+a(4,3)x(3)+a(4,4)x(4)+a(4,5)x(5)+...+0x(n-2)+0x(n-1)+0x(n)=b(4)
%0x(1)+0x(2)+0x(3)+..+0x(n-3)+a(n-1,n-2)x(n-2)+a(n-1,n-1)x(n-1)+a(n-1,n)x(n)=b(n-1)
%0x(1)+0x(2)+0x(3)+..+0x(n-3)+0x(n-2)+a(n,n-1)x(n-1)+a(n,n)x(n)=b(n)
% El algoritmo consiste en colocar los terminos significativos en un vector
%de dimension:m=3n-2,asi:
%v=[v(1),v(2),v(3),....,v(m)]
%El programa es el siguiente:
%Entrada de datos
n=input('orden del sistema = ');
m=3*n-2;
v=input('entre el vector fila v=');
b=input('entre el vector columna b=');
b(1)=b(1)/v(1);
v(2)=v(2)/v(1);
v(1)=1;
for i=2:n-1
k=3*i-2;
b(i)=b(i)-v(k-1)*b(i-1);
v(k)=v(k)-v(k-1)*v(k-2);
v(k-1)=0;
b(i)=b(i)/v(k);
v(k+1)=v(k+1)/v(k);
v(k)=1;
end
b(n)=b(n)-b(n-1)*v(3*n-3);
v(3*n-2)=v(3*n-2)-v(3*n-3)*v(3*n-4);
b(n)=b(n)/v(3*n-2);
v(3*n-2)=1;
v(3*n-3)=0;
x(n)=b(n);
for i=n-1:-1:1
k=3*i-1;
x(i)=b(i)-x(i+1)*v(k);
end
x

Ejemplo 5.5.
Resuelva el sistema tridiagonal:
x1 + 2 x 2 = 3
2 x1 + 3x 2 − 2 x3 = 5
x 2 + 4 x3 + 2 x 4 = 1
2 x3 − 3 x 4 + x5 = 5
x 4 + x5 − x 6 = 0
x5 − 2 x 6 = 8
56

A continuación se muestra la matriz aumentada y el vector: v.

1 2 0 0 0 0  3
 2 3 − 2 0 0 0  5 
  
0 1 4 2 0 0  1 
  
 0 0 2 − 3 1 0  5 
0 0 0 1 1 − 1  0 
  
0 0 0 0 1 − 2 8
v = [1 2 2 3 − 2 1 4 2 2 − 3 1 1 1 − 1 1 − 2]

Al ejecutar el programa, se tiene:


>> tridiagonal
orden del sistema = 6
entre el vector fila v=[1 2 2 3 -2 1 4 2 2 -3 1 1 1 -1 1 -2]
entre el vector columna b=[3;5;1;5;0;8]
>> x
x=
8.4286
-2.7143
1.8571
-1.8571
-4.2857
-6.1429

Se puede generar una función, usando Matlab, para resolver el sistema tridiagonal. La función será
de mucha utilidad al resolver problemas con valor en la frontera por el método de las diferencias
divididas. La función, a la que llamaremos functrid, presenta tres argumentos, así:

functrid (n, v, b )
n : orden
v : vector del sistema
b : vector de ter indep
function [x]=functrid(n,v,b)
m=3*n-2;
b(1)=b(1)/v(1);
v(2)=v(2)/v(1);
v(1)=1;
for i=2:n-1
k=3*i-2;
b(i)=b(i)-v(k-1)*b(i-1);
v(k)=v(k)-v(k-1)*v(k-2);
v(k-1)=0;
b(i)=b(i)/v(k);
v(k+1)=v(k+1)/v(k);
v(k)=1;
end
b(n)=b(n)-b(n-1)*v(3*n-3);
v(3*n-2)=v(3*n-2)-v(3*n-3)*v(3*n-4);
b(n)=b(n)/v(3*n-2);
v(3*n-2)=1;
57

v(3*n-3)=0;
x(n)=b(n);
for i=n-1:-1:1
k=3*i-1;
x(i)=b(i)-x(i+1)*v(k);
end

Al ejecutar la función con los datos del ejemplo anterior, se obtiene:


functrid(6,[1 2 2 3 -2 1 4 2 2 -3 1 1 1 -1 1 -2],[3;5;1;5;0;8])
ans =

8.4286 -2.7143 1.8571 -1.8571 -4.2857 -6.1429

EJERCICIOS

1) Usando los diferentes métodos directos, resuelva los siguientes sistemas de ecuaciones:

2 x + 3 y − 4 z = 12 2 x + 3 y − 4 z = 12 2 x + 3 y + 5 z = 12
x − 3 y + 2z = 6 x − 3 y + 2z = 6 x + 3 y + 2z = 6
x + 6 y − 6z = 6 x + 6 y − 6z = 8 x + 6 y − 6z = 8

2) Usando los diferentes métodos directos, resuelva los siguientes sistemas:

x1 + 2 x2 = 3 3x1 + 2 x2 = 0
2 x1 + 3 x2 − 2 x3 = 5 2 x1 + 3 x2 − 2 x3 = 5
x 2 + 4 x3 + 2 x 4 = 1 x2 − 4 x3 + 2 x4 = 3
2 x3 − 3 x 4 + x5 = 5 2 x3 − 3x4 − 2 x5 = 5
x 4 + x5 − x 6 = 0 x4 + x5 + 3 x6 = 0
x5 − 2 x 6 = 8 3 x5 − 2 x 6 = 8

3) Usando el programa tridiagonal, resuelva los sistemas del numeral 2


Usando la función functrid, resuelva los sistemas del numeral 2
58

MÓDULO 6
SISTEMAS DE ECUACIONES LINEALES. MÉTODOS ITERATIVOS

Contenido.
En este módulo se presentan, muy resumidamente, los métodos iterativos de solución de un
sistema lineal de ecuaciones. Los temas a desarrollar son los siguientes:

6.1. Sistemas diagonalmente dominantes


6.2. Método de Jacobi con número de iteraciones
6.3. Método de Gauss-Seidel con número de iteraciones
6.4. Método de Gauss-Seidel con tolerancia

6.1. Sistemas diagonalmente dominantes.


Consideremos un sistema de orden n de ecuaciones lineales, así:

 a11 a12 a13 ..... a1n   x1   b1 


a a 22 a 23 ..... a 2 n   x 2  b2 
 21
 a31 a32 a33 ..... a3n   x3  = b3 
 . . . . .  .   . 
    
 . . . . .  .   . 
a n1 an2 an3 ..... a nn   xn  bn 

Se dice que el sistema es diagonalmente dominante sí el valor absoluto de un elemento sobre la


diagonal principal de la matriz del sistema es mayor que el valor absoluto de los demás elementos
de la fila correspondiente.
aii > aij

El siguiente sistema, por ejemplo, es diagonalmente dominante:

 3 1 − 2 0 1   1   2
x
1 − 4 2 3 − 1  x 2   3 

    
2 0 3 1 − 2  x3  = 5
  .  
0 2 − 2 5 1   .   2
1 2  
3 4 5   x  1 
 n

Los sistemas diagonalmente dominantes se pueden resolver numéricamente por dos métodos
diferentes, según veremos a continuación.

6.2. Método de Jacobi con número de iteraciones.


El método consiste en escribir el sistema, por simplicidad lo tomamos de orden cuatro, en la
siguiente forma:
59

 b1 − a12 x 2 − a13 x3 − a14 x4 


 a11 
 x1   b2 − a 21 x1 − a 23 x3 − a 24 x 4 

x   
 2 =  a 22
 x3   b3 − a31 x1 − a32 x 2 − a34 x 4 
   a 33 
 x4 
 b4 − a 41 x1 − a 42 x2 − a 43 x3 
 
 a 44 
Denotamos por x al vector solución, así:
 x1 
x 
x =  2
 x3 
 
 x4 

Con base en lo anterior resulta una ecuación matricial de la forma x = g (x) . Puede notarse la
similitud con el caso de la solución de una ecuación con una incógnita por el método de iteración
de punto fijo x = g (x ) . Recordemos que para el caso de una variable se genera la sucesión: x k
tal que x1 = semila y x k +1 = g ( x k ) con la condición de que g ' ( x) < 1 en las inmediaciones de
la solución.
Por analogía se puede pensar que se debe generar una sucesión de vectores x (k ) , tal que x (1) es
una semilla y x
( k +1)
=gx ( ( ))
k

Se están usando superíndices para el caso vectorial. La convergencia de la sucesión vectorial está
asociada al hecho de que el sistema es diagonalmente dominante. Más adelante se presentará la
justificación correspondiente. El estudiante no debe perder de vista el hecho de que el sistema
debe ser diagonalmente dominante con lo cual se garantiza la convergencia de la sucesión:

( )
x ( k +1) = g x (k )

Para generar la sucesión se recomienda la semilla:


 b1 / a11 
b / a 
x (1) =  2 22 
 b3 / a 33 
 
b4 / a 44 
Ejemplo 6.1
Encuentre la solución aproximada del siguiente sistema, por el método de Jacobi y compare con la
solución exacta
2 1 1   x  3 
 1 − 3 2   y  = 1 
    
− 1 2 4  z  2
Solución.
Como puede verse, el sistema es diagonalmente dominante y se puede expresar en la forma:
60

3 − yk − zk
x k +1 =
2 x1 = 1.5000
1 − xk − 2 z k
y k +1 = y1 = −0.3333
−3
2 + xk − 2 y k z1 = 0.5000
z k +1 =
4
Algoritmo en Matlab para aplicar el método de Jacobi con número de iteraciones.
clear all
% Solucion de un sistema de orden tres diagonalmente dominante
% x=g1(y,z); y=g2(x,z); z=g3(x,y)
% n número de iteraciones
% Todas las semillas se inicializan de acuerdo con la recomendación previa
n=input('numero de iteraciones=');
g1=input('g1(y,z)=');
g2=input('g2(x,z)=');
g3=input('g3(x,y)=');
xi=input('xinicial=');
yi=input('yinicial=');
zi=input('zinicial=');
% Se genera una matriz M cuya primera fila es la semilla
M(1,1)=xi;
M(1,2)=yi;
M(1,3)=zi;
for k=1:n;
x=M(k,1);
y=M(k,2);
z=M(k,3);
M(k+1,1) = eval(g1);
M(k+1,2) = eval(g2);
M(k+1,3) = eval(g3);
end
M

Ejecutando el programa con los datos del ejemplo, se tiene:

>> Jacobi
numero de iteraciones=20
g1(y,z)='(3-y-z)/2'
g2(x,z)='(x+2*z-1)/3'
g3(x,y)='(2+x-2*y)/4'
xinicial=1.5
yinicial=-1/3
zinicial=1/2

ans =
1.5000 -0.3333 0.5000
1.4167 0.5000 1.0417
0.7292 0.8333 0.6042
0.7812 0.3125 0.2656
1.2109 0.1042 0.5391
1.1784 0.4297 0.7507
0.9098 0.5599 0.5798
0.9302 0.3564 0.4475
61

1.0980 0.2751 0.5543


1.0853 0.4022 0.6370
0.9804 0.4531 0.5702
0.9883 0.3736 0.5186
1.0539 0.3418 0.5603
1.0489 0.3915 0.5926
1.0080 0.4114 0.5665
1.0111 0.3803 0.5463
1.0367 0.3679 0.5626
1.0347 0.3873 0.5752
1.0187 0.3951 0.5650
1.0200 0.3829 0.5572
1.0300 0.3781 0.5635

La solución, en la iteración número 20 es:

 x  1.0300 
 y  = 0.3781
   
 z  0.5635

Sí se usa el paquete, la solución directa del sistema, por el método de la inversa es:

>> A=[2 1 1;1 -3 2;-1 2 4];


>> b=[3;1;2]
>> b=[3;1;2];
>> x=inv(A)*b;
>> x
x=
1.0256
0.3846
0.5641
Como puede verse, el error absoluto que se comete viene dado por:

1.0300  1.0256  0.0044


error =  0.3781 − 0.3846 = 0.0065
0.5635  0.5541 0.0006

Es claro que la convergencia es bastante lenta. Para mejores aproximaciones es necesario


efectuar un mayor número de iteraciones. Por ejemplo, al tomar n = 50 , la convergencia se
presenta en las iteraciones 46 y 47, con los resultados:

1.0256 0.3846 0.5641


1.0256 0.3846 0.5641

6.3. Método de Gauss-Seidel con número de iteraciones.


El método es una variante del método de Jacobi y consiste básicamente en utilizar los valores
recientes de las variables: x1 , x 2 , x3 para calcular la variable: x 4
Para un sistema de orden cuatro, a partir de la semilla, se generan las cuatro sucesiones:
62

k +1
= g1( x2 , x3 , x 4 )
k k k
x1
k +1 k +1
x 2 = g 2( x1 , x3 , x 4 )
k k

k +1 k +1 k +1
x3 = g 3( x1 , x 2 , x3 )
k

k +1 k +1 k +1 k +1
x4 = g 4( x1 , x2 , x3 )

Acomodando el algoritmo de Jacobi, resulta el siguiente:


clear all
% Solucion de un sistema de orden tres diagonalmente dominante
% x=g1(y,z); y=g2(x,z); z=g3(x,y)
% n número de iteraciones
% Todas las semillas se inicializan de acuerdo con la recomendación previa
n=input('numero de iteraciones=');
g1=input('g1(y,z)=');
g2=input('g2(x,z)=');
g3=input('g3(x,y)=');
xi=input('xinicial=');
yi=input('yinicial=');
zi=input('zinicial=');
% Se genera una matriz M cuya primera fila es la semilla
M(1,1)=xi;
M(1,2)=yi;
M(1,3)=zi;
for k=1:n;
x=M(k,1);
y=M(k,2);
z=M(k,3);
M(k+1,1) = eval(g1);
x=M(k+1,1);
M(k+1,2) = eval(g2);
y=M(k+1,2);
M(k+1,3) = eval(g3);
end
M
Al ejecutar el programa con la información del ejemplo, resulta:

numero de iteraciones=40
g1(y,z)='(3-y-z)/2'
g2(x,z)='(x+2*z-1)/3'
g3(x,y)='(2+x-2*y)/4'
xinicial=1.5
yinicial=-1/3
zinicial=1/2

M=

1.5000 -0.3333 0.5000


1.4167 0.4722 0.6181
0.9549 0.3970 0.5402
1.0314 0.3706 0.5725
1.0284 0.3912 0.5615
1.0237 0.3822 0.5648
1.0265 0.3854 0.5639
63

1.0253 0.3844 0.5641


1.0257 0.3847 0.5641
1.0256 0.3846 0.5641
1.0256 0.3846 0.5641

Observe que la convergencia se presenta en las iteraciones 10 y 11. Las ventajas del método
saltan a la vista.

6.4. Método de Gauss-Seidel con tolerancia.


En este caso no se introduce el número de iteraciones sino la tolerancia como criterio de paro. El
programa es el siguiente:

%gausetol
%Programa para resolver sistemas de orden tres diagonalmente dominantes por el método de
Gauss-Seidel
%tomando la tolerancia como criterio de paro
clear all
tol=input('tolerancia=');
xi=input('semillax= ');
yi=input('semillay= ');
zi=input('semillaz= ');
g1=input('g1(y,z)= ');
g2=input('g2(x,z)= ');
g3=input('g3(x,y)= ');
M(1,1)=xi;
M(1,2)=yi;
M(1,3)=zi;
vtol=[tol,tol,tol];
E=[1,1,1];
k=1;
while abs(E)>vtol,
x=M(k,1);
y=M(k,2);
z=M(k,3);
M(k+1,1)=eval(g1);
x=M(k+1,1);
M(k+1,2)=eval(g2);
y=M(k+1,2);
M(k+1,3)=eval(g3);
E=M(k+1,:)-M(k,:);
k=k+1;
end
M
K
Abs(E)

Al ejecutar el programa con los datos del ejemplo y tomando como tolerancia tol = 0.0001 , se
tiene:
>> gausetol3
>> gausetol3
tolerancia=0.0001
semillax= 1.5
semillay= -1/3
semillaz= 0.5
g1(y,z)= '(3-y-z)/2'
g2(x,z)= '(x+2*z-1)/3'
64

g3(x,y)= '(2+x-2*y)/4'

M=

1.5000 -0.3333 0.5000


1.4167 0.4722 0.6181
0.9549 0.3970 0.5402
1.0314 0.3706 0.5725
1.0284 0.3912 0.5615
1.0237 0.3822 0.5648
1.0265 0.3854 0.5639
1.0253 0.3844 0.5641
1.0257 0.3847 0.5641

k=

ans =

1.0e-003 *

0.3793 0.2537 0.0320

Puede verse que la tolerancia se alcanza con 9 iteraciones.

EJERCICIOS

1) Escriba los programas para aplicar el método de Gauss-Seidel para sistemas de orden 4, tanto
para número de iteraciones como para la tolerancia.

2) Usando el algoritmo de Gauss-Seidel con n=20, resuelva los sistemas descritos a continuación.

5 x + 3 y − 4 z = 12 6 x + 3 y − 4 z = 12
 
1)  x − 3 y + 2 z = 6 2)  x − 3 y + 2 z = 6
x + 3 y − 6z = 6 x + 6 y − 8z = 8
 

2 x + 3 y + 5 z = 12 10 x + 3 y − 4 z = 12
 
3)  x + 3 y + 2 z = 6 4)  x − 3 y + 2 z = 6
x + 6 y − 6z = 8 x + 6 y − 8z = 6
 

5 x + 3 y − 4 z = 12 9 x + 3 y + 5 z = 12
 
5)  x − 3 y + 2 z = 6 6)  x + 3 y + 2 z = 6
x + y − 6z = 8 2 x + 6 y − 10 z = 8
 
65

 x1 + 2 x 2 = 3  x1 + 3 x 2 = 6
2 x + 3 x − 2 x = 5  x + 3 x − x = 12
 1 2 3  1 2 3
7)  8) 
 x 2 + 4 x3 + 2 x 4 = 1  x 2 + 4 x3 + 2 x 4 = 8
 x3 + 3 x 4 = 6  x3 + 3 x 4 = 6

5 x1 + 2 x 2 − x3 − x 4 = 10 5 x1 + 2 x 2 − x3 − x 4 = 10
2 x + 3 x − 2 x − x = 6 3 x − 2 x − x = 6
 1 2 3 4  2 3 4
9)  10) 
 1x + x 2 + 4 x 3 + 2 x 4 = 4  1x + x 2 + 4 x 3 = 4
 x1 − x 2 + 2 x3 − 5 x 4 = 10  x1 − x 2 + 2 x3 − 5 x 4 = 10

−5
3) Resuelva los sistemas dado por Gauss-Seidel con tolerancia tol = 10
66

MÓDULO 7
SISTEMAS DE ECUACIONES NO LINEALES. MÉTODO DE NEWTON
En este módulo se presenta la solución de un sistema con una ecuación lineal y una cuadrática.
Además, se presenta el método de Newton para la solución de sistemas no lineales, tanto de
segundo como de tercer orden. Los temas a desarrollar son los siguientes:

7.1. Representación gráfica de relaciones en el plano


7.2. Sistemas con una ecuación lineal y una cuadrática
7.3. Sistemas de dos ecuaciones con dos incógnitas. Método de Newton
7.4. Sistemas de tres ecuaciones con tres incógnitas. Método de Newton

7.1. Representación gráfica de relaciones en el plano.


Una relación de variable real es un conjunto de parejas (x, y ) ∈ R 2 , en las que las variables están
relacionadas de manera implícita por la ecuación F ( x, y ) = 0 . Gráficamente, una relación es una
curva del plano. Son ejemplos de relaciones: las rectas del plano, las cónicas y un sinnúmero de
relaciones importantes en ingeniería y ciencias. Para graficar una relación se debe abrir una
ventana o región rectangular definida como:

{
regiòn = ( x, y ) ∈ R 2 / xi ≤ x ≤ xf ∧ yi ≤ y ≤ yf }
A continuación se presenta un programa simple para representar gráficamente dos relaciones en la
misma figura.
%Representación gráfica de dos relaciones del plano
clear all
% Se introducen los datos de la ventana
xi=input('abscisainicial=');
xf=input('abscisainfinal=');
yi=input('ordenadainicial=');
yf=input('ordenadainfinal=');
%Se introducen las ecuaciones
F=input('entre la funcion F(x,y)=');
G=input('entre la funcion G(x,y)=');
%Se representa gráficamente la primera
ezplot(F,[xi,xf,yi,yf])
%Se sostiene la gráfica
hold on
%Se representa gráficamente la segunda
ezplot(G,[xi,xf,yi,yf])
%Se colocan las cuadrículas
grid on

Ejemplo 7.1
Represente, en la misma figura, las relaciones:

 F ( x, y ) = 2 x + y − 4

G ( x, y ) = x + 3 y − 2 xy − 3
2 2

Solución.
Se ejecuta el programa, así:
>> grarel
abscisainicial=-3
abscisainfinal=3
67

ordenadainicial=-3
ordenadainfinal=3
entre la funcion F(x,y)='2*x+y-4'
entre la funcion G(x,y)='x^2+3*y^2-2*x*y-3'

La figura 7.1 muestra la gráfica correspondiente.


x 2+3 y 2-2 x y-3 = 0
3

0
y

-1

-2

-3
-3 -2 -1 0 1 2 3
x

Figura 7.1

Ejemplo 7.2
La ecuación polar de una lemniscata es r 2 = a 2 cos(2θ ) , mientras que la de una cardiode es
r = a (1 + cos(θ ) ) .
a) Tomando a = 2 , escriba las ecuaciones en coordenadas cartesianas rectangulares.
b) Represente ambas curvas en la misma figura.

Solución.
a) Teniendo en cuenta las fórmulas de transformación se tiene:

Lemniscata: (x 2
+ y2 )
2
(
− 4 x2 − y2 = 0 )
Cardioide: (x 2
)
2
+ y − 2x − 4 x + y 2 = 0
2
( 2
)
b) Ejecutando el programa se tiene:
>> grarel
abscisainicial=-3
abscisainfinal=5
ordenadainicial=-3
ordenadainfinal=3
entre la funcion F(x,y)='(x^2+y^2)^2-4*(x^2-y^2)'
entre la funcion G(x,y)='(x^2+y^2-2*x)^2-4*(x^2+y^2)'

La figura 7.2 muestra la gráfica correspondiente. La línea sólida corresponde a la lemniscata.


68

(x 2+y 2-2 x)2-4 (x 2+y 2) = 0


3

0
y

-1

-2

-3
-3 -2 -1 0 1 2 3 4 5
x

Figura 7.2

7.2. Sistemas con una ecuación lineal y una cuadrática


Geométricamente, una ecuación lineal es una recta del plano, mientras que una ecuación
cuadrática es una curva. Una solución real del sistema corresponderá a un punto de corte entre la
recta y la curva. La figura 7.3 ilustra las tres posibles situaciones que se pueden presentar al
resolver el sistema.
En el primer caso el sistema tiene dos soluciones, en el segundo se tiene una solución y en el
tercero no hay solución real. Para resolver el sistema se procede por sustitución de la recta en la
curva.

Figura 7.3
Ejemplo 7.3
Resuelva el sistema de ecuaciones:
2 x + y = 4
 2
 x + 3 y − 2 xy − 3 = 0
2

Solución.
Sustituyendo la recta en la curva, resulta una ecuación cuadrática para x, así:

x 2 + 3(4 − 2 x) 2 − 2 x(4 − 2 x) − 3 = 0
Al simplificar resulta: 17 x − 56 x + 45 = 0
2

Aplicando la fórmula general, se obtiene que: x1 = 1.3907 x 2 = 1.903 5


En consecuencia, los puntos de corte son:
69

A(1.3907,1.2187)
B = (1.9035,0.1931)

La representación gráfica del sistema se muestra en la figura 7.1.

7.3. Sistemas de dos ecuaciones con dos incógnitas.


Consideremos dos curvas del plano cuyas ecuaciones son:

 F ( x, y ) = 0

G ( x, y ) = 0
La figura 7.4 muestra dos curvas que se cortan en un punto, lo cual se interpreta como una
solución real del sistema de ecuaciones.

Figura 7.4

La solución exacta del sistema de ecuaciones es la pareja xE , yE


Se dice que la pareja (xk , y k ) es una solución aproximada del sistema si se verifica que:

 xE − xk   tol1 
 y − y  < tol 2
 E k  

7.3.1. Aproximación lineal de una curva del plano.


Supongamos que las funciones F ( x, y ), G ( x, y ) son continuas y poseen, al menos, la primera
derivada continua en una región del plano en la que está ubicada la solución. S el punto ( x1 , y1 )
está en la región, entonces ambas funciones tienen un desarrollo en series de potencias en un
entorno de dicho punto y sus aproximaciones lineales vienen dadas por:

F ( x, y ) ≅ F ( x1 , y1 ) + Fx ( x1 , y1 )( x − x1 ) + Fy ( x1 , y1 )( y − y1 )
G ( x, y ) ≅ G ( x1 , y1 ) + G x ( x1 , y1 )( x − x1 ) + G y ( x1 , y1 )( y − y1 )

Geométricamente, las aproximaciones lineales son dos rectas que se cortan en las inmediaciones
de la solución. Se trata pues de resolver el sistema de ecuaciones lineales:

 Fx ( x1 , y1 ) Fy ( x1 , y1 )   x − x1  − F ( x1 , y1 )
G ( x , y ) G ( x , y )   = − G ( x , y ) 
 x 1 1 y 1 1   y − y1   1 1 
70

 x2 
Si denotamos la solución del sistema por  y  , tenemos que:
 2
H 1( x1 , y1 ) H 2( x1 , y1 )
x 2 = x1 − ; y 2 = y1 −
H ( x1 , y1 ) H ( x1 , y1 )

El sistema se resolvió usando la regla de Kramer, esto es, cada variable es el cociente de dos
determinantes. En nuestro caso, tenemos:

Fx ( x1 , y1 ) Fy ( x1 , y1 )
H ( x1 , y1 ) =
G x ( x1 , y1 ) G y ( x1 , y1 )
F ( x1 , y1 ) Fy ( x1 , y1 )
H 1( x1 , y1 ) =
G ( x1 , y1 ) G y ( x1 , y1 )
Fx ( x1 , y1 ) F ( x1 , y1 )
H 2( x1 , y1 ) =
G x ( x1 , y1 ) G ( x1 , y1 )

H ( x, y ) : recibe el nombre de Jacobiano de las funciones.

Ejemplo 7.4
Dado el sistema de ecuaciones:
F ( x, y ) = y − x 2 − 2 x − 1 = 0
G ( x, y ) = y 2 − y + x = 0
a) Represente gráficamente
b) Encuentre la aproximación lineal para cada curva en una vecindad del punto (− 2,2)
c) Tomando como semilla el punto (− 2,2) , determine la siguiente pareja por el método de Newton.
Solución.
a) Ejecutamos el programa graficador, así:
>> grarel
abscisainicial=-4
abscisainfinal=2
ordenadainicial=-2
ordenadainfinal=4
entre la funcion F(x,y)='y-x^2-2*x-1'
entre la funcion G(x,y)='y^2-y+x'
La figura 7.5 muestra la gráfica resultante.

b) Para las aproximaciones lineales en una vecindad del punto (− 2,2) se procede de la siguiente
manera:
F ( x, y ) = y − x 2 − 2 x − 1 = 0 ⇒ F (−2,2) = 1
G ( x, y ) = y 2 − y + x = 0 ⇒ G (−2,2) = 0
Fx ( x, y ) = −2 x − 2 ⇒ Fx (−2,2) = 2
Fy ( x, y ) = 1 ⇒ Fy (−2,2) = 1
G x ( x, y ) = 1 ⇒ G x (−2,2) = 1
71

G y ( x, y ) = 2 y − 1 ⇒ G y (−2,2) = 3
Las aproximaciones lineales son:
1) Para la función F ( x, y ) : 2( x + 2) + 1( y − 2) + 1 = 0 ⇒ 2 x + y = −3
2) Para la función G ( x, y ) : 1( x + 2) + 3( y − 2) + 0 = 0 ⇒ x + 3 y = 4
c) La nueva pareja resulta de resolver el sistema lineal hallado. El resultado es (− 2.6,2.2)
y 2-y+x = 0
4

1
y

-1

-2
-4 -3 -2 -1 0 1 2
x

Figura 7.5

7.3.2. Método de Newton.


El método desarrollado para encontrar la pareja ( x 2 , y 2 ) a partir de la pareja ( x1 , y1 ) recibe el
nombre de método de Newton. Procediendo de manera iterativa se genera una sucesión de
parejas ( x k , y k ) a partir de la semilla inicial y con la siguiente fórmula de recurrencia:

 x k +1   xk   H 1k / H k 
 y  =  y  − H 2 / H 
 k +1   k   k k

En la fórmula anterior se tiene que:

Fx ( x k , y k ) Fy ( x k , y k ) F ( xk , yk ) Fy ( x k , y k )
Hk = ; H 1k = ;
Gx ( xk , y k ) G y ( xk , yk ) G( xk , yk ) G y ( xk , y k )
Fx ( x k , y k ) F ( x k , y k )
H 2k =
Gx ( xk , y k ) G( xk , y k )

7.3.3. Programa en Matlab para el método de Newton.


Un programa en Matlab para encontrar una solución de un sistema de dos ecuaciones con dos
incógnitas es el siguiente:
%Newton 2x2
clear all
n=input('numero de iteraciones= ');
xi=input('semilla x= ');
yi=input('semilla y= ');
72

F=input(' entre F(x,y)=');


G=input(' entre G(x,y)=');
Fx=input(' entre Fx(x,y)=');
Fy=input(' entre Fy(x,y)=');
Gx=input(' entre Gx(x,y)=');
Gy=input(' entre Gy(x,y)=');
xe(1)=xi;
ye(1)=yi;
for k=1:n
x=xe(k);
y=ye(k);
H(k)=eval(Fx)*eval(Gy)-eval(Gx)*eval(Fy);
Hx(k)=eval(F)*eval(Gy)-eval(G)*eval(Fy);
Hy(k)=eval(Fx)*eval(G)-eval(Gx)*eval(F);
xe(k+1)=xe(k)-Hx(k)/H(k);
ye(k+1)=ye(k)-Hy(k)/H(k);
end
[xe’ ye’]

Ejemplo 7.5
Resuelva el sistema del ejemplo anterior con n = 10

Solución.
Ejecutamos el programa, así:
numero de iteraciones= 10
semilla x= -2
semilla y= 2
entre F(x,y)='y-x^2-2*x-1'
entre G(x,y)='y^2-y+x'
entre Fx(x,y)='-2*x-2'
entre Fy(x,y)='1'
entre Gx(x,y)='1'
entre Gy(x,y)='2*y-1'

ans =

-2.0000 2.0000
-2.6000 2.2000
-2.4721 2.1506
-2.4656 2.1479
-2.4656 2.1479
-2.4656 2.1479
-2.4656 2.1479
-2.4656 2.1479
-2.4656 2.1479

Puede verse que la solución se encuentra en la quinta iteración.

El inconveniente del programa consiste en que es necesario introducir, además de las funciones,
las 4 derivadas parciales. A continuación se presenta un programa modificado que solo requiere la
introducción de las dos funciones. El programa representa un ahorro importante en el tiempo de
ejecución.
%Newton2x2con sym
clear all
73

n=input('numero de iteraciones= ');


xi=input('semilla x= ');
yi=input('semilla y= ');
F=input(' entre F(x,y)=');
G=input(' entre G(x,y)=');
Fx=diff(F,'x');
Fy=diff(F,'y');
Gx=diff(G,'x');
Gy=diff(G,'y');
xe(1)=xi;
ye(1)=yi;
for k=1:n
x=xe(k);
y=ye(k);
H(k)=eval(Fx)*eval(Gy)-eval(Gx)*eval(Fy);
Hx(k)=eval(F)*eval(Gy)-eval(G)*eval(Fy);
Hy(k)=eval(Fx)*eval(G)-eval(Gx)*eval(F);
xe(k+1)=xe(k)-Hx(k)/H(k);
ye(k+1)=ye(k)-Hy(k)/H(k);
end
[xe' ye']

Ejemplo 7.6
Resuelva el sistema: lemniscata-Cardioide del ejemplo 7.2.

Solución.
Con base en la figura 7.2, las dos soluciones son simétricas con respecto al eje de abscisas, con lo
que se halla un de las soluciones. Para la solución del segundo cuadrante se puede tomar la
semilla xi = −0.5 , yi = 0.5 . Al ejecutar el programa con 5 iteraciones se tiene:
numero de iteraciones= 5
semilla x= -0.5
semilla y= 0.5
entre F(x,y)='(x^2+y^2)^2-4*(x^2-y^2)'
entre G(x,y)='(x^2+y^2-2*x)^2-4*(x^2+y^2)'

ans =

-0.5000 0.5000
-0.4318 0.4091
-0.3995 0.3726
-0.3926 0.3654
-0.3923 0.3651
-0.3923 0.3651

Ejemplo 7.7
Una función de variable compleja f (z ) puede expresarse mediante su parte real y su parte
imaginaria haciendo z = x + jy así:
f ( z ) = F ( x, y ) + jG ( x, y )

Las raíces de la ecuación f ( z ) = 0 se determinan resolviendo el sistema de ecuaciones no


lineales:
74

 F ( x, y ) = 0

G ( x, y ) = 0
Para determinar las raíces se procede a representar gráficamente con el fin de determinar las
semillas y luego se aplica el método de Newton.
Con base en lo anterior, determine las raíces de la ecuación: z 3 − jz 2 + 3 z − 2 = 0

Solución.
Haciendo z = x + jy se tiene:

( x + jy ) 3 − j ( x + jy ) 2 + 3( x + jy ) − 2 ⇒
x 3 + 3 x 2 jy + 3 x( jy ) 2 + ( jy ) 3 − j ( x 2 + 2 xjy + ( jy ) 2 ) + 3 x + 3 jy − 2)

Simplificando, resulta el sistema de ecuaciones:

F ( x, y ) = x 3 − 3 xy 2 + 2 xy + 3 x − 2 = 0
G ( x, y ) = 3 x 2 y − y 3 − x 2 + y 2 + 3 y = 0

La representación gráfica se muestra en la figura 7.6.


3 y x 2-y 3-x 2+y 2+3 y = 0
5

0
y

-1

-2

-3

-4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
x

Figura 7.6

A partir de la gráfica se observa tres soluciones: una en el primer cuadrante, una en el segundo y
otra en el tercero.
a) En el primer cuadrante se toman las semillas xi = 0.5 , yi = 0 y se aplica el método de
Newton, así:
numero de iteraciones= 5
semilla x= 0.5
semilla y= 0
entre F(x,y)='x^3-3*x*y^2+2*x*y+3*x-2'
entre G(x,y)='3*y*x^2-y^3-x^2+y^2+3*y'

ans =
75

0.5000 0
0.5768 0.0871
0.5756 0.0814
0.5756 0.0814

b) En el segundo cuadrante se toman las semillas xi = −0.5 , yi = 2 y se aplica el método de


Newton, así:
numero de iteraciones= 5
semilla x= -0.5
semilla y= 2
entre F(x,y)='x^3-3*x*y^2+2*x*y+3*x-2'
entre G(x,y)='3*y*x^2-y^3-x^2+y^2+3*y'

ans =

-0.5000 2.0000
-0.0856 2.2772
-0.2440 2.3285
-0.2298 2.3400
-0.2300 2.3401
-0.2300 2.3401

c) En el tercer cuadrante se toman las semillas xi = −0.5 , yi = −1.5 y se aplica el método de


Newton, así:
numero de iteraciones= 5
semilla x= -0.5
semilla y= -1.5
entre F(x,y)='x^3-3*x*y^2+2*x*y+3*x-2'
entre G(x,y)='3*y*x^2-y^3-x^2+y^2+3*y'

ans =

-0.5000 -1.5000
-0.3660 -1.4189
-0.3457 -1.4212
-0.3456 -1.4216
-0.3456 -1.4216

7.4. Sistemas de tres ecuaciones con tres incógnitas.


El método de Newton desarrollado previamente para resolver sistemas de dos ecuaciones con dos
incógnitas puede generalizarse para resolver sistemas de cualquier orden.
Consideremos un sistema de tres ecuaciones con tres incógnitas, de la forma:

 F ( x, y , z ) = 0

G ( x, y, z ) = 0
W ( x, y, z ) = 0

Cada ecuación es una superficie del espacio. Si el sistema tiene solución, las tres superficies se
(
cortan en un punto x E , y E , z E )
Procediendo de manera similar al sistema de segundo orden, a partir de la semilla (x1 , y1 , z1 ) se
genera la tripleta (x2 , y 2 , z 2 ) , así:
76

 Fx ( x1 , y1 , z1 ) Fy ( x1 , y1 , z1 ) Fz ( x1 , y1 , z1 )   x − x1   − F ( x1 , y1 , z1 ) 
    
G x ( x1 , y1 , z1 ) G y ( x1 , y1 , z1 ) G z ( x1 , y1 , z1 )   y − y1  =  − G ( x1 , y1 , z1 ) 
W x ( x1 , y1 , z1 ) W y ( x1 , y1 , z1 ) W z ( x1 , y1 , z1 )  z − z1  − W ( x1 , y1 , z1 )
 
Se generan los cuatro determinantes:

Fx ( x1 , y1 , z1 ) Fy ( x1 , y1 , z1 ) Fz ( x1 , y1 , z1 )
H = G x ( x1 , y1 , z1 ) G y ( x1 , y1 , z1 ) G z ( x1 , y1 , z1 )
W x ( x1 , y1 , z1 ) W y ( x1 , y1 , z1 ) W z ( x1 , y1 , z1 )
F ( x1 , y1 , z1 ) Fy ( x1 , y1 , z1 ) Fz ( x1 , y1 , z1 )
H 1 = G ( x1 , y1 , z1 ) G y ( x1 , y1 , z1 ) G z ( x1 , y1 , z1 )
W ( x1 , y1 , z1 ) W y ( x1 , y1 , z1 ) W z ( x1 , y1 , z1 )
Fx ( x1 , y1 , z1 ) F ( x1 , y1 , z1 ) Fz ( x1 , y1 , z1 )
H 2 = G x ( x1 , y1 , z1 ) G ( x1 , y1 , z1 ) G z ( x1 , y1 , z1 )
W x ( x1 , y1 , z1 ) W ( x1 , y1 , z1 ) Wz ( x1 , y1 , z1 )
Fx ( x1 , y1 , z1 ) Fy ( x1 , y1 , z1 ) F ( x1 , y1 , z1 )
H 3 = G x ( x1 , y1 , z1 ) G y ( x1 , y1 , z1 ) G ( x1 , y1 , z1 )
W x ( x1 , y1 , z1 ) W y ( x1 , y1 , z1 ) W ( x1 , y1 , z1 )

En consecuencia, las componentes de la siguiente aproximación se encuentran así:

x 2 = x1 − H 1 / H
y 2 = y1 − H 2 / H
z 2 = z1 − H 3 / H

El algoritmo de solución se puede escribir a partir del correspondiente a los sistemas de dos por
dos. Un problema a resolver es la escogencia de la semilla. Para tal efecto se recomienda eliminar
una de las incógnitas y representar gráficamente el sistema de dos ecuaciones con dos incógnitas.

El programa para resolver el sistema es el siguiente:


%Newton3x3
clear all
sym x;
sym y;
sym z;
n=input('numero de iteraciones= ');
xi=input('semilla x= ');
yi=input('semilla y= ');
zi=input('semilla z= ');
F=input(' entre F(x,y,z)=');
G=input(' entre G(x,y,z)=');
W=input(' entre W(x,y,z)=');
Fx=diff(F,'x');
Fy=diff(F,'y');
Fz=diff(F,'z');
Gx=diff(G,'x');
77

Gy=diff(G,'y');
Gz=diff(G,'z');
Wx=diff(W,'x');
Wy=diff(W,'y');
Wz=diff(W,'z');
xe(1)=xi;
ye(1)=yi;
ze(1)=zi;
for k=1:n
x=xe(k);
y=ye(k);
z=ze(k);
H=[eval(Fx),eval(Fy),eval(Fz);eval(Gx),eval(Gy),eval(Gz);eval(Wx),eval(Wy),eval(Wz)];
Hx=[eval(F) eval(Fy) eval(Fz);eval(G) eval(Gy) eval(Gz);eval(W) eval(Wy) eval(Wz)];
Hy=[eval(Fx) eval(F) eval(Fz);eval(Gx) eval(G) eval(Gz);eval(Wx) eval(W) eval(Wz)];
Hz=[eval(Fx) eval(Fy) eval(F);eval(Gx) eval(Gy) eval(G);eval(Wx) eval(Wy) eval(W)];
xe(k+1)=xe(k)-det(Hx)/det(H);
ye(k+1)=ye(k)-det(Hy)/det(H);
ze(k+1)=ze(k)-det(Hz)/det(H);
end
[xe' ye' ze']

Ejemplo 7.8
Determine una solución para el siguiente sistema de ecuaciones:

3 x + y + z − 3 = 0

x + y − 4 = 0
2


x − 2 y + z − 1 = 0
2

Solución.
Eliminemos la variable z igualando las ecuaciones 1 y 3, así:

(3 − 3x − y )2 = 1 − x + 2 y
La ecuación obtenida, junto con la segunda, nos lleva al sistema:

F ( x, y ) = (3 − 3 x − y ) 2 − 1 + x − 2 y
G ( x, y ) = x + y 2 − 4

Representamos gráficamente en la ventana [− 5,5,−5,5] , así:


>> grarel
abscisainicial=-5
abscisainfinal=5
ordenadainicial=-5
ordenadainfinal=5
entre la funcion F(x,y)='(3-3*x-y)^2-1+x-2*y'
entre la funcion G(x,y)='x+y^2-4'

La figura 7.7 ilustra la gráfica correspondiente. Puede verse que se tienen dos soluciones: una en
el primer cuadrante y otra en el segundo. La semilla en el primer cuadrante puede ser
xi = 1, yi = 2 . La semilla para z se obtiene de cualquiera de las ecuaciones del sistema original.
78

x+y 2-4 = 0
5

0
y

-1

-2

-3

-4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
x

Figura 7.7

Si tomamos la primera ecuación se obtiene zi = −2 . Al ejecutar el programa se encuentra que:


numero de iteraciones= 10
semilla x= 1
semilla y= 2
semilla z= -2
entre F(x,y,z)='3*x+y+z-3'
entre G(x,y,z)='x+y^2-4'
entre W(x,y,z)='x-2*y+z^2-1'

ans =

1.0000 2.0000 -2.0000


1.0400 1.7400 -1.8600
1.0412 1.7202 -1.8438
1.0412 1.7201 -1.8437
1.0412 1.7201 -1.8437

La solución se obtiene al cabo 5 iteraciones.

EJERCICIOS.

Usando el método de Newton determine una solución para cada uno de los siguientes sistemas.

 x 2 + 2 x + y 2 + y = 8  x 2 + 2 x + y 2 + y = 4
1)  2 2)  2
 x + x − y 2 + 3 y = 0  x + x − y 3 = 0

 x 2 + 2 y + y 2 + y = 4
3) 
 x 2 + x − y 3 − 2 = 0
4) Determine las raíces de la ecuación: z 3 − z 2 + 3 z + sen( z ) = 0
79

5) La ecuación polar de una lemniscata es r 2 = a 2 cos(2θ ) , mientras que para la cardiode es


r = a(1 + sen(θ ) ) .
a) Tomando a = 2 , escriba las ecuaciones en coordenadas cartesianas rectangulares.
b) Represente ambas curvas en la misma figura.
c) Determine los puntos de corte

2 x 2 + y − z = 1 x 2 + y + z = 2
 
5)  x + y − z = 2 6)  x + e − z = 2
2 y

2 x + y + z 2 = 3 2 x + y + z 2 = 3
 

x 2 + y + z = 1  x 2 + sen( y ) + z = 1
 
7)  x + y − z = 2 8)  x + y − z = 2
2 2

x − y + z 2 = 4 cos( x) − y + z 2 = 4
 
80

MÓDULO 8
SISTEMAS DE ECUACIONES NO LINEALES. MÉTODOS DE JACOBI Y
GAUSS-SEIDEL
En este módulo se presenta la solución de un sistema no lineal diagonalmente dominante, por los
métodos de Jacobi y Gauss-Seidel.

8.1. Sistemas de segundo orden diagonalmente dominantes.


8.2. Método iterativo para sistemas de segundo orden
8.3. Sistemas de tercer orden diagonalmente dominantes.
8.4. Método de Gauss-Seidel.
8.5. Sistemas de orden cuatro.

8.1. Sistemas de segundo orden diagonalmente dominantes.


Consideremos un sistema de segundo orden que se puede expresar en la forma:

 x = g 1 ( x, y )

 y = g 2 ( x, y )

Se dice que el sistema es diagonalmente dominante si se verifica que la norma euclidiana del
gradiente de cada función es menor que la unidad en las inmediaciones de la solución.

Ejemplo 8.1
Un sistema viene dado por:
 4− y
x =
 2
 y = 3 + 2 xy / 2

Determine el gradiente de cada función.

Solución.
1
a) Para la primera función se tiene: ∇x = − µ y
2
Es claro que la norma del vector es menor que la unidad.

b) Para la segunda función se tiene:

∇y =
1
4 2 xy + 3
(2 y µ x + 2xµ y )
La norma del gradiente es:
1 x2 + y2
∇y =
2 2 xy + 3

Puede verse que en las inmediaciones del punto (1,1) la norma es menor que la unidad. Lo mismo
ocurre en el punto (2,0) . Ver la figura 8.1.
8.2. Solución iterativa de un sistema de segundo orden.
Supongamos que el siguiente sistema es diagonalmente dominante:
81

 x = g 1 ( x, y )

 y = g 2 ( x, y )

El método consiste en generar dos sucesiones {xk }, {y k } a partir de una semilla (x1 , y1 ) y usando
las fórmulas de recurrencia:
x k +1 = g1 ( xk , y k )
y k +1 = g 2 ( x k +1 , y k )

El programa en Matlab para hallar una solución del sistema es el siguiente:


%Sistemas no lineales 2x2. Solución iterativa.
clear all
% Solucion de un sistema de orden dos diagonalmente dominante
% x=g1(x,y); y=g2(x,y);
n=input('numero de iteraciones=');
g1=input('g1(x,y)=');
g2=input('g2(x,y)=');
xi=input('xinicial=');
yi=input('yinicial=');
% Se genera una matriz M cuya primera fila es la semilla
M(1,1)=xi;
M(1,2)=yi;
for k=1:n;
x=M(k,1);
y=M(k,2);
M(k+1,1)=eval(g1);
x=M(k+1,1);
M(k+1,2)=eval(g2);
end
M

Ejemplo 8.2.
Consideremos el sistema de ecuaciones dado a continuación:

 F ( x, y ) = 2 x + y − 4 = 0

G ( x, y ) = 4 y − 2 xy − 3 = 0
2

a) Represente las ecuaciones en la misma figura.


>> grarel
abscisainicial=-5
abscisainfinal=5
ordenadainicial=-5
ordenadainfinal=5
entre la funcion F(x,y)='2*x+y-4'
entre la funcion G(x,y)=’4*y^2-2*x*y-3’
La gráfica se ilustra en la figura 8.1.

b) Con base en la figura 8.1, determine la solución del primer cuadrante.


El sistema se escribe como:
82

 4− y
x =
 2
 y = 3 + 2 xy / 2

4 y2-2 x y-3 = 0
5

0
y

-1

-2

-3

-4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
x

Figura 8.1

Tomamos la semilla adecuada y ejecutamos el programa con n=20, así:


>> gausei2x2
numero de iteraciones=20
g1(x,y)='(4-y)/2'
g2(x,y)='sqrt(3+2*x*y)/2'
xinicial=1
yinicial=1

M=

1.0000 1.0000
1.5000 1.2247
1.3876 1.2648
1.3676 1.2708
1.3646 1.2716
1.3642 1.2718
1.3641 1.2718
1.3641 1.2718

La convergencia se presenta en la octava iteración.

8.3. Sistemas de orden tres no lineales diagonalmente dominantes.


Consideremos un sistema de tres ecuaciones con tres incógnitas, así:

F1 ( x, y, z ) = 0

F2 ( x, y, z ) = 0
 F ( x, y , z ) = 0
 3
83

Se dice que la variable x domina en la primera ecuación sí la función, en valor absoluto, crece en
la medida que el valor absoluto de la variable crece. A manera de ejemplo, la variable x domina en
la siguiente ecuación:
x 2 + 30 y + sen( z ) = 0

El sistema dado es diagonalmente dominante sí una de las variables domina en cada ecuación. El
siguiente sistema es diagonalmente dominante:

3x + y + z − 3 = 0
x + 4y2 − 4 = 0
x − 2y + z 2 −1 = 0

Los sistemas diagonalmente dominantes se pueden expresar de la siguiente manera:

x = G1 ( y, z )
y = G 2 ( y, z )
z = G3 ( y , z )

Para resolver iterativamente el sistema por los métodos de Jacobi y Gauss-Seidel debe cumplirse
que la norma euclidiana del gradiente de cada una de las funciones, en las inmediaciones de la
solución, sea menor que la unidad. En efecto, para el sistema del ejemplo, tenemos:

3− y − z
x = G1 ( y, z ) =
3
y = G 2 ( x, z ) = ± 4 − x
z = G3 ( x, y ) = ± 1 − x + 2 y
∂ ∂ 1 1 2
grad [G1 ] = G1 µ y + G1 µ z = − µ y − µ z ⇒ grad [G1 ] =
∂y ∂z 3 3 3
∂ ∂ 1 1
grad [G2 ] = G 2 µ x + G1 µ z = m µ y ⇒ grad [G2 ] =
∂x ∂z 2 4−x 2 4− x
∂ ∂ 1 1
grad [G3 ] = G3 µ x + G3 µ y = m µx ± µy ⇒
∂x ∂y 2 1− x + 2y 1− x + 2y
5
grad [G3 ] =
2 1− x + 2y

La región en la que el sistema es diagonalmente dominante es aquella en la que x > 15 / 4 y


2 y − x > 1/ 4 .

8.4. Solución por el método de Gauss-Seidel.


Tal como se hizo para el caso lineal, se debe generar tres sucesiones a partir de las tres semillas,
con las siguientes fórmulas de recurrencia:
84

x k +1 = G1 ( y k , z k )
y k +1 = G2 ( x k +1 , z k )
z k +1 = G3 ( x k +1 , y k +1 )

Por comodidad, se parte de una semilla inicial (x1 , y1 , z1 ) y, para un número de iteraciones dado,
se genera una matriz de n × 3 , así:

 M (1,1) M (1,2)M (1,3) 


 M (2,1) M (2,2) M (2,3) 

 M (3,1) M (3,2) M (3,3) 
M = . . . 
 
 . . . 
 . . . 
 
 M (n,1) M (n,2) M (n,3) 

La primera fila del arreglo se llena con las semillas dadas y las otras se llenan usando las
ecuaciones.
A continuación se presenta un código en Matlab para aplicar el método de Gauss-Seidel
clear all
% Solucion de un sistema de orden tres diagonalmente dominante
% x=g1(y,z); y=g2(x,z); z=g3(x,y)
% n número de iteraciones
n=input('numero de iteraciones=');
g1=input('g1(y,z)=');
g2=input('g2(x,z)=');
g3=input('g3(x,y)=');
xi=input('xinicial=');
yi=input('yinicial=');
zi=input('zinicial=');
% Se genera una matriz M cuya primera fila es la semilla
M(1,1)=xi;
M(1,2)=yi;
M(1,3)=zi;
for k=1:n;
x=M(k,1);
y=M(k,2);
z=M(k,3);
M(k+1,1) = eval(g1);
x=M(k+1,1);
M(k+1,2) = eval(g2);
y=M(k+1,2);
M(k+1,3) = eval(g3);
end
M

Ejemplo 8.3
Usando el método de Gauss-Seidel, encuentre una solución para el sistema siguiente, con:
y > 0, z > 0
85

3 x + y + z − 3 = 0

x + y − 4 = 0
2


x − 2 y + z − 1 = 0
2

Solución.
Con base en la información dada, debemos expresar el sistema en la forma:

3− y − z
x=
3
y = + 4−x
z = + 1− x + 2y
Ejecutando el programa, resulta:
>> Gausei
numero de iteraciones=10
g1(y,z)='(3-y-z)/3'
g2(x,z)='sqrt(4-x)'
g3(x,y)='sqrt(1-x+2*y)'
xinicial=1
yinicial=2
zinicial=1

ans =
1.0000 2.0000 1.0000
-0.2440 1.7321 2.0000
-0.4100 2.0601 2.1698
-0.4839 2.1000 2.3516
-0.5005 2.1175 2.3841
-0.5055 2.1214 2.3949
-0.5067 2.1226 2.3976
-0.5071 2.1229 2.3983
-0.5072 2.1230 2.3985
-0.5072 2.1230 2.3986
-0.5072 2.1230 2.3986

Puede verse que la convergencia se presenta en la décima iteración.

8.5. Sistemas de cuarto orden.


Los métodos iterativos se pueden generalizar a sistemas de cualquier orden, modificando
ligeramente los códigos presentados para sistemas de tercer orden. Se sugiere al estudiante que
escriba el código para resolver sistemas de orden cuatro por el método de Gauss-Seidel y
encuentre una solución para el sistema:

x2 + y + z − w = 3
x + y2 − z = 2
x + y + 4 z + 2w = 5
y + z + 5w = 3
86

Se sugiere proceder de la siguiente manera. Primero que todo se decide por intentar una solución
que dependa de los posibles signos de las variables. En principio suponga los signos positivos, así:

x = 3− y − z + w
y = 2−x+ z
5 − x − y − 2w
z=
4
3− y − z
w=
5
Empiece con la semilla: x = 0 y = 0 z = 0 w = 0 y aplique el algoritmo de Gauss-Seidel que
es más rápido para la convergencia:

EJERCICIOS.

Encuentre al menos una solución para cada uno de los siguientes sistemas de ecuaciones usando
los métodos de Jacobi y Gauss-Seidel.

 x 2 + xy − 3 x + 2 y = 2  x 2 + xy − 3 x + 2 y = 2  x 3 + y 2 − y = 4
1)  2)  3)  2
 x + 2 xy − y + y 2 + 2 = 0  x + 2 xy − y + y 2 − 3 = 0  x + y 3 − x = 4

2 x 2 + y − z = 1 x 2 + y + z = 2 x 2 + y + z = 1
  
4)  x + y − z = 2 5)  x + e − z = 2 6)  x + y − z = 2
2 y 2

2 x + y + z 2 = 3 2 x + y + z 2 = 3 x − y + z 2 = 4
  

e x + y + z = 3 2 x + y + z = 20 4 x + y + z = 3
  2 
7)  x + y + z = 4 8)  x − 2 y + z = 2 9)  x + y + z = 4
2 2 2 2

x + y 2 + e z = 1  2 
 x + y − 2 z = −30 x + 2 y + e = 1
2 2 z

x 2 + y = 3 x 2 + y − z = 3 x 2 + 2x + 4 y = 3
 2  2  2
y + z = 4 y + 2y + z = 4 y + z = 4
10)  11)  12) 
x + y + z = 6 x + y + 5z = 6 x + y + 5z = 6
2

 x − 3 y + 4w = 5  x − 3 y + 4w = 5  x − 3 y + 4w = 5
  

13) Considere las curvas del plano

 x 3 + 2 x + y 2 + y = 8
 2
 x + x − y 3 + 3 y = 0

a) Represente gráficamente las curvas


b) Encuentre los puntos de intersección
87

MÓDULO 9.
REGRESIÓN POLINOMIAL Y AJUSTE DE CURVAS

Contenido.
En este módulo se presenta el tema de la regresión polinomial, al igual que la regresión
exponencial. Los temas a desarrollar son los siguientes:

9.1. Introducción.
9.2. Regresión polinomial
9.3. Programa en Matlab para efectuar regresión polinomial
9.4. Regresión exponencial
9.5. Programa en Matlab para efectuar regresión exponencial.

9.1. Introducción.
En diversos problemas de ingeniería, sobre todo en aquellos que son el resultado de un
experimento, es necesario encontrar una expresión matemática que relacione a la variable
dependiente con una variable independiente. Supongamos que la variable independiente es x y la
variable independiente es y . La relación entre las variables es una función de la forma:

y = f (x)

El caso es que no se tiene una expresión matemática para la función sino una tabla de valores, de
la forma:
k 1 2 3 4 ... n
xk x1 x2 x3 x4 ... x n
yk y1 y2 y3 y4 ... y n

Nuestro objetivo consiste en encontrar una función que mejor se ajuste a los datos dados, es decir,
una función cuya representación gráfica sea una curva que se acerque de la mejor manera a los
datos dados. La figura 9.1 ilustra un conjunto de cinco puntos del plano y dos posibles curvas de
aproximación, una de las cuales es una recta.

Figura 9.1

Puede verse que el dato ( x1 , y1 ) está separado de la recta y = f (x) una distancia:

ε 1 = y1 − f ( x1 )

El anterior es el error absoluto que se comete en el punto cuando la función se aproxima mediante
la recta. Para un punto genérico ( x k , y k ) , el error absoluto viene dado por:
88

ε k = yk − f ( xk )

De otro lado, el error absoluto que se comete cuando la función se aproxima mediante la curva,
viene dado por:
εˆk = y k − g ( x k )

Intuitivamente, la mejor aproximación es aquella en la que se comete el menor error posible. Para
hacer un tratamiento adecuado del tema, se presenta la siguiente definición:

9.1.1 Error cuadrático total.


Dado el conjunto de n puntos: ( x1 , y1 ), ( x 2 , y 2 ) ..... ( x n , y n ) y una curva de aproximación
y = f (t ) , el error cuadrático total cometido viene dado por:
n
ET = [ y1 − f ( x1 )]2 + [ y 2 − f ( x 2 )]2 + ... + [ y n − f ( x n )]2 = ∑[ yk =1
k − f ( x k )] 2

ET
El error cuadrático medio viene dado por: E rms =
n

9.2. Regresión polinomial.


Es la que se tiene cuando la función de aproximación es polinómica, es decir, presenta la forma:

f (t ) = a1 + a 2 t + a3t 2 + ... + a m +1t m , m < n − 1

Para determinar los coeficientes del polinomio se procede minimizando la función de error, la cual
puede expresarse como:
n
ET = ∑ [ y k − (a1 + a 2 x k + a3 x k + ... + a m +1 x k )]2
2 2 m

k =0

Para minimizar la función se procede de la manera usual, es decir, se deriva la función con
respecto a cada una de las incógnitas y se iguala a cero, resultando un sistema de m + 1
ecuaciones lineales. La más popular de las regresiones es la lineal, la cual consiste en determinar
la recta que mejor se ajusta a un conjunto de puntos. La regresión lineal se aplica en muchos
casos, sobre todo cuando los datos no están muy dispersos. Para datos muy dispersos es
conveniente aumentar el grado de la regresión.

Ejemplo 9.1
Se conocen 4 datos de una función, así:
 x = [0,1,2,3]

 y = [−2,0,1,2]
Determine la recta que mejor se ajusta a los datos dados.

Solución.
La ecuación de la recta viene dada por f (t ) = a1 + a 2 t . El error cuadrático total viene dado por
4
ET = ∑ [ y k − (a1 + a 2 x k )] 2 . Para minimizar el error cuadrático total se deriva con respecto a
2

k =1

las incógnitas a1 y a 2 y se escribe un sistema de dos ecuaciones con dos incógnitas, así:
89

∂ 4
ET = ∑ 2[ y k − (a1 + a 2 x k )](− 1) = 0
2

a1 k =0

∂ 4
ET = ∑ 2[ y k − (a1 + a 2 x k )](− x k ) = 0
2

a2 k =0

 4 0 4
  4 0 
∑ x k ∑x  a1  ∑
1
k  xk yk 
El sistema organizado queda como:  k =41 k =1
4   =  4 k =1

 x1 2  a 2   x 1y 
 ∑ ∑  ∑
x
k =1
k
k =1
k
 k =1
k k


Para llenar los elementos de las matrices se elabora la siguiente tabla:

k xk yk xk
2
xk y k
1 0 -2 0 0
2 1 0 1 0
3 2 1 4 2
4 3 2 9 6
4


k =1
6 1 14 8

4 6   a1  1
El sistema a resolver es: 6 14 a  = 8
  2   
2.5

1.5

0.5

-0.5

-1

-1.5

-2
0 0.5 1 1.5 2 2.5 3

Figura 9.2.

Resolviendo el sistema se encuentra que la recta que mejor se ajusta a los datos es

f (t ) = −1.7 + 1.3t
90

La figura 9.2 ilustra la gráfica de la recta junto con los datos.

El error total cometido es:

ET = − 2 − f (0)] 2 + [0 − f (1)]2 + [1 − f (2)] 2 + [2 − f (3)] 2 = 0.5477

El error cuadrático medio es Erms = 0.1369

En general, los coeficientes del polinomio de aproximación de grado m se determinan resolviendo


el sistema:
 n 0 n n n
  n 0 
 ∑ xk ∑ xk ∑ xk ∑ xk  ∑ xk y k 
2 m
... 
 k =n1 k =1 k =1 k =1
  k n=1 
m +1   a1 
n n n
  xk yk 
∑ ∑x ∑x ... ∑ xk
  a2   ∑
2 3 1
xk k k

k =1
 n 2
k =1
n
k =1
n
k =1
n     nk =1

M +2  a 
 ∑ xk ∑x 3
∑x 4
... ∑ x k  3 =  ∑ xk 2 y k 
  .   k =1
k k
 k =1 k =1 k =1 k =1 
 . . . . .  .   . 
    
 n . . . . .  a m +1   . 
 x M 2M   x k y k 
n n n n

∑ ∑ xk ∑x ... ∑ x k  ∑
M +1 M +2 m

k =1
k
k =1 k =1
k
k =1  
 k =1 

Ejemplo 9.2
Determine la parábola que mejor se ajuste a los datos del ejemplo anterior.

Solución.
El polinomio a determinar es de segundo grado f (t ) = a1 + a 2 t + a3t 2 , para lo cual se debe
resolver el sistema:

 4 0 4 4
  4 0 
∑ x k ∑x ∑x ∑ x k y k 
1 2
k  k
 k =41 k =1 k =1
  a1   k =41 
3  
4 4
 x1 x k a 2  = ∑ x k y k 

∑ ∑x ∑
2 1

k =1
k
k =1
k
k =1
  
 4 2 4 4   a3   k4=1 
∑ x k ∑x 3
∑ xk 
4
∑ x k 2 y k 
 k =1   k =1 
k
k =1 k =1

Para llenar los elementos de las matrices se elabora la siguiente tabla:

k xk yk xk
2
xk
3
xk
4
xk yk 2
xk yk
1 0 -2 0 0 0 0 0
2 1 0 1 1 1 0 0
3 2 1 4 8 16 2 4
4 3 2 9 27 81 6 18
4

∑k =1
6 1 14 36 98 8 22
91

El sistema a resolver es:


 4 6 14   a1   1 
 6 14 36 a  =  8 
  2   
14 36 98  a 3  22

Resolviendo el sistema se encuentra que la parábola que mejor se ajusta a los datos es

f (t ) = −1.95 + 2.05t − 0.25t 2

9.3. Programa para efectuar regresión polinómica de cualquier grado


A continuación se muestra un programa en Matlab para efectuar regresión polinomial:
%Programa para efectuar regresion polinomial
clear all
% Entrada de información
n=input('Numero de datos =');
m=input('Grado del polinomio =');
x=input('vector de abscisas=');
y=input('vector de ordenadas=');
% Se inicializa la matriz del sistema y el vector de términos
% independientes
M=zeros(m+1,m+1);
b=zeros(m+1,1);
% Se generan: la matriz y el vector
for i=1:m+1
for j=1:m+1
for k=1:n
M(i,j)=M(i,j)+x(k)^(i+j-2);
end
end
end
for i=1:m+1
for k=1:n
b(i)=b(i)+(x(k)^(i-1))*y(k);
end
end
% Se calcula el vector solución
a=inv(M)*b;
% Se coloca el vector de coeficientes en orden decreciente de la potencia
c=fliplr(a');
% Se escribe el polinomio de regresión
poly2str(c,'t')
% Se asignan valores al vector t
t=x(1):0.01:x(n);
% Se evalúa el polinomio
p=polyval(c,t);
% Se grafican los datos y el polinomio
plot(x,y,'o');
hold on
plot(t,p);
grid on
%Para calcular el error cuadrático medio
t=x;
z=polyval(c,t);
92

for k=1:n
e(k)=(y(k)-z(k))^2;
end
et=0;
for k=1:n
et=et+e(k);
end
ecm=sqrt(et)/n;
ecm

Ejemplo 9.3
Usando el programa, determine la parábola que mejor se ajuste a los datos del ejemplo anterior y
represente gráficamente.

Solución.
Se ejecuta el programa, así:
> regresi
Numero de datos =4
Grado del polinomio =2
vector de abscisas=[0 1 2 3]
vector de ordenadas=[-2 0 1 2]

ans =

-0.25 t^2 + 2.05 t - 1.95

ecm =

0.0559

La figura 9.3 ilustra la gráfica de los datos y la parábola. Intuitivamente se observa que la regresión
cuadrática conduce a un menor error que la regresión lineal.

1.5

0.5

-0.5

-1

-1.5

-2
0 0.5 1 1.5 2 2.5 3

Figura 9.3
93

9.4. Regresión exponencial.


En diversos problemas de ingeniería ocurre que una variable física tiene la tendencia a crecer o
decrecer de manera exponencial. Una función exponencial presenta la forma general:

f (t ) = F + ( P − F )e − at
F : es el valor final de la función
P : es el valor inicial de la función
a : es una constante asociada con la tasa de variación de la función con respecto a la variable
independiente. El inverso de a recibe el nombre de constante de tiempo de la función y se designa
como: τ = 1 / a
La regresión exponencial consiste en determinar la función exponencial que mejor se ajuste a un
conjunto de datos. El error cuadrático total que se comete al hacer la aproximación exponencial
viene dado por:

∑ [(1 − e )F + (e )P − Y ]
n n

∑ [ f ( X k ) − Yk ]
2
ET = =
2 aX k aX k
k
k =1 k =1

Los parámetros de la función: F , P, a se determinan minimizando la función de error, tal como se


hizo en el caso de la regresión polinómica. Por comodidad se define una nueva variable x = e −a ,
con lo que la función de error se puede escribir como:

[( ) ( ) ]
n
ET = ∑ 1 − x X k F + x X k P − Yk
2 2

k =1

La diferencia ahora es que resulta un sistema de tres ecuaciones no lineales, así:


1) Derivando parcialmente con respecto a F , e igualando a cero, se tiene la ecuación:

 n
( )  F +  ∑ (1 − x )x   n
( ) 
n
 ∑ 1 − x Xk  P =  ∑ 1 − x X k Yk 
2 Xk Xk

 k =1   k =1   k =1 

2) Derivando parcialmente con respecto a P e igualando a cero, se tiene la ecuación:

 n
(
 ∑ 1 − x Xk x Xk )   n
( 
) n
( )

 F +  ∑ x 2 X k  P =  ∑ x X k Yk 
 k =1   k =1   k =1 

3) Derivando parcialmente con respecto a x e igualando a cero, se tiene la ecuación:

 n
( )   n   n
( 
 ∑ 1 − x X k X k x X k  F +  ∑ X k x 2 X k  P =  ∑ x X k X k Yk ) ( )
 k =1   k =1   k =1 
Para resolver el sistema usamos el paquete Matlab, con la siguiente estrategia:
1. Se introducen los datos: n X Y
2. Se asigna una semilla para la variable x
3. Se hacen las siguientes asignaciones:
94

( ) ( )
n n
C11 = ∑ 1 − x X k , C12 = ∑ 1 − x X k x X k
2

k =1 k =1

( )
n n
C 21 = ∑ 1 − x X k , C 22 = ∑ x 2 X k
2

k =1 k =1

( )
n n
B1 = ∑ 1 − x X k Yk , B 2 = ∑ x X k Yk
k =1 k =1

Se calculan F y P , así:
B1 C12 C11 B1
B 2 C 22 C 21 B 2
F= ; P=
C11 C12 C11 C12
C 21 C 22 C 21 C 22

Para la tercera ecuación se hacen las siguientes asignaciones:

( ) ( ) ( )
n n n
alfa = ∑ 1 − x X k X k x X k ; beta = ∑ X k x 2 X k ; gamma = ∑ x X k X k Yk
k =1 k =1 k =1

A continuación se asigna la función: fu = alfa ⋅ F + beta ⋅ P − gamma


A continuación se resuelve la ecuación para x a partir de la semilla.

9.5. Programa en Matlab para regresión exponencial.


clear all
%Programa para efectuar regresión exponencial
n=input('numerodedatos=');
X=input('vectordeabscisas=');
Y=input('vectordeordenadas=');
xi=input('semillaparax=');
syms x
f11=sum(x.^X);
f12=sum(1-x.^X);
f21=sum(x.^(2.*X));
f22=sum(x.^X-x.^(2.*X));
g1=sum(Y);
g2=sum(Y.*x.^X);
numP=[g1 f12;g2 f22];
numF=[f11 g1;f21 g2];
den=[f11 f12;f21 f22];
P=det(numP)/det(den);
F=det(numF)/det(den);
alfa=sum(X.*x.^(2.*X));
beta=sum(X.*x.^X.*(1-x.^X));
gama=sum(x.^X.*X.*Y);
fu=alfa*P+beta*F-gama;
x=fzero(@(x) eval(fu),xi);
P=eval(P);
F=eval(F);
a=log(1/x);
95

[P F a]
t=X(1):0.01:X(n);
fex=F+(P-F).*exp(-a.*t);
plot(t,fex,'k')
grid on
hold on
plot(X,Y,'o')
syms t
t=X;
fu='F+(P-F)*exp(-a*t)'
et2=sum((Y-eval(fu)).^2);
ecm=sqrt(et2)/n;
ecm

Ejemplo 9.4
Dados los datos: {(0,1), (1,2), (2,3), ((5,4)}
a) Haga un estimativo de la semilla xi a partir de la gráfica de los puntos.
b) Efectúe regresión exponencial y represente gráficamente los datos y la función de regresión.

Solución.
a) Se puede tomar la semilla usando el siguiente razonamiento: puesto que la función es de la
forma f (t ) = F + ( P − F ) x t , se puede aproximar como f (t ) = 4 − 3 x t . Ahora, puesto que
f (1) = 2 , resulta que x = 2 / 3 .

b) Ejecutamos el programa, así:


> rexpo
numerodedatos=4
vectordeabscisas=[0 1 2 5]
vectordeordenadas=[1 2 3 4]
semillaparax=2/3

ans =

0.9647 4.5231 0.3916

fu =

F+(P-F)*exp(-a*t)

ecm =

0.0404

La figura 9.4 muestra la gráfica de la función junto con los puntos dados.
96

4.5

3.5

2.5

1.5

0.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Figura 9.4

EJERCICIOS

1) Considere el conjunto de puntos: {( −2,0), ( −1,1), (0,−1), (1,0), ( 2,1)}


a) Efectúe regresión cuadrática y represente la función de aproximación junto con los datos
b) Repita el literal anterior para regresión cúbica
c) En cada caso calcule el error cuadrático medio y compare

2) Considere el conjunto de puntos: {(0,1), (1.5,3), ( 2,4), ( 2.5,3.8), (3,4), (3.5,4.5), ( 4,4)}
a) Efectúe regresión polinomial de tercer grado y represente gráficamente la función de
aproximación junto con los datos. Calcule el error cuadrático medio.
b) Efectúe regresión exponencial y represente gráficamente la función de aproximación junto con
los datos. Calcule el error cuadrático medio

3) En un experimento se desea encontrar una expresión matemática que relacione la


concentración de un medicamento en el organismo en función del tiempo. Se dispone de los
siguientes datos experimentales:

Tiempo, mnutos 0 4 10 19 35 55 75 85
Concentrcion 100 69.62 32.32 24.1 12.54 5.63 3.74 2.99

a) Efectúe regresión polinómica de tercer grado, represente gráficamente la función de


aproximación junto con los datos y estime el valor de la concentración al cabo de 50 y 100
minutos.
b) Repita el literal anterior si se efectúa regresión cúbica.
c) Repita el literal a) si se efectúa regresión exponencial

4) Considere la función:
5
g ( x) =
1 + 4e − x

a) Elabore una tabla de 11 datos igualmente espaciados en el intervalo: 0 ≤ x ≤ 5


97

b) Con los datos hallados efectúe regresión cúbica, represen


represente
te gráficamente los datos y la función
de aproximación
c) Efectúe regresión exponencial para la función, represente gráficamente los datos y la función
de aproximación.
d) Con ambas regresiones haga un estimativo del área bajo la curva en el intervalo

5) Repita el problema anterior para la función: f ( x) = e − x sen(πx)

6) se llevan a cabo los siguientes experimentos y se determinan los valores de capacidad calórica
a diferentes temperaturas para un metal.

Temperatura, T − 50 − 20 10 70 100 120


Capacidad , C 0.125 0.128 0.034 0.144 0.15 0.155

a) Encuentre el polinomio de rregresión


egresión de primer grado, represente gráficamente la función junto
con los datos y determine el error cuadrático medio
b) Repita el literal anterior para regresión cuadrática
c) Efectúe regresión exponencial, represente gráficamente la función junto con los datos dato y
determine el error cuadrático medio

7) La concentración de saturación del oxígeno disuelto en agua en función de la temperatura y del


cloruro se muestra en la siguiente tabla. Utilice tres tipos de regresión para calcular el nivel de
oxígeno disuelto a una temperatura cualquiera para los tres valores de concentración de cloruro.

Temperatura Cloruro Cloruro Cloruro


5 mg / lts 10 mg / lts 20 mg / lts

5 12.8 11.6 10.5


10 11.3 10.3 9.2
15 10 9.1 8.2
20 9 8.2 7.4
25 8.2 7.4 6.7
30 7.4 6.8 6.1

8) Para la curva de la figura 9.5


9. encuentre una regresión de cuarto grado, represente gráficamente
los datos que tome de la figura y la curva de regresión.
regresión. Determine el error cuadrático medio.

Figura 9.5
98

MÓDULO 10
INTERPOLACIÓN POLINÓMICA

Contenido.
En este módulo se presenta la interpolación polinómica y se desarrollan los siguientes temas:

10.1. Introducción
10.2. Programa de interpolación directa
10.3. Polinomios de Lagrange
10.4. Método de las diferencias divididas
10.5. Programa para interpolación por diferencias divididas

10.1 Introducción.
Dado un conjunto de n puntos correspondientes a una función de variable real, la interpolación
polinómica consiste en determinar un polinomio de grado n − 1 que pase por todos y cada uno de
los puntos dados. La interpolación se puede efectuar de manera directa planteando un sistema de
n ecuaciones con igual número de incógnitas. Consideremos los datos:

{( x1 , y1 ), ( x2 , y 2 ), ( x3 , y3 ),..., ( xn , y n )}
El polinomio de interpolación de grado n − 1 para un conjunto de n datos viene dado por:

P(t ) = c1 + c 2 t + c3t 2 + ... + cn t n −1

Al sustituir los puntos, resulta el sistema de ecuaciones:

 x10 x1
1
x1
2
... x1   c1   y1 
n

 0 n
... x 2  c 2   y 2 
1 2
 x2 x2 x2
x 0 x3
1
x3
2
... x3  c3  =  y 3 
n

 3. . . . .   .   . 
    
 . . . . .  .   . 
x 0 1 2
... xn  cn   y n 
n
 n xn xn

El sistema lineal resultante se puede resolver por cualquiera de los métodos desarrollados en el
módulo 5. Concretamente usaremos el método de la inversa apoyado con Matlab.

Ejemplo 10.1
Determine el polinomio de interpolación para los siguientes datos:

{(−2,1), (−1,0), (0,1), (1,2), (2,−1)}


Solución.
El polinomio debes ser de cuarto grado, así:

p (t ) = c1 + c 2 t + c 3t 2 + c 4 t 3 + c5 t 5

El sistema a resolver es el siguiente:


99

1 − 2 4 − 8 16  c1   1 
1 − 1 1 − 1 1  c   0 
  2   
1 0 0 0 0  c3  =  1 
    
1 1 1 1 1  c 4   2 
1 2 4 8 16 c5  − 1

Resolviendo el sistema se obtiene:

>> A=[1 -2 4 -8 16;1 -1 1 -1 1;1 0 0 0 0;1 1 1 1 1;1 2 4 8 16]

A=
1 -2 4 -8 16
1 -1 1 -1 1
1 0 0 0 0
1 1 1 1 1
1 2 4 8 16

>> y=[1 0 1 2 -1]

y=
1 0 1 2 -1

>> c=inv(A)*y';
>> c'

ans =

1.0000 1.5000 0.0833 -0.5000 -0.0833

El polinomio de interpolación es:

p (t ) = −0.0833t 4 − 0.5t 3 + 0.0833t 2 + 1.5t + 1

A continuación se presenta un código en Matlab para efectuar la interpolación.

10.2. Programa para interpolación directa


clear all
%Entrada de datos
n=input('numero de datos=');
x=input('vector de abscisas=');
y=input('vector de ordenadas=');
%Se genera la matriz del sistema
for i=1:n
for j=1:n
A(i,j)=x(i)^(j-1);
end
end
Se resuelve el sistema
c=inv(A)*y';
%Se escribe la solución mediante un vector fila
c=c';
%Se escribe el vector de coeficientes en orden descendiente de las potencias
100

p=fliplr(c);
%Se escribe el polinomio de interpolación
poly2str(p,'t')
%Se genera un vector t
t=x(1):0.01:x(n);
%Se evalúa el polinomio
p=polyval(p,t);
%Se grafican los datos
plot(x,y,'o');
%Se sostiene la figura
hold on
grid on
%Se grafica el polinomio
plot(t,p,’k’);

Ejecutando el programa con la información dada se tiene:


>> interpdirec
numero de datos=5
vector de abscisas=[-2 -1 0 1 2]
vector de ordenadas=[1 0 1 2 -1]

ans =

-0.083333 t^4 - 0.5 t^3 + 0.083333 t^2 + 1.5 t + 1

La figura 10.1 ilustra los datos y el polinomio de interpolación.

2.5

1.5

0.5

-0.5

-1

-1.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Figura 10.1

Puede verse que el polinomio pasa por cada uno de los puntos. La interpolación polinómica tiene
sus ventajas y sus desventajas; entre las ventajas está el que la función y sus derivadas son
continuas y la principal desventaja es la del número de oscilaciones que puede presentar la
función.

Ejemplo 10.2
Encuentre el polinomio de interpolación para el siguiente conjunto de datos:
101

{(0,1), (1,−2), (2,0), (3,1), (4,−2), (5,0), (6,2), (7,1)}


Solución.
Aplicando el algoritmo resulta:
>> interpdirec
numero de datos=8
vector de abscisas=[0 1 2 3 4 5 6 7]
vector de ordenadas=[1 -2 0 1 -2 0 2 1]

ans =

0.015278 t^7 - 0.36944 t^6 + 3.4778 t^5 - 15.9861 t^4 + 36.6236 t^3
- 37.1444 t^2 + 10.3833 t + 1

La figura 10.2 ilustra los datos y el polinomio de interpolación

2.5

1.5

0.5

-0.5

-1

-1.5

-2

-2.5
0 1 2 3 4 5 6 7

Figura 10.2

La figura 10.2 muestra el cambio de la función entre los datos: (6,2) y (7,1) . Sería de esperarse
que la función no se hiciera negativa tal como ocurre con la interpolación. Más adelante se
estudiará otro tipo de interpolación que obedece más fielmente al comportamiento real de la
función.

10.3. Método de los polinomios de Lagrange.


Dados los n datos: {( x1 , y1 ), ( x 2 , y 2 ), ( x3 , y 3 ),..., ( x n , y n )}

El polinomio de interpolación es una combinación lineal de n polinomios de grado n − 1 , así:

P(t ) = y1 L1 (t ) + y 2 L2 (t ) + y3 L3 (t ) + .... + y n Ln (t )

Usando el símbolo de sumatoria, el polinomio se puede escribir como:


102

n
P(t ) = ∑ y k Lk (t )
k =1

El polinomio evaluado en t = xk debe ser igual a y k . Lo anterior significa que:

P( x k ) = y k = y1 L1 ( xk ) + y 2 L2 ( x k ) + ... + y k Lk ( x k ) + .... + y n Ln ( x k )

Con base en lo anterior, un polinomio de Lagrange debe cumplir con la siguiente condición:

1 si i = k
Li ( x k ) = 
0 si i ≠ k

La expresión matemática para el polinomio de Lagrange Li ( x) de grado n es la siguiente:

(t − x1 )(t − x2 )....(t − xi −1 )(t − xi +1 )...(t − xn )


Li (t ) =
( xi − x1 )( xi − x 2 )....( xi − xi −1 )( xi − xi +1 )...( xi − x n )

Ejemplo 10.3
Escriba los polinomios de Lagrange de segundo grado para los datos:

{( x1 , y1 ), ( x2 , y 2 ), ( x3 , y3 )}

Solución.
Con base en la definición tenemos:

P(t ) = y1 L1 (t ) + y 2 L2 (t ) + y 3 L3 (t )
Los polinomios son:
(t − x 2 )(t − x3 )
L1 (t ) =
( x1 − x 2 )( x1 − x3 )
(t − x1 )(t − x3 )
L2 (t ) =
( x 2 − x1 )( x3 − x 2 )
(t − x1 )(t − x 2 )
L3 (t ) =
( x3 − x1 )( x3 − x 2 )

Es relativamente simple generar de manera automática los polinomios de Lagrange de cualquier


grado a partir de un conjunto de datos. Se sugiere que el estudiante elabore un programa en
Matlab que permita efectuar interpolación por el método de Lagrange para el conjunto de datos.

Ejemplo 10.4.
Usando los polinomios de Lagrange efectúe la interpolación polinómica para los siguientes datos:

(−1,−1), (1,1), (2,−1), (3,1)

Solución.
El polinomio de interpolación es la suma de 4 polinomios de tercer grado, así:
103

4
P(t ) = ∑ y k Lk (t ) = y1 L1 (t ) + y 2 L2 (t ) + y3 L3 (t ) + y 4 L4 (t )
k =1

Debemos generar 4 polinomios de tercer grado, así:

(t − x 2 )(t − x3 )(t − x4 )
L1 (t ) =
( x1 − x2 )( x1 − x3 )( x1 − x4 )
(t − x1 )(t − x3 )(t − x 4 )
L2 (t ) =
( x 2 − x1 )( x 2 − x3 )( x 2 − x 4 )
(t − x1 )(t − x2 )(t − x 4 )
L3 (t ) =
( x3 − x1 )( x3 − x 2 )( x3 − x 4 )
(t − x1 )(t − x 2 )(t − x3 )
L4 (t ) =
( x 4 − x1 )( x 4 − x 2 )( x 4 − x3 )

Teniendo en cuenta los datos se tiene:

(t − 1)(t − 2)(t − 3) t 3 − 6t 2 + 11t − 6


L1 (t ) = =
(−1 − 1)(−1 − 2)(−1 − 3) − 24
(t + 1)(t − 2)(t − 3) t 3 − 4t 2 + t + 6
L2 (t ) = =
(1 + 1)(1 − 2)(1 − 3) 4
(t + 1)(t − 1)(t − 3) t − 3t 2 − t + 3
3
L3 (t ) = =
(2 − −1)(2 − 1)(2 − 3) −3
(t − −1)(t − 1)(t − 2) t − 2t 2 − t + 2
3
L4 (t ) = =
(3 − −1)(3 − 1)(3 − 2) 8

En consecuencia, el polinomio de interpolación es:

t 3 − 6t 2 + 11t − 6 t 3 − 4t 2 + t + 6 t 3 − 3t 2 − t + 3 t 3 − 2t 2 − t + 2
P(t ) = (−1) + (1) + (−1) + (1)
− 24 4 −3 8
(
Simplificando se tiene: P (t ) = 3t − 10t + t + 10 / 4
3 2
)
La representación gráfica se muestra en la figura 10.3
104

2.5

1.5

0.5

-0.5

-1

-1.5
-1 -0.5 0 0.5 1 1.5 2 2.5 3

Figura 10.3

10.4. Interpolación por el método de las diferencias divididas de Newton.


Dado un conjunto de n datos {( x1 , y1 ), ( x 2 , y 2 ),...( x n , y n )}, el polinomio de Newton de grado
n − 1 presenta la forma:

P(t ) = b1 + b2 (t − x1 ) + b3 (t − x1 )(t − x 2 ) + .... + bn (t − x1 )(t − x 2 )...(t − x n −1 )

El objetivo es determinar los coeficientes de tal manera que el polinomio pase por todos y cada uno
de los puntos dados, así:

P( x1 ) = y1
P( x 2 ) = y 2
.
.
.
p( xn ) = y n

Aplicando las ecuaciones anteriores encontramos que:

b1 = y1
y − y1
b2 = 2
x 2 − x1
y3 − y 2 y 2 − y1

x3 − x 2 x 2 − x1
b3 =
x3 − x1

Puede verse que b2 es la pendiente de la recta que une a los puntos ( x1 , y1 ), ( x 2 , y 2 ) . De otro
lado, el coeficiente b3 está asociado a las pendientes en los tres primeros datos.
105

10.4.1. Diferencias divididas


Definimos las diferencias divididas para un conjunto de datos, de la siguiente manera:

Diferencias divididas cero: f 0[ x k ] = y k


f 0[ x k +1 ] − f 0[ xk ]
Diferencias divididas uno: f 1[ xk , x k +1 ] =
x k +1 − x k
f 1[ x k +1 , x k + 2 ] − f 1[ x k , xk +1 ]
Diferencias divididas dos: f 2[ x k , x k +1 , x k + 2 ] =
xk +2 − xk
f 2[ x k +1 , x k + 2 , xk +3 ] − f 2[ x k , xk +1 , xk + 2 ]
Diferencias divididas tres: f 3[ x k , x k +1 , x k + 2 , x k + 3 ] =
x k +3 − x k

Una tabla de diferencias divididas es un arreglo de tipo triangular que se genera a partir de los
datos, así:
La primera columna del arreglo es el vector de abscisas y tiene n elementos
La segunda columna del arreglo es el vector de ordenadas y tiene n elementos
La tercera columna del arreglo está formada por las diferencias divididas uno y tiene n − 1
elementos
La cuarta columna está formada por las diferencias divididas dos y tiene n − 2 elementos.
De manera similar, cada columna posterior tendrá un elemento menos hasta llegar a la última
columna que tendrá un solo elemento.
Para un conjunto de cinco datos, la matriz de diferencias divididas es la siguiente:

M 11 M 12 M 13 M 14 M 15 M 16
M 21 M 22 M 23 M 24 M 25
M 31 M 32 M 33 M 34
M 41 M 42 M 43
M 51 M 52

El algoritmo para generar la matriz de diferencias divididas es el siguiente:


Entrada de información.
1) Entre el número de datos
2) Entre el vector de abscisas: x (i )
3) Entre el vector de ordenadas: y (i )
Se genera la matriz de diferencias divididas
4) Para i desde 1 hasta n
5) M (i,1) ← x(i )
6) M (i,2) ← y (i )
7) Para j desde 3 hasta n+1
8) Para i desde 1 hasta n+1-j
M (i + 1, j − 1) − M (i, j − 1)
9) M (i, j ) ←
x(i + j − 1) − x(i )
10) Los elementos de la primera fila del arreglo, a partir de la segunda columna, son los
coeficientes del polinomio de Newton, así
11) Para i desde 1 hasta n
12) a(i ) ← M (i + 1,1)
Como resultado se tiene el polinomio de Newton de grado n − 1
106

n k −1
P(t ) = a (1) + ∑ a(k )∏ (t − x(i ))
k =1 i =1

Ejemplo 10.5.
Usando las diferencias divididas efectúe la interpolación polinómica para los siguientes datos:

{(− 1,−1), (1,1), (2,−1), (3,1)}


Solución.
Se genera la matriz de diferencias divididas, así:

xk yk f [ x k , x k +1 ] f [ x k , x k +1 , x k + 2 ] f [ xk , x k +1 , x k + 2 , x k + 2 ]
-1 -1 1 -1 3/4
1 1 -2 2
2 -1 2
3 1

El polinomio de interpolación es:

P (t ) = −1 + 1(t + 1) − 1(t + 1)(t − 1) + 0.75(t + 1)(t − 1)(t − 2)

Al expandir el polinomio de Newton resulta el mismo polinomio que se obtiene cuando se hace la
interpolación de manera directa. El resultado expandido es, con la ayuda de Matlab o
manualmente, es:
(
P(t ) = 3t 3 − 10t 2 + t + 10 / 4 )
El método de Newton tiene la ventaja de que si se aumenta el número de datos, los coeficientes
hallados previamente siguen sirviendo para efectuar la interpolación. Sólo debe cambiarse el valor
de n y los datos x, y

10.5. Interpolación de Newton con Matlab.


Con el paquete Matlab se elaboró el siguiente programa:

%Programa para interpolacion por el metodo de las diferencias divididas


% de newton
%Programa para interpolacion por el metodo de las diferencias divididas
% de newton
n=input('Numero de datos =');
x=input('x= ');
y=input('y= ');
for i=1:n
M(i,1)=y(i);
end
for j=2:n
for i=1:n-j+1
M(i,j)=(M(i+1,j-1)-M(i,j-1))/(x(i+j-1)-x(i));
end
end
%Programa para efectuar la productoria:
%(t+x(1))(t+x(2))(t+x(3))......(t+x(m))
%El resultado es una matriz de la forma:
107

%n=1: q(1,1) q(1,2)


%n=2: q(2,1) q(2,2) q(2,3)
%n=3: q(3,1) q(3,2) q(3,3) q(3,4)
%n=4: q(4,1) q(4,2) q(4,3) q(4,4) q(4,5)
%m=input('numero de factores =');
%for i=1:m
%x(i)=input(strcat('entre la abscisa x ',num2str(i), ' ='));
%end
% El algoritmo para llenar la matriz es el siguiente:
m=n-1;
X=-x;
q(1,1)=X(1);

for i=1:n
q(i,i+1)=1;
end
for i=2:n
q(i,1)=X(i)*q(i-1,1);
end
for i=2:n
for j=2:n-1
q(i,j)=X(i)*q(i-1,j)+q(i-1,j-1);
end
end
for i=3:n
q(i,i)=X(i)+q(i-1,i-1);
end
%Programa para expandir el polinomio de Newton, el cual queda en la forma:
%M(1,1)+M(1,2)*(t+X(1))+M(1,3)*(t+X(1))*(t+X(2))
%+M(1,4)*(t+X(1))*(t+X(2))*(t+X(3))+...+M(1,n)*(t+X(1))*(t+X(2))*(t+X(3))...(t+X(m))
%En su forma expandida es el polinomio de grado:m
%a(1)+a(2)*x+a(3)*(x^2)+a(4)*(x^3)+....+a(n)*(x^m)
a(1)=M(1,1);
for i=2:n
a(1)=a(1)+M(1,i)*q(i-1,1);
end
for i=2:n
a(i)=0;
end
for i=2:n
for j=i:n
a(i)=a(i)+M(1,j)*q(j-1,i);
end
end
c=fliplr(a);
poly2str(c,'t')
t=x(1):0.01:x(n);
p=polyval(c,t);
plot(x,y,'o');
hold on
plot(t,p,’k’);
grid on

Ejemplo 10.6.
Usando el programa, efectúe interpolación polinómica para los siguientes datos:
108

{(−2,0), (0,1), (1,2), (3,−1), (4,0), (6,2)}


Solución.
Al correr el programa se obtiene
>> internew
Numero de datos =6
vector de abscisas= [-2 0 1 3 4 6]
vector de ordenadas= [0 1 2 -1 0 2]

M=

0 0.5000 0.1667 -0.2000 0.1028 -0.0250


1.0000 1.0000 -0.8333 0.4167 -0.0972 0
2.0000 -1.5000 0.8333 -0.1667 0 0
-1.0000 1.0000 0 0 0 0
0 1.0000 0 0 0 0
2.0000 0 0 0 0 0

ans =

-0.025 t^5 + 0.25278 t^4 - 0.48056 t^3 - 1.1972 t^2 + 2.45 t + 1

La figura 10.4 muestra tanto los datos como el polinomio interpolante.

-1

-2

-3
-2 -1 0 1 2 3 4 5 6

Figura 10.4

EJERCICIOS.
−x −x
1) Considere la función: f ( x) = xe + 2e + x − 1, 0 ≤ x ≤ 4
a) Elabore una tabla de cinco datos igualmente espaciados en el dominio de la función.
b) Encuentre el polinomio de interpolación por el método directo.
c) Encuentre el polinomio de interpolación por el método de Newton.
d) Represente gráficamente la función original junto con el polinomio.
e) Determine el área bajo la curva de la función y el área bajo la curva de la función de
interpolación y compare los resultados.
109

; 0≤ x≤π
− xsen ( x )
2) Considere la función: f ( x) = e
a) Elabore una tabla de cinco datos igualmente espaciados en el dominio de la función.
b) Encuentre el polinomio de interpolación por el método directo.
c) Encuentre el polinomio de interpolación por el método de Newton.
d) Represente gráficamente la función original junto con el polinomio.
e) Usando el polinomio, haga un estimativo del área bajo la curva.

{( )( )( )(
3) Dados los datos − 1,1 , 0,−1 , 1,1 , 2,−1 )}
a) Escriba los polinomios interpolantes de Lagrange.
b) Encuentre, por cualquier método, el polinomio de interpolación
c) Determine las raíces del polinomio de interpolación.
d) Calcule los máximos y mínimos del polinomio.
110

MÓDULO 11
INTERPOLACIÓN POR SEGMENTOS

Contenido.
En este módulo se presenta la interpolación por segmentos y se desarrollan los siguientes temas:

11.1. Introducción
11.2. Interpolación Cuadrática por segmentos
11.3. Programa para interpolación cuadrática
11.4. Interpolación cúbica por segmentos
11.5. Programa para interpolación cúbica

11.1. Introducción.
Consideremos el conjunto de datos: {( x1 , y1 ), ( x2 , y 2 ), ( x3 , y3 )....( xn , y n )}
La interpolación por segmentos consiste en determinar un polinomio de grado m por cada uno de
los n − 1 segmentos [xk , xk +1 ]
k = 1..n − 1 . La interpolación debe ser tal que se garantice la
continuidad de la función y de sus m − 1 primeras derivadas en cada punto. La más elemental es
la interpolación lineal por segmentos, la cual consiste en determinar una recta por cada segmento,
garantizándose la continuidad de la función en los extremos de cada intervalo. La apariencia de la
interpolación lineal por segmentos es la de una línea poligonal tal como lo muestra la figura 11.1.

Figura 11.1

La ecuación de la recta que une a los puntos ( xk , yk ) y ( x k +1 , y k +1 ) está dada por:

y k +1 − y k
Pk (t ) = y k + (t − x k ) x k ≤ t ≤ x k +1
x k +1 − xk

Usando la función escalón unitario Φ (t ) , podemos escribir:

 y − yk 
Pk (t ) =  y k + k +1 (t − x k )[Φ (t − x k ) − Φ(t − x k +1 )]
 x k +1 − x k 

La función escalón unitario se define de la siguiente manera:

0 si t < 0
Φ (t ) = 
1 si t > 0
La función de interpolación resultante en todo el intervalo es:
111

n −1
 y − yk 
F (t ) = ∑  y k + k +1 (t − x k )[Φ (t − x k ) − Φ(t − x k +1 )]
k =1  x k +1 − x k 

De hecho, la interpolación lineal por segmentos no es utilizada en la práctica ya que no se


garantiza la continuidad de la primera derivada.

11.2. Interpolación cuadrática por segmentos


En este caso se debe determinar, en cada intervalo, un polinomio de segundo grado de tal manera
que se garantice la continuidad de la función y de su primera derivada en los diferentes nodos o
datos.
En el intervalo x k ≤ t ≤ x k +1 , el polinomio tiene la forma p (t ) = ai t 2 + bi t + ci . Gráficamente, el
polinomio cuadrático es una parábola que pasa por los puntos extremos del intervalo. Puesto que
se tienen n − 1 intervalos, es necesario calcular 3n − 3 incógnitas. Al plantear la continuidad de la
función en los nodos resulta 2n − 2 ecuaciones, así:

p k ( xk ) = x k a k + x k bk + c k = y k k = 1..n − 1 (n − 1 ecuaciones)
2

p k ( xk +1 ) = x k +1 a k + x k +1bk + c k = y k +1 k = 1..n − 1 (n − 1 ecuaciones)


2

Al plantear la continuidad de la primera derivada en los nodos interiores resultan n − 2


ecuaciones, así:
p k ' ( x k ) = p k +1 ' ( x k ) k = 2 : n − 1

Las n − 2 ecuaciones son:

2 x k a k + bk = 2 xk a k +1 + bk +1 k = 2 : n −1

La ecuación faltante se impone a criterio de la persona que efectúe la interpolación, teniendo en


cuenta el comportamiento de la función. Puede usarse la información que se tenga de la primera
derivada en uno de los extremos del intervalo, esto es: p1 ' ( x1 ) ó p n −1 ' ( x n ) .
Después de determinar los coeficientes de los n − 1 polinomios cuadráticos se escribe la función
de interpolación, así:
n −1
F (t ) = ∑ (a k t 2 + bk t + c k )[Φ (t − xk ) − Φ (t − x k +1 )]
k =1

Φ(t ) : Es la función escalón unitario.

Ejemplo 11.1
Efectúe interpolación cuadrática por segmentos para el conjunto de datos:

{(0,1), (1,−2), (2,3), (3,0)}


Solución.
Puesto que se tienen tres intervalos es necesario encontrar tres polinomios de segundo grado, así:
112

p1 (t ) = a1t 2 + b1t + c1 ; 0 ≤ t ≤ 1
p 2 (t ) = a 2 t 2 + b2 t + c 2 ; 1 ≤ t ≤ 2
p3 (t ) = a3t 2 + b3 t + c3 ; 2 ≤ t ≤ 3

Planteando la continuidad de la función en los nodos resultan 6 ecuaciones, así:

p1 (0) = 1 ⇒ c1 = 1
p1 (1) = −2 ⇒ a1 + b1 + c1 = −2
p 2 (1) = −2 ⇒ a 2 + b2 + c2 = −2
p 2 (2) = 3 ⇒ 4a 2 + 2b2 + c2 = 3
p3 (2) = 3 ⇒ 4a3 + 2b3 + c3 = 3
p3 (3) = 0 ⇒ 9a 3 + 3b3 + c3 = 0

Planteando la continuidad de la primera derivada en los nodos interiores, tenemos:

p1 ' (1) = p 2 ' (1) ⇒ 2a1 + b1 = 2a 2 + b2


p 2 ' (2) = p3 ' (2) ⇒ 4a 2 + b2 = 4a3 + b3

La última ecuación se impone a criterio del interesado. Por ejemplo, supongamos que la derivada
de la función al principio del intervalo es p1 ' (0) = −2 . La ecuación resultante es b1 = −2 . De las
nueve incógnitas se conocen dos de ellas, así c1 = 1 b1 = −2 . Con base en lo anterior
calculamos, de la primera ecuación, el valor de a1 , así a1 = −1 . Hemos determinado el polinomio
en el primer intervalo, así:
p1 (t ) = −t 2 − 2t + 1 ; 0 ≤ t ≤ 1

Para calcular las otras seis incógnitas resolvemos el siguiente sistema de ecuaciones:

1 1 1 0 0  a 2  − 2
0
4
 2 1 0 0 0  b2   3 
0 0 0 4 2 1  c 2   3 
   =  
0 0 0 9 3 1  a3   0 
2 1 0 0 0 0  b3  − 4
    
4 1 0 − 4 − 1 0  c3   0 

Usando el paquete, encontramos la solución del sistema y, en consecuencia, los otros dos
polinomios son:
p 2 (t ) = 9t 2 − 22t + 11 ; 1 ≤ t ≤ 2
p3 (t ) = −17t 2 + 82t − 93 ; 2 ≤ t ≤ 3

La función de interpolación viene dada por:


113

n −1
F (t ) = ∑ (a k t 2 + bk t + c k )[Φ (t − x k ) − Φ (t − x k +1 )]
k =1

Con el objeto de representar gráficamente se procede de la siguiente manera, usando Matlab.


>> t=0:0.01:1;
>> f1=-t.^2-2.*t+1;
>> x=[0 1 2 3];
>> y=[1 -2 3 0];
>> plot(x,y,'o')
>> grid on
>> t=0:0.01:1;
>> f1=-t.^2-2.*t+1;
>> hold on
>> plot(t,f1,'k')
>> hold on
>> t=1:0.01:2;
>> f2=9.*t.^2-22.*t+11;
>> plot(t,f2,'k')
>> hold on
>> t=2:0.01:3;
>> f3=-17.*t.^2+82.*t-93;
>> plot(t,f3,'k')

La figura 11.2 ilustra la gráfica de la función de interpolación.

-1

-2

-3
0 0.5 1 1.5 2 2.5 3

Figura 11.2

El método empleado para hallar los coeficientes del polinomio no es el más adecuado ya que si
aumenta el número de intervalos aumentará el número de ecuaciones y el planteamiento de dichas
ecuaciones se hace bastante engorroso. A continuación se presentará un método más ágil para
efectuar la interpolación.

11.2.1. Interpolación cuadrática usando diferencias divididas


Consideremos el intervalo x k ≤ t ≤ x k +1 y su correspondiente polinomio cuadrático, así:
114

p k (t ) = a k t 2 + bk t + c k ; x k ≤ t ≤ x k +1

Tal como se muestra en la figura 11.3, tanto la función de interpolación como su primera derivada
son continuas en x k +1 . La derivada de una función cuadrática es una función lineal, cuya
representación gráfica se ilustra en la figura 11.4.

Figura 11.3

Si denotamos por: U k a la derivada de la función en el punto: xk y por u k (t ) a la primera


derivada de la función en el primer intervalo, podemos escribir:

Figura 11.4

U k +1 − U k
u k (t ) = U k + (t − x k ) ; x k ≤ t ≤ x k +1
x k +1 − x k

De manera similar, para el siguiente intervalo se tiene:

U k + 2 − U k +1
u k +1 (t ) = U k +1 + (t − x k +1 ) ; x k +1 ≤ t ≤ x k + 2
x k + 2 − x k +1

A partir de la primera derivada se puede obtener la función de interpolación por integración directa,
así:
t
t t ⌠  U k +1 − U k 
∫xkd p k (t ) = ∫xk u k (t )dt = ⌡ U k + xk +1 − xk (t − xk )
xk

Efectuando la integral, se tiene:


U − U k (t − x k )
2

p k (t ) − p k ( x k ) = U k (t − x k ) + k +1
x k +1 − x k 2
115

La expresión anterior se puede escribir en la forma:

1 U k +1 − U k
p k (t ) = y k + U k (t − x k ) + (t − xk )2
2 x k +1 − x k

Al evaluar en x k +1 se encuentra que:

y k +1 = y k + ( x k +1 − xk )U k + (x k +1 − x k )(U k +1 − U k )
1
2
Se encuentra una ecuación que relaciona a las derivadas de la función en los nodos interiores, así:

y k +1 − y k
U k + U k +1 = 2 k = 1..n − 1
x k +1 − x k

Si se impone la derivada al principio del intervalo, esto es U 1 = dato , y se tiene que:

y k +1 − y k
U k +1 = −U k + 2 k = 1..n − 1
x k +1 − x k

En lo que sigue se conviene en definir el tamaño de paso hk = x k +1 − x k , con lo que:

y k +1 − y k
U k +1 = −U k + 2 k = 1: n −1
hk

La expresión anterior permite determinar las derivadas en los nodos de manera recursiva. Después
de encontrar dichas derivadas se sustituyen en p k (t ) . La función de interpolación resultante viene
a ser:
n −1
 1 U k +1 − U k 
∑ y k + U k (t − x k ) + (t − xk )2 [Φ(t − xk ) − Φ(t − xk +1 )]
k =1  2 hk 

La función de interpolación se puede escribir en la forma:

[ ]
n −1
F (t ) = ∑ a k t 2 + bk t + c k [Φ (t − x k ) − Φ(t − x k +1 )]
k =1

1 U k +1 − U k
Sí denotamos por ak = , los otros coeficientes vienen dados por:
2 hk
bk = U k − 2 x k a k
ck = yk − xkU k + xk ak
2

Ejemplo 11.2
Efectúe interpolación cuadrática por segmentos para el conjunto de datos:
116

{(0,1), (1,−2), (2,3), (3,0)}

Solución.
Con base en los datos y suponiendo que f ' (0) = U 1 = −2 , se llena la siguiente tabla

k xk yk hk Uk ak bk ck
1 0 1 1 -2 -1 -2 1
2 1 -2 1 -4 9 -22 11
3 2 3 1 14 -17 82 -93
4 3 0 -20

Con base en la tabla, la función de interpolación es:

 − t 2 − 2t + 1 si 0 ≤ t ≤ 1

f (t ) =  9t 2 − 22t + 11 si 1 ≤ t ≤ 2
− 17t 2 + 82t − 93 si 2 ≤ t ≤ 3

La gráfica se muestra en la figura 11.2

11.3. Programa en Matlab para interpolación cuadrática.


%Programa para interpolacion cuadratica por segmentos
%intercua
clear all
%Entrada de información.
n=input('Numero de datos =');
x=input('vector de abscisas=');
y=input('vector de ordenadas=');
ui=input(' derivada al principio =');
% Cálculo de los tamaños de paso
for k=1:n-1
h(k)=x(k+1)-x(k);
end
%Calculo de las derivadas
u(1)=ui;
for k=1:n-1
u(k+1)=-u(k)+2*(y(k+1)-y(k))/h(k);
end
% Cálculo de los coeficientes
for k=1:n-1
a(k)=(u(k+1)-u(k))/(2*h(k));
b(k)=u(k)-2*x(k)*a(k);
c(k)=y(k)-x(k)*u(k)+x(k)^2*a(k);
end
% Los coeficientes se acomodan en una matríz C, así:
C=[a' b' c'];
C
%Representacion grafica
for k=1:n-1
h(k)=x(k+1)-x(k);
117

t(k,:)=x(k):0.01*h(k):x(k+1);
p(k,:)=C(k,1).*(t(k,:).^2)+C(k,2).*(t(k,:))+C(k,3);
plot(t(k,:),p(k,:),'k')
grid on
hold on
end
plot (x,y,'o')
%Los polinomios de interpolación se escriben como
for j=1:n-1
for k=1:3
s(k)=C(j,k);
end
disp(strcat('p',num2str(j),'=',poly2str(s,'t')));
end

Ejecutando el programa para los datos del ejemplo 11.2 resulta


Numero de datos =4
vector de abscisas=[0 1 2 3]
vector de ordenadas=[1 -2 3 0]
derivada al principio =-2

C=

-1 -2 1
9 -22 11
-17 82 -93

p1= -1 t^2 - 2 t + 1
p2= 9 t^2 - 22 t + 11
p3= -17 t^2 + 82 t – 93

La figura 11.5 muestra la gráfica de la función de interpolación y los datos.

-1

-2

-3
0 0.5 1 1.5 2 2.5 3

Figura 11.5
118

11.4. Interpolación cúbica por segmentos


Dado un conjunto de n datos que determinan n − 1 intervalos, la interpolación cúbica por
segmentos consiste en determinar un polinomio de tercer grado por cada uno de los segmentos de
tal manera que se garantice la continuidad de la función, de la primera y de la segunda derivada. El
polinomio de interpolación en el intervalo: [ x k , x k +1 ] está dado por:
p k (t ) = a k t 3 + bk t 2 + ck t + d k

La interpolación cúbica por segmentos garantiza la continuidad de la función en los n puntos, de la


primera y la segunda derivada en los nodos interiores: x 2 ..x n −1
Consideremos los dos segmentos ubicados en el intervalo [xk , xk + 2 ]. De acuerdo con lo estipulado
previamente, los polinomios adyacentes son:

p k (t ) = a k t 3 + bk t 2 + c k t + d k ; xk ≤ t ≤ x k +1
p k +1 (t ) = a k +1t 3 + bk +1t 2 + c k +1t + d k +1 ; xk +1 ≤ t ≤ x k + 2

Las primeras derivadas vienen dadas por:

p k ' (t ) = 3a k t 2 + 2bk t + c k ; xk ≤ t ≤ x k +1
p k +1 ' (t ) = 3a k +1t + 2bk +1t + c k +1 ; x k +1 ≤ t ≤ x k + 2
2

Las segundas derivadas vienen dadas por:

p k ' ' (t ) = 6a k t + 2bk ; x k ≤ t ≤ x k +1


p k +1 ' ' (t ) = 6a k +1t + 2bk +1 ; x k +1 ≤ t ≤ x k + 2

Teniendo en cuenta la continuidad de la función resultan 2n − 2 ecuaciones, así:

pk ( xk ) = y k ; k = 1: n −1
p k +1 ( x k ) = y k ; k = 2:n

La continuidad de la primera derivada en los nodos interiores nos conduce a n − 2 ecuaciones,


así:
p k ' ( x k ) = p k +1 ' ( x k ) ; k = 2 : n − 1

La continuidad de la segunda derivada en los nodos interiores nos conduce a n − 2 ecuaciones,


así:
p k ' ( x k ) = p k +1 ' ( x k ) ; k = 2 : n − 1

Así las cosas, resultan 4n − 6 ecuaciones con 4n − 2 incógnitas, es decir, quedan faltando dos
ecuaciones. Puede afirmarse que la interpolación cúbica por segmentos tendrá infinitas soluciones,
sin embargo, cuando se conocen las segundas derivadas en los extremos, la solución será única.

Ejemplo 11.3
Efectúe interpolación cúbica por segmentos para el siguiente conjunto de datos

{(0,1), (1,−2), (2,3), (3,0)}


119

Solución.
Puesto que se tienen tres intervalos es necesario encontrar tres polinomios de tercer grado, así:

p1 (t ) = a1t 3 + b1t 2 + c1t + d1 ; x1 ≤ t ≤ x 2


p 2 (t ) = a 2 t 3 + b2 t 2 + c 2 t + d 2 ; x 2 ≤ t ≤ x3
p3 (t ) = a3t 3 + b3t 2 + c3t + d 3 ; x 2 ≤ t ≤ x3

Planteando la continuidad de la función en los nodos resultan 6 ecuaciones, así:

p1 (0) = 1 ⇒ d1 = 1
p1 (1) = −2 ⇒ a1 + b1 + c1 + d1 = −2
p 2 (1) = −2 ⇒ a 2 + b2 + c 2 + d 2 = −2
p 2 (2) = 3 ⇒ 8a 2 + 4b2 + 2c 2 + d 2 = 3
p3 (2) = 3 ⇒ 8a3 + 4b3 + 2c3 + d 3 = 3
p3 (3) = 0 ⇒ 27a3 + 9b3 + 3c3 + d 3 = 0

Planteando la continuidad de la primera derivada en los nodos interiores, tenemos:

p1 ' (1) = p 2 ' (1) ⇒ 3a1 + 2b1 + c1 = 3a 2 + 2b2 + c 2


p 2 ' (2) = p3 ' (2) ⇒ 12a 2 + 4b2 + c 2 = 12a3 + 4b3 + c3

Planteando la continuidad de la segunda derivada en los nodos interiores, tenemos:

p1 ' ' (1) = p 2 ' ' (1) ⇒ 6a1 + 2b1 = 6a 2 + 2b2


p 2 ' ' (2) = p3 ' ' (2) ⇒ 12a 2 + 2b2 = 12a3 + 2b3

Las dos últimas ecuaciones se imponen a criterio del interesado.

Por ejemplo, supongamos que la segunda derivada de la función al principio del intervalo es
P1 ' ' (0) = 0 y que la segunda derivada en el otro extremo es P3 ' ' (3) = 0 . Las ecuaciones
resultantes son las siguientes:

p1 ' ' (0) = 0 ⇒ 2b1 = 0


p 2 ' ' (3) = 0 ⇒ 18a3 + 2b3 = 0

Resulta el sistema de doce ecuaciones con doce incógnitas:


120

0 0 0 1 0 0 0 0  a1   1 
0 0 0 0
1
 1 1 1 0 0 0 0 0 0 0 0  b1  − 2
0 0 0 0 1 1 1 1 0 0 0 0  c1  − 2
    
0 0 0 0 8 4 2 1 0 0 0 0  d 1   3 
0 0 0 0 0 0 0 0 8 4 2 1  a 2   3 
    
0 0 0 0 0 0 0 0 27 9 3 1   b2   0 
=
3 2 1 0 − 3 − 2 −1 0 0 0 0 0  c 2   0 
    
0 0 0 0 12 4 1 0 − 12 − 4 − 1 0 d 2   0 
6 2 0 0 −6 −2 0 0 0 0 0 0  a 3   0 
    
0 0 0 0 12 2 0 0 − 12 − 2 0 0  b3   0 
    
0 2 0 0 0 0 0 0 0 0 0 0  c 3   0 
0 0 0 0 0 0 0 0 18 2 0 0  d 3   0 

Usando cualquier paquete, encontramos la solución del sistema, con lo que los polinomios de
interpolación vienen a ser:

p1 (t ) = 2.6667t 3 − 5.6667t + 1 si 0 ≤ t ≤ 1
p 2 (t ) = −5.3333t + 24t − 29.6667t + 9 si 1 ≤ t ≤ 2
3 2

p3 (t ) = 2.6667t 3 − 24t 2 + 66.3333t − 55 si 2 ≤ t ≤ 3

La función de interpolación viene dada por:

3
F (t ) = ∑ (a k t 2 + bk t + c k )[Φ (t − x k ) − Φ (t − x k +1 )]
k =1

11.4.1. Interpolación cúbica por segmentos usando diferencias divididas


De manera similar que para la interpolación cuadrática, la segunda derivada de la función cúbica
debe ser una recta. Sí denotamos por: Wk y Wk +1 a las segundas derivadas en los extremos
del intervalo y por: w(t ) a la función segunda derivada en el intervalo, resulta:

Wk +1 − Wk
wk (t ) = Wk + (t − xk )
x k +1 − x k

Para simplificar un poco se define el tamaño de paso hk = x k +1 − x k , de tal manera que se puede
escribir:
Wk +1 − Wk
wk (t ) = Wk + (t − xk )
hk
Dado que la integral de la segunda derivada es la primera derivada, se tiene que la primera
derivada de la función en el intervalo, la cual denotamos por: u k (t ) es:
121

t
t ⌠  Wk +1 − Wk 
∫xk du k (t )dt = ⌡ Wk + hk (t − xk ) dt
xk

Efectuando las integrales, tenemos:

1 Wk +1 − Wk
u k (t ) − u k ( x k ) = Wk (t − x k ) + (t − x k ) 2
2 hk

Si denotamos la primera derivada al principio del intervalo por u k ( x k ) = U k , tenemos:

1 Wk +1 − Wk
u k (t ) = U k + Wk (t − x k ) + (t − x k ) 2
2 hk

La función derivada evaluada en el otro extremo del intervalo es:

1 Wk +1 − Wk
U k +1 = U k + Wk ( x k +1 − x k ) + ( xk +1 − x k ) 2
2 hk

Se ha encontrado una relación entre las primeras derivadas en los extremos del intervalo, así:

1 Wk +1 − Wk 2
U k +1 − U k = Wk hk + hk
2 hk
Simplificando, tenemos:
1
U k +1 − U k = hk (Wk + Wk +1 ) (a)
2
Ahora, a partir de la primera derivada, encontraremos una expresión para el polinomio. Por
integración se tiene:
t
t ⌠  1 Wk +1 − Wk 2
∫xk dpk (t )dt = ⌡ U k + Wk (t − xk ) + 2 hk (t − xk )  dt
xk

Efectuando las integrales, se tiene:

1 1 Wk +1 − Wk
p k (t ) − p k ( x k ) = U k (t − x k ) + Wk (t − x k ) 2 + (t − x k ) 3
2 6 hk

Puesto que p k ( x k ) = y k , tenemos:


1 1 Wk +1 − Wk
p k (t ) = y k + U k (t − x k ) + Wk (t − x k ) 2 + (t − x k ) 3
2 6 hk

Si se evalúa el polinomio en x k +1 tenemos:


122

1 1 Wk +1 − Wk
y k +1 = y k + U k ( x k +1 − x k ) + Wk ( x k +1 − xk ) 2 + ( x k +1 − x k ) 3
2 6 hk

Simplificando se tiene:
1 1 Wk +1 − Wk 3
y k +1 = y k + U k hk + Wk hk +
2
hk
2 6 hk

Despejando U k se tiene:
y k +1 − y k hk
Uk = − (Wk +1 + 2Wk ) (b)
hk 6

A partir de la expresión anterior se puede escribir:

y k + 2 − y k +1 hk +1
U k +1 = − (Wk +2 + 2Wk +1 ) (c)
hk +1 6

Sustituyendo (b) y (c) en (a) resulta:

 y − y k +1 y k +1 − y k 
hk Wk + 2(hk + hk +1 )Wk +1 + hk +1Wk + 2 = 6 k + 2 −  ; k = 1 : n − 2
 hk +1 hk 

Para resolver el sistema es necesario conocer las segundas derivadas en los extremos, esto es:

w( x1 ) = W1
w( xn ) = Wn

Con base en lo anterior nos resulta un sistema tridiagonal de n − 2 ecuaciones con n − 2


incógnitas.
 y − y 2 y 2 − y1 
Primera ecuación: 2(h1 + h2 )W2 + h2W3 = 6 3 −  − h1W1
 h2 h1 
 y − y n −1 y n −1 − y n −2 
Última ecuación: hn − 2Wn − 2 + 2(hn − 2 + hn −1 )Wn −1 = 6 n −  − hn −1Wn
 hn −1 hn − 2 

El resto de las ecuaciones se genera de forma iterativa, así:

 y − y k +1 y k +1 − y k 
hk Wk + 2(hk + hk +1 )Wk +1 + hk +1Wk + 2 = 6 k + 2 −  ; k = 2 : n − 3
 hk +1 hk 
Después de resolver el anterior sistema se calculan las primeras derivadas, así:

y k +1 − y k hk
Uk = − (Wk +1 + 2Wk ) ; k = 1 : n − 1
hk 6

A continuación se calculan los coeficientes del polinomio a partir de la ecuación:


123

1 1 Wk +1 − Wk
p k (t ) = y k + U k (t − x k ) + Wk (t − x k ) 2 + (t − x k ) 3
2 6 hk

Se expande el polinomio en la forma:

p k (t ) = a k t 3 + bk t 2 + c k t + d k

Con base en lo anterior, los coeficientes son:


wk +1 − wk
ak =
6hk
w
bk = k − 3 x k a k
2
c k = u k − x k Wk + 3a k x k
2

1
d k = y k − x k U k + Wk x k − a k x k
2 3

Ejemplo 11.4
Efectúe interpolación cúbica por segmentos para el siguiente conjunto de datos

{(0,1), (1,−2), (2,3), (3,0)}

Solución.
Suponiendo que las derivadas en los extremos son iguales a cero, es decir W1 = W4 = 0 , resulta el
siguiente sistema para las segundas derivadas:

 y − y 2 y 2 − y1 
1) 2(h1 + h2 )W2 + h2W3 = 6 3 −  − h1W1
 h2 h1 
 y − y3 y3 − y 2 
2) h2W2 + 2(h2 + h3 )W3 = 6 4 −  − h3W4
 h3 h2 

Con base en los datos resulta el sistema matricial:

4 1  W2   48 
1 4 W  = − 48
  3   

Resolviendo el sistema se tiene: W2 = 16 y W3 = −16

A continuación se llena la siguiente tabla:

k xk yk Wk Uk ak bk ck dk
1 0 1 0 -5.6667 2.6667 0 -5.6667 1
2 1 -2 16 2.3333 -5.3333 24 -29.667 -9
3 2 3 -16 2.3333 2.6667 -24 66.333 -55
124

4 3 0 0

El resultado coincide con el hallado previamente.

p1 (t ) = 2.6667t 3 − 5.6667t + 1 si 0 ≤ t ≤ 1
p 2 (t ) = −5.3333t + 24t − 29.6667t + 9 si 1 ≤ t ≤ 2
3 2

p3 (t ) = 2.6667t 3 − 24t 2 + 66.3333t − 55 si 2 ≤ t ≤ 3

La interpolación cúbica por segmentos se puede efectuar mediante un programa de computador.

11.5. Interpolación cúbica con Matlab.


%intercu
%programa para efectuar interpolacion cubica por segmentos para datos
% no igualmente espaciados
clear all
%Entrada de informacion
n=input('numero de datos=');
x=input('vector de abscisas=');
y=input('vector de ordenadas=');
W1=input('segunda derivada al principio=');
WN=input('segunda derivada al final=');
%Calculo de los tamaños de paso
for i=1:n-1
h(i)=x(i+1)-x(i);
end
%calculo de las segundas diferencias divididas
for k=1:n-2
b(k)=6*((y(k+2)-y(k+1))/h(k+1)-(y(k+1)-y(k))/h(k));
end
%Sistema de ecuaciones para hallar las segundas derivadas, desde w(2) hasta w(n-1)
% M*W=B
M(1,1)=2*(h(1)+h(2));
M(1,2)=h(2);
B(1)=b(1)-h(1)*W1;
M(n-2,n-3)=h(n-2);
M(n-2,n-2)=2*(h(n-2)+h(n-1));
B(n-2)=b(n-2)-h(n-1)*WN;
for k=2:n-3
M(k,k-1)=h(k);
M(k,k)=2*(h(k)+h(k+1));
M(k,k+1)=h(k+1);
B(k)=b(k);
end
aux=inv(M)*B';
W(1)=W1;
W(n)=WN;
for j=2:n-1;
W(j)=aux(j-1);
end
%Calculo de las primeras derivadas
for k=1:n-1
U(k)=(y(k+1)-y(k))/h(k)-(h(k)/6)*(2*W(k)+W(k+1));
end
% Calculo de los coeficientes de los polinomios
125

for k=1:n-1
c(k,1)=(W(k+1)-W(k))/(6*h(k));
c(k,2)=W(k)/2-3*x(k)*c(k,1);
c(k,3)=U(k)-x(k)*W(k)+3*c(k,1)*x(k)^2;
c(k,4)=-c(k,1)*x(k)^3+(x(k)^2)*W(k)/2-x(k)*U(k)+y(k);
end
c
%Representacion grafica de los polinomios
for i=1:n-1
t(i,:)=x(i):0.01*h(i):x(i+1);
p(i,:)=c(i,1).*(t(i,:).^3)+c(i,2).*(t(i,:).^2)+c(i,3).*t(i,:)+c(i,4);
plot(t(i,:),p(i,:),'k')
grid on
hold on
end
plot (x,y,'o')
for j=1:n-1
for i=1:4
s(i)=c(j,i);
end
disp(strcat('p',num2str(j),'=',poly2str(s,'t')));
end

Ejemplo 11.4
sen( x)
Considere la función: f ( x) = en el intervalo: [ −π , π ]
x
a) Evalúe la segunda derivada de la función en los extremos de su dominio.
b) Haga una tabla de 6 datos igualmente espaciados con N = 5
c) Efectúe interpolación cúbica por segmentos y represente gráficamente la curva y la función de
interpolación.
d) Calcule el máximo error cometido.

Solución.
a) La segunda derivada de la función evaluada en los extremos del intervalo:

2 sen( x) − 2 x cos( x) − x 2 sen( x)


f ' ' ( x) =
x3
W1 = f ' ' (−π ) = 0.203 Wn = f ' ' (π ) = 0.203

b) La tabla de valores es la siguiente:

x y
-3.1416 0
-1.8850 0.5046
-0.6283 0.9355
0.6283 0.9355
1.8850 0.5046
3.1416 0

c) Se ejecuta el programa con la siguiente información:

>> interpcub
numero de datos=6
126

vector de abscisas=[-3.1416 -1.8850 -0.6283 0.6283 1.8850 3.1416]


vector de ordenadas=[0 0.5046 0.9355 0.9355 0.5046 0]
segunda derivada al principio=0.203
segunda derivada al final=0.203

c=

-0.0324 -0.2035 0.0047 1.0198


-0.0369 -0.2292 -0.0437 0.9894
-0.0000 -0.1596 0.0000 0.9985
0.0369 -0.2292 0.0437 0.9894
0.0324 -0.2035 -0.0047 1.0198

p1= -0.032359 t^3 - 0.20348 t^2 + 0.0047269 t + 1.0198


p2= -0.036903 t^3 - 0.22917 t^2 - 0.043703 t + 0.98936
p3= -7.3626e-018 t^3 - 0.15962 t^2 + 1.9036e-017 t + 0.99851
p4= 0.036903 t^3 - 0.22917 t^2 + 0.043703 t + 0.98936
p5= 0.032359 t^3 - 0.20348 t^2 - 0.0047269 t + 1.0198

Los resultados se muestran en la figura 11.5

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-4 -3 -2 -1 0 1 2 3 4

Figura 11.5

EJERCICIOS

1) Considere la función: f ( x) = xe − x + 2e − x + x − 1, 0 ≤ x ≤ 4

a) Encuentre la primera derivada de la función en el principio del intervalo.


b) Elabore una tabla de cinco datos igualmente espaciados
c) Efectúe interpolación cuadrática por segmentos con.
d) Represente gráficamente la función y la función de interpolación.
e) Represente gráficamente la función de error y determine el error máximo.

2) Para la misma función del ejercicio anterior:

a) Encuentre la segunda derivada de la función en los extremos del intervalo.


b) Elabore una tabla de cinco datos igualmente espaciados
c) Efectúe interpolación cúbica por segmentos.
127

d) Represente gráficamente la función y la función de interpolación.


e) Represente gráficamente la función de error y determine el error máximo.

3) Considere la función:
f ( x) = e − xsen ( x ) , 0 ≤ x ≤ π

a) Encuentre la primera derivada de la función en el principio del intervalo.


b) Elabore una tabla de cinco datos igualmente espaciados
c) Efectúe interpolación cuadrática por segmentos con.
d) Represente gráficamente la función y la función de interpolación.
e) Represente gráficamente la función de error y determine el error máximo.

4) Para la misma función del ejercicio anterior

a) Encuentre la segunda derivada de la función en los extremos del intervalo.


b) Elabore una tabla de cinco datos igualmente espaciados
c) Efectúe interpolación cúbica por segmentos.
d) Represente gráficamente la función y la función de interpolación.
e) Represente gráficamente la función de error y determine el error máximo.
5) Considere los siguientes datos:

{(−3,1), (−2,2), (0,−1), (1,3), (3,0), (4,−2)}


a) Efectúe interpolación cuadrática por segmentos tomando como cero la primera derivada al
principio
b) Efectúe interpolación cúbica por segmentos tomando como cero las segundas derivadas
en los extremos del intervalo
128

MÓDULO 12
DIFERENCIACIÓN NUMÉRICA

Contenido.
En este módulo se presenta la diferenciación numérica y se desarrollan los siguientes temas:

12.1. Introducción
12.2. Derivación usando Matlab
12.3. Diferencias divididas centradas de primero y segundo orden
12.4. Programa para diferenciación numérica

12.1. Introducción.
Supongamos que se tiene una función de una variable real y = f (x ) analítica en cada punto de
un intervalo abierto a < x < b . La primera derivada de la función en el punto x = a viene dada
por:
 f ( x) − f (a) 
f ' (a ) = lim 
x →a
 x−a 

Figura 12.1

Geométricamente, f ' ( a ) es la pendiente de la recta tangente a la curva en el punto (a, f ( a ) ) .


Si bien la derivada se puede determinar analíticamente usando las reglas de derivación, los
métodos numéricos proporcionan aproximaciones razonables sin necesidad de aplicar las reglas.
En la actualidad se hace uso de Matlab para determinar analíticamente la derivada de cualquier
función.

12.2. Derivada de una función usando Matlab.


Para determinar la derivada de una función f ( x) se procede de la siguiente manera:

df=diff(‘función’,’x’)

El resultado es la derivada de la función con respecto a x. A continuación se evalúa para x=a.

Ejemplo 12.1
Dada la función f ( x) = 2 x cos( x) + ln( x)
a) Determine f ' ( x ) y calcule f ' (π )
b) Determine f ' ' ( x) y calcule f ' ' (π )

Solución.
a) Usando Matlab, se tiene:
f=
129

2^x*cos(x)+log(x)

>> df=diff(f,'x')

df =

2^x*log(2)*cos(x)-2^x*sin(x)+1/x

b) >> x=3.1416

x=

3.1416

>> eval(df)

ans =

-5.7987

c) >> d2f=diff(df,'x')

d2f =

2^x*log(2)^2*cos(x)-2*2^x*log(2)*sin(x)-2^x*cos(x)-1/x^2

>> x=3.1416

x=

3.1416

d) >> eval(d2f)

ans =

4.4838

La ventaja de Matlab es que se puede escoger la variable de derivación, lo que permite derivar
parcialmente respecto a cualquier variable independiente.

Ejemplo 12.2
Dada la expresión F ( x, y ) = x 2 y 2 cos( xy)
Calcule:
∂F ∂2F
a) b)
∂x ∂y∂x
∂F ∂2F
c) d)
∂y ∂x∂y

Solución.
Usamos el paquete, así:
130

>> F='x^2*y^2*cos(x*y)'

F=

x^2*y^2*cos(x*y)

a) >> Fx=diff(F,'x')

Fx =

2*x*y^2*cos(x*y)-x^2*y^3*sin(x*y)

b) >> Fyx=diff(Fx,'y')

Fyx =

4*x*y*cos(x*y)-5*x^2*y^2*sin(x*y)-x^3*y^3*cos(x*y)

c) >> Fy=diff(F,'y')

Fy =

2*x^2*y*cos(x*y)-x^3*y^2*sin(x*y)

d) >> Fxy=diff(Fy,'x')

Fxy =

4*x*y*cos(x*y)-5*x^2*y^2*sin(x*y)-x^3*y^3*cos(x*y)

12.3. Diferencias divididas centradas.


Puede hacerse un estimativo tanto de la de la primera como de la segunda derivada en x = xk
usando los cinco primeros términos de la serie de Taylor. Con relación a la figura 12.1 se tiene:

f ' ' ( x k )( x − x k ) f ' ' ' ( x k )( x − x k ) f ' ' ' ' ( x k )( x − x k )


2 3 4

f ( x ) ≅ f ( x k ) + f ' ( x k )( x − x k ) + + +
2 6 24

Dado que f ( x k −1 ) = y k −1 y teniendo en cuenta que x k − x k −1 = h se tiene:

f ' ' ( x k )h 2 f ' ' ' ( x k )h 3 f ' ' ' ' ( x k )h 4


y k −1 = y k − f ' ( x k )h + − + (a)
2 6 24

Dado que f ( x k +11 ) = y k +1 y teniendo en cuenta que x k +1 − x k = h se tiene:

f ' ' ( x k )h 2 f ' ' ' ( x k )h 3 f ' ' ' ' ( x k )h 4


y k +1 = y k + f ' ( x k )h + + + (b)
2 6 24
Restando miembro a miembro las dos ecuaciones (a) y (b) se tiene:

y k +1 − y k −1 = 2hf ' ( x k ) + h 3 f ' ' ' ( x k ) / 3


131

En consecuencia, la primera derivada en x = x k se puede aproximar mediante la primera


diferencia dividida centrada, esto es:
y k +1 − y k −1
f ' ( xk ) ≅
2h
Puede verse que se comete un error dado por:

ε k = h 3 f ' ' ' ( xk ) / 3

En cuanto a la segunda derivada, al sumar las ecuaciones (a) y (b), se obtiene una aproximación
para la segunda derivada, así:

y k −1 + y k +1 = 2 y k + h 2 f ' ' ( x k ) + h 4 f ' ' ' ' ( x k ) / 12

En consecuencia, la segunda derivada en x = xk se puede aproximar mediante la segunda


diferencia dividida centrada, esto es:
y k +1 − 2 y k + y k −1
f ' ' ( xk ) ≅
h2
Puede verse que se comete un error:

ε k = h 4 f ' ' ' ' ( x k ) / 12

De manera similar se pueden encontrar aproximaciones para otros órdenes de derivación.

Ejemplo 12.3
Dada la función f ( x) = 2 x cos( x) + ln( x)
Tomando h = 0.01
a) Determine f ' (3.1416)
b) Determine f ' ' (3.1416)

Solución.
Se llena la siguiente tabla:

x f (x)
3.1416-h -7.6220
3.1416 -7.6802
3.1416+h -7.7380

Con base en las fórmulas, se tiene:

y k +1 − y k −1 y k +1 − 2 y k + y k −1
a) f ' ( xk ) ≅ ≅ −5.7984 b) f ' ' ( xk ) ≅ ≅ 4.4838
2h h2
Comparando con los resultados del ejemplo 12.1 se observa que el error cometido al calcular la
segunda derivada es apreciable.
132

12.4. Programa para diferenciación numérica.


%Programa para calcular las dos primeras derivadas una función de una variable en x=a
clear all
f=input('funcion a derivar f(x)=');
a=input('valor de a= ');
h=input('tamaño de paso=');
x=a;
fcen=eval(f);
x=a-h;
fizq=eval(f);
x=a+h;
fder=eval(f);
df=(fder-fizq)/2/h;
d2f=(fder-2*fcen+fizq)/h/h;
[df d2f]
% Las dos primeras derivadas calculadas directamente con Matlab.
pd=diff(f)
x=a;
pde=eval(pd)
sd=diff(pd)
x=a;
sde=eval(sd)

Ejecutando para los datos del ejemplo anterior se tiene:


funcion a derivar f(x)='2^x*cos(x)+log(x)'
valor de a= pi
tamaño de paso=0.01

ans =

-5.7984 4.4838

pd =

2^x*log(2)*cos(x)-2^x*sin(x)+1/x

pde =

-5.7987

sd =

2^x*log(2)^2*cos(x)-2*2^x*log(2)*sin(x)-2^x*cos(x)-1/x^2

sde =

4.4837

Ejemplo 12.4
Considere la función f ( x) = x 2 e − x sen( x)
a) Represente gráficamente la función en el intervalo 0 ≤ x ≤ 2
b) Calcule numéricamente f ' (1.3) y f ' ' (1.3) , con h = 0.001
c) Calcule analíticamente f ' (1.3) y f ' ' (1.3)
133

Solución.
a) Usando el paquete se tiene:
>> x=0:0.01:2;
>> y=x.^2.*exp(-x).*sin(x);
>> plot(x,y)
>> grid on

La figura 12.2 ilustra la gráfica de la función.

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 12.2

b) Ejecutamos el programa, así:


>> derivadas
funcion a derivar f(x)='x^2*exp(-x)*sin(x)'
valor de a= 1.3
tamaño de paso=0.001

ans =

0.3622 -0.7076

pd =

2*x*exp(-x)*sin(x)-x^2*exp(-x)*sin(x)+x^2*exp(-x)*cos(x)

pde =

0.3622

sd =

2*exp(-x)*sin(x)-4*x*exp(-x)*sin(x)+4*x*exp(-x)*cos(x)-2*x^2*exp(-x)*cos(x)

sde =

-0.7076

funcion a derivar f(x)='x^2*exp(-x)*sin(x)'


134

valor de a= 1.3
tamaño de paso=0.001

ans =

0.3622 -0.7076

EJERCICIOS.

1) Considere la función f ( x) = xe − x sen( x)


a) Represente gráficamente la función en el intervalo 0 ≤ x ≤ π
b) Calcule numéricamente f ' (π / 3) y f ' ' (π / 3) , con h = 0.001
c) Calcule analíticamente f ' (π / 3) y f ' ' (π / 3)

2) Considere la función f ( x) = x + e − x sen( x) − 1


a) Represente gráficamente la función en el intervalo 0 ≤ x ≤ π
b) Calcule numéricamente f ' (π / 3) y f ' ' (π / 3) , con h = 0.001
c) Calcule analíticamente f ' (π / 3) y f ' ' (π / 3)

3) Considere la función f ( x) = 2 x ln( x) + sen(πx)


a) Represente gráficamente la función en el intervalo 0 ≤ x ≤ 1
b) Calcule numéricamente f ' (1 / 3) y f ' ' (1 / 3) , con h = 0.001
c) Calcule analíticamente f ' (1 / 3) y f ' ' (1 / 3)

4) Considere la función f ( x) = xe − xsen ( x )


a) Represente gráficamente la función en el intervalo 0 ≤ x ≤ π
b) Calcule numéricamente f ' (π / 3) y f ' ' (π / 3) , con h = 0.001
c) Calcule analíticamente f ' (π / 3) y f ' ' (π / 3)

5) Considere la función f ( x) = x x / π sen( x)


a) Represente gráficamente la función en el intervalo 0 ≤ x ≤ π
b) Calcule numéricamente f ' (π / 3) y f ' ' (π / 3) , con h = 0.001
c) Calcule analíticamente f ' (π / 3) y f ' ' (π / 3)
135

MÓDULO 13
INTEGRACIÓN NUMÉRICA

Contenido.
En este módulo se presenta la integración numérica y se desarrollan los siguientes temas:

13.1 Introducción
13.2. Integración por series de potencias
13.3 Aproximación por interpolación polinómica
13.4. Fórmulas de Newton Cotes
13.5. Regla de los trapecios
13.6. Análisis del error en la regla de los trapecios
13.7. Integración por el método de Romberg
13.8. Regla de Simpson 1/3
13.9. Regla de Simpson 3/8
13.10. Programa para integrar con las fórmulas de Newton-Cotes

13.1. Introducción.
Existe un gran número de problemas de ingeniería y ciencias que conducen a la evaluación de una
integral definida de la forma:
b
I = ∫ f ( x)dx
a

Con base en el teorema fundamental del cálculo, sí la función F (x) es una antiderivada de f (x) ,
la integral definida viene dada por:
I = F (a ) − F (b)

Ejemplo 13.1
Evalúe la integral definida:
2
I = ∫ x 2 e − x dx
0

Solución.
En una tabla de integrales se encuentra que una antiderivada de la función dada es:

F ( x ) = − e − x ( x 2 + 2 x + 2)

En consecuencia, la integra definida es:

I = F (2) − F (0) ≅ 0.647

Puede determinarse la integral usando Matlab, así:

>> f='x*x*exp(-x)'

f=

x*x*exp(-x)

>> F=int(f,'x')

F=
136

-x^2*exp(-x)-2*x*exp(-x)-2*exp(-x)
>> x=0

x=

>> Fa=eval(F)

Fa =

-2

>> x=2

x=

>> Fb=eval(F)

Fb =

-1.3534

>> I=Fb-Fa

I=

0.6466

Se puede obtener de manera directa el resultado, así:

>> int(f,'0','2')

ans =

-10*exp(-2)+2

>> -10*exp(-2)+2

ans =

0.6466

Geométricamente la integral definida corresponde al área bajo la curva de la función en el intervalo.


La figura 13.1 muestra la gráfica de la función del ejemplo anterior.
El estudiante sabrá que no siempre es posible determinar la antiderivada de una función mediante
funciones elementales, tal como ocurre para las funciones:

f ( x) = e sen ( x )
sen( x)
g ( x) =
x
137

h( x ) = e − x 3 x

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 13.1

Para funciones como las que se han descrito previamente es necesario recurrir a técnicas
diferentes para evaluar la correspondiente integral definida. Dentro de las técnicas usuales para
llevar a cabo la integral definida están las siguientes:

1) Expresar la función mediante una serie de potencias en el intervalo


2) Efectuar una interpolación para la función en el intervalo
3) Efectuar la integración de manera numérica usando diferentes métodos.

Nuestro propósito es desarrollar los métodos numéricos que nos permitan evaluar la integral
definida. Sin embargo, empezaremos por ilustrar las dos primeras técnicas.

13.2. Integración por el método de las series de potencias


Consiste en expresar, si es posible, la función mediante un desarrollo en serie de potencias en el
intervalo de integración. Se recomienda efectuar el desarrollo en una vecindad del punto medio del
intervalo de integración.

Ejemplo 13.2
Usando cuatro términos de la serie de Taylor de la función en un entorno de x = 1 encuentre un
valor aproximado para la integral definida:

2
∫0
e sen ( x ) dx

La serie de Taylor de la función en un entorno de x = 1 es:

s ( x) = f (1) + f ' (1)( x − 1) +


f ' ' (1)
(x − 1)2 + f ' ' ' (1) (x − 1)3
2! 3!
Evaluando las derivadas en el punto dado se tiene que:
138

s ( x) = 2.3198 + 1.2534( x − 1) − 0.6374( x − 1) 2 − 0.6753( x − 1) 3

La figura 13.2 muestra la gráfica de la función (línea punteada) y la gráfica de la serie. Puede
visualizarse la diferencia entre las dos curvas.

2.8

2.6

2.4

2.2

1.8

1.6

1.4

1.2

1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 13.2

A partir de la figura es claro que la serie de 4 términos converge a la función en el intervalo


0.4 ≤ x ≤ 1.4 , con lo que la aproximación no es buena en todo el intervalo.
Al efectuar la integral de cada término de la serie, se tiene:

S ( x) = ∫ s ( x )dx = 2.3198 x + 0.6267( x − 1) 2 − 0.2125( x − 1) 3 − 0.1688( x − 1) 4

En consecuencia, el área bajo la curva de la serie es:

Is = S (2) − S (0) ≅ 4.2133

Es claro que la aproximación utilizada es bastante pobre. Al evaluar directamente la integral con el
paquete, se tiene que I = 4.2365 . Una mejor aproximación se obtiene al aumentar el número de
términos de la serie. Sí se toma una aproximación de quinto grado, la convergencia se presenta en
todo el intervalo, con lo que la integral de la serie es prácticamente igual a la integral de la función.

13.3. Aproximación por interpolación cúbica por segmentos.


Consiste en efectuar una interpolación adecuada para la función y hacer la integral. El grado de la
aproximación dependerá del número de puntos y del tipo de interpolación. La más adecuada es la
interpolación cúbica por segmentos. El programa se describe a continuación.
% Programa para integrar usando interpolación cúbica por segmentos.
clear all
%Entrada de informacion
n=input('numero de datos=');
x=input('vector de abscisas=');
y=input('vector de ordenadas=');
W1=input('segunda derivada al principio=');
WN=input('segunda derivada al final=');
%Calculo de los tamaños de paso
139

for i=1:n-1
h(i)=x(i+1)-x(i);
end
%calculo de las segundas diferencias divididas
for k=1:n-2
b(k)=6*((y(k+2)-y(k+1))/h(k+1)-(y(k+1)-y(k))/h(k));
end
%Sistema de ecuaciones para hallar las segundas derivadas, desde w(2) hasta w(n-1)
% M*W=B
M(1,1)=2*(h(1)+h(2));
M(1,2)=h(2);
B(1)=b(1)-h(1)*W1;
M(n-2,n-3)=h(n-2);
M(n-2,n-2)=2*(h(n-2)+h(n-1));
B(n-2)=b(n-2)-h(n-1)*WN;
for k=2:n-3
M(k,k-1)=h(k);
M(k,k)=2*(h(k)+h(k+1));
M(k,k+1)=h(k+1);
B(k)=b(k);
end
aux=inv(M)*B';
W(1)=W1;
W(n)=WN;
for j=2:n-1;
W(j)=aux(j-1);
end
%Calculo de las primeras derivadas
for k=1:n-1
U(k)=(y(k+1)-y(k))/h(k)-(h(k)/6)*(2*W(k)+W(k+1));
end
% Calculo de los coeficientes de los polinomios
for k=1:n-1
c(k,1)=(W(k+1)-W(k))/(6*h(k));
c(k,2)=W(k)/2-3*x(k)*c(k,1);
c(k,3)=U(k)-x(k)*W(k)+3*c(k,1)*x(k)^2;
c(k,4)=-c(k,1)*x(k)^3+(x(k)^2)*W(k)/2-x(k)*U(k)+y(k);
end
%Representacion grafica de los polinomios
for i=1:n-1
t(i,:)=x(i):0.01*h(i):x(i+1);
p(i,:)=c(i,1).*(t(i,:).^3)+c(i,2).*(t(i,:).^2)+c(i,3).*t(i,:)+c(i,4);
plot(t(i,:),p(i,:),'k')
grid on
hold on
end
plot (x,y,'o')
for j=1:n-1
for i=1:4
s(i)=c(j,i);
end
disp(strcat('p',num2str(j),'=',poly2str(s,'t')));
end
%Rutina para integrar
I=0;
for i=1:n-1
140

I=I+c(i,1)*(x(i+1)^4-x(i)^4)/4+c(i,2)*(x(i+1)^3-x(i)^3)/3+c(i,3)*(x(i+1)^2-x(i)^2)/2+c(i,4)*(x(i+1)-x(i));
end
I

Ejemplo 13.3.
Para la función del ejemplo anterior tome cinco datos igualmente espaciados, efectúe interpolación
polinómica y haga un estimativo de la integral.

Solución.
Al ejecutar el programa se tiene:

>> intintercub
numero de datos=5
vector de abscisas=[0 0.5 1 1.5 2]
vector de ordenadas=[1 1.615 2.32 2.711 2.483]
segunda derivada al principio=1
segunda derivada al final=-1.827
p1= -0.12789 t^3 + 0.5 t^2 + 1.012 t + 1
p2= -0.64057 t^3 + 1.269 t^2 + 0.62746 t + 1.0641
p3= -0.54185 t^3 + 0.97288 t^2 + 0.92361 t + 0.96537
p4= 0.36797 t^3 - 3.1213 t^2 + 7.0649 t - 2.1053

I = 4.2358

La figura 13.3 muestra la gráfica correspondiente.

2.8

2.6

2.4

2.2

1.8

1.6

1.4

1.2

0.8
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 13.3
13.4. Fórmulas de Newton-Cotes
Son las fórmulas que se usan más a menudo para efectuar integrales numéricamente y no son
más que variantes de la interpolación polinómica. Los métodos consisten en hacer una partición del
dominio de la función en n intervalos igualmente espaciados, cada uno de tamaño h .

13.5. Regla de los trapecios.


Consideremos una función y = f (t ) de la cual se conocen n + 1 datos, así:

{( x1 , y1 ), ( x2 , y 2 ), ( x3 , y3 ),....( xn+1 , y n+1 )}


141

Para evaluar la integral definida entre a y b se procede de la siguiente manera:

b−a
1) Se calcula el tamaño de paso: h=
n
2) Se genera el vector de abscisas, así: x k = a + ( k − 1) h k = 1 : n + 1
3) Se genera el vector de ordenadas, así: yk = f ( xk )
4) Cada intervalo se describe mediante una recta, es decir, se efectúa interpolación lineal por
segmentos. Para el segmento: [ x k , x k +1 ] , la expresión matemática de la recta de la figura 13.4
es:
y k +1 − y k
Pk (t ) = y k + (t − x k )
h
5) Se evalúa la integral de la función de aproximación en el intervalo, así:

xk + h
⌠  y k +1 − y k  h
Ik =   yk + (t − x k )dt = ( y k + y k +1 )
⌡ xk  h  2

Figura 13.4

Al efectuar la aproximación se comete un error dado por: E k = f (t ) − Pk (t )


El error disminuye en la medida en que se reduce el tamaño de paso. Observe que el área
aproximada es el área del trapecio que la recta forma con el eje de abscisas en el intervalo, de ahí
el nombre de regla de los trapecios.
h n−1
6) El área total aproximada es la suma de las áreas individuales, así: I≅ ∑ ( y k + y k +1 )
2 k =0
Ejemplo 13.4
2 sen ( x )
Usando la regla de los trapecios haga un estimativo de la integral ∫0 e dx , con seis intervalos.

Solución.
El tamaño de paso viene a ser h = 1 / 3 . Se llena la tabla de valores y se calcula el valor
aproximado de la integral, así:

k xk yk
1 0 1
2 0.3333 1.3871
3 0.6667 1.8559
4 1 2.3198
142

5 1.3333 2.6431
6 1.6667 2.7058
7 2 2.4826

I≅
1
(1 + 2 ⋅ 1.3871 + 2 ⋅ 1.8559 + 2 ⋅ 2.3198 + 2 ⋅ 2.6431 + 2 ⋅ 2.7058 + 2.4826)
6

Resolviendo se tiene I ≅ 4.2176 . Sí se toman 12 intervalos, el resultado es I ≅ 4.2318 .

13.6. Análisis del error en el método de los trapecios


El error local que se comete en el intervalo [ x k , x k + h] cuando se evalúa la integral viene dado
por:

[ f ( x k ) + f ( x k + h) ]
xk + h h
Ek = ∫ f (t )dt −
xk 2
Para hacer un estimativo del error en el intervalo se usa la serie de Taylor de la función en un
entorno del punto medio del intervalo x m = x k + h / 2 . Así las cosas, la función se puede expresar
en la forma:

f ' ' ( xm ) f ' ' ' ( xm ) f ' ' ' ' ( xm )


f (t ) = f ( x m ) + f ' ( x m )(t − x m ) + (t − x m ) 2 + (t − xm ) 3 + (t − x m ) 4 + ...
2 6 24
La integral de la función en el intervalo viene dada por:

xm + h / 2 h3 h5
∫xm − h / 2
f (t )dt = hf ( x m ) +
24
f ' ' ( xm ) +
1820
f ' ' ' ' ( x m ) + ....

Puesto que el tamaño de paso es relativamente pequeño se pueden despreciar las potencias
superiores a la quinta, resultando que la integral es aproximadamente:

xm + h / 2 h3
∫xm − h / 2
f (t )dt = hf ( x m ) +
24
f ' ' ( xm )

Con lo anterior, el error local resultante en el intervalo es:

h3
f ' ' ( x m ) − [ f ( x k ) + f ( x k + h)]
h
E k = hf ( x m ) +
24 2
Sabemos que la función tiene un desarrollo en series de la forma:

1
f (t ) = f ( x m ) + f ' ( x m )(t − x m ) + f ' ' ( x m )(t − x m ) 2 + ....
2
Con base en lo anterior, tenemos:
143

h h2
f ( xk ) = f ( xm ) − f ' ( xm ) + f ' ' ( x m ) + ...
2 8
h h2
f ( x k + h) = f ( x m ) + f ' ( x m ) + f ' ' ( x m ) + ...
2 8
Sumando las expresiones anteriores se encuentra que:

h2
f ( x k ) + f ( x k + h) = 2 f ( x m ) + f ' ' ( xm )
4
Reemplazando en la función de error, resulta:

h2 h h2 
E k = hf ( x m ) + f ' ' ( x m ) −  2 f ( x m ) + f ' ' ( x m ) 
24 2 4 
h3
Simplificando se tiene que el error local aproximado es: Ek ≅ − f ' ' ( xm )
12
El error global cometido es la suma de los errores locales, así:

n
h3 n
E = ∑ E k = − ∑ f ' ' ( xm )
k =1 12 k =1

Puede hacerse un estimativo de la segunda derivada en el intervalo usando diferencias divididas,


tal como se ilustra a continuación. Dados tres puntos de una función
( x k −1 , y k −1 ) ( xk , y k ) ( x k +1 , y k +1 ) , la primera y la segunda derivada en el punto central se
pueden estimar mediante diferencias divididas, así:
La serie de potencias de la función en un entorno de xk esta dada por:
1
f (t ) = f ( x k ) + f ' ( x k )(t − x k ) + f ' ' ( x k )(t − x k ) 2
2

Evaluando en los extremos del intervalo y teniendo en cuenta que f ( xk ) = y k tenemos:


h2
1. y k −1 = y k − hf ' ( x k ) + f ' ' ( xk )
2
h2
2. y k +1 = y k + hf ' ( x k ) + f ' ' ( xk )
2
En las ecuaciones previas se tomó: h = x k − x k −1 = x k +1 − x k
Combinando las ecuaciones anteriores, encontramos que:

y k +1 − y k y k +1 − 2 y k + y k −1
f ' ( xk ) = f ' ' ( xk ) =
2h h2
Para poder hacer un estimativo del error en el caso que nos ocupa se requiere un punto adicional
o, con la información dada tomar únicamente n − 1 derivadas, así:
144

h 3 n y k −1 − 2 y k + y k +1 h n
E=− ∑
12 k = 2 h2
= − ∑ [ y k −1 − 2 y k + y k +1 ]
12 k = 2

Conocido el error estimado se puede afirmar que la integral definida viene dada por:

h n
∑ ( y k + y k +1 ) ± E
b
∫ a
f ( x)dx =
2 k =1

A manera de conclusión, sí denotamos por IT (h) el valor aproximado de la integral por el método
de los trapecios para un h dado, tenemos:

b
∫ a
f ( x)dx = IT (h) + ET (h)
h n h n
IT (h) = ∑ ( y k + y k +1 )
2 k =1
ET (h) = − ∑ ( y k −1 − 2 y k + y k +1 )
12 k = 2

Ejemplo 13.5
2 sin( x )
Usando la regla de los trapecios haga un estimativo del error al evaluar la integral ∫0 e dx , para:
a) n=6
b) n = 12

Solución.
a) Para n = 6 el tamaño de paso es h = 1 / 3 , con lo que el error se puede estimar a partir de la
tabla de valores, así:

k xk yk
1 0 1
2 0.3333 1.3871
3 0.6667 1.8559
4 1 2.3198
5 1.3333 2.6431
6 1.6667 2.7058
7 2 2.4826

1 6
ET (h = 1 / 3) = − ∑ ( y k −1 − 2 y k + y k +1 ) ⇒
36 k = 2

ET (h = 1 / 3) = − (1 − 2 ⋅ 1.3871 + 2 ⋅ 1.8559 − 2 ⋅ 2.3198 + 2 ⋅ 2.6431 − 2 ⋅ 2.7058 + 2.4826) ⇒


1
36
ET (h = 1 / 3) = 0.0170

Con base en al análisis de error, tenemos:


2
4.2176 − 0.017 ≤ ∫ e sen ( x ) dx ≤ 4.2176 + 0.017 ⇒
0
2
4.2007 ≤ ∫ e sen ( x )
dx ≤ 4.2346
0
145

b) Siguiendo el mismo procedimiento, con h = 1 / 6 se llega a los siguientes resultados:

k xk yk
1 0 1
2 0.1667 1.1805
3 0.3333 1.3871
4 0.5 1.6151
5 0.6667 1.8559
6 0.8333 2.0963
7 1 2.3198
8 1.1667 2.5079
9 1.3333 2.6431
10 1.5 2.7115
11 1.6667 2.7058
12 1.8333 2.6267
13 2 2.4826

1 12
ET (h = 1 / 6) = − ∑ ( y k −1 − 2 y k + y k +1 ) ⇒
72 k = 2
ET (h = 1 / 6) = 0.0045

Con base en al análisis de error, tenemos:

2
4.2318 − 0.0045 ≤ ∫ e sen ( x ) dx ≤ 4.2318 + 0.0045 ⇒
0
2
4.2273 ≤ ∫ e sen ( x ) dx ≤ 4.2363
0

Es evidente que el error disminuye al aumentar el número de intervalos.

13.7. Integración por el método de Romberg.


Con base en la aplicación de la regla de los trapecios para dos tamaños de paso diferentes h1 ,h2 ,
se puede hacer un estimativo más adecuado de la integral, tal como se justifica a continuación.

b

a
f ( x)dx = IT (h1 ) +ET (h1 )
b

a
f ( x)dx = IT (h2 ) +ET (h2 )
Convenimos en que: h1 > h2
h3 n
Hemos encontrado que el error global viene dado por: ET (h) = − ∑ f ' ' ( xm )
12 k =1
La segunda derivada promedio en el intervalo se define como:

∑ f ''(x m )
f ' ' prom = k =1

n
146

b−a
En la expresión anterior, n es el número de intervalos, así n = . En tal caso, el error
h
cometido se puede expresar como:
(b − a )h 2
ET (h) = − f ' ' prom
12
En consecuencia, podemos expresar la integral de la función de dos maneras diferentes, así:

(b − a)h1
2
b
∫ a
f ( x)dx = IT (h1 ) −
12
f ' ' prom

(b − a )h2
2
b

a
f ( x)dx = IT (h2 ) −
12
f ' ' prom

Puesto que la segunda derivada promedio es independiente del tamaño de paso, se tiene de las
dos ecuaciones anteriores:
b I (h2 ) − α 2 I (h1 ) h
∫ a
f ( x)dx =
1−α 2
α= 2
h1

Se espera que la integral obtenida sea mucho más aproximada que las integrales individuales.
Para el ejemplo anterior, tenemos:

h1 = 1 / 3 h2 = 1 / 6 α = 1 / 2 I (h1 ) = 4.218 I (h2 ) = 4.232

Aplicando la fórmula de Romberg, resulta:


1
2
4.232 − 4.218
∫0 e dx =
sen ( x ) 4 = 4.237
3
4
El estudiante puede verificar que el resultado encontrado es exacto para aritmética de tres dígitos
decimales.

13.8. Regla de Simpson un tercio.


Consiste en aproximar la función en el intervalo: [ x k , x k + 2 ] mediante un polinomio de segundo
grado, de la forma:
Pk (t ) = a k t 2 + bk t + c k

Usando diferencias divididas, el polinomio interpolante viene dado por:

y k +1 − y k y − 2 y k +1 + y k
Pk (t ) = y k + (t − x k ) + k + 2 (t − x k )(t − x k +1 )
h 2h 2
Desarrollando el polinomio de Newton se encuentra que:

y k + 2 − 2 y k +1 + y k
ak =
h2
147

y k +1 − y k
bk = − ( xk + x k +1 )a k
h
y − yk
c k = y k − x k k +1 + x k x k +1 a k
h
La integral de la función en el intervalo, siempre que el número de intervalos sea par, se puede
expresar como:
xk + 2 xk + 2 xk + 2
∫xk
f (t )dt = ∫
xk
Pk (t )dt + ∫
xk
Ek

Evaluando la integral, se obtiene la regla de Simpson un tercio, así:

h n −1 n −1

∑ ( y k + 4 y k +1 + y k + 2 ) + ∑ E k
b

a
f (t )dt =
3 k =1,3,5 k =1

De manera similar a la regla de los trapecios se puede demostrar que el error local Ek que se
comete al aplicar la regla de Simpson viene dado por:

h5
Ek = − f ' ' ' ' ( xm ) xm = xk + h / 2
90
El error global cometido al aplicar la regla de Simpson un tercio se puede escribir de la siguiente
manera:
h 4 (b − a) n −1
E=−
90 N k =0
∑ f ' ' ' ' ( xm )
La cuarta derivada promedio en el intervalo es:

n −1
1
f ' ' ' ' prom =
N
∑ f ''''(x
k =0
m )

Con base en lo anterior, el error global es:

h 4 (b − a )
E=− f ' ' ' ' prom
90
La expresión anterior nos dice que el error global es proporcional a la cuarta potencia del tamaño
de paso, es decir, que si el tamaño de paso es menor que la unidad, el error global cometido es
menor que el que se comete con la regla de los trapecios.
Puede hacerse un estimativo de la cuarta derivada promedio en el intervalo usando diferencias
divididas centradas, así:
Para tres datos y k −1 y k y k +1 , se pueden aproximar la primera y la segunda derivada en x k
así:
y k +1 − y k −1
f ' ( xk ) =
2h
y − 2 y k + y k −1
f ' ' ( x k ) = k +1
h2
148

Para cinco datos y k −2 y k −1 yk y k +1 y k + 2 , se pueden aproximar la tercera y la cuarta


derivada en xk así:

y k + 2 − 2 y k +1 + 2 y k −1 − y k −2 y k + 2 − 4 y k +1 + 6 y k − 4 y k −1 + y k − 2
f ' ' ' ( xk ) = f iv ( x k ) =
2h 3 h4
En consecuencia, un estimativo de error en el intervalo de integración es:

h 5 n −1 y k + 2 − 4 y k +1 + 6 y k − 4 y k −1 + y k −2
E=− ∑
90 k =3 h4
Simplificando, se tiene:
h n−1
E=− ∑ ( y k −2 − 4 y k −1 + 6 y k − 4 y k +1 + y k +2 )
90 k =3

La regla de Simpson un tercio se puede escribir en la forma:

h n/2
IS1 = ∑ ( y 2i −1 + 4 y 2i + y 2i +1 )
3 i =1

Ejemplo 13.6
2 sin( x )
Considere la integral definida: ∫0 e dx
a) Usando la regla de Simpson un tercio calcule la integral y el error con n = 6
b) Usando la regla de Simpson un tercio calcule la integral y el error con n = 12

Solución.
a) Para n = 6 , h = 1 / 3 , con lo que:

k xk yk
1 0 1
2 0.3333 1.3871
3 0.6667 1.8559
4 1 2.3198
5 1.3333 2.6431
6 1.6667 2.7058
7 2 2.4826

1 3
IS1(1 / 3) = ∑ ( y 2i−1 + 4 y 2i + y 2i+1 )
9 i =1

IS1(1 / 3) = (1 + 4 ⋅ 1.3871 + 2 ⋅ 1.8559 + 4 ⋅ 2.3198 + 2 ⋅ 2.6431 + 4 ⋅ 2.7058 + 2.4826)


1
9
IS1(1 / 3) = 4.2368

En cuanto al error se tiene:


149

h 5
E=− ∑ ( y k −2 − 4 y k −1 + 6 y k − 4 y k +1 + y k +2 )
90 k =3
1 − 4 ⋅ 1.3871 + 6 ⋅ 1.8559 − 4 ⋅ 2.3198 + 2.6431 
1  
E=−  + 1.3871 − 4 ⋅ 1.8559 + 6 ⋅ 2.3198 − 4 ⋅ 2.6431 + 2.7058 
270  
1.8559 − 4 ⋅ 2.3198 + 6 ⋅ 2.6431 − 4 ⋅ 2.7058 + 2.4826 

Simplificando se tiene: E = 0.0002267


Con base en el análisis de error, tenemos:

2
4.2366 ≤ ∫ e sen ( x ) dx ≤ 4.2370
0

b) Para n = 12 , h = 1 / 6 , con lo que:

k xk yk
1 0 1
2 0.1667 1.1805
3 0.3333 1.3871
4 0.5 1.6151
5 0.6667 1.8559
6 0.8333 2.0963
7 1 2.3198
8 1.1667 2.5079
9 1.3333 2.6431
10 1.5 2.7115
11 1.6667 2.7058
12 1.8333 2.6267
13 2 2.4826

1 6
IS1(1 / 6) = ∑ ( y 2i−1 + 4 y 2i + y 2i+1 )
18 i =1
IS1(1 / 6) = 4.2365

En cuanto al error se tiene:


h 11
E=− ∑ ( y k −2 − 4 y k −1 + 6 y k − 4 y k +1 + y k +2 )
90 k =3
E = −0.0000243
Con base en el análisis de error, tenemos:

2
4.2365 ≤ ∫ e sen ( x ) dx ≤ 4.2365
0

13.9. Regla de Simpson tres octavos.


Corresponde al caso de la interpolación cúbica por segmentos, es decir, se encuentra un polinomio
de tercer grado en el intervalo [ x k , x k +3 ] .
Es claro que para aplicar la regla se requiere que el número de intervalos sea un múltiplo de tres.
150

xk + 3 xk + 3
Ik = ∫ f (t )dt = ∫ (a k t 3 + bk t 2 + c k t + d k )dt + E k
xk xk

Los coeficientes del polinomio se determinan por el método de las diferencias divididas. . No se
presentan las operaciones por lo engorroso de su deducción, pero los resultados son los
siguientes:
b

a
f (t )dt = IS 3 + ES 3

En la expresión anterior, el primer término de la derecha corresponde a la integral aproximada por


la regla de Simpson tres octavos y viene dada por:

3 n −3
IS 3 = h ∑ ( y k +3 + 3 y k + 2 + 3 y k +1 + y k )
8 k =0,3,6...

El error global al aplicar la regla viene dado por:

3 5
ES 3 = − h f ' ' ' ' prom
80
De manera similar a los casos anteriores, un estimativo del error es el siguiente:

3h n−1
E=− ∑ ( y k −2 − 4 y k −1 + 6 y k − 4 y k +1 + y k +2 )
80 k =3

La regla de Simpson tres octavos se puede escribir en la forma:

3 n/3
IS 3 = h∑ ( y 3 j − 2 + 3 y 3 j −1 + 3 y 3 j + y 3 j +1 )
8 j =1

Observe que el error es menor que el correspondiente a la regla de Simpson un tercio.

Ejemplo 13.7
2 sin( x )
Considere la integral definida: ∫0 e dx
a) Usando la regla de Simpson un tercio calcule la integral y el error con n = 6
b) Usando la regla de Simpson un tercio calcule la integral y el error con n = 12

Solución.
a) Para n = 6 el tamaño de paso es h = 1 / 3 , con lo que:

k xk yk
1 0 1
2 0.3333 1.3871
3 0.6667 1.8559
4 1 2.3198
5 1.3333 2.6431
6 1.6667 2.7058
151

7 2 2.4826

3 n/3
IS 3(1 / 3) = h∑ ( y3 j −2 + 3 y 3 j −1 + 3 y 3 j + y 3 j +1 )
8 j =1

IS 3(1 / 3) =
1
(1 + 3 ⋅ 1.3871 + 3 ⋅ 1.8559 + 2 ⋅ 2.3198 + 3 ⋅ 2.6431 + 3 ⋅ 2.7058 + 2.4826)
8
IS 3(1 / 3) = 4.2372

En cuanto al error se tiene:


3h 5
E=− ∑ ( y k −2 − 4 y k −1 + 6 y k − 4 y k +1 + y k +2 )
80 k =3
1 − 4 ⋅ 1.3871 + 6 ⋅ 1.8559 − 4 ⋅ 2.3198 + 2.6431 
1  
E = −  + 1.3871 − 4 ⋅ 1.8559 + 6 ⋅ 2.3198 − 4 ⋅ 2.6431 + 2.7058 
80  
1.8559 − 4 ⋅ 2.3198 + 6 ⋅ 2.6431 − 4 ⋅ 2.7058 + 2.4826 

Simplificando se tiene: E = −0.0007651


Con base en el análisis de error, tenemos:

2
4.2364 ≤ ∫ e sen ( x ) dx ≤ 4.2380
0

b) Para n = 12 el tamaño de paso es h = 1 / 6 , con lo que:

k xk yk
1 0 1
2 0.1667 1.1805
3 0.3333 1.3871
4 0.5 1.6151
5 0.6667 1.8559
6 0.8333 2.0963
7 1 2.3198
8 1.1667 2.5079
9 1.3333 2.6431
10 1.5 2.7115
11 1.6667 2.7058
12 1.8333 2.6267
13 2 2.4826

3 n/3
IS 3(1 / 6) = h∑ ( y 3 j − 2 + 3 y 3 j −1 + 3 y3 j + y3 j +1 )
8 j =1
1 1 + 3 ⋅ 1.1805 + 3 ⋅ 1.3871 + 2 ⋅ 1.6151 + 3 ⋅ 1.8559 + 3 ⋅ 2.0963 + 2.3198 
IS 3(1 / 6) =  
16  + 2.3198 + 3 ⋅ 2.5079 + 3 ⋅ 2.6431 + 2 ⋅ 2.7115 + 3 ⋅ 2.7058 + 3 ⋅ 2.6267 + 2.4826 
IS 3(1 / 6) = 4.2366

En cuanto al error se tiene:


152

3h 11
E=− ∑ ( y k −2 − 4 y k −1 + 6 y k − 4 y k +1 + y k +2 )
80 k =3
E = −0.00008
2
Con base en el análisis de error, tenemos: 4.2366 ≤ ∫ e sen ( x ) dx ≤ 4.2366
0

Las fórmulas de integración presentadas reciben el nombre de fórmulas abiertas de Newton-Cotes


y son las más utilizadas para evaluar integrales definidas. Antiguamente se usaban las fórmulas
cerradas, que son variaciones de las fórmulas abiertas. Hoy por hoy, las calculadoras personales
traen incorporadas las fórmulas de integración. Igualmente, los paquetes de computador como el
Matlab permiten integrar directamente. Otros métodos de integración se han desarrollado, entre los
que merece especial atención el de la cuadratura Gaussiana, que se estudiará en el próximo
módulo.

13.10. Programa para integración de Newton-Cotes.


%Programa para integrar una funcion de una variable por las reglas de Newton-Cotes
clear all
xi=input('valor inicial= ');
xf=input('valor final= ');
% El numero de intervalos debe ser multiplo de 6 de tal manera que se apliquen los tres
metodos
N=input('numero de intervalos= ');
h=(xf-xi)/N;
f=input('entre la funcion f(t)= ');
% Se genera los vectores de abscisas y ordenadas
for i=1:N+1
x(i)=xi+h*(i-1);
t=x(i);
y(i)=eval(f);
end
% Se generan la integral IT y el error ET por la regla del trapecio
IT=0;
ET=0;
for i=1:N
IT=IT+(h/2)*(y(i)+y(i+1));
end
for i=2:N
ET=ET-(h/12)*(y(i-1)-2*y(i)+y(i+1));
end
IT
ET
% Se generan la integral IS1 y el error ES1 por la regla del Simpson 1/3
IS1=0;
ES1=0;
for i=1:N/2
IS1=IS1+(h/3)*(y(2*i-1)+4*y(2*i)+y(2*i+1));
end
for i=3:N-1
ES1=ES1-(h/90)*(y(i-2)-4*y(i-1)+6*y(i)-4*y(i+1)+y(i+2));
end
IS1
ES1
% Se generan la integral IS3 y el error ES3 por la regla del Simpson 3/8
IS3=0;
153

ES3=0;
for i=1:N/3
IS3=IS3+(3*h/8)*(y(3*i-2)+3*y(3*i-1)+3*y(3*i)+y(3*i+1));
end
for i=3:N-1
ES3=ES3-(3*h/80)*(y(i-2)-4*y(i-1)+6*y(i)-4*y(i+1)+y(i+2));
end
IS3
ES3

Ejemplo 13.8

Usando el programa calcule, por los diferentes métodos, la integral y el error cometido al evaluar la
integral:
π

0
x 1 + 2 sen( x)
Ejecute con n = 24

Solución.
>> integraNC
valor inicial= 0
valor final= pi
numero de intervalos= 24
entre la funcion f(t)= 't*sqrt(1+2*sin(t))'

IT =7.3590
ET =0.0042
IS1 =7.3634
ES1 =8.2023e-006
IS3 =7.3634
ES3 = 2.7683e-005

EJERCICIOS

1) Considere la función: f ( x) = 1 + sen 2 ( x ) ; 0 ≤ x ≤ π / 2


a) Determine el polinomio de Taylor de tercer grado en una vecindad de x = π / 4
b) En la misma figura represente la función original y el polinomio de Taylor.
π /2
c) A partir del polinomio haga un estimativo de la integral ∫0
f ( x )dx
d) Tomando 4 puntos en el intervalo efectúe interpolación cúbica por segmentos.
e) Calcule la integral mediante las fórmulas de Newton-Cotes con n = 12

2) Repita el numeral anterior con la función f ( x) = tan( x / 2)

4) Repita el numeral anterior con la función f ( x) = 3 + 2 cos( x)

5) Repita el numeral anterior con la función f ( x) = xe cos( x )


154
155

MÓDULO 14
INTEGRACIÓN NUMÉRICA POR CUADRATURA

Contenido.
En este módulo se presenta la integración numérica por cuadratura Gaussiana y se desarrollan los
siguientes temas:

14.1. Polinomios de Legendre


14.2. Desarrollo de una función mediante los polinomios de Legendre
14.3. Integración por cuadratura de dos puntos
14.4. Cuadratura Gaussiana de tercer orden
14.5. Cuadratura Gaussiana generalizada

14.1. Polinomios de Legendre.


Los polinomios de Legendre resultan de resolver la ecuación diferencial de Legendre de orden
n ∈ N así:
(1 − x 2 ) y ' ' ( x) − 2 xy' ( x) + n(n + 1) y ( x) = 0

14.1.1. Representación gráfica.


En un curso de ecuaciones diferenciales para ingeniería se aprende a resolver dicha ecuación,
resultando que una de las soluciones de la ecuación diferencial es un polinomio de grado n, así:

n = 0 P0 ( x) = 1
n = 1 P1 ( x) = x
1
n = 2 P2 ( x) = (3 x 2 − 1)
2
1
n = 3 P3 ( x) = (5 x 3 − 3x)
2
1
n = 4 P4 ( x) = (35 x 4 − 30 x 2 + 3)
8
1
n = 5 P5 ( x) = (63x 5 − 70 x 3 + 15 x)
8
1
n = 6 P6 ( x) = (231x 6 − 315 x 4 + 105 x 2 − 5)
16
1
n = 7 P7 ( x) = (429 x 7 − 693x 5 + 315 x 3 − 35 x)
16
Los polinomios de Legendre presentan ciertas propiedades, entre las que son dignas de destacar,
las siguientes:
1. Un polinomio de Legendre es estrictamente par o estrictamente impar.
2. Los polinomios pares pasan por los puntos: (−1,1) y (1,1)
3. Los polinomios impares pasan por los puntos: ( −1,−1) y (1,1)
4. Todas las raíces de los polinomios de grado mayor o igual que uno son reales y están en el
intervalo: − 1 < x < 1
5. Los polinomios son ortogonales en el intervalo: − 1 < x < 1
La propiedad de ortogonalidad se plantea en los siguientes términos:
156

 0 si m ≠ n
1 
∫−1 n m
P (t ) P (t ) dt =  2 si m = n
 2n + 1

6. Los polinomios se generan a partir de la fórmula de Rodrigue

Pn (t ) =
1 dn 2
n
2 n! dt n
(
t −1
n
)
7. A partir de P0 (t ) = 1 y de P1 (t ) = t se pueden generar los demás polinomios mediante la
fórmula recursiva:
(2n + 1)tPn (t ) − nPn −1 (t )
Pn +1 (t ) =
n +1
La figura 14.1 ilustra la gráfica de los polinomios de primero a cuarto grado.

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6 p1
p2
-0.8 p3
p4
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Figura 14.1

14.1.2. Raíces de los polinomios de Legendre.


Las raíces de los polinomios se pueden obtener numéricamente y guardarlas en un arreglo
matricial, de la siguiente manera:

%Raices de los polinomios de Legendre


clear all
p1=[1 0];
p2=[3/2 0 -1/2];
p3=[5/2 0 -3/2 0];
p4=[35/8 0 -30/8 0 3/8];
p5=[63/8 0 -70/8 0 15/8 0];
p6=[231/16 0 -315/16 0 105/16 0 -5/16];
157

p7=[429/16 0 -693/16 0 315/16 0 -35/16 0];


r(1,1)=0;
for j=2:7
r(1,j)=0;
end
r(2,1)=-0.5774;
r(2,2)=0.5774;
for j=3:7
r(2,j)=0;
end
r(3,1)=-0.7746;
r(3,2)=0;
r(3,3)=-r(3,1);
for j=4:7
r(3,j)=0;
end
r(4,1)=-0.8611;
r(4,2)=-0.34;
r(4,3)=-r(4,2);
r(4,4)=-r(4,1);
for j=5:7
r(4,j)=0;
end
r(5,1)=-0.9062;
r(5,2)=-0.5385;
r(5,3)=0
r(5,4)=-r(5,2);
r(5,5)=-r(5,1);
for j=6:7
r(5,j)=0;
end
r(6,1)=-0.9325;
r(6,2)=-0.6612;
r(6,3)=-0.2386;
r(6,4)=-r(6,3);
r(6,5)=-r(6,2);
r(6,6)=-r(6,1);
r(6,7)=0;
r(7,1)=-0.9491;
r(7,2)=-0.7415;
r(7,3)=-0.4058;
r(7,4)=0;
r(7,5)=-r(7,3);
r(7,6)=-r(7,2);
r(7,7)=-r(7,1);
r

n r1 r2 r3 r4 r5 r6
2 -0.5774 0.5774
3 -0.7746 0 0.7746
4 -0.8611 -0.3400 0.3400 0.8611
5 -0.9062 -0.5385 0 0.5385 0.9062
6 -0.9325 -0.6612 -0.2386 0.2386 0.6612 0.9325
158

14.2. Desarrollo de una función mediante polinomios de Legendre.


Sabemos que para desarrollar una función mediante una serie de potencias se requiere que dicha
función sea continua y tenga todas sus derivadas continuas en un entorno de cualquier punto de su
dominio. Lo anterior significa que una función seccionalmente continua no se puede expresar en
términos de series de potencias de Taylor. Veremos a continuación que, una función
seccionalmente continua en el intervalo − 1 < x < 1 se puede expresar en términos de los
polinomios de Legendre.

f ( x) = c0 P0 ( x) + c1 P1 ( x) + c 2 P2 ( x) + .... + c n Pn ( x)

Los coeficientes del desarrollo se determinan con base en la propiedad de ortogonalidad, así: si se
multiplica la ecuación por Pm (x ) tenemos:

f ( x) Pm ( x) = c0 P0 ( x) Pm ( x) + c1 P1 ( x) Pm ( x) + c 2 P2 ( x) Pm ( x) + .... + c n Pn ( x) Pm ( x)

Integrando en el intervalo y aplicando la propiedad de ortogonalidad, resulta:

1 1
∫−1
f ( x) Pn ( x)dx = ∫ c n Pn ( x) Pn ( x)dx
−1

Despejando, tenemos:
2n + 1 1
2 ∫−1
cn = f ( x) Pn ( x)dx

Cuando la función no está definida en el intervalo − 1 < x < 1 sino en un intervalo cualquiera, se
puede hacer la siguiente conversión: Si f (x) está definida en el intervalo ( a, b) , se hace el
cambio de variable x = pt + q de tal manera que el nuevo dominio sea − 1 < t < 1 .
Para lograr lo anterior se tiene que:
a = −p + q
b= p+q
De lo anterior se sigue que:
p = (b − a ) / 2
q = (b + a ) / 2

La nueva función, en el intervalo − 1 < t < 1 , es: f ( pt + q )

Ejemplo 14.1
Considere la función: f ( x) = sen( x ) ; − π / 3 ≤ x ≤ 2π / 3
a) Represente gráficamente la función en el intervalo dado.
b) Haga el cambio de variable x = pt + q de tal manera que la función quede en el intervalo
− 1 < t < 1 y grafique.
a) La figura 14.2 muestra las dos gráficas. La punteada corresponde a la función original.
b) De acuerdo con lo desarrollado previamente, se tiene.

p = (b − a ) / 2 = (2π / 3 − −π / 3) / 2 = π / 2
q = (b + a ) / 2 = (2π / 3 + −π / 3) / 2 = π / 6
El cambio de variable es:
159

π π
x= t+
2 6
Así las cosas, la nueva función es:
π π
f (t ) = sen t +  ; − 1 ≤ t ≤ 1
2 6

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-1.5 -1 -0.5 0 0.5 1 1.5 2 2.5

Figura 14.2

Ejemplo 14.2
Considere la función definida como:
 0 si x < −1

f ( x) =  x si − 1 < x < 1
 0 si x > 1

a) Represente gráficamente la función en el intervalo


b) Exprese la función mediante un desarrollo de Legendre de orden cuatro

Solución.
a) La gráfica de la función se hace usando el paquete Matlab y se muestra en la figura 14.3 junto
con la función de aproximación.
b) Puesto que la función es par, su desarrollo de Legendre de orden cuatro es:

L( x) = c0 + c 2 P2 ( x) + c 4 P4 ( x)

Los coeficientes se calculan de la siguiente manera:

1 1 1
c0 = ∫
2 −1
f ( x)dt = ∫ xdx = 0.5
0

c2 =
5 1
2 ∫−1
[ ] 1
[ ]
f ( x) 1.5 x 2 − 0.5 dx = 5∫ x 1.5 x 2 − 0.5 dx =0.625
0
160

c4 =
9 1
2 ∫−1
[ ]
f ( x) (35 / 8) x 4 − (30 / 8) x 2 + 3 / 8 dx = − 0.187

El polinomio de Legendre resultante es:

L( x) = −0.8181x 4 + 1.6388 x 2 + 0.1174

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Figura 14.3

14.3. Integración por cuadratura Gaussiana para dos puntos.


Partamos de la expresión que permite hallar los coeficientes del desarrollo, esto es:

2n + 1 1
2 ∫−1
cn = f ( x) Pn ( x)dx
Si se hace n = 0 resulta una expresión para la integral, así:

1
∫ −1
f ( x)dx = 2c0

Si el desarrollo de la función es de segundo orden, se tiene:

1
f ( x) = c0 + c1 P1 ( x) + c 2 P2 ( x) = c0 + c1 x + c 2 (3 x 2 − 1)
2
3
Las raíces de P2 ( x) vienen dadas por ± . Evaluando la función en dichas raíces, resultan las
3
ecuaciones:
3
f ( 3 / 3) = c0 + c1
3
3
f (− 3 / 3) = c 0 − c1
3
161

Sumando las ecuaciones anteriores, tenemos:

1
∫−1
f ( x)dx = f (− 3 / 3) + f ( 3 / 3)

Ejemplo 14.3
Usando cuadratura Gaussiana de segundo orden, encuentre un valor aproximado para la integral:

2
I = ∫ e sen ( x ) dx
0
Solución.
Primero que todo cambiamos de variable, así:

b−a b+a
x= t+ ⇒ x = t +1
2 2
1
La integral queda en la forma: I = ∫ e sen ( t +1) dt
−1

f (t ) = e sen (t +1) ⇒
f (−0.5574) = 1.5071
f (0.5574) = 2.7182

Aplicando la fórmula resulta I = 1.5071 + 2.7182 = 4.2253

14.4. Cuadratura Gaussiana de tres puntos.


En este caso el desarrollo de la función es:

1 1
f (t ) = c0 + c1 x + c 2 (3 x 2 − 1) + c3 (5 x 3 − 3 x)
2 2

Las raíces del polinomio P3 ( x) son, aproximadamente, las siguientes:

r1 = −0.7746 r2 = 0 r3 = 0.7746

Al reemplazar en el desarrollo, se obtienen las ecuaciones:

c0 + c1 P1 (r1 ) + c2 P2 (r1 ) = f (r1 )


c0 + c1 P1 (r2 ) + c 2 P2 (r2 ) = f (r2 )
c0 + c1 P1 (r3 ) + c2 P2 (r3 ) = f (r3 )

Resolviendo de manera simultánea, se encuentra que:

1
∫−1
f ( x)dx = α 1 f (r1 ) + α 2 f (r2 ) + α 3 f (r3 )

Donde: α 1 = 0.55556 α 2 = 0.88889 α 3 = 0.55556

El resultado, para el ejemplo anterior es: I = 4.2361


162

14.5. Cuadratura Gaussiana de n puntos.


El método de la cuadratura Gaussiana se puede generalizar a un número cualquiera, de la
siguiente manera:
n
f ( x )dx = ∑ α k f (rk )
1
∫−1
k =1

A continuación se muestra una tabla en la que aparecen los factores de peso de acuerdo al
número de puntos:

n α1 α2 α3 α4 α5 α6
2 1 1
3 0.5556 0.8889 0.5556
4 0.3485 0.6522 0.6522 0.3485
5 0.2369 0.4786 0.5689 0.4786 0.2369
6 0.1713 0.3608 0.4679 0.4679 0.3608 0.1713

La tabla puede ampliarse a un mayor número de puntos, sin embargo, con n = 6 es suficiente en
los casos de interés.
El siguiente código permite evaluar cualquier integral definida en el intervalo − 1 ≤ x ≤ 1 .

%Cuadratura Gaussiana para n=2,3,4,5,6


clear all
%Se entra la matriz de las raices
r=[0 0 0 0 0 0;-0.5774 0.5774 0 0 0 0;-0.7746 0 0.7746 0 0 0;-0.8611 -0.34 0.34 0.8611 0 0;-0.9062
-0.5385 0 0.5385 0.9062 0;-0.9325 -0.6612 -0.2386 0.2386 0.6612 0.9325];
c=[0 0 0 0 0 0;1 1 0 0 0 0;0.5556 0.8889 0.5556 0 0 0;0.3479 0.6522 0.6522 0.3479 0 0;0.2369
0.4786 0.5689 0.4786 0.2369 0;0.1713 0.3608 0.4679 0.4679 0.3608 0.1713];
n=input('numero de puntos=');
f=input('la funcion a integrar es f(t)=');
I=0;
for i=1:n
t=r(n,i);
s(i)=eval(f);
I=I+s(i)*c(n,i);
end
I

Ejemplo 14.4
Encuentre la integral del ejemplo anterior usando cuadratura de 4,5 y 6 puntos:

Solución.
a) Para n=4
>> cuadratura
numero de puntos=4
la funcion a integrar es f(t)='exp(sin(t+1))'

I = 4.2370

b) Para n=5
>> cuadratura
numero de puntos=5
la funcion a integrar es f(t)='exp(sin(t+1))'

I = 4.2363
163

c) Para n=6
>> cuadratura
numero de puntos=6
la funcion a integrar es f(t)='exp(sin(t+1))'

I = 4.2365

Como vemos, se obtienen buenas aproximaciones con un número relativamente pequeño de


operaciones.

EJERCICIOS

1) Considere la función:
 0 si x < −1

f ( x) =  x + 1 si − 1 < x < 1
 0 si x > 1

a) Exprese la función mediante una aproximación de Legendre de grado 5
b) En la misma figura represente la función y la aproximación encontrada

2) Usando cuadratura Gaussiana de 2, 3, 4, 5 y 6 puntos, evalúe las siguientes integrales:

π /2
a) I 1 =∫ 1 + sen 2 ( x)dx
0
π /4
b) I2 = ∫ tan( x) dx
0
π /2
c) ∫ 0
3 + 2 cos( x)dx
1
d) ∫ e
x
x dx
0

∫0 x 3 + 2dx
2
e)
164

MÓDULO 15
PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN

Contenido.
En este módulo se presenta la solución de un problema de valor inicial de primer orden y
desarrollan los siguientes temas:

15.1. Introducción
15.2. Problema de valor inicial
15.3. Teorema de existencia y unicidad
15.4. Ecuaciones diferenciales de variables separables
15.5. Ecuaciones diferenciales homogéneas
15.6. Ecuaciones diferenciales exactas
15.7. Ecuaciones diferenciales lineales
15.8. Solución de ecuaciones diferenciales usando dsolve

15.1. Introducción.
Se presentará un enfoque de las ecuaciones diferenciales aplicado a la solución de problemas de
ingeniería. Se supone que el estudiante, en el curso previo de ecuaciones diferenciales, adquirió
los conocimientos y las destrezas para la solución de ecuaciones diferenciales en general.

15.2. Problema de valor inicial


Un problema de valor inicial es el que se formula mediante una ecuación diferencial y un número
preciso de condiciones iniciales. Para el caso que nos ocupa, en principio, la formulación de un
problema de valor inicial de primer orden es la siguiente

dy( x )
= f ( x, y ); y (x0 ) = y 0
dx
Si hacemos una interpretación geométrica simple del problema (puede tratarse de un problema
físico o de otra índole), la solución del problema es “la curva del plano que satisface a la ecuación
diferencial y pasa por el punto ( x 0 , y 0 ) . Cabe preguntarnos aquí algunas cosas que más adelante
intentaremos resolver.
a. ¿Cuál es la región R del plano en la que el problema tiene solución?
b. ¿Bajo qué condiciones la solución que pasa por el punto ( x 0 , y 0 ) es única?
c. ¿En qué medida las soluciones pueden expresarse en términos de funciones elementales?

Antes de proceder formalmente con el teorema de existencia y unicidad es conveniente analizar un


ejemplo sencillo

Ejemplo 15.1
Encuentre la familia de curvas cuya pendiente de la recta tangente en todos sus puntos está dada
por:
2y
y '=
x
Solución.
Escribiendo la ecuación diferencial en términos de diferenciales tenemos

y −1 dy − 2 x −1 dx = 0

Así que integrando a ambos lados de la ecuación diferencial tenemos:


165

ln( y ) − 2 ln( x ) = K

Dado que K es una constante arbitraria podemos hacer K = ln(C ) de tal forma que usando las
propiedades de los logaritmos obtenemos la familia de parábolas

y = Cx 2

El estudiante puede verificar que la familia encontrada corresponde a parábolas con centro en el
origen y simetría de eje Y. La figura 15.1 representa dos elementos de la familia correspondientes
a los valores de la constante: C = −1, C = 1

4
C=1
C=-1
3

-1

-2

-3

-4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

Figura 15.1

Puede verse que por el origen pasan infinitas soluciones de la forma:

C1 x 2 si x < 0
f ( x) = 
C 2 x si x ≥ 0
2

Particularmente, son soluciones las siguientes:


 x 2 si x < 0
1. Curva AOD, cuya ecuación es: f ( x) =  2
− x si x ≥ 0
− x 2 si x < 0
2. Curva COB, cuya ecuación es: f ( x) =  2
 x si x ≥ 0

15.3. Teorema de existencia y unicidad


Supongamos una ecuación diferencial de la forma y '= f ( x, y ) con la condición de hallar una
solución única que pase por el punto (x0 , y 0 ) .
Geométricamente, la solución debe ser una curva particular de la familia de curvas halladas al
resolver la ecuación diferencial. Nos interesa determinar bajo qué condiciones dicha ecuación
166

diferencial tiene solución una región R del plano y si dicha solución, en caso de existir es única en
dicha región.

El teorema de existencia y unicidad se formula en los siguientes términos:

Dado el problema de valor inicial y ' ( x ) = f ( x, y ) ; y ( x0 ) = y 0


Donde f y f y son continuas en una región rectangular centrada en el punto ( x0 , y 0 ) y definida
como
{
R = ( x, y ) ∈ R 2 / x − x 0 < a ∧ y − y 0 < b }
Si f ( x, y ) < M en dicha región y si h es el menor de los números: a, b, M, entonces existe una
solución única en el intervalo x − x0 < h para el problema de valor inicial dado.

Es importante aclarar que las condiciones del teorema son de suficiencia pero no de necesidad, lo
anterior significa que puede no cumplirse una de las condiciones de continuidad y sin embargo
tener solución. Algunos ejemplos posteriores pondrán de presente tal aseveración.

Ejemplo 15.2.
Considere el problema de valor inicial:
2y
y' = , y ( x0 ) = y 0
x
Determine las regiones del plano en las que se puede ubicar el punto dado para que se garantice
que el problema tenga solución única.

Solución.
La función y su primera derivada parcial con respecto a la variable dependiente son:

2y y
f = fy =
x x
De lo anterior se concluye que no se garantiza solución única en regiones que contengan a la recta
x=0
El estudiante puede analizar el ejemplo anterior en el que se muestran algunas de las soluciones
de la ecuación diferencial dada. Por tanto, el punto puede ubicarse en cualquiera de las siguientes
regiones:

1. {( x, y) ∈ R 2
/x<0 }
2. {( x, y) ∈ R 2
/ x > 0}

Ejemplo 15.3
Considere el problema de valor inicial:
xy
y' = ; y ( x0 ) = y 0
x −1
2

Determine las regiones del plano en las que se puede ubicar el punto dado para que se garantice
que el problema tenga solución única.

Solución.
La función y su primera derivada parcial con respecto a la variable dependiente son:
167

xy x
f = ; fy = 2
x −1
2
x −1
De lo anterior se concluye que no se garantiza solución única en regiones que contenga a las
rectas: x = −1 ; x = 1
Por consiguiente, el punto dado se puede ubicar en cualquiera de las siguientes regiones del plano:

1. {( x, y) ∈ R 2
/ x < −1}
2. {( x, y) ∈ R 2
/ − 1 < x < 1}
3. {( x, y) ∈ R 2
/ x > 1}

La ecuación diferencial es de variables separables y, en consecuencia, se puede determinar su


solución general, así:
dy xdx
= 2
y x −1

Integrando ambos miembros de la igualdad, resulta:

1
ln( y ) = ln( x 2 − 1) + ln(C )
2
Con base en las propiedades de los logaritmos, tenemos:

y 2 = C 2 (x 2 − 1)
Puesto que C 2 = K es una constante arbitraria, la solución general es la familia de cónicas:

x2 y2
− =1
1 K
Si K < 0 es una familia de elipses
Si K > 0 es una familia de hipérbolas

La figura 15.2 muestra las regiones de validez de las soluciones y algunos elementos de la familia,
así:
a) Para: K = −4 , el elemento es una elipse cuya ecuación es:

x2 y2
+ =1
12 2 2

b) Para: K = 4 , el elemento es una hipérbola cuya ecuación es:

x2 y2
− =1
12 2 2
168

y 2+4 (x x-1) = 0
4

0
y

-1

-2

-3

-4
-3 -2 -1 0 1 2 3
x

Figura 15.2

Claramente se observa que por los puntos de abscisa x = −1 y x = 1 pasan infinitas soluciones.

15.4. Ecuaciones diferenciales de variables separables


Una ecuación diferencial de primer orden de variables separables presenta la forma general:

F ( x)dx + G ( y )dy = 0
La solución general viene dada por:

∫ F ( x)dx + ∫ G( y )dy = C
Tal como se estableció previamente, la constante se evalúa a partir de la condición inicial

Ejemplo 15.4
Resuelva el problema de valor inicial:

d
M v(t ) = − Mg − Bv(t ) ; v(0) = Vo
dt
Solución.
Separando las variables e indicando las integrales, resulta:

⌠ M
 dv = −t
⌡ Bv + Mg

Evaluando las integrales, tenemos:


169

M
ln( Bv + Mg ) = −t + C
B
La constante la calculamos con la condición inicial v (0) = Vo , de donde:

M
C= ln( BVo + Mg )
B
Ahora despejamos la velocidad en función del tiempo, así:

− Mg 
B
Mg  − M t
v(t ) = + Vo + e
B  B 

Tomando los datos Vo = 100 , M = 1, g = 10 , B = 1 , se tiene: v(t ) = −10 + 110e −t


La gráfica se muestra en la figura 15.3
100

80

60

40

20

-20
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5

Figura 15.3

15.5. Ecuaciones diferenciales homogéneas


Una ecuación diferencial de primer orden puede, en algunos casos, expresarse en la forma:

dy
= f ( x, y )
dx
Como ya hemos visto, no siempre es posible separar las variables y proceder por integración
directa para resolver la ecuación diferencial. Trataremos en esta sección con cierto tipo de
ecuaciones diferenciales que se pueden convertir en ecuaciones de variables separables mediante
un cambio adecuado de la variable dependiente.

15.5.1. Funciones homogéneas


Consideremos una función de dos variables F ( x, y ) . Se dice que la función es homogénea de
grado n si existe un λ ∈ R tal que F (λx, λy ) = λ F ( x, y ) . Particularmente, si la función es
n

polinómica, la suma de las potencias de las variables en cada término es la misma. Son ejemplos
de funciones homogéneas las siguientes:
• F ( x, y ) = x 2 + 3 xy + y 2 homogénea de grado dos
y
• G ( x, y ) = x + ye x homogénea de grado uno
170

x+ y
• H ( x, y ) = homogénea de grado cero
x− y
 x
• S ( x, y ) = 2 xysen  homogénea de grado dos
 y
• R( x, y ) = x + y homogénea de grado un medio
x
• T ( x, y ) = homogénea de grado cero
x+ y

15.5.2. Ecuación diferencial homogénea


Una ecuación diferencial de la forma y '= f ( x, y ) es homogénea, si la expresión f ( x, y ) es
homogénea de grado cero.
x+ y
La ecuación diferencial y' = , por ejemplo es homogénea.
x− y

15.5.3. Solución de una ecuación diferencial homogénea


Una ecuación diferencial homogénea se puede reducir, en todo caso, a una ecuación diferencial de
variables separables mediante uno de los siguientes cambios de variable

u = y / x, v = x / y

1) Si hacemos el cambio u = y / x tenemos que y = ux , con base en lo anterior, tenemos

dy du
=x +u
dx dx

Dado que f ( x, y ) es homogénea de grado cero, siempre es posible expresarla como:

f ( x, y ) = F ( y / x )

De lo anterior, tenemos la ecuación diferencial de variables separables para las variables: x, u

+ u = F (u )
du
x
dx

2) Si hacemos el cambio v = x / y , tenemos que x = vy , de donde:

dx dv
=y +v
dy dy

La anterior es una ecuación diferencial de variables separables para las variables: y, v


171

Ejemplo 15.5.
x− y
Resuelva la ecuación diferencial: y' =
x+ y
Solución.
Dividiendo por x el numerador y el denominador de f (x, y ) y luego haciendo y = ux , tenemos:

du 1− u
x +u =
dx 1+ u
Haciendo transformaciones se obtiene la ecuación de variables separables

u +1 dx
du + =0
u + 2u − 1
2
x

Integrando se obtiene:
1
2
( )
ln u 2 + 2u − 1 + ln ( x ) = C
Regresando a la variable original y simplificando se obtiene

x 2 − 2 xy − y 2 = K

La solución general de la ecuación diferencial es una familia de hipérbolas. La figura 15.4 ilustra los
elementos correspondientes a K = 2 y K = 1
x x-2 x y-y y-2 = 0
4

0
y

-1

-2

-3

-4
-4 -3 -2 -1 0 1 2 3 4
x

Figura 15.4

15.6. Ecuaciones diferenciales exactas


Tal como se estudió previamente, dada una función de dos variables F ( x, y ) = C , su diferencial
total viene dado por:
172

∂  ∂ 
dF =  F dx +  F dy = dC = 0
 ∂x   ∂y 
Tanto la derivada parcial con respecto a x , como la derivada parcial con respecto a y de la
función dependen de las dos variables. Se conviene en designarlas de la siguiente manera:
∂ ∂
F = M ( x, y ) F = N ( x, y )
∂x ∂y

Con base en lo anterior se obtiene la ecuación diferencial de primer orden:

M ( x, y )dx + N ( x, y )dy = 0

Es claro que si la ecuación diferencial se obtuvo a partir de la familia de curvas, la solución general
de dicha ecuación diferencial es la correspondiente familia.

Ejemplo 15.6.
Dada la ecuación diferencial 2 xydx + x 2 dy = 0 , muestre que la solución general viene dada por
x2 y = C

Solución.
Hallamos el diferencial total de la función, encontrando la correspondiente ecuación diferencial.
El problema que nos ocupa es precisamente el contrario, es decir, encontrar la familia de curvas a
partir de la ecuación diferencial.

15.6.1. Ecuación diferencial exacta


Dada la ecuación diferencial M ( x, y )dx + N ( x, y )dy = 0 , se dice que es exacta si existe una
función: F ( x, y ) = C tal que:
∂F ( x, y ) ∂F ( x, y )
=M y =N
∂x ∂y

En tal caso, la solución general de la ecuación diferencial es la familia de curvas.

Teorema 1.
Si la ecuación diferencial: M ( x, y )dx + N ( x, y )dy = 0 es exacta y M ( x, y ), N ( x, y ) son
continuas y poseen su primera derivada continua en una región simplemente conexa del plano R2 ,
entonces se verifica que:
∂ ∂
M ( x, y ) − N ( x, y ) = 0
∂y ∂x

La demostración del teorema se apoya en la definición de una ecuación diferencial exacta y en un


teorema de las funciones de dos variables.

Por hipótesis se tiene que: M ( x, y ) = F ( x, y )
∂x
Derivando con respecto a la otra variable, se tiene:
173

∂ ∂ ∂  ∂2
M ( x, y ) = F ( x , y ) =
 ∂y∂x F ( x, y )
∂y ∂y  ∂x 


De manera similar, tenemos: N ( x, y ) = F ( x, y )
∂y

Derivando con respecto a la otra variable, se tiene:

∂ ∂ ∂  ∂2
M ( x, y ) = F ( x, y )  = F ( x, y )
∂x ∂x  ∂y  ∂x∂y
Ahora bien, para regiones del plano simplemente conexas se verifica que la segunda derivada
mixta no depende del orden de derivación, esto es Fyx = Fxy . De lo anterior se concluye que si la
ecuación diferencial es exacta, entonces:

∂ ∂
M ( x, y ) − N ( x, y ) = 0
∂y ∂x

La ecuación del ejemplo anterior es exacta y, en consecuencia se verifica el teorema, es decir:

∂M ∂N
− = 2x − 2x = 0
∂y ∂x

El teorema anterior es de poca utilidad ya que no ayuda a resolver la ecuación diferencial.

Teorema 2.
Dada la ecuación diferencial M ( x, y )dx + N ( x, y )dy = 0 , si las funciones: M , N , M y y N x son
continuas en una región simplemente conexa del plano y se verifica que M y − N x = 0 , entonces
la ecuación diferencial es exacta y tiene como solución general a la familia de curvas del plano:
F ( x, y ) = C
Para demostrar el teorema se supone que existe una F ( x, y ) tal que su derivada parcial con
∂F
respecto a x es M , esto es = M . La función F se determina por integración sobre la
∂x
variable x manteniendo constante la otra variable, así:

F ( x, y ) = ∫ M ( x, y )dx + C ( y )
x

El éxito de esta demostración consiste en poder determinar la función C ( y ) de tal manera que se
∂F
verifique que = N ( x, y ) . En efecto, tomando la derivada parcial con respecto a la variable y
∂y
se tiene:
∂ ∂
∂y ∫x
F ( x, y ) = M ( x, y )dx + C ' ( y ) = N ( x, y )
∂y
174

De lo anterior debe resulta una función dependiente únicamente de la variable y para la función
C ' ( y)

∂y ∫x
C ' ( y ) = N ( x, y ) − M ( x, y )dx

Si la expresión anterior se deriva con respecto a x , el miembro de la izquierda debe ser cero, así:

∂ ∂ ∂ 
0= N ( x, y ) −  ∫ M ( x, y )dx 
∂x ∂x  ∂y x

Si se cambia el orden de la derivación y se aplica el teorema fundamental del cálculo integral, se
tiene:
∂ ∂ ∂  ∂N ∂M
0= N ( x, y ) −  ∫ M ( x, y )dx  = −
∂x ∂y  ∂x x
 ∂x ∂y

El procedimiento de demostración del teorema se constituye en el método para resolver la


∂F
ecuación diferencial. También se puede partir de = N y proceder en consecuencia.
∂y

Ejemplo 15.7
Considere la ecuación diferencial: 2 xydx + ( x − y ) dy = 0
2 2

a) Verifique que es exacta


b) Encuentre las regiones del plano en las que se puede ubicar el punto ( x0 , y 0 ) de tal manera
que se garantice solución única
c) Encuentre la solución general de la ecuación diferencial

Solución.
a) M ( x, y ) = 2 xy N ( x, y ) = x 2 − y 2
∂M ∂N
Puede verse que la ecuación diferencial es exacta: − = 2x − 2x = 0
∂y ∂x
b) Escribimos la ecuación diferencial en la forma:

dy 2 xy
= 2
dx y − x 2

Con base en lo anterior, tenemos:


2 xy − 2 x( x 2 + y 2 )
f = fy =
y − x2
2
( y2 − x2 )2

Con base en el teorema de existencia y unicidad, se garantiza solución única en regiones que no
contengan a las rectas y = x y y = − x . En consecuencia, el punto ( x0 , y 0 ) se puede ubicar
en cualquiera de las siguientes regiones del plano:

1. {( x, y) ∈ R 2
/− x < y < x}
175

2. {( x, y) ∈ R 2
/ x < y < −x }
3. {( x, y) ∈ R 2
/ − y < x < y}
4. {( x, y) ∈ R 2
/ y < x < − y}

c) Para resolver la ecuación diferencial partimos de F ( x, y ) = 2 xy . Integrando con respecto
∂x
a x tenemos F ( x, y ) = x y + C ( y ) . Derivando con respecto a y e igualando con N , se
2

tiene x 2 + C ' ( y ) = x 2 − y 2 . De lo anterior se tiene que C ' ( y ) = − y 2 . Integrando, tenemos


1
C ( y ) = − y 3 . Finalmente, la solución general de la ecuación diferencial es:
3
1
x2 y − y3 = C
3
La familia encontrada se puede expresar en la forma:

y3 + K
x2 =
3y

15.7. La ecuación diferencial lineal de primer orden


En diversas aplicaciones de ingeniería y ciencias resultan ecuaciones diferenciales de la forma:

d
y + p ( x) y = q ( x )
dx
x : es la variable independiente
y : es la variable dependiente

En todos los casos siempre es posible encontrar una solución explícita de la ecuación diferencial.
Dicha solución es la familia de curvas del plano:

y ( x) = Cy c ( x) + y f ( x)

La ecuación diferencial se puede escribir en la forma:

dy
= q ( x) − p( x) y
dx
La pendiente de la tangente y su primera derivada con respecto a la variable dependiente vienen
dadas por:
f = q ( x) − p ( x ) y f y = − p( x)

Con base en el teorema de existencia y unicidad, el punto ( x0 , y 0 ) se podrá ubicar en cualquier


región en la que p (x ) y q (x ) sean continuas. Lo anterior impone condiciones únicamente sobre
la variable independiente.

Ejemplo 15.8.
Considere el problema de valor inicial
176

dy 1
+ 2 y = x, y ( x0 ) = y 0
dx x − x

Determine las regiones del plano en las que se puede ubicar el punto ( x0 , y 0 ) de tal manera que
se garantice solución única.

Solución.
Por simple inspección, q (x) es continua en los reales mientras que p (x ) no es continua en

x = 0 y x =1
Con base en el teorema, podemos afirmar que el punto se puede ubicar en cualquiera de las
siguientes regiones:

1. {( x, y) ∈ R 2
/x<0 }
2. {( x, y) ∈ R 2
/0 < x <1 }
3. {( x, y) ∈ R 2
}
/ x >1

Ejemplo 15.9
Determine el intervalo más grande en el que el siguiente problema de valor inicial tiene solución
única garantizada:
dy
+ sec 2 ( x) y = ln( x), y ( 2) = 1
dx
Solución.
A partir de q (x) se puede afirmar que la recta x = 0 no debe estar en la región. De otro lado, la
π
función p (x ) se anula en los puntos de abscisa x=n , siendo n un numero impar . Por tanto
2
 π 3π 
se garantiza solución única en el intervalo  , 
2 2 
15.7.1. Solución de la ecuación diferencial lineal de primer orden
De acuerdo con lo presentado en la sección anterior, la ecuación diferencial se puede expresar en
la forma:
[ p( x) y − q( x)]dx + 1dy = 0
Puede verse que la ecuación es reducible a exacta, en efecto:

∂M ∂N

∂y ∂x p( x) − 0
= = p( x)
N 1
Φ ( x) = e ∫
p ( x ) dx
En consecuencia, la ecuación tiene el factor integrante . Multiplicando la ecuación
diferencial por el factor integrante, se tiene:

[Φ( x) p( x) y − Φ( x)q( x)]dx + Φ( x)dy = 0


177

La ecuación diferencial se puede escribir en la forma:

Φ ( x ) p ( x ) ydx + Φ ( x )dy = Φ ( x)q ( x)dx

Ahora bien, puesto que dΦ ( x) = Φ ( x) p ( x ) dx , tenemos:

d [Φ ( x) y ] = Φ ( x)q( x)dx

Integrando, encontramos la solución general, así:

Φ ( x ) y = C + ∫ Φ ( x )q ( x )dx

En consecuencia, la receta para resolver la ecuación diferencial lineal de primer orden, es la


siguiente:

dy
1. Se escribe la ecuación en la forma: + p( x) y = q( x)
dx
2. Se calcula el factor integrante: Φ ( x ) = e ∫
p ( x ) dx

3. Se escribe la solución general: Φ ( x) y = C + ∫ Φ ( x)q ( x)dx


4. Se evalúa la integral y se despeja la variable dependiente:

y = CΦ −1 ( x) + Φ −1 ( x) ∫ Φ ( x)q ( x)dx
Ejemplo 15.10
Considere la ecuación diferencial:

+ 2 y = xsen( x )
dy
x
dx

a) Determine las regiones del plano en las que se puede ubicar el punto (x0 , y 0 ) de tal manera
que el problema de valor inicial asociado tenga solución única garantizada.
b) Encuentre la solución general de la ecuación diferencial.
( )
c) Encuentre la solución que pasa por el punto π , 2 , indicando el intervalo de validez.

Solución.
a) La ecuación diferencial se puede escribir de la forma:

+ y = sen( x )
dy 2
dx x
Con base en el teorema de existencia y unicidad, se garantiza solución única en regiones tales que
x≠0

b) Aplicando la receta, tenemos:


2
∫ x dx
Φ=e = x2

x 2 y = C + ∫ x 2 sen( x )dx
Evaluando la integral, se tiene:
178

x 2 y = C − x 2 cos( x ) + 2 cos( x ) + 2 xsen( x )

c) El valor de C se determina con base en la condición inicial y (π ) = 2 , obteniéndose:

2π 2 = C + π 2 − 2 ⇒ C = π 2 + 2

Ejemplo 15.11
Considere la ecuación diferencial:

(x − 1) dy + 2 y = x
dx

a) Determine las regiones del plano en las que se puede ubicar el punto (x0 , y 0 ) de tal manera
que el problema de valor inicial asociado tenga solución única garantizada.
b) Encuentre la solución general de la ecuación diferencial.
( )
c) Encuentre la solución que pasa por el punto 1,0 , indicando el intervalo de validez.

Solución.
a) La ecuación diferencial se puede escribir de la forma:

dy 2 x
+ y=
dx x − 1 x −1
Con base en el teorema de existencia y unicidad, se garantiza solución única en regiones que no
contengan la recta x = 1

b) Aplicando la receta, tenemos:


2
∫ x −1dx
Φ=e = ( x − 1)
2

(x − 1)2 y = C + ∫ (x − 1)2 x
dx = C + ∫ x( x − 1)dx
x −1

x3 x2
Evaluando la integral, se tiene: ( x − 1) y = C + −
2

3 2

c) El valor de C se determina con base en la condición inicial y (0) = 1 , obteniéndose C = 1

En consecuencia la solución del problema de valor inicial es:

 x3 x2 
y ( x ) = ( x − 1) +  − ( x − 1)− 2 ;
−2
−∞ < x <1
 3 2 

Ejemplo 15.12
Considere la ecuación diferencial:
dy e−x
x +y=
dx x
179

a) Determine las regiones del plano en las que se puede ubicar el punto (x0 , y 0 ) de tal manera
que el problema de valor inicial asociado tenga solución única garantizada.
b) Encuentre la solución general de la ecuación diferencial.
c) Encuentre la solución que pasa por el punto (1,1) , indicando el intervalo de validez.

Solución.
a) La ecuación diferencial se puede escribir de la forma:

dy 1 e−x
+ y= 2
dx x x
Con base en el teorema de existencia y unicidad, se garantiza solución única en regiones tales que
x≠0
b) Aplicando la receta, tenemos:
1
∫ x dx
Φ=e =x

e−x e−x
xy = C + ∫ x dx = C + ∫ x dx
x2
Puesto que la integral no tiene solución analítica, la expresamos en series de potencia, así:

e−x 1 x x2
= −1+ − +K
x x 2 6
Evaluando la integral, tenemos:

x2 x3
xy = C + ln ( x ) − x + − +K
4 18

c) El valor de C se determina con base en la condición inicial y (1) = 1 , obteniéndose:

1 1
C ≈ 1+1− + ≈ 1.806
4 18
En consecuencia la solución del problema de valor inicial es:

1.806 ln( x ) x x 2
y ( x ) = −1 + + + − +K
x x 4 18
Se deja como ejercicio al estudiante la representación gráfica de la solución. Más adelante se
estudiarán las técnicas numéricas más comunes para resolver ecuaciones diferenciales sin recurrir
a las series de potencias.

15.8. Solución de ecuaciones diferenciales usando dsolve


La ecuación diferencial se puede determinar usando la función dsolve, así:
>> help dsolve
DSOLVE Symbolic solution of ordinary differential equations.
DSOLVE('eqn1','eqn2', ...) accepts symbolic equations representing
180

ordinary differential equations and initial conditions. Several


equations or initial conditions may be grouped together, separated
by commas, in a single input argument.

By default, the independent variable is 't'. The independent variable


may be changed from 't' to some other symbolic variable by including
that variable as the last input argument.

The letter 'D' denotes differentiation with respect to the independent


variable, i.e. usually d/dt. A "D" followed by a digit denotes
repeated differentiation; e.g., D2 is d^2/dt^2. Any characters
immediately following these differentiation operators are taken to be
the dependent variables; e.g., D3y denotes the third derivative
of y(t). Note that the names of symbolic variables should not contain
the letter "D".

Initial conditions are specified by equations like 'y(a)=b' or


'Dy(a) = b' where y is one of the dependent variables and a and b are
constants. If the number of initial conditions given is less than the
number of dependent variables, the resulting solutions will obtain
arbitrary constants, C1, C2, etc.

Three different types of output are possible. For one equation and one
output, the resulting solution is returned, with multiple solutions to
a nonlinear equation in a symbolic vector. For several equations and
an equal number of outputs, the results are sorted in lexicographic
order and assigned to the outputs. For several equations and a single
output, a structure containing the solutions is returned.

If no closed-form (explicit) solution is found, an implicit solution is


attempted. When an implicit solution is returned, a warning is given.
If neither an explicit nor implicit solution can be computed, then a
warning is given and the empty sym is returned. In some cases involving
nonlinear equations, the output will be an equivalent lower order
differential equation or an integral.

Examples:

dsolve('Dx = -a*x') returns

ans = C1*exp(-a*t)

x = dsolve('Dx = -a*x','x(0) = 1','s') returns

x = exp(-a*s)

y = dsolve('(Dy)^2 + y^2 = 1','y(0) = 0') returns

y=
[ sin(t)]
[ -sin(t)]

S = dsolve('Df = f + g','Dg = -f + g','f(0) = 1','g(0) = 2')


returns a structure S with fields

S.f = exp(t)*cos(t)+2*exp(t)*sin(t)
181

S.g = -exp(t)*sin(t)+2*exp(t)*cos(t)

dsolve('Dy = y^2*(1-y^2)') returns

Warning:Explicit solution could not be found; implicit solution returned.

ans =
t+1/2*log(y-1)-1/2*log(y+1)+1/y+C1=0

dsolve('Df = f + sin(t)', 'f(pi/2) = 0')


dsolve('D2y = -a^2*y', 'y(0) = 1, Dy(pi/a) = 0')
S = dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')
S = dsolve('Du=v, Dv=w, Dw=-u','u(0)=0, v(0)=0, w(0)=1')
w = dsolve('D3w = -w','w(0)=1, Dw(0)=0, D2w(0)=0')
y = dsolve('D2y = sin(y)'); pretty(y)

Ejemplo 15.13
Dado el problema de valor inicial:

(x − 1) dy + 2 y = x ; y ( 2) = 0
dx
a) Teniendo en cuenta la solución general obtenida en el ejemplo 5.11, determine la solución
del problema y represente gráficamente la solución en el intervalo 1 < x ≤ 4
b) Encuentre la solución general usando dsolve.
c) Determine la solución del problema usando dsolve y compare.

Solución.
a) La solución general de la ecuación diferencial es:
3
x2
(x − 1)2 y = C + x −
3 2
La constante se calcula como:
3
22
(2 − 1)2 ⋅ 0 = C + 2 − ⇒ C = −2 / 3
3 2
La solución se puede expresar como:
 2 x3 x2 
−  ⋅ ( x − 1)
−2
y ( x) =  − +
 3 3 2 
Para la representación gráfica se toma el intervalo 1.1 ≤ x ≤ 4 , ya que x ≠ 1 . La figura 15.5
muestra la gráfica pedida.
>> x=1.1:0.01:4;
>> y=(-2/3+(1/3).*x.^3-(1/2).*x.^2)./((x-1).^2);
>> plot(x,y)
>> grid on

b) Para hallar la solución general con dsolve se procede de la siguiente manera, teniendo en
cuenta que la variable independiente es t .
>> y=dsolve('Dy=(t-2*y)/(t-1)')

y=

(1/3*t^3-1/2*t^2+C1)/(t-1)^2
182

1.5

0.5

-0.5

-1

-1.5

-2
1.5 2 2.5 3 3.5 4

Figura 15.5

c) En cuanto a la solución particular, se tiene:


>> y=dsolve('Dy=(t-2*y)/(t-1)','y(2)=0')

y=

(1/3*t^3-1/2*t^2-2/3)/(t-1)^2

Puede verse que las soluciones son idénticas a las obtenidas analíticamente.

EJERCICIOS

Para las siguientes ecuaciones diferenciales


a) Determine y represente gráficamente las regiones del plano en las que se puede ubicar el punto
( x0 , y 0 ) de tal manera que se garantice solución única
b) Encuentre la solución general
c) Usando el programa grafimplicita, represente dos elemento de la familia

dy x + y dy xy + y 2
1) = 2) =
dx x dx x2
dy x + 2y dy x 2 − y 2
3) =− 4) =
dx 2x + y dx 2 xy
dy y
5) 2 ydy = ( x 2 − y 2 )dx 6) = 3
dx y − 3 x
dy
7) (e
x
− 2 xy)dy = y ( y − e x )dx 8) x + 2 y = sen( x)
dx
183

dy 2 2
9) x
dy
2
= 1 − x( x + 2) y 10)
x =2x y+y
dx dx
Usando dsolve, resuelva los siguientes problemas de valor inicial en el intervalo dado y represente
gráficamente la solución en cada caso.

dy x + y
11) = ; y (1) = 2 ; 0 < x ≤ 2
dx x
dy xy + y 2
12) = ; y (1) = 1 ; 0 < x ≤ 2
dx x2
dy y
13) = 3 ; y ( 0) = 1 ; 0 ≤ x ≤ 2
dx y − 3x
dy
14) x + 2 y = sen( x ) ; y (1) = 0 ; 0 < x ≤ π
dx
dy
15) x = 2 x 2 y + y 2 ; y (1) = −1 ; 0 < x ≤ 2
dx
184

MÓDULO 16
PROBLEMAS DE VALOR INICIAL DE PRIMER ORDEN
SOLUCIÓN NUMÉRICA

Contenido.
En este módulo se presenta la solución numérica de un problema de valor inicial de primer orden y
desarrollan los siguientes temas:
16.1. Introducción
16.2. Método de Euler
16.3. Método de la serie de potencias
16.4. Método de la serie de potencias con Matlab
16.5. Métodos de Runge-Kutta de segundo orden
16.6. Método de Runge-Kutta de tercer orden
16.7. Método de Runge-Kutta de cuarto orden
16.8. Método de Runge-Kutta de cuarto orden con Matlab

16.1. Introducción
Un problema de valor inicial de primer orden se puede formular mediante una ecuación diferencial
de primer orden y una condición inicial, así:

dy
= f ( x, y ) , y ( xi ) = yi
dx
Geométricamente, la solución del P.V.I. es una curva del plano que satisface la ecuación
diferencial y pasa por el punto ( xi, yi) .
Previamente el estudiante ha aprendido a encontrar la solución analítica del problema en los casos
en que sea posible hallar dicha solución. Supongamos ahora que la ecuación diferencial no posee
soluciones en términos de funciones elementales, es decir, no hay una expresión matemática para
y (x) . A continuación se presenta el método numérico más elemental, conocido como método de
Euler, el cual consiste en generar una tabla de valores para la función en el dominio: [ xi, xf ]
Siendo xf el valor final de la variable independiente.

16.2. Método de Euler


Para aplicar el método se hace una partición del dominio en n sub-intervalos, cada uno de tamaño
h , así:
xf − xi
h=
n

El vector de abscisas posee n + 1 elementos, es decir, tiene la forma:

X = {X 1 , X 2 , X 3 ,...., X n +1 }

Cada elemento del vector de abscisas se genera mediante la rutina:

for k = 1 : n + 1
X (k ) = xi + (k − 1)h
end

Alternativamente, el vector se puede generar como: X = xi : h : xf


185

A partir del dato inicial, esto es, y ( xi ) = yi se genera el vector de ordenadas:

Y = {Y1 , Y2 , Y3 ,...., Yn +1 }

Supongamos que el P.V.I. satisface las condiciones de existencia y unicidad en el dominio dado, es
decir, f ( xi, yi ) está definida y representa la pendiente de la recta tangente a la curva al principio
del intervalo. A partir de la figura 16.1, la pendiente del segmento de recta viene dada por:

Y2 − Y1 Y − Y1
m= = 2
X 2 − X1 h

Figura 16.1

Puesto que la pendiente al principio del intervalo es m = f ( X 1 , Y1 ) , podemos encontrar un valor


aproximado para la función en el punto X 2 , así:

Y2 = Y1 + hf ( X 1 , Y1 )

La aproximación obtenida mejorará en la medida en que menor sea el tamaño de paso h . Con el
valor encontrado previamente podemos encontrar un valor aproximado para la función en el punto
siguiente, así: Y3 = Y2 + hf ( X 2 , Y2 )
Continuando con el razonamiento previo podemos encontrar un valor aproximado para la función a
partir del punto anterior, así:
Yk +1 = Yk + hf ( X k , Yk ) ; k = 1 : n

El resultado es un polígono, es decir, una aproximación lineal por segmentos para la función,
situación que se ilustra en la figura 16.2

Figura 16.2
186

El algoritmo para encontrar la solución aproximada por el método de Euler es el siguiente:

Resuelva el problema de valor inicial:

= f ( x, y ) ; y ( xi ) = yi ; xi ≤ x ≤ xf
dy
dx

1) Se ingresa el número de iteraciones, es decir, el número de sub-intervalos n


2) Se ingresa la abscisa inicial xi
3) Se ingresa la abscisa final xf
4) Se ingresa la ordenada inicial yi
5) Se ingresa la función f ( x, y )
6) Se calcula el tamaño de paso, así: h = ( xf − xi ) / n
7) Se genera el vector de abscisas X = xi : h : xf
8) Con la condición inicial se genera el primer elemento del vector de ordenadas: Y1 = yi
9) Se generan los demás elementos del vector de ordenadas:

Yk +1 = Yk + hf ( X k , Yk ) ; k = 1 : n

10) Se representa gráficamente la curva resultante.


Es conveniente expresar los resultados en forma tabular.

Ejemplo 16.1
Resuelva el problema de valor inicial en el intervalo: [0,2]

dy
= e − x − y ( x) ; y (0) = 1
dx
Solución.
Se toma n = 10 , con lo que el tamaño de paso es h = ( 2 − 0) / 10 = 0.2 y se llena la siguiente
tabla:

k Xk Yk f ( X k , Yk )
1 0.0 1.0 0.0
2 0.2 1.0 -0.1813
3 0.4 0.9637 -0.2934
4 0.6 0.9051 -0.3562
5 0.8 0.8338 -0.3845
6 1.0 0.7569 -0.3890
7 1.2 0.6791 -0.3779
8 1.4 0.6035 -0.3569
9 1.6 0.5321 -0.3302
10 1.8 0.4661 -0.3008
11 2.0 0.4059

Para la representación gráfica se procede de la siguiente manera, usando Matlab.


X=0:0.2:2;
Y=[1 1 0.9637 0.9051 0.8338 0.7569 0.6791 0.6035 0.5321 0.4661 0.4059];
plot(X,Y)
187

grid on
>> [X' Y']

ans =

0 1.0000
0.2000 1.0000
0.4000 0.9637
0.6000 0.9051
0.8000 0.8338
1.0000 0.7569
1.2000 0.6791
1.4000 0.6035
1.6000 0.5321
1.8000 0.4661
2.0000 0.4059
1

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.3

El estudiante puede verificar que la solución analítica del problema dado está dada por:

y ( x) = ( x + 1)e − x

A continuación se muestra una tabla con la solución obtenida comparada con la solución exacta.

k Xk Yk y exacta Error absoluto


1 0.0 1.0 1.0 0
2 0.2 1.0 0.9825 0.125
3 0.4 0.9637 0.9384 0.0253
4 0.6 0.9051 0.8781 0.0270
5 0.8 0.8338 0.8088 0.0250
6 1.0 0.7569 0.7358 0.0211
7 1.2 0.6791 0.6626 0.0165
8 1.4 0.6035 0.5918 0.0117
9 1.6 0.5321 0.5249 0.0072
10 1.8 0.4661 0.4628 0.0033
11 2.0 0.4059 0.4060 0.0001
188

De la tabla se desprende que la solución numérica es bastante aproximada a la solución analítica.


Si se repite el procedimiento para un número mayor de iteraciones los resultados serán mucho más
aproximados.

16.2.1. Método de Euler usando Matlab.


A continuación se escribe un programa sencillo para resolver un problema de valor inicial de primer
orden por el método de Euler, usando Matlab.

clear all
%Programa para resolver un problema de valor inicial de primer orden
%por el método de Euler
%La formulación del problema es: y'=f(x,y);y(xi)=yi en el intervalo:[xi,xf]
% con n iteraciones.
% Entrada de la información
n=input('numero de particiones = ');
xi=input('abscisa inicial = ');
xf=input('abscisa final = ');
yi=input('ordenada inicial = ');
f=input('entrar la funcion f(x,y) = ');
% El tamaño de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
X=xi:h:xf;
%El vector de ordenadas se calcula como. Se usan mayúsculas para diferenciar los vectores de los
%escalares
Y(1)=yi;
for k=1:n
x=X(k);
y=Y(k);
M(k)=eval(f);
Y(k+1)=Y(k)+h*M(k);
end
[X’ Y’]
plot(X,Y,'k')
grid on

Al correr el programa con los datos del ejemplo anterior, se tiene:


> euler
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = 2
ordenada inicial = 1
entrar la funcion f(x,y) = 'exp(-x)-y'
ans =
0 1.0000
0.2000 1.0000
0.4000 0.9637
0.6000 0.9051
0.8000 0.8338
1.0000 0.7569
1.2000 0.6791
1.4000 0.6035
1.6000 0.5321
1.8000 0.4661
2.0000 0.4059
189

La representación gráfica se ilustra en la figura 16.4

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.4

La figura 16.5 ilustra la solución numérica junto con la solución analítica (línea punteada).

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.5

16.3. Método de la serie de potencias


Tal como se ha visto, si el P.V.I. tiene solución única en un dominio cualquiera I , la función
solución debe tener un desarrollo en series de potencias en un entorno de cualquier punto de su
dominio x k , así:
y ' ' ( xk ) y ( n) ( xk )
y ( x ) = y ( x k ) + y ' ( x k )( x − x k ) + ( x − x k ) + ... +
2
( x − x k ) n + ... + Rn ( x )
2! n!

Cuando la serie se trunca en el término n − esimo , se comete un error de truncamiento de la serie


el cual está dado por:
190

y ( n +1) (ω )
Rn ( x ) = ( x − xk ) ( n +1)
(n + 1)!

En la expresión anterior, ω es algún número en el intervalo: [ x, x k ]


Si evaluamos la serie en el punto x = xk +1 , resulta:

2
h h3 h n (n)
y k +1 = y k + hy ' ( x k ) +
y ' ' ( xk ) + y ' ' ' ( x k ) + ... + y ( x k ) + Rn ( x )
2! 3! n!
h n +1 ( n +1)
El error de truncamiento vendrá dado por Rn ( x) = y (ω ) , con: xk < ω < xk +1
(n + 1)!

Ahora bien, puesto que y ' ( xk ) es la pendiente de la recta tangente a la curva en el punto de
coordenadas ( xk , y k ) , se tiene que:
y' ( xk ) = f ( xk , yk )

De manera similar podemos encontrar expresiones para las derivadas de orden superior, así:

d dy
y' ' ( x) = f ( x, y ) = f x ( x, y ) + f y ( x, y ) = f x ( x, y ) + f y ( x, y ) f ( x, y )
dx dx
De igual forma se pueden encontrar expresiones para la tercera, cuarta y demás derivadas.
El método de Euler es el mismo método de las series de potencias cuando la serie se trunca en el
segundo término, así:
y k +1 = y k + hf ( xk , y k )

El error de truncamiento en cada paso, o error de truncamiento local, viene dado por:

h2
εk = y ' ' (ω k ) , x k < ω k < x k + h
2
Geométricamente, el error de truncamiento local está asociado a la concavidad de la curva en el
intervalo: [ x k , x k + h] y es proporcional a la segunda potencia del tamaño de paso.
El error global que se comete después de n iteraciones se puede estimar de la siguiente manera:
h2
En la primera iteración: y1 = y 0 + hf ( x0 , y 0 ) + y ' ' (ω 0 )
2
h2
En la segunda iteración: y 2 = y1 + hf ( x1 , y1 ) + y ' ' (ω1 )
2
h2
y 2 = y 0 + h( f ( x0 , y 0 ) + f ( x1 , y1 ) ) + ( y' ' (ω 0 ) + y' ' (ω1 ))
2
Puede verse que en la iteración final, resulta:

k −1 n −1
h2
y n = y 0 + h∑ f ( x k , y k ) + ∑ y' ' (ω k )
k =0 2 k =0
191

La segunda derivada promedio en el intervalo: [ xi, xf ] está dada por:


n −1

∑ y" (ω k )
y" = k =0

n
Teniendo en cuenta que h = ( xf − xi ) / n , resulta que el error global es proporcional a la primera
potencia del tamaño de paso, razón por la cual el método de Euler es un método de primer orden.

y"
ε g = h( xf − xi)
2
Ejemplo 16.2
Usando el método de la serie con tres términos, resuelva el P.V.I:

dy
= e −x − y ; y ( 0) = 1 ; 0 ≤ x ≤ 2
dx
Solución.
Se toma n = 10 , con lo que el tamaño de paso es h = ( 2 − 0) / 10 = 0.2 y se llena la siguiente
tabla, teniendo en cuenta que f ( x, y ) = e − x − y , f ' ( x, y ) = −2e − x + y

k Xk Yk f ( X k , Yk ) f ' ( X k , Yk )
1 0.0 1.0 0.0 -1.0
2 0.2 0.9800 -0.1613 -0.6575
3 0.4 0.9346 -0.2643 -0.4060
4 0.6 0.8736 -0.3248 -0.2240
5 0.8 0.8042 -0.3548 -0.0945
6 1.0 0.7313 -0.3634 -0.0044
7 1.2 0.6585 -0.3573 0.0562
8 1.4 0.5882 -0.3416 0.0950
9 1.6 0.5218 -0.3199 0.1180
10 1.8 0.4602 -0.2949 0.1296
11 2.0 0.4038

Para la representación gráfica se procede de la siguiente manera, usando Matlab.


X=0:0.2:2;
Y=[1.0 0.9800 0.9346 0.8736 0.8042 0.7313 0.6585 0.5882 0.5218 0.4602 0.4038];
>> [X' Y']

ans =

0 1.0000
0.2000 0.9800
0.4000 0.9346
0.6000 0.8736
0.8000 0.8042
1.0000 0.7313
1.2000 0.6585
1.4000 0.5882
1.6000 0.5218
1.8000 0.4602
2.0000 0.4038
192

>> plot(X,Y)
>> grid on

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.6

16.4. Método de la serie usando Matlab.


A continuación se transcribe un programa en Matlab para resolver el problema de valor inicial.
clear all
%Programa para resolver un problema de valor inicial de primer orden
%por el método de la serie con tres términos
%La formulación del problema es: y'=f(x,y);y(xi)=yi en el intervalo:[xi,xf]
% con n iteraciones.
% Entrada de la información
n=input('numero de iteraciones = ');
xi=input('abscisa inicial = ');
xf=input('abscisa final = ');
yi=input('ordenada inicial = ');
f=input('entrar la funcion f(x,y) = ');
Df= input('entrar la derivada de la funcion Df(x,y) = ');
% El tamaño de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
X=xi:h:xf;
% El vector de ordenadas se calcula como. Se usan mayúsculas para diferenciar los vectores de
los %escalares
Y(1)=yi;
for k=1:n
x=X(k);
y=Y(k);
M1(k)=eval(f);
M2(k)=eval(Df);
Y(k+1)=Y(k)+h*M1(k)+(h^2/2)*M2(k);
end
[X’ Y’]
plot(X,Y,'k')
grid on
193

Al ejecutar el programa se tiene:


> seriecon3
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = 2
ordenada inicial = 1
entrar la funcion f(x,y) = 'exp(-x)-y'
entrar la funcion g(x,y) = 'y-2*exp(-x)'

ans =
0 1.0000
0.2000 0.9800
0.4000 0.9346
0.6000 0.8736
0.8000 0.8042
1.0000 0.7313
1.2000 0.6585
1.4000 0.5882
1.6000 0.5218
1.8000 0.4602
2.0000 0.4038

La figura 16-7 ilustra la solución junto con la solución analítica.

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.7

16.5. Métodos de Runge - kutta de segundo orden


El inconveniente del método de la serie con tres términos es el de calcular la segunda derivada de
la función a partir de f ( x, y ) . Los métodos de Runge - Kutta de segundo orden permiten obtener
resultados similares sin necesidad de calcular la segunda derivada de la función. Consideremos la
situación de la figura 16.8, con: 0 < α < 1
Usando el método de Euler podemos determinar el valor de la función en el punto intermedio, así:

Ypk = Yk + αhf ( X k , Yk )
194

Figura 16.8

Si denotamos la derivada al principio del intervalo mediante M 1k = f ( X k , Yk ) , se tiene que:

Ypk = Yk + αhM 1k

El valor encontrado recibe el nombre de predictor y con base en el mismo podemos estimar el valor
de la pendiente de la recta tangente a la curva en el punto intermedio, así:

M 2 k = f ( X k + αh, Ypk )

Con los resultados obtenidos para las pendientes se encuentra la pendiente promedio ponderada,
así:
M k = a1 M 1k + a 2 M 2 k ; a1 + a 2 = 1

Finalmente, encontramos el valor de la siguiente iteración, así:

Yk +1 = Yk + hM k

Tal como puede derivarse de lo presentado, existen infinitas versiones del método de Runge -
Kutta de segundo orden, pero las que se usan comúnmente son las siguientes:

a) Método de Heun. Consiste en tomar a1 = a 2 = 1 / 2 y α = 1 . Como se puede ver, el predictor


se toma al final del intervalo y la pendiente es el promedio aritmético.
b) Método de Euler modificado. Consiste en tomar α = 0.5 a1 = 0 a 2 = 1 . Como se puede
observar, el predictor se toma en la mitad del intervalo y todo el peso de la pendiente se
concentra en el valor predicho.
c) Método de Ralston. Consiste en tomar el predictor a tres cuartos del punto inicial: α = 0.75 y
los factores de peso: 2 / 3

El algoritmo general para aplicar el método es el siguiente:

1) Se ingresa el número de particiones: n


2) Se ingresa la abscisa inicial: xi
3) Se ingresa la abscisa final: xf
4) Se calcula el tamaño de paso, así: h = ( xf − xi) / n
5) Se define un contador: k , así: k = 1,2,3,...., n
6) Se ingresa la ordenada inicial: yi
195

7) Se ingresa alfa
8) Se ingresan los factores de peso
9) Se genera el vector de abscisas: X = xi : h : xf
10) Se introduce la función para la pendiente: f ( x, y )
11) Se calcula la pendiente al principio del intervalo: M 1k (k ) = f ( X k , Yk )
12) Se calcula el predictor: Ypk = Yk + αhM 1k
13) Se calcula la pendiente en el punto intermedio: M 2 k = f ( X k + αh, Ypk )
14) Se calcula la pendiente ponderada: M k = a1 M 1k + a 2 M 2 k
15) Se Calcula la próxima iteración: Yk +1 = Yk + hM k
16) Se representa gráficamente.
Ejemplo 16.3
Resuelva el problema del ejemplo anterior por el método de Heun

Solución.
Le aplicamos el correspondiente algoritmo y se llena la siguiente tabla:

k Xk Yk M 1k M 2k Mk
1 0.0 1 0 -0.1813 -0.0906
2 0.2 0.9819 -0.1631 -0.2789 -0.2210
3 0.4 0.9377 -0.2673 -0.3354 -0.3014
4 0.6 0.8774 -0.3286 -0.3623 -0.3455
5 0.8 0.8083 -0.3590 -0.3686 -0.3638
6 1.0 0.7355 -0.3677 -0.3608 -0.3642
7 1.2 0.6627 -0.3615 -0.3438 -0.3526
8 1.4 0.5922 -0.3456 -0.3212 -0.3334
9 1.6 0.5255 -0.3236 -0.2955 -0.3095
10 1.8 0.4636 -0.2983 -0.2834 -0.2834
11 2.0 0.4069

16.5.1. Métodos de Runge - kutta de segundo orden usando Matlab


clear all
%Programa para resolver un problema de valor inicial de primer orden
%por el metodo Runge-Kutta de orden dos
%La formulacion del problema es: y'=f(x,y);y(xi)=yi en el intervalo:[xi,xf]
% con n iteraciones.
% Entrada de la informacion
n=input('numero de particiones = ');
xi=input('abscisa inicial = ');
xf=input('abscisa final = ');
yi=input('ordenada inicial = ');
a1=input('factor de peso 1= ');
a2=input('factor de peso 2= ');
alfa=input('entre el alfa= ');
f=input('entrar la funcion f(x,y) = ');
% El tamano de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
X=xi:h:xf;
196

%El vector de ordenadas se calcula como


Y(1)=yi;
for k=1:n
x=X(k);
y=Y(k);
M1(k)=eval(f);
x=x+alfa*h;
y=y+(alfa*h*M1(k));
M2(k)=eval(f);
M(k)=a1*M1(k)+a2*M2(k);
Y(k+1)=Y(k)+h*M(k);
end
[X’ Y’]
plot(X,Y,'k')
grid on

Al corer el programa con los datos del ejemplo anterior, usando el método de Ralston, se tiene:
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = 2
ordenada inicial = 1
factor de peso 1= 1/3
factor de peso 2= 2/3
entre el alfa= 0.75
entrar la funcion f(x,y) = 'exp(-x)-y'

ans =

0 1.0000
0.2000 0.9814
0.4000 0.9369
0.6000 0.8765
0.8000 0.8073
1.0000 0.7345
1.2000 0.6617
1.4000 0.5912
1.6000 0.5246
1.8000 0.4628
2.0000 0.4062
La figura 16-9 muestra la gráfica correspondiente.

16.6. Método de Runge - kutta de tercer orden


El método consiste en generar dos predictores en el intervalo [ X k , X k +1 ] , de tal manera que la
pendiente promedio ponderada en el intervalo depende de las tres pendientes. Evidentemente,
tanto α como β están en el intervalo: [0,1]. La pendiente ponderada en el intervalo viene dada
por:
M k = a1 M 1k + a 2 M 2 k + a3 M 3k
Dónde:

M 1k = f ( X k , Yk )
M 2 k = f ( X k + αh, Yk + αhM 1k )
M 3(k ) = f ( X k + βh, Yk + αhM 1k + βhM 2 k )
197

El valor de la siguiente iteración es: yk +1 = y k + hM k

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.9

Existen muchas versiones del método, pero la más conocida es la siguiente:

Mk =
1
[M 1k + 4 M 2 k + M 3k ]
6
Donde, las pendientes vienen dadas por:

M 1k = f ( X k , Yk )
M 2 k = f ( X k + h / 2, Yk + hM 1k / 2)
M 3k = f ( X k + h, Yk − M 1k + 2 M 2 k )

16.6.1. Método de Runge-Kutta de tercer orden usando Matlab.

clear all
%Programa para resolver un problema de valor inicial de primer orden
%por el método Runge-Kutta de orden tres
%La formulación del problema es: y'=f(x,y);y(xi)=yi en el intervalo:[xi,xf]
% con n iteraciones.
% Entrada de la información
n=input('número de iteraciones = ');
xi=input('abscisa inicial = ');
xf=input('abscisa final = ');
yi=input('ordenada inicial = ');
f=input('entrar la función f(x,y) = ');
% El tamaño de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
X=xi:h:xf;
%El vector de ordenadas se calcula como
198

Y(1)=yi;
for k=1:n
x=X(k);
y=Y(k);
M1(k)=eval(f);
x=x+h/2;
y=y+h*M1(k)/2;
M2(k)=eval(f);
x=x+h/2;
y=y+h*M1(k)/2-3*h*M1(k)/2+2*h*M2(k);
M3(k)=eval(f);
M(k)=(M1(k)+4*M2(k)+M3(k))/6;
Y(k+1)=Y(k)+h*M(k);
end
[X' Y']
plot(X,Y,'k')
grid on

Ejemplo 16.4
Usando el método de Runge-Kutta de tercer orden, resuelva el P.V.I:

dy
= e −x − y y (0) = 1 ; 0 ≤ x ≤ 2
dx
Solución.
Ejecutando el programa se tiene:
>> rk3
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = 2
ordenada inicial = 1
entrar la funcion f(x,y) = 'exp(-x)-y'

ans =
0 1.0000
0.2000 0.9825
0.4000 0.9391
0.6000 0.8795
0.8000 0.8111
1.0000 0.7388
1.2000 0.6664
1.4000 0.5961
1.6000 0.5296
1.8000 0.4677
2.0000 0.4110

16.7. Método de Runge-Kutta de cuarto orden


La versión mas conocida de los métodos de Runge-Kutta de cuarto orden es la siguiente:
1) Se ingresa el número de particiones: n
2) Se ingresa la abscisa inicial: xi
3) Se ingresa la abscisa final: xf
4) Se ingresa la ordenada inicial: yi
5) Se calcula el tamaño de paso, así: h = ( xf − xi ) / n
199

6) Se genera el vector de abscisas: X = xi : h : xf


7) Se introduce la función para la pendiente: f ( x, y ) = exp resion
8) Se calcula la pendiente al principio del intervalo: M 1k = f ( X k , Yk )
 h h 
9) Se calcula la segunda pendiente: M 2 k = f  X k + , Yk + M 1k 
 2 2 
 h h 
10) Se calcula la tercera pendiente: M 3 k = f  X k + , Yk + M 2 k 
 2 2 
11) Se calcula la cuarta pendiente: M 4 k = f ( X k + h, Yk + hM 3k )

12) Se calcula la pendiente promedio: M k = (M 1k + 2 M 2 k + 2 M 3 k + M 4 k )


1
6
13) Se genera la sucesión: Yk +1 = Yk + hM k
14) Se representa gráficamente la solución.
La aproximación que se logra con el método de Runge-Kutta de cuarto orden es bastante buena.
De hecho, los algoritmos incorporados a los diferentes paquetes disponibles en el medio utilizan
este método.

16.8. Método de Runge-Kutta de cuarto orden usando Matlab.


A continuación se transcribe un programa sencillo en Matlab para resolver un problema de valor
inicial de primer orden.
clear all
%Programa para resolver un problema de valor inicial de primer orden
%por el metodo Runge-Kutta de orden cuatro
%La formulación del problema es: y'=f(x,y);y(xi)=yi en el intervalo:[xi,xf]
% con n iteraciones.
% Entrada de la información
n=input('número de iteraciones = ');
xi=input('abscisa inicial = ');
xf=input('abscisa final = ');
yi=input('ordenada inicial = ');
f=input('entrar la función f(x,y) = ');
% El tamano de paso se calcula como
h=(xf-xi)/n;
%El vector de abscisas se calcula como
X=xi:h:xf;
%El vector de ordenadas se calcula como
Y(1)=yi;
for k=1:n
x=X(k);
y=Y(k);
M1(k)=eval(f);
x=x+h/2;
y=y+h*M1(k)/2;
M2(k)=eval(f);
x=x;
y=y-h*M1(k)/2+h*M2(k)/2;
M3(k)=eval(f);
x=x+h/2;
y=y+h*M3(k)-h*M2(k)/2;
M4(k)=eval(f);
M(k)=(M1(k)+2*M2(k)+2*M3(k)+M4(k))/6;
Y(k+1)=Y(k)+h*M(k);
200

end
[X' Y']
plot(X,Y,'k')
grid on

Al correr el programa con los datos del ejemplo anterior, resulta:


>> rk4
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = 2
ordenada inicial = 1
entrar la funcion f(x,y) = 'exp(-x)-y'

ans =
0 1.0000
0.2000 0.9825
0.4000 0.9384
0.6000 0.8781
0.8000 0.8088
1.0000 0.7358
1.2000 0.6626
1.4000 0.5918
1.6000 0.5249
1.8000 0.4628
2.0000 0.4060

0.9

0.8

0.7

0.6

0.5

0.4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 16.10

EJERCICIOS

Resuelva los siguientes problemas de valor inicial por los métodos de:
a) Euler
b) Taylor de segundo orden
c) Heun
d) Euler mejorado
e) Ralston
e) RK dos
f) RK tres
201

g) RK cuatro
En cada caso tome n = 20
dx
1) = x(10 − x) ; x(0) = 1 ; 0 ≤ t ≤ 5
dt
dx x − t
2) = x ( 0) = 0 ; 0 ≤ t ≤ 5
dt x + t
dx
3. = tx + tx 2 x(0) = 1 ; 0 ≤ t ≤ 5
dt
dx
4. (t − 2) = xt x(0) = 1 ; 0 ≤ t ≤ 1
dt
dx
5. = x + x 2 + t x ( 0) = 1 ; 0 ≤ t ≤ 1
dt
202

MÓDULO 17
PROBLEMAS DE VALOR INICIAL DE SEGUNDO ORDEN
TEORÍA GENERAL
En este módulo se presenta la teoría resumida asociada a las ecuaciones diferenciales de segundo
orden y se desarrollará el siguiente contenido.

17.1. Introducción
17.2. La ecuación diferencial lineal de segundo orden.
17.3. Problemas de valor inicial de segundo orden
17.4. Ecuaciones diferenciales lineales de coeficientes constantes
17.5. La ecuación diferencial de Euler-Cauchy.
17.6. Solución de ecuaciones lineales con Matlab.
17.7. Ecuaciones diferenciales no lineales

17.1. Introducción.
Una ecuación diferencial ordinaria de segundo orden es una expresión que relaciona una variable
dependiente: y y sus dos primeras derivadas con respecto a una variable independiente x , así:

f ( x, y , y ' , y ' ' ) = 0

Por analogía con las ecuaciones diferenciales de primer orden, una solución general de la ecuación
diferencial es una familia de curvas del plano que contiene dos constantes arbitrarias, así:

F ( x, y, C1 , C2 ) = 0

Son ejemplos de ecuaciones diferenciales de segundo orden, las siguientes:

1) y ' '− xy = 0
2) a 2 y ' '+ a1 y '+ a0 y = f (t )
3) y ' '+4 sen ( y ) = f (t )
4) (1 − x 2 ) y ' '−2 xy '+ p ( p + 1) y = f ( x )
5) x 2 y ' '+ xy '+( x 2 − γ 2 ) = 0

De las ecuaciones mostradas, la tercera es no lineal y el resto son lineales. La segunda ecuación
es de coeficientes constantes y recibe el nombre de ecuación de oscilaciones. La primera ecuación
es la ecuación de Airy. La cuarta es la ecuación diferencial de Legendre y la última es la ecuación
diferencial de Bessel.
Nuestro interés se concentrará en desarrollar métodos para resolver ecuaciones diferenciales de
orden superior, particularmente las lineales.

17.1.1. Primitiva de una ecuación diferencial.

Una familia de curvas del planoF ( x, y, C1 , C 2 ) = 0 , es la primitiva de una ecuación diferencial de


segundo orden. La ecuación diferencial se obtiene derivando 2 veces y eliminando las constantes.
203

Ejemplo 17.1
Considere la familia de curvas del plano 2 xy − a − bx = 0 , con: a, b constantes reales.

a) Represente gráficamente los elementos correspondientes a:


1) a = 1, b = 1
2) a = 3, b = −1
b) Encuentre la ecuación diferencial de la familia

Solución.
a) La figura 17.1 muestra las dos curvas de la familia

2 x y-3+x = 0
5

a=1, b=1
4
a=3,b=-1
3

0
y

-1

-2

-3

-4

-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
x

Figura 17.1
b) Tomando la primera derivada, resulta:

2 xy '+2 y − b = 0
Derivando de nuevo, se tiene:
2 xy ' '+2 y '+2 y ' = 0
2
En consecuencia, la ecuación diferencial de la familia es: y ' '+ y' = 0
x

Ejemplo 17.2
204

Encuentre la ecuación diferencial correspondiente a la siguiente primitiva:

y = C1e − x + C2 e −2 x + x
Solución.
Se deriva dos veces la expresión, así:

y ' = −C1e − x − 2C 2 e −2 x + 1
y ' ' = C1e − x + 4C 2 e −2 x

La ecuación original y la correspondiente a la primera derivada conforman un sistema de dos


ecuaciones con las incógnitas C1 ,C2 , así:

 e− x e −2 x   C1   y − x 
 −x   =  
− e − 2e −2 x  C 2   y '−1 

La solución del sistema se encuentra aplicando la regla de Cramer, así:

y−x e −2 x e− x y−x
y '−1 − 2e −2 x − e−x y '−1
C1 = C2 =
e−x e −2 x e −x e −2 x
− e−x − 2e − 2 x − e −x − 2e −2 x

Al resolver los determinantes, resulta:

C1 = e x (2 y − 2 x + y '−1)
C 2 = e 2 x ( − y + x − y '+1)

Sustituyendo en la segunda derivada, resulta:

y ' ' = 2 y − 2 x + y '−1 + 4( − y + x − y '+1)

Simplificando, se obtiene la ecuación diferencial de segundo orden:

y ' '+3 y '+2 y = 2 x + 3


205

17.2. La ecuación diferencial lineal de segundo orden.


Consideremos la siguiente primitiva, en la que el conjunto de funciones: {y1 , y 2 , y ss } es
linealmente independientes en un intervalo: I de los reales.

y = C1 y1 + C 2 y 2 + y ss

Derivando dos veces, se obtiene:

y ' = C1 y1 '+C 2 y 2 '+ y ss '


y ' ' = C1 y1 ' '+C2 y 2 ' '+ y ss ' '

Con la ecuación original y la primera derivada, resulta el sistema de ecuaciones:

 y1 y 2   C1   y − y ss 
y ' =
 1 y 2 ' C2   y '− y ss '

Resolviendo el sistema, resulta:

C1 = [ y 2 ' y − y 2 ' y ss − y 2 y '+ y 2 y ss '] / W ( x )


C 2 = [− y1 ' y + y1 ' y ss + y1 y '− y1 y ss '] / W ( x )

y1 y2
Dónde: W ( x) = es el determinante del sistema y recibe el nombre de Wronskiano de las
y1 ' y2 '
funciones y1 , y2 . Veremos que si las funciones son linealmente independientes en un intervalo I ,
el Wronskiano es diferente de cero en el intervalo. Sustituyendo los valores hallados en la segunda
derivada, resulta la ecuación diferencial:

y ' ' + p ( x ) y ' + q( x ) y = r ( x )


Puede verse que:

y1 y2 y1 ' y 2 '
y ' ' y2 ' ' y ' ' y2 ' '
p( x ) = − 1 ; q( x ) = 1
W ( x) W ( x)
r ( x ) = y ss ' '+ p( x ) y ss '+ q( x ) y ss
206

Ejemplo 17.3
Encuentre la ecuación diferencial correspondiente a la primitiva:

y = C1 x + C2 e − x + x 2
Solución
El Wronskiano de las funciones viene dado por:

x e−x
W ( x) = = −e − x ( x + 1)
1 − e−x

En cuanto a p ( x) y q ( x) , tenemos:

x e− x 1 − e− x
0 e −x x 0 e−x 1
p( x ) = − −x
= ; q ( x ) = −x
=−
− e ( x + 1) x + 1 − e ( x + 1) x +1

Por otro lado, el término independiente viene a ser:

x 1 2 2( x + 1) + 2 x 2 − x 2 2 + 2 x + x 2
r( x) = 2 + 2x − x = =
x +1 x +1 x +1 x +1

En consecuencia, la ecuación diferencial es:

x 1 x2 + 2x + 2
y ' '+ y '− y=
x +1 x +1 x +1

Otra forma de escribir la ecuación diferencial es:

( x + 1) y ' '+ xy '− y = x 2 + 2 x + 2

17.2.1. Soluciones de una ecuación diferencial lineal de segundo orden


De acuerdo con lo estudiado hasta el momento, la ecuación diferencial lineal de segundo orden
presenta la forma general:
y ' ' + p ( x ) y ' + q( x ) y = r ( x )
207

En lo sucesivo adoptaremos el operador: D para la derivada, con lo que la ecuación queda en la


forma:

(D 2
+ p ( x ) D + q ( x ) )y = r ( x )

La expresión que acompaña a la variable dependiente es un operador lineal de segundo orden y lo


denotaremos por:

L2 ( x, D ) = D 2 + p( x ) D + q( x )

Con base en lo anterior, una forma simplificada de denotar a una ecuación diferencial lineal de
segundo orden es:

L2 ( x, D ) y = r ( x )

Para efectos de resolver la ecuación diferencial definiremos la homogénea asociada, así:

y ' '+ p ( x ) y '+ q( x ) y = 0

Equivalentemente, la homogénea se escribe como: L2 ( x, D ) y = 0

Al principio de la sección se dedujo que la primitiva de una ecuación diferencial lineal de segundo
orden es una familia de curvas del plano de la forma:

y = C1 y1 + C2 y2 + yss

Por analogía con lo estudiado para la ecuación diferencial lineal de primer orden, diremos que la
solución general de la ecuación diferencial lineal de segundo orden consta de dos partes a saber:

y = yc + yss

La primera parte de la solución general se denomina solución complementaria y corresponde a una


combinación lineal de dos soluciones linealmente independientes. La otra es una solución
particular de la no homogénea, tal como se vislumbra del procedimiento desarrollado al principio de
la sección. Sí las funciones: y1 , y 2 son soluciones particulares de la homogénea y son linealmente
independientes en un intervalo: I de los reales, entonces la solución general de la homogénea es
una combinación lineal de las soluciones dadas, así:

y c = C1 y1 + C2 y 2
208

Se dice que el conjunto de funciones es un conjunto fundamental de soluciones en el intervalo y se


caracteriza porque el Wronskiano es diferente de cero en todos los puntos del intervalo, es decir:

Teorema.

Sí las funciones: y1 , y2 son soluciones linealmente independientes de la homogénea y W ( x) ≠ 0


para todo x ∈ I , las funciones forman un conjunto fundamental y la solución general de la
homogénea es su combinación lineal.

Prueba.
La prueba del teorema se puede presentar en los siguientes términos:

Sí y1 , y2 son soluciones de la homogénea, entonces:

L2 ( x, D ) y1 ≡ 0
L2 ( x, D ) y 2 ≡ 0

Multiplicando cada identidad por una constante arbitraria, resulta:

C1 L2 ( x, D ) y1 ≡ 0 ⇒ L2 ( x, D )C1 y1 ≡ 0
C 2 L2 ( x, D ) y 2 ≡ 0 ⇒ L2 ( x, D )C2 y 2 ≡ 0

Sumando las dos últimas identidades se sigue que:

L2 ( x, D )[C1 y1 + C2 y 2 ] ≡ 0

Con los mismos argumentos, sí yss es una solución particular de la no homogénea, la solución
general de la no homogénea viene dada por:

y = yc + yss = C1 y1 + C2 y2 + yss

17.3. Problema de valor inicial de segundo orden.


Un problema de valor inicial lineal de segundo orden se formula mediante una ecuación diferencial
lineal de segundo orden y dos condiciones iniciales, así:

y ' '+ p ( x ) y ' + q( x ) y = r ( x ) ; y ( x 0 ) = y 0 , y ' ( x 0 ) = p0


209

Geométricamente, la solución del problema es la curva del plano que satisface la ecuación
diferencial, pasa por el punto ( x0 , y0 ) y la pendiente de la recta tangente a la curva en el punto es
p0 . La solución del problema de valor inicial se obtiene a partir de la solución general, así:

y ( x ) = C1 y1 ( x ) + C 2 y 2 ( x ) + y ss ( x )
y ' ( x ) = C1 y1 ' ( x ) + C2 y 2 ' ( x ) + y ss ' ( x )

Evaluando en el punto: ( x0 , y 0 ) resulta el sistema de ecuaciones:

 y1 ( x0 ) y 2 ( x0 )   C1   y0 − y ss ( x0 ) 
 y ' (x ) =
 1 0 y 2 ' ( x0 ) C 2   p0 − y ss ' ( x0 )

17.3.1. Teorema de existencia y unicidad.


Por analogía con el caso del problema de valor inicial de primer orden, el de segundo orden tendrá
solución única en aquellas regiones en las que: p ( x ), q ( x) y r ( x) sean continuas. El intervalo de
solución corresponde a la intersección de cada una de los intervalos individuales.

Ejemplo 17.4
Resuelva el problema de valor inicial siguiente, indicando el intervalo de validez y la representación
gráfica.

( x + 1) y ' '+ xy '− y = x 2 + 2 x + 2 y (1) = 1 y ' (1) = 1

Con base en el ejemplo 17.3, la solución general de la ecuación diferencial es:

y ( x ) = C1 x + C 2 e − x + x 2
Es importante precisar que:
x
p( x ) =
x +1
−1
q( x ) =
x +1
x2 + 2x + 2
r( x) =
x +1

En virtud del teorema, se garantiza solución en el intervalo ( −1, ∞) . Sí se analiza la solución


general se observa que es válida para todos los reales, lo cual no constituye una violación al
teorema ya que las condiciones son de suficiencia y no de necesidad.
210

Continuando con la solución del problema de valor inicial, se tiene:

1 e −1   C1   0 
 −1   = 
1 − e  C2   − 1

La solución del sistema es: C1 = −0.5 , C2 = 1.36


La solución del problema de valor inicial viene a ser: y ( x ) = −0.5 x + 1.36e − x + x 2
La gráfica, en el intervalo (−1,3) , se muestra en la figura 17.2.

0
-1 -0.5 0 0.5 1 1.5 2 2.5 3

Figura 17.2

17.3.2. Reducción de orden


A continuación desarrollaremos un procedimiento que nos permite determinar la solución general
de una ecuación diferencial de primer orden a partir de una solución conocida de la homogénea
asociada. Supongamos que: y1 ( x ) es una solución conocida de la homogénea y que es posible
determinar una función: u (x) de tal manera que la solución general de la no homogénea es:

y = y1 ( x)u ( x)
Derivando dos veces, resulta:

y ' = y1 ' u + y1u '


y ' ' = y1 ' ' u + 2 y1 ' u'+ y1u' '
211

Sustituyendo en la no homogénea, resulta:

y1u ' '+2 y1 ' u'+ y1 ' ' u + p ( x )[ y1u'+ y1 ' u ] + q( x ) y1u ≡ r ( x )

Reorganizando los términos de la anterior identidad, podemos escribir:

y1u ' '+[2 y1 '+ y1 p( x )]u'+[ y1 ' '+ p ( x ) y1 '+ q( x ) y1 ]u ≡ r ( x )

Puesto que y1 es solución de la homogénea, el tercer término de la izquierda es idénticamente


cero, con lo que:

y1u ' '+[2 y1 '+ y1 p( x )]u' = r ( x )

La ecuación obtenida para: u es de segundo orden, así:

 2y '  r( x )
u' '+ 1 + p ( x ) u' =
 y1  y1

La ecuación diferencial es reducible a una de primer orden mediante el cambio de variable u ' = z ,
así:

dz  2 y1 '  r( x)
+  + p ( x )  z =
dx  y1  y1

Puesto que la ecuación diferencial es lineal, su factor integrante viene dado por:

Φ ( x ) = y1 e ∫
2 p ( x ) dx

Con el factor integrante hallado podemos escribir la solución para z, así:

⌠ r( x)
z = AΦ −1 + Φ −1  Φ dx
⌡ y1
A es una constante arbitraria.
Integrando de nuevo, se obtiene:

⌠ ⌠ r( x)
u( x ) = B + A∫ Φ −1dx +  Φ −1  Φ dxdx
⌡ ⌡ y1
212

Finalmente, la solución general viene dada por:

⌠ ⌠ r( x)
y ( x ) = By1 + Ay1 ∫ Φ −1dx + y1  Φ −1  Φ dxdx
⌡ ⌡ y1

De la última ecuación se sigue que, sí y1 es una solución de la homogénea de una ecuación


diferencial de segundo orden, entonces:

y2 = y1 ∫ Φ −1dx
⌠ ⌠ Φr( x )
y ss = y1  Φ −1  dxdx
⌡ ⌡ y1

Ejemplo 17.5
Encuentre la solución general de la ecuación diferencial siguiente, sabiendo que y = x es una
solución de la homogénea.

x 2 y ' '+ xy '− y = x

Solución.
Con base en la ecuación, se tiene que p ( x ) = 1 / x , por tanto, el factor integrante es:

Φ ( x ) = y1 e ∫ = x 2e ∫
−1
p ( x ) dx x dx
= x 2 e ln( x ) = x 3
2

La segunda solución de la homogénea se puede escribir como:

1 −1
y2 = y1 ∫ Φ −1dx = x ∫ x −3dx = − x
2

Un conjunto fundamental de soluciones de la homogénea es: {x, x }−1

La solución particular, teniendo en cuenta que r ( x) = 1 / x , viene dada por:

⌠ ⌠ Φr( x ) ⌠ x 3 ⋅ x −1
y ss = y1  Φ −1  dxdx = x  x −3 ⌠
 dxdx
⌡ ⌡ y1 ⌡ ⌡ x
213

1
Evaluando las integrales, resulta: y ss = x ln( x )
2

En consecuencia, la solución general es:

1
y ( x ) = C1 x + C2 x −1 + x ln( x )
2

17.4 La ecuación Diferencial lineal de segundo orden con coeficientes constantes


La ecuación diferencial lineal de segundo orden con coeficientes constantes viene dada por:

ay ' '+ by '+ cy = ar ( x )

Una forma alternativa de escribir la ecuación diferencial es la siguiente:

(D 2
+ pD + q )y ( x ) = r ( x )

17.4.1. Solución de la homogénea.

Es fácil establecer que la homogénea admite soluciones de tipo exponencial, así: y = e λx


Derivando dos veces y sustituyendo en la homogénea resulta el polinomio característico:

L(λ ) = λ2 + pλ + q

La ecuación característica de la ecuación diferencial es:

λ2 + pλ + q = 0

Aplicando la fórmula general, las dos raíces de la ecuación característica son:

− p± p 2 − 4q
λ1 , λ2 =
2

Pueden presentarse tres situaciones diferentes, a saber:

1) El discriminante: p 2 − 4q es positivo.
214

En este caso las raíces de la ecuación son reales y diferentes: λ1 ≠ λ2 y en consecuencia, un


conjunto fundamental de soluciones es:

{y1 , y2 } = {e λ x , e λ x }
1 2

2) El discriminante de la ecuación es cero.

En este caso, las dos raíces son iguales, así: λ1 = λ2 = α


El conjunto fundamental de soluciones es:

{y1 , y2 } = {eαx , xeαx }

3) El discriminante es negativo.

En este caso las raíces son complejas conjugadas, así λ1 , λ2 = α ± jω


En la expresión anterior, la parte real viene dada por: α = −p/2 y la parte imaginaria es

ω = 4 q − p 2 / 2 . Como puede verse, usaremos la letra: j para representar a la unidad de los


números imaginarios, esto es: j = −1
El conjunto fundamental de soluciones se puede escribir como:

{y1 , y2 } = {eαx cos(ωx ), eαx sen(ωx )}

Podemos concluir que para hallar un conjunto fundamental de soluciones de la ecuación diferencial
homogénea de segundo orden basta con encontrar los valores característicos y ubicarnos en uno
de los tres casos posibles.

Ejemplo 17.6
Encuentre un conjunto fundamental de soluciones para cada una de las siguientes ecuaciones
diferenciales:

1) ( D 2 + 3D + 2) y ( x ) = 0

2) ( D 2 + 2 D + 1) y ( x ) = 0
3) ( D 2 + 2 D + 2) y ( x ) = 0
4) ( D 2 + 4) y ( x ) = 0

Solución.

1) La ecuación característica es λ2 + 3λ + 2 = 0 . Las raíces son: λ1 = −1 λ2 = −2


215

El conjunto fundamental de soluciones es:

{y1 , y2 } = {e − x , e −2 x }

2) La ecuación característica es λ2 + 2λ + 1 = 0 . Las raíces son: λ1 = −1 λ2 = −1


El conjunto fundamental de soluciones es:

{y1 , y2 } = {e − x , xe − x }

3) La ecuación característica es λ2 + 2λ + 2 = 0 . Las raíces son: λ1 , λ 2 = −1 ± j1


El conjunto fundamental de soluciones es:

{y1 , y2 } = {e − x cos( x ), e − x sen( x )}

4) La ecuación característica es λ2 + 4 = 0 . Las raíces son: λ1 , λ2 = 0 ± j 2


El conjunto fundamental de soluciones es:

{y1 , y2 } = {cos(2 x ), sen(2 x )}

Obsérvese que para hallar la ecuación característica basta con sustituir el operador D de la
ecuación diferencial por la variable λ . En general, para la ecuación de segundo orden, la ecuación
característica es:

aλ2 + bλ + c = 0

17.4.2. Solución particular


Son variados los métodos para encontrar la solución particular. En este trabajo se presenta el
método de variación de parámetros.
Dada la ecuación diferencial:

y ' ' + p ( x ) y ' + q( x ) y = r ( x )

Sea: { y1 , y 2 } un conjunto fundamental de soluciones de la homogénea asociada. Se trata de


determinar dos funciones: u1 ,u2 de tal manera que una solución particular de la no homogénea es:
216

yss = y1u1 + y2u2

Para hallar las funciones se resuelve el siguiente sistema de ecuaciones:

 y1 y 2   u1 '   0 
y ' =
 1 y2 ' u2 '  r ( x )

Al resolver el sistema, resulta:

0 y2 y1 0
r( x) y2 ' y1 ' r ( x )
u1 ' = u2 ' =
W ( x) W ( x)

Las funciones se determinan por integración y teniendo en cuenta que las constantes de
integración se hacen iguales a cero.

Ejemplo 17.7
Encuentre la solución general de la ecuación diferencial:

( D 2 + 3D + 2) y ( x ) = xe − x
Solución.
Con base en el ejemplo anterior, un conjunto fundamental de soluciones de homogénea es

{y1 , y2 } = {e − x , e −2 x }

Aplicando el método, la solución particular debe ser de la forma:

y ss = e − x u1 + e −2 x u2

Se debe resolver el sistema:

 e− x e −2 x   u1 '   0 
 −x   =  −x 
− e − 2e −2 x  u2 '  xe 
217

Resolviendo el sistema, resulta u1 ' = x ; u 2 ' = − xe x . Integrando y haciendo las constantes


1 2
iguales a cero, se tiene u1 = x ; u2 = ( − x + 1)e x . En consecuencia, la solución particular es:
2
1 2 −x
y ss = x e − xe − x
2
Finalmente, la solución general es:

1 2 −x
y ( x ) = C1e − x + C 2 e −2 x + x e − xe − x
2

17.5. La ecuación diferencial de Euler-Cauchy.


Es una ecuación diferencial lineal cuya forma general es:

ax 2 y ' '+ bxy '+ cy = ax 2 r ( x )


b c
Puede verse que: p( x ) = ; q( x ) = 2
ax ax
Estamos interesados en determinar la solución general en el intervalo (0, ∞)
17.5.1. Solución de la homogénea.

La homogénea asociada a la ecuación diferencial es ax 2 y ' '+bxy'+cy = 0 y admite soluciones de


λ
la forma y = x . Derivando dos veces y sustituyendo en la homogénea resulta el polinomio
característico:
L(λ ) = aλ (λ − 1) + bλ + c

Las raíces del polinomio pueden ser de tres tipos, a saber:

a) (λ1 ≠ λ2 ) ∈ R . En este caso, un conjunto fundamental de soluciones de la homogénea es:

{x λ1
, x λ2 }

b) λ1 = λ 2 = α . En este caso, un conjunto fundamental de soluciones de la homogénea es:

{x α
, x α ln( x ) ; x > 0}

c) λ1 , λ 2 = α ± jω . En este caso, un conjunto fundamental de soluciones de la homogénea es:


218

{x α
cos(ω ln( x ) ), x α sen (ω ln( x ) ); x > 0}

Ejemplo 17.7
Encuentre un conjunto fundamental de soluciones para cada una de las siguientes ecuaciones
diferenciales:

1) x 2 y ' '+ xy '−4 y = 0


2) x 2 y ' '− xy '+ y = 0
3) x 2 y ' '+ xy '+4 y = 0

Solución.

1) El polinomio característico es L(λ ) = λ (λ − 1) + λ − 4 = λ2 − 4 .


Las raíces son λ1 = 2 , λ 2 = −2 y el conjunto fundamental de soluciones es:

{x 2
, x −2 }; x > 0

2) El polinomio característico es L(λ ) = λ (λ − 1) − λ + 1 = λ2 − 2λ + 1 .


Las raíces son λ1 = λ 2 = 1 y el conjunto fundamental de soluciones es:

{x, x ln( x )}; x > 0

3) El polinomio característico es L(λ ) = λ (λ − 1) + λ + 4 = λ2 + 4 .


Las raíces son λ1 , λ2 = 0 ± j 2 y el conjunto fundamental de soluciones es:

{cos(2 ln( x ) ), sen(2 ln( x ) )}; x > 0

17.5.2. Solución de la no homogénea.


Para determinar la solución particular se hace uso del método de variación de parámetros,
previamente presentado.

Ejemplo 17.8
219

Dada la ecuación diferencial: x 2 y ' '+ xy '−4 y = 4 x


a) Escriba el conjunto fundamental de soluciones de la homogénea.
b) Determine la solución particular
c) Escriba la solución general
d) Resuelva el problema de valor inicial con: y (1) = 1 , y ' (1) = 0

e) Represente gráficamente la solución en el intervalo (0.5,2.5)

Solución.

a) El conjunto fundamental de soluciones es {x 2


}
, x −2 ; x > 0
b) De acuerdo con lo presentado, la solución particular se puede escribir como:

y ss = x 2 u1 + x −2 u 2

Para calcular u1 y u 2 se procede de la siguiente manera:

 x2 x −2   u1 '   0 
 −3    =  −1 
 2 x − 2 x  u 2 '   4 x 

El Wronskiano viene dado por W ( x) = −4 x −1 , con lo que:

−1 0 x −2
− 4 x u1 ' = ⇒ u1 ' = x −2 ⇒ u1 = − x −1
4 x −1 − 2x −3

x2 0
− 4 x −1u2 ' = −1
⇒ u2 ' = − x 2 ⇒ u2 = − x 3 / 3
2x 4x
La solución particular es:

y ss = x 2 (− x −1 ) + x −2 (− x 3 / 3) = −4 x / 3

c) La solución general es:

y ( x ) = C1 x 2 + C 2 x −2 − 4 x / 3

d) Tomando la primera derivada se obtiene:


220

y ' ( x ) = 2C1 x − 2C2 x −3 − 4 / 3

Aplicando las condiciones iniciales resulta el sistema:

1 1   C1  7 / 3
2 − 2 C  = 4 / 3
  2   

La solución del sistema es C1 = 4 / 3 , C 2 = 1 , con lo que la solución del problema es:


4 2
y( x) = x + x −2 − 4 x / 3
3

e) La gráfica se muestra en la figura 17.3.

0
0.5 1 1.5 2 2.5

Figura 17.3

17.6. Solución de ecuaciones diferenciales lineales usando Matlab.


Con Matlab es posible hallar: tanto la solución general como la solución particular de una ecuación
diferencial lineal, en la medida que tenga solución analítica. Con dsolve es posible resolver
ecuaciones de coeficientes constantes y ecuaciones de Euler-Cauchy.

17.6.1. Solución general


Dada la ecuación diferencial lineal y ' ' + p ( x ) y ' + q( x ) y = r ( x ) , para determinar la solución
general se escribe:

y = dsolve(' D 2 y = r ( x ) − q( x ) * y − p( x ) * Dy ' , ' x' )


221

Ejemplo 17.9.
Determine la solución general de la ecuación diferencial: ( D
2
+ 3D + 2) y ( x) = xe− x

Solución.

y = dsolve(' D 2 y = x * exp( − x ) − 2 * y − 3 * Dy ' , ' x ' )

>> y=dsolve('D2y=x*exp(-x)-2*y-3*Dy','x')

y=

x^2/(2*exp(x)) - (x - 1)/exp(x) + C14/exp(x) + C15/exp(2*x)

>> pretty(y)

2
x exp(-x)
---------- - exp(-x) (x - 1) + C14 exp(-x) + C15 exp(-2 x)
2
Las constantes arbitrarias son C14 y C15. Observe que la solución se puede escribir como:

x 2e− x
y= − xe − x + e − x + C14 e − x + C15e −2 x
2

El tercer término es linealmente dependiente con el cuarto, con lo que resulta:

x 2e− x
y= − xe − x + C1e − x + C2 e −2 x
2

El estudiante puede verificar que el resultado es equivalente al obtenido en el ejemplo 17.7.

Ejemplo 17.10.
Determine la solución general de la ecuación diferencial: x 2 y ' '+ xy '−4 y = 4 x

Solución.
222

y = dsolve(' D 2 y = 4 / x − Dy / x + 4 * y / x / x, ' x ' )

>> y=dsolve('D2y=4/x-Dy/x+4*y/x/x','x')

y=

C17*x^2 - (4*x)/3 + C18/x^2

>> pretty(y)

2 4 x C18
C17 x - --- + ---
3 2
X

Las constantes arbitrarias son C17 y C18. Observe que la solución se puede escribir como:

4x
y=− + C17 x 2 + C18 x −2
2

El estudiante puede verificar que el resultado es equivalente al obtenido en el ejemplo 17.8.

17.6.2. Solución del problema de valor inicial.

Dado el problema de valor inicial y ' '+ p( x ) y '+ q( x ) y = r ( x ) ; y ( x0 ) = y0 , Dy ( x0 ) = p0 , para


determinar la solución se escribe:

y = dsolve(' D 2 y = r ( x ) − q( x ) * y − p ( x ) * Dy ' , ' y ( x0 ) = y 0 ' , ' Dy ( x0 ) = p0 ' , ' x ' )

Ejemplo 17.11
Resuelva el problema de valor inicial ( D
2
+ 3D + 2) y ( x ) = xe − x ; y (0) = 1 , Dy (0) = 1
Solución.

y = dsolve(' D 2 y = x * exp( − x ) − 2 * y − 3 * Dy ' , ' y (0) = 1' , ' Dy (0) = 1' , ' x ' )

>> y=dsolve('D2y=x*exp(-x)-2*y-3*Dy','y(0)=1','Dy(0)=1','x')
y=
223

3/exp(x) - 3/exp(2*x) - (x - 1)/exp(x) + x^2/(2*exp(x))

>> simplify(3/exp(x) - 3/exp(2*x) - (x - 1)/exp(x) + x^2/(2*exp(x)))

ans =

4/exp(x) - 3/exp(2*x) - x/exp(x) + x^2/(2*exp(x))

La solución se puede escribir como:

x 2e− x
y= − xe − x + 4e − x − 3e −2 x
2

17.7. Ecuaciones diferenciales no lineales.


Una ecuación diferencial no lineal de segundo orden presenta la forma general:

d 2 y( x)  dy ( x ) 
2
= f  x, y , 
dx  dx 

La solución general de la ecuación diferencial presenta dos constantes arbitrarias que se


determinan con base en las condiciones iniciales y ( x0 ) = y0 y ' ( x0 ) = p0 . Algunas ecuaciones
diferenciales de segundo orden se pueden resolver mediante las técnicas estudiadas para resolver
ecuaciones de primer orden.

17.7.1. Ecuaciones diferenciales de la forma:


d2
y = f ( x)
dx 2
dy
La solución general se determina mediante el cambio de variable = p , con lo que resulta un
dx
sistema de dos ecuaciones con dos incógnitas, así:

 dp
 dx = f ( x )
 dy
 =p
 dx
Ejemplo 17.12
Encuentre la solución general de la ecuación diferencial:

d2
y = sen( x )
dx 2
Solución.
224

dy
Si se hace el cambio de variable p= , la ecuación diferencial se convierte en un sistema de
dx
dos ecuaciones diferenciales de primer orden, así:

 dp
 dx = sen ( x )
 dy
 =p
 dx

La solución de la primera de ellas es p = − cos( x) + C1 . Sustituyendo p en la segunda ecuación,


tenemos:
dy
= − cos( x ) + C1
dx

Integrando, tenemos: y = − sen( x) + C1 x + C2

17.7.2. Ecuaciones diferenciales de la forma:

d2  dy 
2
y = f  x, 
dx  dx 

dy
Para resolver la ecuación diferencial se hace el cambio de variable p= , con lo que la
dx
ecuación diferencial original se convierte en un sistema de dos ecuaciones diferenciales de primer
orden, así:
 dp
 dx = f ( x, p )
 dy
 =p
 dx

Es claro que para obtener la solución se requiere que p se pueda obtener explícitamente en
función de x

Ejemplo 17.13
Encuentre la solución general de la ecuación diferencial:

d 2 y dy
x + = x cos( x )
dx 2 dx
Solución.
Con el cambio de variable resulta el sistema de ecuaciones:

 dp 1
 dx + x p = cos( x )
 dy
 =p
 dx
225

Φ = e∫
x −1 dx
La primera es una ecuación diferencial lineal cuyo factor integrante es = x . La
solución general será:
xp = C1 + ∫ x cos( x )dx
cos( x )
Evaluando la integral y despejando p tenemos: p = C1 x −1 + − sen ( x )
x
Al sustituir en la segunda ecuación diferencial, resulta:
cos( x )
y = C1 ln( x ) + cos( x ) + ∫ dx + C 2
x
Es claro que si x ≠ 0 la integral indicada se puede escribir mediante su serie de Taylor, así:

⌠ cos( x ) dx = ⌠  1 − x + x − x + ... dx = ln( x ) − x + x − x +


3 5 2 4 6

   x 2 4! 5! 
⌡ x ⌡  4 96 720

Con base en lo anterior, sí: A y B son constantes arbitrarias, la solución general de la ecuación
diferencial es:
x2 x4 x6
y = A + B ln( x ) + cos( x ) − + − + .... x ≠ 0
4 96 720
17.7.3. Ecuaciones diferenciales de la forma:

d2y  dy 
2
= f  y, 
dx  dx 
dy
Para resolver este tipo de ecuaciones diferenciales se hace el cambio de variable: p= y se
dx
aplica la regla de la cadena:
dp dp dy dp
= =p
dx dy dx dy

Con lo anterior resulta un sistema de dos ecuaciones de primer orden, así:


 dp
 p dy = f ( y, p )

 dy
=p
 dx
Al igual que en el caso anterior se requiere que p se pueda expresa explícitamente en función de
y.

Ejemplo 17.14
Encuentre la solución general de la ecuación diferencial:

d2y
= − sen ( y )
dx 2
Solución.
Al hacer el cambio de variable resulta el sistema de ecuaciones:
226

 dp
 p dy = − sen ( y )

 dy
=p
 dx
La primera ecuación es de variables separables y se resuelve de la siguiente manera:

1 2
pdp = − sen( y )dy p = cos( y ) + C1
2
La solución para p se puede expresar como: p = ± 2 cos( y ) + 2C1
La segunda ecuación diferencial queda como:
dy
= ± 2dx
cos( y ) + A
El inconveniente que se presenta es el de la imposibilidad de resolver la integral de la izquierda, sin
embargo se puede expandir en series de potencias, resultando:

C3 3
Cy + y + ... = ± 2 x + D
12
Ejemplo 17.15
Resuelva el problema de valor inicial:

yy ' ' = y ' (1 + y ' ) y ( 0) = 1 ; y ' ( 0) = 1

Solución.
Haciendo los cambios correspondientes, resulta el sistema de ecuaciones:

 dp
 yp dy = p (1 + p )

 dy
=p
 dx
dp dy
La primera ecuación se puede expresar en la forma: = y tiene como solución general
p +1 y
p = Cy − 1 . Ahora, con base en la condición inicial, se tiene que C = 2 , con lo que p = 2 y − 1 .
Sustituyendo en la otra ecuación resulta:
dy dy
= 2y −1 ⇒ = dx
dx 2y −1
1
Al integrar, se obtiene: ln 2 y −1 = x + C
2
Con base en la condición inicial resulta: C = 0
e2 x + 1
En consecuencia, la solución del problema es: y=
2
Con la ayuda del paquete se encuentra la gráfica de la figura 17.4
227

30

25

20

15

10

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 17.4
EJERCICIOS
1) Dada la ecuación diferencial: y ' '+2αy '+α 2 y = 0
a) Muestre que y1 = e −αx es una solución de la ecuación diferencial
b) Usando el método de reducción de orden, muestre que la otra solución es: y2 = xe−αx

2) Dada la ecuación diferencial: x 2 y ' '+ xy'−4 y = 3x


a) Muestre que la parábola: y = x 2 es una solución de la homogénea asociada.
b) Encuentre la otra solución de la homogénea
c) Encuentre la solución particular
d) Resuelva el problema de valor inicial formado con la ecuación diferencial dada, con las
siguientes condiciones iniciales: y (1) = 1 y ' (1) = 1

e) Represente gráficamente la solución del problema de valor inicial


f) Resuelva el problema con dsolve.

3) Dada la ecuación diferencial: x 2 y ''- xy '+ y = 0


a) Muestre que la recta: y = x es una solución de la homogénea asociada

b) Encuentre la otra solución de la homogénea


228

c) Resuelva el problema de valor inicial formado con la ecuación diferencial y las condiciones
iniciales y (1) = 1 y '(1) = 0 , indicando el intervalo de validez de la solución.

d) Resuelva el problema con dsolve.

4) Dada la ecuación diferencial: xy ' '+2 y '− xy = x


a) Muestre que la función: y = x −1e x es una solución de la homogénea asociada.
b) Encuentre la otra solución de la homogénea
c) Encuentre la solución particular
d) Resuelva el problema de valor inicial formado con la ecuación diferencial dada, con las
siguientes condiciones iniciales: y (1) = 1 y ' (1) = 1

d) Resuelva el problema con dsolve.

5) Dada la ecuación diferencial: xy ' '+2 y '+ xy = x

a) Muestre que la función: y = x −1sen( x) es una solución de la homogénea asociada.


b) Encuentre la otra solución de la homogénea
c) Encuentre la solución particular
d) Resuelva el problema de valor inicial formado con la ecuación diferencial dada, con las
siguientes condiciones iniciales: y (1) = 1 y ' (1) = 1

6) Resuelva los siguientes problemas de valor inicial, tanto analíticamente como con dsolve.

a) y ' '+5 y '+4 y = x 2 ; y (0) = 0, y ' (0) = 1


b) y ' '+5 y '+6 y = xe − x ; y (0) = 0, y ' (0) = 1
c) y ' '+2 y '+10 y = 20 ; y (0) = 0, y ' (0) = 0
d) y ' '+4 y '+4 y = cos( x) ; y (0) = 0, y ' (0) = 0
e) y ' '+4 y = sen(2 x) ; y (0) = 0, y ' (0) = 0

7) Encuentre la solución general de las siguientes ecuaciones no lineales


2 2
d2y  dy  d2y  dy 
a) y =1+   b) = 1+  
 dx   dx 
2 2
dx dx

2 y 2 y ' '+2 y ( y ') − 1 = 0 d) y ' ' = ( y + 1) y '


2
c)

1
e) y ' '+ y '+2( y ' ) 2 = 0
x
229
230

MÓDULO 18
PROBLEMAS DE VALOR INICIAL DE SEGUNDO ORDEN
SOLUCIÒN NUMÉRICA
En este módulo se presentan los métodos numéricos para resolver un problema de valor inicial de
segundo orden y se desarrollará el siguiente contenido:

18.1. Formulación del problema


18.2. Método de Euler
18.3. Método de Euler con Matlab
18.4. Método de Runge-Kutta de orden cuatro con Matlab

18.1. Formulación del problema.


Un problema de valor inicial de segundo orden se formula de la siguiente manera:

y ' ' (t ) = f ( t , y , y ' ) y ( 0) = y 0 ; y ' ( 0) = p 0

Al efectuar el cambio de variable: y ' = p resulta un sistema de dos ecuaciones con dos incógnitas,
así:
d  p   f ( t , y , p )
=
dt  y   p 

El sistema de ecuaciones es un caso particular de un sistema de ecuaciones de la forma:

d  x1 (t )   f1 (t , x1 , x 2 )   x (0)   x i 
  =  ;  1 = 1
dt  x2 (t )  f 2 (t, x1 , x2 )  x 2 ( 0)   x 2 i 

Para resolver el problema se puede proceder de manera analítica o numérica. Cuando el sistema
es lineal siempre es posible encontrar la solución analítica. Para sistemas no lineales se recurre a
las técnicas numéricas previamente desarrolladas. La solución de sistemas lineales hace parte de
un curso regular de ecuaciones diferenciales y, por tanto, nos concentraremos en los sistemas no
lineales.

18.2. Método de Euler.


Es una extensión matricial del método de Euler desarrollado para una ecuación. El procedimiento
para resolver el problema de valor inicial matricial es el mismo que para el caso escalar, veamos:
Se trata de resolver el problema de valor inicial:

dx
= f (t , x, y ) ; x (ti ) = xi
dt
dy
= g (t , x, y ) ; y (ti ) = yi
dt

El problema se resuelve en el intervalo ti ≤ t ≤ tf con n particiones.


Al igual que en el caso escalar, el algoritmo es:
11) Se ingresa el número de iteraciones, es decir, el número de subintervalos: n
12) Se ingresa la abscisa inicial: ti
13) Se ingresa la abscisa final: tf
14) Se ingresa la primera ordenada inicial: xi
231

15) Se ingresa la segunda ordenada inicial: yi


16) Se ingresa la función f (t , x, y )
17) Se ingresa la función g (t , x, y )
tf − ti
18) Se calcula el tamaño de paso, así: h =
n
19) Se genera el vector de abscisas T (k ) = ti + h(k − 1)
20) Con la condición inicial se genera el primer elemento del primer vector de ordenadas:
X (1) = xi
21) Con la condición inicial se genera el primer elemento del segundo vector de ordenadas:
Y (1) = yi
22) Se generan los demás elementos del primer vector de ordenadas:

X ( k + 1) = X (k ) + hf (T ( k ), X ( k ), Y (k ) )

23) Se generan los demás elementos del segundo vector de ordenadas:

Y (k + 1) = Y (k ) + hg (T ( k ), X (k ), Y ( k ) )

24) Se representan gráficamente las curvas resultantes.


Ejemplo 18.1
Resuelva el siguiente problema de valor inicial en el intervalo 0 ≤ t ≤ 4 , con 10 iteraciones.

y ' ' ( t ) + 5 y ' (t ) + 4 y (t ) = 8 ; y (0) = 0, y ' (0) = 0

Solución.
Se hace el cambio de variable de variable y ' (t ) = x(t ) , con lo que resulta el sistema de
ecuaciones:
dx
= 8 − 4 y − 5 x ; x ( 0) = 0
dt
dy
= x ; y ( 0) = 0
dt
A continuación se aplica el algoritmo y se llena la tabla de resultados.

1) Se ingresa el número de iteraciones, es decir, el número de subintervalos n = 10 .


2) Se ingresa la abscisa inicial: ti = 0
3) Se ingresa la abscisa final: tf = 4
4) Se ingresa la primera ordenada inicial: xi = 0
5) Se ingresa la segunda ordenada inicial: yi = 0
6) Se ingresa la función f (t , x, y ) = 8 − 4 y − 5 x
7) Se ingresa la función g (t , x, y ) = x
tf − ti
8) Se calcula el tamaño de paso, así: h= = 0.4
n
9) Se genera el vector de abscisas T (k ) = ti + h ( k − 1)
232

10) Con la condición inicial se genera el primer elemento del primer vector de ordenadas:
X (1) = xi
11) Con la condición inicial se genera el primer elemento del segundo vector de ordenadas:
Y (1) = yi
12) Se generan los demás elementos del primer vector de ordenadas:

X ( k + 1) = X (k ) + hf (T ( k ), X ( k ), Y (k ) )

13) Se generan los demás elementos del segundo vector de ordenadas:

Y (k + 1) = Y (k ) + hg (T ( k ), X (k ), Y ( k ) )

k T (k ) X (k ) Y (k ) f (T ( k ), X ( k ), Y ( k )) g (T (k ), X ( k ), Y ( k ))
1 0.0 0 0 8.0 0.0
2 0.4 3.2000 0.0 -8.0 3.2
3 0.8 0.0 1.28 2.88 0.0
4 1.2 1.152 1.28 -2.88 1.152
5 1.6 0.0 1.7408 1.0368 0
6 2.0 0.4147 1.7408 -1.0368 0.4147
7 2.4 0.0 1.9067 0.3732 0.0
8 2.8 0.1493 1.9067 -0.3732 0.1493
9 3.2 0.0 1.9664 0.1344 0.0
10 3.6 0.0537 1.9664 -0.1344 0.0537
11 4.0 0.0 1.9879

La figura 18.1 ilustra la gráfica correspondiente.

3.5
gráfica de x
gráfica de y
3

2.5

1.5

0.5

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 18.1
233

Ejemplo 18.2
Determine la solución analítica del problema y haga un análisis del error.

Solución.
y ' ' ( t ) + 5 y ' (t ) + 4 y (t ) = 8 ; y (0) = 0, y ' (0) = 0

Con base en lo presentado en el módulo anterior, la solución general de la ecuación diferencial es:

y (t ) = C1e − t + C2 e −4 t + 2
x(t ) = y ' (t ) = −C1e −t − 4C 2 e −4t

Aplicando las condiciones iniciales resulta:

8 2
y ( t ) = − e −t + e − 4 t + 2
3 3
8 8
x ( t ) = y ' (t ) = e −t − e − 4 t
3 3
La tabla siguiente ilustra la solución numérica comparada con la analítica.

k T (k ) X (k ) Y (k ) xe ye xe − x(k ) ye − y (k )
1 0.0 0 0 0.0 0.0 0 0
2 0.4 3.2000 0.0 1.2491 0.3471 1.9509 0.3471
3 0.8 0.0 1.28 1.0895 0.8290 1.0895 0.451
4 1.2 1.152 1.28 0.7812 1.2023 0.3708 0.0777
5 1.6 0.0 1.7408 0.5340 1.4627 0.5340 0.2781
6 2.0 0.4147 1.7408 0.3600 1.6393 0.0547 0.1015
7 2.4 0.0 1.9067 0.2417 1.7581 0.2417 0.1486
8 2.8 0.1493 1.9067 0.1621 1.8378 0.0128 0.0689
9 3.2 0.0 1.9664 0.1087 1.8913 0.1087 0.0751
10 3.6 0.0537 1.9664 0.0729 1.9271 0.0192 0.0393
11 4.0 0.0 1.9879 0.0488 1.9512 0.0488 0.0367

18.3. Método de Euler usando Matlab.


A continuación se describe el programa en Matlab para resolver el problema de valor inicial de
segundo orden por el método de Euler.
clear all
%Programa para resolver un problema de valor inicial de primer orden
%por el metodo de Euler
%La formulacion del problema es: x'=f(t,x,y),x(ti)=xi; y'=g(t,x,y),y(ti)=yi
%en el intervalo:[ti,tf] con n iteraciones.
% Entrada de la informacion
n=input('numero de particiones = ');
ti=input('abscisa inicial = ');
tf=input('abscisa final = ');
xi=input('primera ordenada inicial = ');
yi=input('segunda ordenada inicial = ');
f=input('entrar la funcion f(t,x,y) = ');
g=input('entrar la funcion g(t,x,y) = ');
234

% El tamano de paso se calcula como


h=(tf-ti)/n;
%El vector de abscisas se calcula como
for k=1:n+1
T(k)=ti+(k-1)*h;
end
%Los vectores de ordenadas se calculan como
X(1)=xi;
Y(1)=yi;
for k=1:n
t=T(k);
x=X(k);
y=Y(k);
F1(k)=eval(f);
G1(k)=eval(g);
X(k+1)=X(k)+h*F1(k);
Y(k+1)=Y(k)+h*G1(k);
end
[T' X' Y']
plot(T,X)
hold on
plot(T,Y,'k')
grid on

Ejemplo 18.3
Usando el programa, resuelva el siguiente problema de valor inicial en el intervalo 0 ≤ t ≤ 4 , con
100 iteraciones.
y ' ' ( t ) + 5 y ' (t ) + 4 y (t ) = 8 ; y (0) = 0, y ' (0) = 0

Al ejecutar el programa se tiene:

>> euleror2
numero de iteraciones = 100
abscisa inicial = 0
abscisa final = 4
primera ordenada inicial = 0
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = '8-4*y-5*x'
entrar la funcion g(t,x,y) = 'x'

La figura 18.2 muestra la solución gráfica, mientras que la figura 18.3 ilustra la solución analítica.
Puede observarse que las soluciones coinciden, es decir, el error absoluto es prácticamente cero.
La figura 18.3 se obtuvo usando la rutina siguiente:
t=0:0.04:4;
x=8*(exp(-t)-exp(-4*t))./3;
y=2-8*exp(-t)./3+2*exp(-4*t)./3;
plot(t,x)
grid on
hold on
plot(t,y,’k’)
235

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 18.2

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 18.3

Ejemplo 18.4
Resuelva el problema de valor inicial en el intervalo 0 ≤ t ≤ 2 .

yy ' ' = y ' (1 + y ' ) y ( 0) = 1 ; y ' ( 0) = 1

a) Con n = 20
b) Con n = 200
236

Solución.
Se hace el cambio de variable x = y ' , con lo que resulta el sistema de ecuaciones:

 dx x(1 + x )
 dt = y

 dy = x
 dt

a) Aplicando el método de Euler con el paquete Matlab, se tiene:

>> euleror2
numero de iteraciones = 20
abscisa inicial = 0
abscisa final = 2
primera ordenada inicial = 1
segunda ordenada inicial = 1
entrar la funcion f(t,x,y) = 'x*(1+x)/y'
entrar la funcion g(t,x,y) = 'x'
La figura 18.4 ilustra la gráfica correspondiente.

40

35

30

25

20

15

10

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 18.4

b) Aplicando el método de Euler con el paquete Matlab, se tiene:

>> euleror2
numero de iteraciones = 200
abscisa inicial = 0
abscisa final = 2
primera ordenada inicial = 1
segunda ordenada inicial = 1
entrar la funcion f(t,x,y) = 'x*(1+x)/y'
entrar la funcion g(t,x,y) = 'x'
La figura 18.5 ilustra la gráfica correspondiente.
237

60

50

40

30

20

10

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 18.5

18.4. El método de Runge-Kutta de orden 4 usando Matlab.


A continuación se describe el programa en Matlab para resolver el problema de valor inicial de
segundo orden por el método de Runge-Kutta de orden cuatro.
clear all
%Programa para resolver un problema de valor inicial de segundo orden
%por el metodo Runge-Kutta de orden cuatro
%La formulacion del problema es: x'=f(t,x,y);x(ti)=xi; y'=g(t,x,y);y(ti)=yi;
%en el intervalo:[xi,xf] con n iteraciones.
% Entrada de la informacion
n=input('numero de iteraciones = ');
ti=input('abscisa inicial = ');
tf=input('abscisa final = ');
xi=input('primera ordenada inicial = ');
yi=input('segunda ordenada inicial = ');
f=input('entrar la funcion f(t,x,y) = ');
g=input('entrar la funcion g(t,x,y) = ');
% El tamano de paso se calcula como
h=(tf-ti)/n;
%El vector de abscisas se calcula como
for k=1:n+1
T(k)=ti+(k-1)*h;
end
%Los vectores de ordenadas se calculan como
X(1)=xi;
Y(1)=yi;
for k=1:n
t=T(k);
x=X(k);
y=Y(k);
M1x(k)=eval(f);
M1y(k)=eval(g);
t=t+h/2;
238

x=x+h*M1x(k)/2;
y=y+h*M1y(k)/2;
M2x(k)=eval(f);
M2y(k)=eval(g);
t=t;
x=x-h*M1x(k)/2+h*M2x(k)/2;
y=y-h*M1y(k)/2+h*M2y(k)/2;
M3x(k)=eval(f);
M3y(k)=eval(g);
t=t+h/2;
x=x+h*M3x(k)-h*M2x(k)/2;
y=y+h*M3y(k)-h*M2y(k)/2;
M4x(k)=eval(f);
M4y(k)=eval(g);
Mx(k)=(M1x(k)+2*M2x(k)+2*M3x(k)+M4x(k))/6;
My(k)=(M1y(k)+2*M2y(k)+2*M3y(k)+M4y(k))/6;
X(k+1)=X(k)+h*Mx(k);
Y(k+1)=Y(k)+h*My(k);
end
[T' X' Y']
plot(T,X,'x')
hold on
plot(T,Y,'o')
grid on

Ejemplo 18.5
Usando el método de Runge-Kutta de orden 4, resuelva el problema de valor inicial en el intervalo
0 ≥ t ≤ 2 con 20 particiones

yy ' ' = y ' (1 + y ' ) y ( 0) = 1 ; y ' ( 0) = 1

Solución.
Ejecutamos el programa, así:

>> rk4or2
numero de iteraciones = 20
abscisa inicial = 0
abscisa final = 2
primera ordenada inicial = 1
segunda ordenada inicial = 1
entrar la funcion f(t,x,y) = 'x*(1+x)/y'
entrar la funcion g(t,x,y) = 'x'

La figura 18.6 ilustra la gráfica. Note la similitud con la figura 18.5, la cual corresponde al método
de Euler con 100 particiones.
239

60

50

40

30

20

10

0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

Figura 18.6

Ejemplo 18.6. El problema: Depredador-presa.


Supongamos que se tienen dos especies en un mismo ecosistema. Una especie es la presa y la
otra es la depredadora. En un instante determinado se tiene un número x (0) = Xi de presas y un
número y (0) = Yi de depredadores. Se desea determinar el número de cada especie en todo
instante, es decir, x(t ) y y (t )

Solución.
Adoptaremos el modelo de Lotka-Volterra, ampliamente usado, para resolver el problema.
a) La tasa de variación de la cantidad de presas es igual al número de presas que entran en la
unidad de tiempo (Reproducción) menos el número de presas que salen en la unidad de tiempo
(Capturadas por el depredador). El término positivo debe ser proporcional a la cantidad de presas
en todo instante, mientras que el negativo será proporcional al producto entre el número de presas
y el número de depredadores. Matemáticamente, resulta:

dx(t )
= ax (t ) − bx(t ) y (t )
dt
b) De otro lado, la tasa de variación de la cantidad de depredadores, mediante un razonamiento
similar, viene dada por:
dy (t )
= −cy (t ) + dx(t ) y (t )
dt
Claramente se observa que el sistema de ecuaciones resultante es no lineal y en consecuencia
debe ser resuelto usando técnicas numéricas. Supongamos que las constantes de
proporcionalidad son:

a = 4 b = 0.8 c = 0.15 d = 0.1

Así las cosas, el sistema a resolver es:


240

dx(t )
= 4 x(t ) − 0.8 x(t ) y (t )
dt
dy (t )
= −0.15 y (t ) + 0.1x(t ) y (t )
dt

Adoptaremos las siguientes condiciones iniciales: Xi = 5000 Yi = 5000 y que la unidad de


tiempo es meses.

Ejecutando el programa con n = 300 se tiene:

>> rk42x2
numero de iteraciones = 300
abscisa inicial = 0
abscisa final = 30
primera ordenada inicial = 5
segunda ordenada inicial = 5
entrar la funcion f(t,x,y) = '4*x-0.8*x*y'
entrar la funcion g(t,x,y) = '-0.15*y+0.1*x*y'

La figura 18.7 ilustra la solución gráfica.

0
0 5 10 15 20 25 30

Figura 18.7

Ejemplo 18.7. El problema: Tanques acoplados

Dos tanques están acoplados de la forma ilustrada en la figura 18.8. Supongamos que, en el
instante t = 0 , el primer tanque contiene 50 litros de salmuera con una concentración de 0.25
libras de sal por litro y el segundo tanque está lleno con 50 litros de agua pura. Determine la
cantidad de sal en cada tanque en todo instante.
a) Analíticamente
b) Numéricamente usando el método de Runge-Kutta de orden 4
241

Figura 18.8

Solución.
Supongamos que las mezclas se mantienen homogéneas durante el proceso. Definimos las
variables del problema, así:

x (t ) : Cantidad de sal en el tanque 1 en todo instante


y (t ) : Cantidad de sal en el tanque 2 en todo instante

Planteando las ecuaciones de continuidad para las cantidades de sal, resultan las
la ecuaciones:
dx y 4x dx − 2 x y
Para el tanque 1: = 0+ − ⇒ = +
dt 50 50 dt 25 50

dy 4x y 3 y dy 2 x 2 y
Para el tanque 2: = − − ⇒ = −
dt 50 50 50 dt 25 25
a) Solución analítica.
 D + 2 / 25 − 1 / 50   x (t )  0
Se escribe el sistema en forma matricial, así:  − 2 / 25 D + 2 / 25  y (t ) = 0
  

Las condiciones iniciales son: x(0) = 12.5 y ( 0) = 0

El problema
oblema de valor inicial asociado a la cantidad de sal en el primer tanque es:

 2 4 3 
D + D+  x(t ) = 0 x(0) = 12.5 x' (0) = −1
 25 625 

La solución del problema es: x(t ) =


4
(
25 −3t / 25
e + e −t / 25 )

Por otro lado se obtiene que: y (t ) =


25
2
(− e −3t / 25 + e −t / 25 )
La figura 18.9 ilustra las gráficas correspon
correspondientes,
s, obtenidas mediante la siguiente rutina:
t=0:0.1:100;
x=(25/4)*(exp(-3*t./25+exp(-t./25);
t./25);
y=(25/2)*(-exp(-3*t./25+exp(-t./25);
t./25);
plot(t,x,’x’)
hold on
grid on
242

plot(t,y,’o’)

14

12

10

0
0 10 20 30 40 50 60 70 80 90 100

Figura 18.9

b) En cuanto a la solución numérica, se aplica el método de Runge-Kutta de orden cuatro con


Matlab, así:
rk4or2
numero de iteraciones = 100
abscisa inicial = 0
abscisa final = 100
primera ordenada inicial = 12.5
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = ‘(-4*x+y)/50’
entrar la funcion g(t,x,y) = ‘(2*x-2*y)/25’
La figura 18.10 ilustra la solución.

14

12

10

0
0 10 20 30 40 50 60 70 80 90 100

Figura 18.10
243

EJERCICIOS

Usando los métodos de Euler y Runge-Kutta de orden 4, resuelva los siguientes problemas de
valor inicial:

1) x 2 y ' '+ xy '−4 y = 3x ; y (1) = 1, y ' (1) = −1 en el intervalo 1 ≤ x ≤ 4 con 100 particiones.
2) xy ' ' +2 y '− xy = 3 x ; y (1) = 1, y ' (1) = −1 en el intervalo 1 ≤ x ≤ 4 con 100 particiones.
3) x y ' ' +2 y ' + xy = x ; y (1) = 1, y ' (1) = −1 en el intervalo 1 ≤ x ≤ 4 con 100 particiones.
2

4) Dada la ecuación diferencial: xy ' '+2 y '− xy = x


5) Dada la ecuación diferencial: xy ' '+2 y '+ xy = x
6 y ' '+5 y '+4 y = x 2 ; y (0) = 0, y ' (0) = 1 en el intervalo 0 ≤ x ≤ 4 con 100 particiones
−x
7) y ' '+5 y ' +6 y = xe ; y (0) = 0, y ' (0) = 1 en el intervalo 0 ≤ x ≤ 4 con 100 particiones
8) y ' '+2 y ' +10 y = 20 ; y (0) = 0, y ' (0) = 0 en el intervalo 0 ≤ x ≤ 4 con 100 particiones
9) y ' '+4 y '+4 y = 4 ; y (0) = 0, y ' (0) = 0 en el intervalo 0 ≤ x ≤ 4 con 100 particiones
2 y 2 y ' '+2 y ( y ' ) − 1 = 0 ; y (0) = −1, y ' (0) = 2 en el intervalo 0 ≤ x ≤ 4 con 100 particiones
2
10)

( D + 1) x(t ) − y (t ) = sen (t )

11)  x ( t ) + ( D + 1) y ( t ) = cos(t ) en el intervalo 0 ≤ x ≤ 5 con 100 particiones
 x(0) = 0, y (0) = 0

 ( D + 1) x (t ) − y (t ) = 10
 −t
12) − x (t ) + ( D + 1) y (t ) = e en el intervalo 0 ≤ x ≤ 5 con 100 particiones
 x (0) = 0, y (0) = 0

( D + 2) x (t ) − y (t ) = 10sen (t )
 x (t ) + Dy (t ) = 10e −t
13)  en el intervalo 0 ≤ x ≤ 5 con 100 particiones
 x ( 0) = 0 y ( 0) = 0

 x ' (t ) = −0.1x (t ) + 0.02 x(t ) y (t )


 y ' (t ) = 0.2 y (t ) − 0.025 x (t ) y (t )
14)  en el intervalo 0 ≤ x ≤ 30 con 300 particiones
 x (0) = 5 y (0) = 5

 x ' (t ) = x (t )[2 − 0.4 x (t ) − 0.3 y (t )]



15)  y ' (t ) = y ( t )[1 − 0.1 y ( t ) − 0.3 x (t ) ] en el intervalo 0 ≤ x ≤ 30 con 300 particiones
 x (0) = 5 y (0) = 10
244

MÓDULO 19
PROBLEMAS CON VALOR EN LA FRONTERA DE SEGUNDO ORDEN
SOLUCIÓN ANALÍTICA Y SOLUCIÒN NUMÉRICA POR EL MÈTODO DEL
DISPARO
En este módulo se presenta la solución analítica y la solución numérica, por el método del disparo,
de un problema de valor inicial de segundo orden y se desarrollará el siguiente contenido:

19.1. Formulación del problema


19.2. Solución analítica.
19.3. Método del disparo

19.1. Formulación del problema.


Un problema con valor en la frontera de segundo orden se formula mediante una ecuación
diferencial de segundo orden y dos condiciones de frontera, así:

d2y  dy 
2
= f  x, y ,  y ( a ) = α , y ( b) = β
dx  dx 

Geométricamente, la solución del problema es la curva del plano que pasa por los puntos ( a, α ) y
(b, β ) . Un problema con valor en la frontera puede, eventualmente, tener solución analítica. En
general nos ocuparemos de la solución numérica del problema, pero desarrollaremos algunos
ejemplos que se pueden resolver de manera analítica.

19.1. Solución analítica.


Para obtener la solución analítica hay que tener en cuenta las condiciones de existencia y unicidad
de las soluciones de la ecuación diferencial, es decir, debe garantizarse que el problema tenga
solución única en la región del plano:

R = {( x, y ) ∈ R 2 / (a ≤ x ≤ b ) ∧ (M 1 ≤ y ≤ M 2 )}

En la región descrita previamente se entiende que [α , β ] ⊆ (M 1 , M 2 ) . La figura 19.1 ilustra la


situación planteada.

Figura 19.1
Ejemplo 19.1
Resuelva el problema con valor en la frontera:
245

y ' ' ( x ) + 4 y ( x ) = 20 y (0) = 0, y (π / 4) = 0

Solución.
Primero que todo se encuentra un conjunto fundamental de soluciones de la homogénea, así:

λ2 + 4 = 0 ⇒ λ1 , λ2 = ± j 2 ⇒ {y1 , y 2 } = {sen( 2 x ), cos(2 x )}

A continuación se halla la solución particular por el método del operador inverso.

1
yp = 20 ⇒ y p = 5
D +4
2

En consecuencia, la solución general es:

y = C1sen(2 x) + C2 cos(2 x) + 5

Aplicando las condiciones de frontera resulta:

y = 5 − 5sen ( 2 x ) − 5 cos(2 x )

La figura 19.2 muestra la solución gráfica del problema.


x=0:0.01:pi/4;
y=5-5*sin(2*x)-5*cos(2*x);
plot(x,y)
grid on

-0.5

-1

-1.5

-2

-2.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 19.2

La solución analítica se puede obtener directamente con dsolve, así:

>> y=dsolve('D2y=20-4*y','y(0)=0','y(pi/4)=0','x')

y=

5 - 5*sin(2*x) - 5*cos(2*x)
246

19.3. Método del disparo


A continuación se presentará uno de los métodos más ampliamente usados para resolver el
problema con valor en la frontera.

d2y  dy 
2
= f  x, y ,  y ( a ) = α , y ( b) = β
dx  dx 

Se trata de resolver tres problemas de valor inicial, así:

Primer disparo.
Se resuelve el problema de valor inicial con una pendiente p1 . Es recomendable tomar dicha
β −α
pendiente como: p1 =
b−a

d2y  dy 
2
= f  x, y ,  y ( a ) = α , y ' ( a ) = p1
dx  dx 

Después de resolver el problema se calcula el valor de la función en el punto b , resultando:

y (b) = β1

Segundo disparo.
Se resuelve el problema de valor inicial con una pendiente: p 2 ≠ p1

d2y  dy 
2
= f  x, y ,  y ( a ) = α , y ' ( a ) = p2
dx  dx 

Después de resolver el problema se calcula el valor de la función en el punto b , resultando:

y(b) = β2
Con la información obtenida de los dos primeros disparos se efectúa interpolación simple para
calcular la pendiente inicial requerida para acertar en el blanco, así:

Figura 19.3
247

De la figura 19.3 se sigue que:


β − β1
p = p1 + ( p − p1 )
β 2 − β1 2

Disparo final
Se resuelve el problema de valor inicial con la pendiente calculada previamente: p

d2y  dy 
2
= f  x, y ,  y (a ) = α , y ' (a ) = p
dx  dx 

Ejemplo 19.2
Usando el método del disparo, resuelva el problema con valor en la frontera:

y ' ' ( x) + 4 y ( x) = 20 y (0) = 0, y (π / 4) = 0

Solución.
Se debe resolver, tres veces, el problema de valor inicial:

dp
= 20 − 4 y , p (0) = p
dx
dy
= p , y ( 0) = 0
dx

1) Para el primer disparo tomamos: p1 = 0 y corremos el método de Runge-Kutta de orden cuatro


con 10 iteraciones, así:
dx
= 20 − 4 y , x(0) = 0
dt
dy
= x , y ( 0) = 0
dt
>> rk4or2
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = pi/4
primera ordenada inicial = 0
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = '20-4*y'
entrar la funcion g(t,x,y) = 'x'
ans =
0 0 0
0.0785 1.5643 0.0616
0.1571 3.0902 0.2447
0.2356 4.5399 0.5450
0.3142 5.8778 0.9549
0.3927 7.0710 1.4645
0.4712 8.0901 2.0611
0.5498 8.9100 2.7300
0.6283 9.5105 3.4549
0.7069 9.8769 4.2178
0.7854 10.0000 5.0000
248

Se obtiene β1 = 5

2) Para el segundo tomamos: p1 = 1 y corremos el método de Runge-Kutta de orden cuatro con


10 iteraciones, así:
dx
= 20 − 4 y , x(0) = 1
dt
dy
= x , y ( 0) = 0
dt
>> rk4or2
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = pi/4
primera ordenada inicial = 1
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = '20-4*y'
entrar la funcion g(t,x,y) = 'x'

ans =
0 1.0000 0
0.0785 2.5520 0.1398
0.1571 4.0412 0.3992
0.2356 5.4309 0.7720
0.3142 6.6868 1.2488
0.3927 7.7781 1.8180
0.4712 8.6779 2.4656
0.5498 9.3640 3.1755
0.6283 9.8196 3.9304
0.7069 10.0333 4.7116
0.7854 10.0000 5.5000

Se obtiene β 2 = 5.5

La pendiente para el tercer disparo es:

β − β1
p = p1 + ( p2 − p1 ) = 0 + 0 − 5 (1 − 0) = −10
β 2 − β1 5.5 − 5

3) Para el tercer tomamos: p1 = −10 y corremos el método de Runge-Kutta de orden cuatro con
10 iteraciones, así:
dx
= 20 − 4 y , x(0) = −10
dt
dy
= x , y ( 0) = 0
dt
>> rk4or2
numero de iteraciones = 10
abscisa inicial = 0
abscisa final = pi/4
primera ordenada inicial = -10
249

segunda ordenada inicial = 0


entrar la funcion f(t,x,y) = '20-4*y'
entrar la funcion g(t,x,y) = 'x'

ans =

0 -10.0000 0
0.0785 -8.3125 -0.7206
0.1571 -6.4204 -1.3004
0.2356 -4.3702 -1.7250
0.3142 -2.2124 -1.9840
0.3927 -0.0001 -2.0711
0.4712 2.2122 -1.9840
0.5498 4.3701 -1.7250
0.6283 6.4203 -1.3004
0.7069 8.3124 -0.7206
0.7854 9.9999 -0.0000

El resultado gráfico se muestra en la figura 19.4 y se obtiene de la siguiente manera:

>> plot(T,Y,’k’)
>> grid on

-0.5

-1

-1.5

-2

-2.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 19.4

Puede verse que el resultado es muy aproximado a la solución analítica. Es claro que el resultado
mejora si se toman más particiones en el intervalo. La figura 19.5 corresponde a la solución con
100 particiones.
250

-0.5

-1

-1.5

-2

-2.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 19.5

Ejemplo 19.3

Usando el método del disparo, resuelva el problema con valor en la frontera:

(1 − x )y ' ' ( x ) − 2 xy '+2 y( x ) = 0


2
y ( −0.5) = 0, y (0.5) = 1

Solución.
Se debe resolver, tres veces, el problema de valor inicial:

dp 2 xp − 2 y
= , p( −0.5) = p
dx 1 − x2
dy
= p , y ( −0.5) = 0
dx

1) Para el primer disparo tomamos: p1 = 1 y corremos el método de Runge-Kutta de orden cuatro


con 20 iteraciones, así:
dx 2tx − 2 y
= , x ( −0.5) = 1
dt 1 − t2
dy
= x , y ( −0.5) = 0
dt
>> rk4or2
numero de iteraciones = 20
abscisa inicial = -0.5
abscisa final = 0.5
primera ordenada inicial = 1
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = '(2*t*x-2*y)/(1-t*t)'
entrar la funcion g(t,x,y) = 'x'
251

ans =

-0.5000 1.0000 0
-0.4500 0.9374 0.0484
-0.4000 0.8815 0.0938
-0.3500 0.8306 0.1366
-0.3000 0.7837 0.1770
-0.2500 0.7398 0.2151
-0.2000 0.6982 0.2510
-0.1500 0.6582 0.2849
-0.1000 0.6195 0.3168
-0.0500 0.5816 0.3469
0 0.5440 0.3750
0.0500 0.5064 0.4013
0.1000 0.4685 0.4256
0.1500 0.4298 0.4481
0.2000 0.3899 0.4686
0.2500 0.3482 0.4871
0.3000 0.3043 0.5034
0.3500 0.2574 0.5174
0.4000 0.2066 0.5291
0.4500 0.1506 0.5380
0.5000 0.0880 0.5440

Se obtiene β 1 = 0.5440

2) Para el segundo disparo tomamos: p 2 = 2 y corremos el método de Runge-Kutta de orden


cuatro con 20 iteraciones, así:

dx 2tx − 2 y
= , x ( −0.5) = 2
dt 1 − t2
dy
= x , y ( −0.5) = 0
dt
>> rk4or2
numero de iteraciones = 20
abscisa inicial = -0.5
abscisa final = 0.5
primera ordenada inicial = 2
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = '(2*t*x-2*y)/(1-t*t)'
entrar la funcion g(t,x,y) = 'x'

ans =
-0.5000 2.0000 0
-0.4500 1.8747 0.0968
-0.4000 1.7629 0.1877
-0.3500 1.6612 0.2733
-0.3000 1.5674 0.3540
-0.2500 1.4796 0.4301
-0.2000 1.3963 0.5020
-0.1500 1.3165 0.5698
-0.1000 1.2390 0.6337
-0.0500 1.1631 0.6937
252

0 1.0880 0.7500
0.0500 1.0129 0.8025
0.1000 0.9370 0.8513
0.1500 0.8596 0.8962
0.2000 0.7797 0.9372
0.2500 0.6965 0.9741
0.3000 0.6086 1.0068
0.3500 0.5148 1.0349
0.4000 0.4131 1.0581
0.4500 0.3013 1.0760
0.5000 0.1760 1.0880

Se obtiene β 2 = 1.0880

La pendiente para el tercer disparo es:

β − β1
p = p1 + ( p2 − p1 ) = 1 + 1 − 0.544 (2 − 1) = 1.8382
β 2 − β1 1.088 − 0.544

3) Para el tercer disparo tomamos: p = 1.8382 y corremos el método de Runge-Kutta de orden


cuatro con 20 iteraciones, así:

dx 2tx − 2 y
= , x ( −0.5) = 1.8382
dt 1 − t2
dy
= x , y ( −0.5) = 0
dt
>> rk4or2
numero de iteraciones = 20
abscisa inicial = -0.5
abscisa final = 0.5
primera ordenada inicial = 1.8382
segunda ordenada inicial = 0
entrar la funcion f(t,x,y) = '(2*t*x-2*y)/(1-t*t)'
entrar la funcion g(t,x,y) = 'x'

ans =

-0.5000 1.8382 0
-0.4500 1.7231 0.0890
-0.4000 1.6203 0.1725
-0.3500 1.5269 0.2512
-0.3000 1.4406 0.3253
-0.2500 1.3599 0.3953
-0.2000 1.2834 0.4614
-0.1500 1.2100 0.5237
-0.1000 1.1388 0.5824
-0.0500 1.0690 0.6376
0 1.0000 0.6893
0.0500 0.9310 0.7376
0.1000 0.8612 0.7824
0.1500 0.7900 0.8237
0.2000 0.7166 0.8614
0.2500 0.6401 0.8953
253

0.3000 0.5594 0.9253


0.3500 0.4731 0.9512
0.4000 0.3797 0.9725
0.4500 0.2769 0.9890
0.5000 0.1618 1.0000

>> plot(T,Y,'k')
>> grid on

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5

Figura 19.5

Se sugiere al estudiante que halle la solución analítica y compare los resultados.

EJERCICIOS.

Usando el método del disparo, resuelva los siguientes problemas con valor en la frontera.

1) y ' '+2 y '+10 y = 10 y (0) = 0, y (2) = 0 N = 10


2) y ' ' +2 xy ' +10 y = 10 y (0) = 0, y ( 2 ) = 0 N = 10
3) y ' '+2 y '+10 y = 10sen ( x ) y ( 0) = 0, y (π ) = 0 N = 10
4) (1 − x ) y ' '−2 xy '+6 y = x − x y ( −0.5) = 0, y (0.5) = 0 N = 10
2 3

5) (1 − x ) y ' '−2 xy '+2 y = x − x y (2) = 0, y ( 4) = 1 N = 10


2 3

6) xy ' ' + y '+ xy = x y (1) = 0, y (3) = 0 N = 20


2

7) x y ' ' + xy '+ y = x y (1) = 0, y (3) = 0 N = 20


2 2

8) y ' '−2 xy ' +4 y = x y ( −1) = 0, y (1) = 0 N = 20


9) (1 − x ) y ' '− xy ' +4 y = x y ( −0.5) = 0, y ( 0.5) = 0 N = 20
2

10) x y ' ' + xy ' + ( x − 4) y = x y (0.5) = 0, y (1.5) = 0 N = 20


2 2 2
254

MÓDULO 20
PROBLEMAS CON VALOR EN LA FRONTERA DE SEGUNDO ORDEN
SOLUCIÓN NUMÉRICA POR EL MÈTODO DE LAS DIFERENCIAS DIVIDIDAS
En este módulo se presenta el método de las diferencias divididas para resolver un problema de
valor inicial lineal de segundo orden y se desarrollará el siguiente contenido:

20.1. Formulación del problema


20.2. Método de las diferencias divididas
20.3 Programa en Matlab

20.1. Formulación del problema.


Consideremos un problema con valor en la frontera lineal de segundo orden, así:

y ' ' ( x ) + p ( x ) y ' ( x) + q ( x) y ( x ) = r ( x ) y (a ) = α , y (b) = β

Suponiendo que las funciones p ( x) q ( x) r ( x) son continuas en el intervalo cerrado


a ≤ x ≤ b , el problema tendrá solución única.
El método de las diferencias divididas consiste en dividir el intervalo [a, b] en n subintervalos del
mismo tamaño, así h = (b − a ) / n . A partir de aquí se genera el vector de abscisas:
X (k ) = a + (k − 1)h k = 1 : n + 1
Se trata de determinar el valor de la ordenada en cada uno de los nodos interiores, es decir, se
trata de generar el vector: y ( k ) ; k = 2 : n
Se parte de las condiciones de frontera: Y (1) = α Y ( n + 1) = β
La figura 20.1 muestra la situación para dos subintervalos consecutivos.

Figura 20.1

Definimos las dos primeras diferencias divididas centradas en el punto ( X (k ), Y (k )) , así:


Y ( k + 1) − Y ( k − 1)
Primera diferencia dividida: f 1[ X (k − 1), X (k ), X ( k + 1)] =
2h
Y ( k + 1) − 2Y ( k ) + Y ( k − 1)
Segunda diferencia dividida: f 2[ X ( k − 1), X ( k ), X ( k + 1)] =
h2

20.2. Método de las diferencias divididas.


Las diferencias divididas se usarán para aproximar tanto la primera como la segunda derivada en
los nodos interiores, es decir, para k = 2 : n . Así las cosas, resulta un sistema de n − 1
ecuaciones, así:
255

Y (k + 1) − 2Y (k ) + Y ( k − 1) Y ( k + 1) − Y ( k − 1)
2
+ p( X (k )) + q( X ( k ) )Y (k ) = r ( X ( k )) k = 2 : n
h 2h
Organizando el sistema se tiene:

 h 
[ ]  h 
1 − 2 p ( X ( k ) )Y ( k − 1) + h q( X (k )) − 2 Y ( k ) + 1 + 2 p( X ( k ))Y ( k + 1) = h r ( X (k ))
2 2

La primera ecuación, con k = 2 , queda en la forma:

[h q( X (2)) − 2]Y (2) + 1 + h2 p( X (2))Y (2) = h r( X (2)) − α 1 − h2 p( X (2))


2 2

   

La última ecuación, con k = n , queda en la forma:

 h 
[ ]  h 
1 − 2 p ( X ( n ) )Y ( n − 1) + h q( X ( n )) − 2 Y ( n ) = h r ( X ( n )) − β 1 + 2 p( X ( n )) 
2 2

En consecuencia resulta un sistema tridiagonal de n − 1 ecuaciones, así:

 a (1,1) a (1,2) 0 0... 0  Y ( 2)  b(1) 


a ( 2,1) a ( 2,2) a (2,3) 0... 0  Y (3)   b( 2) 
    
 0 a (3,2) a (3,3) a (3,4) 0  Y ( 4)  b(3) 
 . . . . .  .  =  . 
    
 . . . . .  .   . 
 . . . . .  .   . 
 0 a ( n − 1, n − 2) a ( n − 1, n − 1) Y (n ) b( n − 1)
 0 ...

Es claro que:
 h 
b(1) = h 2 r ( X ( 2) − α 1 − p ( X (2))
 2 
 h 
b(n − 1) = h 2 r ( X ( n ) − β 1 + p( X ( n ))
 2 
Por otro lado, el resto de los términos independientes se calculan de manera recurrente, así:

b(k ) = h 2 r ( X (k )) k = 2 : n − 2
Ejemplo 20.1
Usando el método de las diferencias divididas, resuelva el problema con valor en la frontera:

y ' ' ( x ) + 4 y ( x ) = 20 y (0) = 0, y (π / 4) = 0

Solución.
Se toma N = 10 y se trabaja con la siguiente información:
256

π
p ( x) = 0 q ( x) = 4 r ( x) = 20 a = 0 b = α = 0 β = 0 n = 10
4
 π π 3π π 5π 3π 7π π 9π π
El vector de abscisas es: x = 0
 40 20 40 10 40 20 40 5 40 4 

En cuanto al vector de ordenadas, se debe resolver el sistema de 9 ecuaciones con 9 incógnitas,


así:

− 1.98 1 0 0 0 0 0 0 0   y (2)  0.123


 1 − 1.98 1 0 0 0 0 0 0   y (3)  0.123

 0 1 − 1.98 1 0 0 0 0 0   y (4)  0.123
    
 0 0 1 − 1.98 1 0 0 0 0   y (5)  0.123
 0 0 0 1 − 1.98 1 0 0 0   y (6)  = 0.123
    
 0 0 0 0 1 − 1.98 1 0 0   y (7)  0.123
 0 0 0 0 0 1 − 1.98 1 0   y (8)  0.123
    
 0 0 0 0 0 0 1 − 1.98 1   y (9)  0.123
 0 − 1.98  y (10) 0.123
 0 0 0 0 0 0 1

Puede verse que es un sistema tridiagonal y además es diagonalmente dominante. La solución


viene dada por:

y = [0 − 0.723 − 1.304 − 1.723 − 1.99 − 2.08 − 1.99 − 1.723 − 1.304 − 0.723 0]

Al representar gráficamente la solución se obtiene la figura 20.2 que fue la que se obtuvo por el
método del disparo.
x=[0 pi/40 pi/20 3*pi/40 pi/10 5*pi/40 3*pi/20 7*pi/40 pi/5 9*pi/40 pi/4];
y=[0 -0.723 -1.304 -1.723 -1.99 -2.08 -1.99 -1.723 -1.304 -0.723 0];
plot(x,y)
grid on

-0.5

-1

-1.5

-2

-2.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 20.2
257

20.3 Programa en Matlab para resolver un problema con valor en la frontera


%Programa para resolver el problema con valor en la frontera
% y''+p(x)y'+q(x)y=r(x) con las condiciones y(a)=alfa,y(b)=beta
%con N intervalos, usando el metodo de las diferencias divididas
%Entrada de informacion
clear all
n=input('numero de intervalos= ');
a=input('abscisa inicial= ');
b=input('abscisa final= ');
alfa=input('ordenada inicial= ');
beta=input('ordenada final= ');
h=(b-a)/n;
% Se genera el vector de abscisas
for i=1:n+1
xe(i)=a+(i-1)*h;
end
p=input('entre la funcion p(x)=');
q=input('entre la funcion q(x)=');
r=input('entre la funcion r(x)=');
for i=1:n+1
x=xe(i);
P(i)=eval(p);
Q(i)=eval(q);
R(i)=eval(r);
end
ye(1)=alfa;
ye(n+1)=beta;
%Para hallar las ordenadas resulta un sistema
%tridiagonal de ecuaciones
[P Q R];
m=n-1;
A(1,1)=h^2*Q(2)-2;
A(1,2)=1+0.5*h*P(2);
B(1)=h*h*R(2)-alfa*(1-0.5*h*P(2));
[A(1,1) A(1,2) B(1)];
A(m,m-1)=1-0.5*h*P(n);
A(m,m)=h*h*Q(n)-2;
B(m)=h*h*R(n)-beta*(1+0.5*h*P(n));
[A(m,m-1) A(m,m) B(m)];
for i=2:m-1
A(i,i-1)=1-0.5*h*P(i+2);
A(i,i)=h*h*Q(i+2)-2;
A(i,i+1)=1+0.5*h*P(i+2);
end
for i=2:m-1
B(i)=h*h*R(i+2);
end
z=inv(A)*B';
for k=2:n
ye(k)=z(k-1);
end
[xe' ye']
plot(xe,ye)
grid on
258

Ejemplo 20.2
Usando el método de las diferencias divididas, resuelva el problema con valor en la frontera del
ejemplo anterior.

Solución.
>> pvfdif2012
numero de intervalos= 10
abscisa inicial= 0
abscisa final= pi/4
ordenada inicial= 0
ordenada final= 0
entre la funcion p(x)='0'
entre la funcion q(x)='4'
entre la funcion r(x)='20'

ans =

0 0
0.0785 -0.7226
0.1571 -1.3039
0.2356 -1.7297
0.3142 -1.9895
0.3927 -2.0768
0.4712 -1.9895
0.5498 -1.7297
0.6283 -1.3039
0.7069 -0.7226
0.7854 0

La figura 20.3 ilustra la gráfica de la solución del problema.


0

-0.5

-1

-1.5

-2

-2.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Figura 20.3

Ejemplo 20.3
Usando el método de las diferencias divididas, resuelva el problema con valor en la frontera:

(1 − x )y ' ' ( x ) − 2 xy '+2 y ( x ) = 0


2
y ( −0.5) = 0, y (0.5) = 1, n = 20
259

Solución.
Se ejecuta el programa, así:
>> pvfdif2012
numero de intervalos= 20
abscisa inicial= -0.5
abscisa final= 0.5
ordenada inicial= 0
ordenada final= 1
entre la funcion p(x)='2*x/(x*x-1)'
entre la funcion q(x)='-6/(x*x-1)'
entre la funcion r(x)='0'

ans =
-0.5000 0
-0.4500 0.3021
-0.4000 0.5820
-0.3500 0.8412
-0.3000 1.0784
-0.2500 1.2924
-0.2000 1.4819
-0.1500 1.6460
-0.1000 1.7836
-0.0500 1.8938
0 1.9755
0.0500 2.0279
0.1000 2.0500
0.1500 2.0407
0.2000 1.9989
0.2500 1.9237
0.3000 1.8136
0.3500 1.6675
0.4000 1.4837
0.4500 1.2605
0.5000 1.0000
>> pvfdifdiv

La figura 20.4 ilustra la gráfica de la solución.


2.5

1.5

0.5

0
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5

Figura 20.4
260

EJERCICIOS

Resuelva los siguientes problemas con valor en la frontera tanto por el método del disparo como
por el método de diferencias divididas.

1) y ' '+2 y ' +10 y = 10 y (0) = 0, y (2) = 0 N = 10


2) y ' '+2 xy ' +10 y = 10 y (0) = 0, y ( 2) = 0 N = 10
3) y ' '+2 y '+10 y = 10 sen ( x ) y ( 0) = 0, y (π ) = 0 N = 10
4) (1 − x ) y ' ' −2 xy ' +6 y = x − x y ( −0.5) = 0, y (0.5) = 0 N = 10
2 3

5) (1 − x 2 ) y ' '−2 xy '+2 y = x − x 3 y (2) = 0, y ( 4) = 1 N = 10


6) xy ' '+2 y '+ xy = x y (1) = 0, y (3) = 0 N = 20
2

7) x y ' ' + xy '+ y = x y (1) = 0, y (3) = 0 N = 20


2 2

8) y ' '−2 xy ' +4 y = x y ( −1) = 0, y (1) = 0 N = 20


9) (1 − x ) y ' '− xy ' +4 y = x y ( −0.5) = 0, y ( 0.5) = 0 N = 20
2

10) x y ' ' + xy ' + ( x − 4) y = x y (0.5) = 0, y (1.5) = 0 N = 20


2 2 2

También podría gustarte