Está en la página 1de 145

GUIA DE ALGORITMOS EN MATLAB PARA EL AREA

DE MÉTODOS NUMÉRICOS

Alexis Favian Malpica Vega Métodos Numéricos

Universidad Pedagógica y Tecnológica de Colombia


Facultad Seccional Duitama
Licenciatura en Matemáticas y Estadística
Duitama Boyacá
2020
ii
Índice general

Lista de símbolos V

Introducción VII

Objetivos IX

0.1. Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix


0.2. Objetivos especí…cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

1. Preliminares 1
1.1. Repaso de cálculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Algunos apuntes en Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Programación en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Solución de ecuaciones no lineales 11


2.1. Método de bisección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Método de la secante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Método de la regla falsa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Método de punto …jo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5. Método de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3. Sistemas de ecuaciones lineales. 43


3.1. Métodos directos de solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.1. Eliminación de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.2. Eliminación de Gauss Jordan con pivoteo. . . . . . . . . . . . . . . . . . . 50
3.2. Métodos de Factorización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.1. Factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

iii
iv ÍNDICE GENERAL

3.2.2. Factorización de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62


3.2.3. Método de Doolitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.4. Método de Crout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3. Métodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3.1. Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3.2. Método de Gauss Seidell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.3.3. Teoremas de Convergencias de métodos iterativos . . . . . . . . . . . . . . . 90

4. Sistemas de ecuaciones no lineales. 91


4.1. Método de punto …jo multivariable. . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2. Método de Newton Raphson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5. Aproximación funcional e interpolación 97


5.1. Aproximación polinomial simple e interpolación . . . . . . . . . . . . . . . . . . . . 98
5.2. Polinomios de lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.3. Polinomios de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6. Integración Numérica 123


6.1. Regla de los Trapecios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
6.2. Regla de Simpson 1/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.3. Regla de Simpson 3/8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Bibliografía 135
Lista de símbolos

N Números naturales.
C Números Complejos.
R Números reales.
Rn Espacio euclideo n dimensional.
Ck Funciones diferenciables k veces con k 2 N a valor en C:
Un abierto de Rn :
1
Q(x0 ; ) Cubo,.de centro en x0 y de lado > 0: = jQ(x0 ; )j n
Q(x0 ; ) := x = (xi )1 i n ; jxi x0i j < para x0 = (x0i )1 i n
2
h ; iL2 ( ) Producto interno de…nido en L ( ) ;
k.k Norma euclidiana de…nida en Rn .
j.j La métrica euclidiana de…nida en R:
B (x0 ; r) Bola de radio r > 0 y centro x0 2 Rn de…nida como
fx 2 Rn ; kx x0 k < rg

v
vi LISTA DE SÍMBOLOS
Introducción

La noción de algoritmo es un concepto clásico en las matemáticas. Es un concepto


muy anterior a la aparición de las computadoras y de las calculadoras. En realidad, en
la enseñanza básica tradicional todos aprendimos algoritmos como el de la división, la
multiplicación y la extracción de raíces cuadradas. Con el transcurso del tiempo, los
dos primeros se convierten generalmente en operaciones más conocidas y practicadas
y, el tercero, en la operación más fácilmente olvidada.
Cabe destacar que para el área de métodos numéricos una herramienta muy indis-
pensable es el computador y lo que se puede lograr con el uso de ellos. Es así que
observando los diferentes programas que ofrece la Universidad Pedagógica y Tec-
nológica de Colombia en la seccional Duitama, en el área de métodos numéricos,
algunos docentes no están en la capacidad de orientar el curso mirando la opción
de la programación de algoritmos en matlab, por la apatía a las nuevas tecnologías
dejando de ver que este sería el espacio adecuado para que el estudiante desarrolle
habilidades y destrezas en la solución de problemas. También por experiencia propia
el estudiante a la hora de realizar demasiados cálculos cae en el aburrimiento lo cual
le quita expectativas a la clase, además se ha podido comprobar en el desarrollo
de algunas clases que esta modalidad le permite al estudiante a…anzar más en los
temas vistos esto se identi…ca en el mejoramiento del rendimiento académico de los
estudiantes y la posibilidad de abordar trabajos relevantes en el área.
Luego lo que se quiere aportar es una guía práctica de métodos numéricos imple-
mentada en el programa Matlab que permita dar solución a la mayoría de los temas

vii
viii INTRODUCCIÓN

ofrecidos en el programa. Sin embargo siempre queda la expectativa de que las per-
sonas con el paso del tiempo puedan colaborar para lograr complementar dicha guía.
De esta manera se cierran ciertas brechas a nivel regional sobre la incorporación del
uso de computadores en la formación de los profesionales uptecistas.
La manera como se quiere dar comienzo a este proyecto es indicar algunas funciones
básicas en Matlab, se presentarán algunas guías con indicaciones como ejecutar
el algoritmo y mostrar algunas aplicaciones en el campo de la ingeniería, ciencias
económicas y sociales.
Objetivos

0.1. Objetivo general

1. Diseñar y elaborar una guía práctica de algoritmos en el programa Matlab de


la materia métodos numéricos para uso de los docentes y estudiantes de la
Universidad Pedagógica y Tecnológica de Colombia.

0.2. Objetivos especí…cos

1. Estudiar algunos conceptos básicos del programa Matlab.

2. Diseñar guías de algoritmos de algunos temas ofrecidos en los contenidos pro-


gramáticos de métodos numéricos.

3. Construir algoritmos que permitan la solución de algunos problemas aplicados


a la ingeniería, ciencias sociales y la economía.

4. Hacer un documento que permita la recolección de varios algoritmos en Mat-


lab para el área de métodos numéricos que permita su implementación en los
diferentes programas académicos ofrecidos por la Universidad pedagógica y
Tecnológica de Colombia.

ix
x OBJETIVOS
Capítulo 1

Preliminares

En este primer capítulo dedicado a preliminares se puede encontar un repaso a los


principales teorema utilizados en gran parte para demostrar una formula iterativa
o convergencia de algún método estudiado. se presntan también algunos principios
de programación en Matlab.

1.1. Repaso de cálculo

Los conceptos de límite y continuidad de una función son fundamentales en el estudio


de cálculo diferencial.

De…nición 1.1 Una función de…nida en un conjunto X de numeros reales tiene


límite L en x0 denotado por
l m f (x) = L;
x!x0

si, dado cualquier número real " > 0;existe un número real > 0 tal que jf (x) Lj <
"; siempre que x 2 X y jx x0 j < :

De…nición 1.2 Sea f una función de…nida en un conjunto X de números reales y


x0 2 X: Entonces f es continua en x0 si

l m f (x) = f (x0 )
x!x0

1
2 CAPÍTULO 1. PRELIMINARES

La función f es continua en el conjunto X si es continua en cada número de X:

Los siguiente teoremas son fundamentales de la deducción de métodos para la es-


timación del error. Las demostraciones de estos teoremas se pueden encontrar en
cualquier libro de cálculo.

Teorema 1.3 ( Teorema de Rolle ) Suponga que f 2 C [a; b] y que f es derivable


en (a; b). Si f (a) = f (b); entonces existe un número c en (a; b) tal que f 0 (c) = 0:

Teorema 1.4 (Teorema del valor medio) Si f 2 C [a; b] y que f es derivable en


(a; b) entonces existe un número c en (a; b) tal que
f (b) f (a)
f 0 (c) =
b a
Teorema 1.5 (Teorema de los valores extremos) Si f 2 C [a; b] entonces existen
c1 ; c2 2 [a; b] tales que f (c1 ) f (x) f (c2 ) para todo x 2 [a; b]. Además se f es
derivable en (a; b), entonces los números c1 y c2 aparecen en los extremos de [a; b] ;
o bien se anula f 0 :

Teorema 1.6 (Teorema del valor intermedio) Si f 2 C [a; b] y K es cualquier


número entre f (a) y f (b), entonces existe un número c 2 (a; b) tal que f (c) = K.

1.2. Algunos apuntes en Matlab

Se presenta una introducción a Matlab.


MATLAB es un lenguaje de programación y una herramienta de cálculo.
Un comando Matlab puede terminar con “;”o no. Cuando s ejecuta un comando
terminado en “;” los contenidos de las variables involucradas no se muestran en la
pantalla. A continuación se dará una serie de comandos que muestran como trabajar
con escalares, vectores y matrices.

>> a=1; % Un escalar, ingréselo con y sin “;”

Para ingresar el vector …la w=(2 5 9 ):


1.2. ALGUNOS APUNTES EN MATLAB 3

>> w=[2 5 9 ]; Un elemento va separado de otro por un espacio.

Para ingresar el vector columna


0 1
2
B C
B C
t=B 5 C
@ A
9

>> t=[2; 5; 9]; % Una …la va separada de otra por “;”.

>> t=[2 5 9 ]’; % Se ingresa el vector …la y luego se transpone.

Muchas veces los vectores tienen un a ley de formación. Esto permite una mayor
facilidad para ingresar dicho vector. Por ejemplo, un vector con 100 elementos,
donde el primer elemento es 2, el último es 200 y los elementos intermedios van
incrementados de dos en dos, puede ingresarse de la siguiente manera abreviada.

>> q=[2:2:200]; % El primer elemento indica el elemento inicial, el segundo el in-


cremento y el último el elemento …nal.

A continuación se mostrará ejemplos de algunas operaciones con vectores que pueden


realizarse:

0
>>u=[1 2 3 4 5 6 7 8] Se ingresa un vector …la.
>>v=8:-1:1 Se ingresa otro vector …la.
>>u+v Suma de vectores.
>>v’ Vector columna transpuesto.
>>u*v’ El vector u por el v transpuesto
(Producto interior entre vectores)
>>sqrt(u*u’) Norma del vector u
(“sqrt”calculala raíz cuadrada).
4 CAPÍTULO 1. PRELIMINARES

>>sin(u) Produce un vector de la misma


longitud de u donde cada elemento
es el seno de cada elemento u
>>cos(u) Idem con coseno.
>>u.*v Vector cuyas componentes son
los productos de las componentes
de u por las de v.
>>u./v Vector cuyas componentes son
las divisiones de lascomponentes
de u por las de v.
>>u.^3 Vector cuyas componentes son
los cubos de las componentes de u.
Para ingresar la matriz 0 1
1 2 5
B C
B C
M =B 2 1 6 C
@ A
3 0 1

>>M=[1 2 5;2 -1 6;3 0 -1]; Una matriz se ingresa por …las. Los elementos
de una …las se separan por un espacio
y para separar una …la de otra se usa “;”.
>>IM=inv(M) Inversa de la matriz.
>>TM=M’; Transpuesta de la matriz.
>>Det=det(M) Determinante de M.
>>VP=eig(M) Valores propios de M.

Notar que un escalar es una matriz 1 x 1 y un vector columna es una matriz n x 1.


A continuación se muestra ejemplos de algunas operaciones que pueden realizarse
con matrices.
1.2. ALGUNOS APUNTES EN MATLAB 5

>>A=[1 2 5 5;2 -1 6 0;3 0 -1 4;1 2 3 6]; Se ingresa la matriz A.


>>A(2,3) Muestra el elemento que
está en la posición (2,3).
>>A(:,4) Muestra la cuarta columna
de la matrizA.
>>A(2,:) Muestra la segunda …la
de la matrizA.
>>A(1:3,2) Muestra desde el elemento1 al 3
de la columna 2 de la matriz A.
>>[m,n]=size(A) Muestra los números de …las (m)
y columnas (n) de la matriz A.

Los siguientes comandos permiten construir matrices preestablecidas.

Eye Matriz identidad.


Zeros Matriz de ceros.
Ones Matriz de unos.
Diag Si x es un vector, dia(x) crea una matriz diagonal
cuya diagonal son los elementos de x.
Si A es una matriz cuadrada, diag(A)
es un vector formado por la diagonal de A.
T riu Parte triangular superior de una matriz.
T ril Parte triangular inferior de una matriz.

Los comandos anteriores combinados permiten ahorrar tiempo en la construcción de


algunas matrices.

Por ejemplo:
6 CAPÍTULO 1. PRELIMINARES

>>A=[12;5-2]; % Usemos la matriz A.


>>B=[-1030;A]
>>C=[eye(2)seros(2,2);seros(2,2)A]
>>D=diag(diag(C))

Importante: Matlab diferencia entre mayúsculas y minúsculas. Por lo tanto, “a” y


“A”son variables diferentes.

1.3. Programación en Matlab.

Se discuten los tipos de programas que pueden hacerse y como almacenar datos.
Hay dos tipos de programas Matlab: uno se denomina rutero y el otro function.

Supongase que se tiene un directorio donde aguardaremos nuestros programas: por


ejemplo en el disco C tenemos el directorio numérico ( es aconsejable tener un
directorio diferente del directorio Matlab, ya que si guardamos programas en el
directorio donde se encuentra Matlab, lo estamos modi…cando y esto puede crear
problemas).

Matlab debe estar direccionado al directorio donde guardamos los programas. Esto
se logra con el siguiente comando.

>> cd c:nnumerico.

Todos los archivos con programas Matlab deben terminar con la extensión .m.
Veamos un ejemplo: Deseamos resolver la ecuación de segundo grado 3x2 +5x+2 = 0.
Escribamos primero un programa rutero ( para escribir un programa se puede us-
ar cualquier editor de texto que permita guardar archivos como ascii; por ejemplo
1.3. PROGRAMACIÓN EN MATLAB. 7

notepad). El programa es:

a = 3;
b = 5;
c = 2;

D = b^2 4 a c;
x(1) = ( b + sqrt(D))=2 a;

x(2) = ( b sqrt(D))=2 a;

Guardamos el programa en el directorio numérico, con el nombre eje1.m Para eje-


cutarlo escribamos en Matlab el nombre del archivo y obtenemos:
>>eje1
x=
-0.6667 -1
El programa anterior escrito como function queda así.
function x=eje2(a,b,c)
D=b^2-4*a*c;
x(1)=(-b+sqrt(D))/(2*a);
x(2)=(-b-sqrt(D))/(2*a);
Se almacena en un archivo eje2.m y se ejecuta del siguiente modo.
>>eje2(3,5,2)
ans=
-0.6667 -1.0000

A continuación se dan algunos comandos más usados en programas.


1. for. La sintaxis de este comando es
For i=vi:in:vf
instrucciones
8 CAPÍTULO 1. PRELIMINARES

end

Donde vi, in, vf son el valor inical, el incremento y el valor …nal de la variable escalar
i.

2. while La sintaxis de este comando es

While relación

instrucciones

end

Las instrucciones se ejecutan reiteradamente mientras la relación sea verdadera.

3. If. La sintaxis de este comando es

if relación

instrucciones

end

Las instrucciones se ejecutan si la relación es verdadera. Otras formas de este co-


mando son posibles.

Por ejemplo,

if relación

instrucciones 1

else

instrucciones 2

end

Si la relación es verdadera s ejecutan las instrucciones 1, caso contrario se ejecutan


las instrucciones 2.

Las relaciones para los comandos if y while se construyen mediante los siguientes
1.3. PROGRAMACIÓN EN MATLAB. 9

relacionadores.
< Menor que
> Mayor que
<= Menor o igual a
>= Mayor o igual a
== Igual a
Y los siguientes conectivos lógicos

& Y
j O
xor o excluyente

Se presenta un ejemplo de programa.


Construya un programa que evalúe la función.
8
< 2 sin2 2x x 0
f (x) (1.1)
: 1 e x x>0

Solución.
function y=fun1(x) % Si la entrada es un vector, la salida también lo es.
n=length(x) % Determina la longitud del vector x.
% A continuación se calcula el valor de la función componente a componente.
for i=1:n % Al omitir el incremento este se asume igual a 1.
if x(i)<=0
y(i)=2*(sin(2*x(i)))^2;
else
y(i)=1-exp(-x(i));
end
end
Para hacer la gra…ca de la función en el intervalo [ 10; 10] puede utilizarse este
programa del siguiente modo
10 CAPÍTULO 1. PRELIMINARES

>>x=-10:.01:10
>>plot(x,fun1(x))
Capítulo 2

Solución de ecuaciones no lineales

Los métodos que se presentan en la siguiente guía rtequieren que las funciones sean
diferenciables, y por tanto continuas, en el intervalo donde se requiere. El problema
de encontar las raices, o ceros de una ecuación algebráica fe la forma f (x) = 0, se
presenta frecuentemente dentro del campo de la ingeniería, las ciencias econónicas
y sociales entre otros. Para este problema se presentan diversos métodos, en el
presente capitulo se estudiaran algunos de ellos.

Ejemplo 2.1 El crecimiento de una población numerosa puede modelarse durante


periodos breves, con sólo suponer que ésta crece constantemente con el tiempo a una
tasa proporcional al número de habitantes que existen en ese tiempo. Si se denota
con N (t) la cantidad de habitantes en el tiempo t y con el índice constante de la
natalidad, la población satisface la ecuación diferencial

dN (t)
= N (t):
dt

La solución de esta ecuación diferencial utilizando el método de separación de vari-


ables es N (t) = N0 e t , donde N0 denota la población inicial.
Este modelo exponencial es válido sólo cuando la población se halla aislada, es decir,
sin que exista inmigración proveniente del exterior. Sí se permite la inmigración

11
12 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

con una tasa constante la ecuación diferencial que rige la situación será.
dN (t)
= N (t) +
dt
cuya solución es
N (t) = N0 e t + (e t
1):

Supongase que cierta población tiene inicialmente un millon de habitantes, que


435000 de ellos inmigran hacia la comunidad durante el primer año y que 1564000
se encuentran en ella al …nal del año 1. Si se quiere determinar la natalidad de la
población, se debe determinar en la ecuación
435000
1564000 = 1000000e + (e 1):

Los métodos numéricos que se tratan en este capítulo sirven para obtener aproxi-
maciones a las soluciones de este tipo de ecuaciones cuando no es posible obtener
respuestas exáctas por métodos algebráicos, [1]:

2.1. Método de bisección.

Supongamos que f es una función continua en un intervalo [a; b] con f (a) f (b) < 0.
Entonces, por teorema del valor intermedio para funciones continuas, existe al menos
un c 2 (a; b) tal que f (c) = 0. Asumiremos en lo que sigue que la raíz en este
intervalo es única (aunque el método también se puede aplicar cuando hay más de
una raíz en (a; b) ).

El método de Bisección aplicado a la función f (x) para aproximar la raíz c 2 [a; b],
consiste en dividir sucesivamente el intervalo [a; b] por la mitad, hasta que la longitud
del subintervalo que contiene a la raíz c sea menor que la tolerancia especi…cada ".

Empezaremos tomando como extremos del intervalo a = x0 y b = x1 y tomamos el


x0 + x1
punto medio, llamado xc = ; x2 2 [a; b] ; primera aproximación a la raíz c:
2
2.1. MÉTODO DE BISECCIÓN. 13

Sí f (xc ) f (x1 ) > 0 actualizamos x1 = xc , en caso contrario actualizamos x0 =


xc con los nuevos puntos x1 y x0 repetimos el proceso hasta cuando la distancia
jx1 x0 j < "; el valor aproximado a la raíz será c = xc : Observese la fígura (2.1)
que describe el proceso

(2.1)

3
Ejemplo 2.2 Encontrar las soluciones exactas dentro de 10 para x3 7x2 + 14x
6 = 0 en el intervalo [0; 1]

Solución
14 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

Siguiendo el algoritmo de bisección da los valores de la siguiente tabla.

n x0 x1 xc Distancia Raíz
1 0 1 0,5 0
2 0,5 1 0,75 0,25
3 0,5 0,75 0,625 0,125
4 0,5 0,625 0,5625 0,0625
5 0,5625 0,625 0,59375 0,03125
6 0,5625 0,59375 0,578125 0,015625
7 0,578125 0,59375 0,5859375 0,0078125
8 0,578125 0,5859375 0,58203125 0,00390625
9 0,58203125 0,5859375 0,58398438 0,00195313
10 0,58398438 0,5859375 0,58496094 0,00097656 0,00097656
11 0,58496094 0,5859375 0,58544922 0,00048828 0,00048828
12 0,58544922 0,5859375 0,58569336 0,00024414 0,00024414
13 0,58569336 0,5859375 0,58581543 0,00012207 0,00012207
14 0,58569336 0,5858154 0,58575439 6,1035E-05 6,1035E-05
15 0,58575439 0,5858154 0,58578491 3,0518E-05 3,0518E-05

El método se describe en el siguiente algoritmo

Algoritmo 2.3 METODO DE LA BISECCION


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprvintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
2.1. MÉTODO DE BISECCIÓN. 15

disp(’METODO DE LA BISECCION ’);


disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=input(’PORFAVOR, INGRESE LA FUNCION: ’,’s’);
graf=input(’¿DESEA GRAFICAR LA FUNCION? (DIGITE 1=SI; 0=NO) ’);
if graf==1;
ezplot(f);
end
xai=input(’INGRESE EL LIMITE INFERIOR DEL INTERVALO: ’);
xbi=input(’INGRESE EL LIMITE SUPERIOR DEL INTERVALO: ’);
tol=input(’INGRESE EL PORCENTAJE DE ERROR: ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=inline(f);
i=1;
ea(1)=100;
if f(xai)*f(xbi)<0
xa(1)=xai;
xb(1)=xbi;
xr(1)=(xa(1)+xb(1))/2;
fprintf(’It. Xa Xr Xb Error Aprox.nn’);
fprintf(’%2dt % 11.7fnt % 11.7fnt % 11.7fnn’,i,xa(i),xr(i),xb(i));
while abs (ea(i))>=tol,
if f(xa(i))*f(xr(i))<0
xa(i+1)=xa(i);
xb(i+1)=xr(i);
end
if f(xa(i))*f(xr(i))>0
xa(i+1)=xr(i);
xb(i+1)=xb(i);
16 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

end

xr(i+1)=(xa(i+1)+xb(i+1))/2;

ea(i+1)=abs((xr(i+1)-xr(i)));

fprintf(’%2dt % 11.7fnt % 11.7fnt % 11.7fnt % 11.7fnn’,...

i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));

i=i+1;

end

disp(’— — — — — — — - ’);

fprintf(’LA RAIZ DE LA FUNCION ES ’)

xr(i)

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

disp(’— — — — — — — - ’);

else

fprintf(’NO EXISTE UNA RAIZ EN ESE INTERVALO’);

disp(’’);

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

disp(’— — — — — — — - ’);

end

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
2.1. MÉTODO DE BISECCIÓN. 17

Al ejecutar el programa desde Matlab se obtiene la siguiente ventana


18 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

y seleccionando 1 para método de bisección se obtiene


2.2. MÉTODO DE LA SECANTE. 19

el cual arroja la gra…ca de la función

2.2. Método de la secante.

Dada una función contínua en el intervalo [a; b] tal que existe un punto xc 2 [a; b]
y f (xc ) = 0 tomamos dos puntos iniciales x0 y x1 aproximados a la raíz. Por los
puntos P0 (x0 ; f (x0 )) y P1 (x1 ; f (x1 )) trazamos una recta secante a la grá…ca de la
función y = f (x); esta recta secante cotará el eje x en el punto (x2 ; 0). El punto x2
será una nueva aproximación a la raíz xc :
Con los puntos P2 (x2 ; f (x2 )) y P1 (x1 ; f (x1 )) repetimos el proceso para hallar una
20 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

nueva aproximación.
Continuamos el proceso iterativo hasta cuando la distancia jxn xn+1 j < " y ten-
dremos una raíz aproximada f (xn+1 ) ' 0:

(2.2)

El proceso se evidencia en la fígura (2.2) :


Para hallar la formula de recurrencia por los puntos P0 (x0 ; f (x0 )) y P1 (x1 ; f (x1 ))
pasa una recta cuya ecuación estará determinada por
f (x1 ) f (x0 )
y f (x0 ) = (x x0 )
x1 x0
esta recta secante contiene al punto (x2 ; 0) por tanto satisface la ecuación
f (x1 ) f (x0 )
0 f (x0 ) = (x2 x0 )
x1 x0
y al despejar x2 se obtiene
x1 x0
x2 = x0 f (x0 )
f (x1 ) f (x0 )
y para la i-ésima iteración se obtiene

xi+1 xi
xi+2 = xi f (xi )
f (xi+1 ) f (xi )
2.2. MÉTODO DE LA SECANTE. 21

3
Ejemplo 2.4 Encontrar las soluciones exáctas dentro de 10 para x3 7x2 + 14x
6 = 0 en el intervalo [0; 1]

Solución Siguiendo el algoritmo de la secante da los valores de la siguiente


tabla.
i xi f(xi) Distancia Raíz
0 0 -6 0
1 1 2 1
2 0,75 0,984375 0,25
3 0,50769231 -0,5657096 0,24230769
4 0,59612347 0,0700266 0,08843117
5 0,58638274 0,00406997 0,00974073
6 0,58578168 -3,2521E-05 0,00060107 0,58578168

Algoritmo 2.5 Método de la secante.


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE LA SECANTE ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=input(’PORFAVOR, INGRESE LA FUNCION: ’,’s’);
graf=input(’¿DESEA GRAFICAR LA FUNCION? (DIGITE 1=SI; 0=NO) ’);
if graf==1;
22 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

ezplot(f);
end
xai=input(’INGRESE EL LIMITE INFERIOR DEL INTERVALO: ’);
xbi=input(’INGRESE EL LIMITE SUPERIOR DEL INTERVALO: ’);
tol=input(’INGRESE EL PORCENTAJE DE ERROR: ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=inline(f);
i=1;
ea(1)=100;
if f(xai)*f(xbi)<0
xa(1)=xai;
xb(1)=xbi;
xr(1)=(xa(1)-f(xa(1))*(((xb(1)-xa(1))/(f(xb(1))-f(xa(1))))));
fprintf(’It. xi xi+1 xi+2 Error Aprox.nn’);
fprintf(’%2dnt % 11.7fnt % 11.7fnt % 11.7fnn’,i,xa(i),xb(i),xr(i));

while abs (ea(i))>=tol;


xa(i+1)=xb(i);
xb(i+1)=xr(i);
xr(i+1)=(xa(i+1)-f(xa(i+1))*(((xb(i+1)-xa(i+1))/(f(xb(i+1))-f(xa(i+1))))));
ea(i+1)=abs((xr(i+1)-xr(i)));
fprintf(’%2dnt % 11.7fnt % 11.7fnt % 11.7fnt % 11.7fnn’,...
i+1,xa(i+1),xb(i+1),xr(i+1),ea(i+1));
i=i+1;
end
disp(’— — — — — — — - ’);
fprintf(’LA RAIZ ES ’)
xr(i)
2.2. MÉTODO DE LA SECANTE. 23

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

disp(’— — — — — — — - ’);

else

fprintf(’NO EXISTE UNA RAIZ EN ESE INTERVALO’);

disp(’’);

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

disp(’— — — — — — — - ’);

end

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end
24 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
2.3. MÉTODO DE LA REGLA FALSA. 25

2.3. Método de la regla falsa.

Dada una función contínua en el intervalo [a; b] tal que existe un punto xc 2 [a; b] y
f (xc ) = 0 tomamos dos puntos iniciales xi que está a la izquierda de la raíz y xd a
la derecha de la raíz. Esta condición se puede comprobar si f (xi ) f (xd ) < 0. Por
los puntos Pi (xi ; f (xi )) y Pd (xd ; f (xd )) trazamos una recta secante a la grá…ca de la
función y = f (x); esta recta secante cotará el eje x en el punto (xn ; 0). El punto xn
será una nueva aproximación a la raíz xc ; luego determianamos a que lado de xc se
encuentra xn :

Sí f (xn ) f (xi ) > 0 actualizamos xi = xn , en caso contrario actualizamos


xd = xc con los nuevos puntos xi y xd repetimos el proceso hasta cuando la distancia
jxni xni 1 j < "; el valor aproximado a la raíz será xn = xc :

Para hallar la formula de recurrencia por los puntos Pi (xi ; f (xi )) y Pd (xd ; f (xd ))
pasa una recta cuya ecuación estará determinada por

f (xd ) f (xi )
y f (xi ) = (x xi )
xd xi

esta recta secante contiene al punto (xn ; 0) por tanto satisface la ecuación

f (xd ) f (xi )
0 f (xi ) = (xn xi )
xd xi

y al despejar xn se obtiene

xd xi
xn = xi f (xi ) (2.3)
f (xd ) f (xi )

Sí f (xn ) f (xi ) > 0 actualizamos xi = xn , en caso contrario actualizamos xd = xc ,


repetimos el proceso utilizando (2.3) :
26 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

El proceso se observa según la fígura (2.4)

(2.4)

3
Ejemplo 2.6 Encontrar las soluciones exáctas dentro de 10 para x3 7x2 + 14x
6 = 0 en el intervalo [0; 1] :

Solución. Siguiendo el algoritmo del método de la regla falsa se resumen los


resultados en la siguiente tabla.
n xi xd xc Distancia Raíz
1 0 1 0,75
2 0 0,75 0,644295302 0,1057047
3 0 0,6442953 0,605751653 0,03854365
4 0 0,6057517 0,592494663 0,01325699
5 0 0,5924947 0,588028488 0,00446618
6 0 0,5880285 0,586534454 0,00149403
7 0 0,5865345 0,586035851 0,0004986 0,0004986
8 0 0,5860359 0,585869584 0,00016627 0,00016627
9 0 0,5858696 0,585814154 5,543E-05 5,543E-05
10 0 0,5858142 0,585795676 1,8477E-05 1,8477E-05
11 0 0,5857957 0,585789517 6,1592E-06 6,1592E-06

Algoritmo 2.7 Método de la regla falsa


2.3. MÉTODO DE LA REGLA FALSA. 27

cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);


if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE LA REGLA FALSA ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=input(’PORFAVOR, INGRESE LA FUNCION: ’,’s’);
graf=input(’¿DESEA GRAFICAR LA FUNCION? (DIGITE 1=SI; 0=NO) ’);
if graf==1;
ezplot(f);
end
xai=input(’INGRESE EL LIMITE INFERIOR DEL INTERVALO: ’);
xbi=input(’INGRESE EL LIMITE SUPERIOR DEL INTERVALO: ’);
tol=input(’INGRESE EL PORCENTAJE DE ERROR: ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=inline(f);
i=1;
ea(1)=100;
if f(xai)*f(xbi)>0
fprintf(’NO EXISTE UN RAIZ EN ESE INTERVALO’);
disp(’’);
28 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

fprintf(’Gracias por utilizar nuestra aplicacion’);


disp(’’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
if f(xai)*f(xbi)<0
xa(1)=xai;
xb(1)=xbi;
xr(1)=(xa(1)-f(xa(1))*(((xb(1)-xa(1))/(f(xb(1))-f(xa(1))))));
fprintf(’It. xi xr xd Error Aprox.nn’);
fprintf(’%2dt % 11.7fnt % 11.7fnt % 11.7fnn’,i,xa(i),xr(i),xb(i));
while abs (ea(i))>=tol,
if f(xb(i))*f(xr(i))<0
xa(i+1)=xr(i);
xb(i+1)=xb(i);
end
if f(xb(i))*f(xr(i))>0
xb(i+1)=xr(i);
xa(i+1)=xa(i);
end
xr(i+1)=(xa(i+1)-f(xa(i+1))*(((xb(i+1)-xa(i+1))/(f(xb(i+1))-f(xa(i+1))))));
ea(i+1)=abs((xr(i+1)-xr(i)));
fprintf(’%2dt % 11.7fnt % 11.7fnt % 11.7fnt % 11.7fnn’,...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
disp(’— — — — — — — - ’);
fprintf(’LA RAIZ ES ’)
xr(i)
2.3. MÉTODO DE LA REGLA FALSA. 29

disp(’— — — — — — — - ’);

fprintf(’Gracias por utilizar nuestra aplicacion’);

disp(’’);

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRO PROGRAMA’);

end

end
30 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
2.4. MÉTODO DE PUNTO FIJO. 31

2.4. Método de punto …jo.

Sea f(x) una función continúa en un intervalo cerrado [a; b] tal que existe un c 2 [a; b]
con la condición f (c) = 0; de la función f (x); igualando a cero tenemos

f (x) = 0 (2.5)

de (2.5) despejamos x hallando una nueva función g(x) con un valor inicial x0 como
primera aproximación hallamos x1 = g(x0 ) y continuamos iterando, es decir x2 =
g(x1 ) y así continuamente xi+1 = g(xi ): El proceso converge cuando la distancia
jxi+1 xi j < "1 o cuando jf (xi+1 )j < "2 con 0 < "1 << 1; 0 < "2 << 1:

Si las distancias entre jxi+1 xi j ! 1 cuando i ! 1 se debe cambiar la formula


iterativa x = g(x):

3
Ejemplo 2.8 Encontrar las soluciones exáctas dentro de 10 para 3x2 7x 6 = 0
tomando como valor inicial x0 = 1:

Solución Siguiendo el algoritmo del método del punto …jo da los valores de la
32 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

siguiente tabla para diferentes g(x).


i g1(x) g2(xi) g3(xi) g4(xi)
0 1 1 1 1
1 -0,42857143 2,081666 -1,5 4,33333333
2 -0,77842566 2,61862954 -0,52173913 52,4814815
3 -0,5974515 2,84782998 -0,70050761 6531,67673
4 -0,70416502 2,94022731 -0,65923034 99559598,7
5 -0,64463641 2,9766643 -0,66832329 2,3128E+16
6 -0,67904738 2,99091124 -0,66629873
7 -0,65952628 2,9964634 -0,66674844
8 -0,67072504 2,99862434 -0,6666485
9 -0,66434054 2,99946497 -0,6666707
10 -0,66799356 2,99979193 -0,66666577
11 -0,66590769 2,99991908 -0,66666687
12 -0,66710012 2,99996853 -0,66666662
13 -0,6664189 2,99998776 -0,66666668
14 -0,66680822 2,99999524 -0,66666666
15 -0,66658577 2,99999815
16 -0,66671289 2,99999928
17 -0,66664025 2,99999972
18 -0,66668176 2,99999989
19 -0,66665804 2,99999996
20 -0,6666716 2,99999998
21 -0,66666385 2,99999999
-0,66666828 3
-0,66666575
r
3x2 6 7x + 6 6
Las funciones corresponden a g1 (x) = ; g2 (x) = ; g3 (x) = y
7 3 3x 7
7x + 6
g4 (x) = ; se observa que las primeras tres funciones g(x) convergen mientras
3x
que g4 (x) no lo hace.

Algoritmo 2.9 Método de punto …jo.


cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
format long
2.4. MÉTODO DE PUNTO FIJO. 33

fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DEL PUNTO FIJO ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’’);
disp(’’);
for m=1:1

xf(1)=input(’Ingrese el valor inicial : ’);


e=input(’Ingrese el porcentaje de error: ’);
syms x;
f=input(’Ingrese la función f(x), despejada g(f(x)): ’);
disp(’’);
i=1;
ea(1)=100;
while abs(ea(i))>=e,
xf(i+1) = subs(f,x,xf(i));
ea(i+1) = abs((xf(i+1)-xf(i))/xf(i+1))*100;
i=i+1;
end
fprintf(’i xf(i) Error aprox (i) nn’);
fprintf(’____________________________________’);
disp(’’);
34 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

for j=1:i;

fprintf(’%2d nt %11.7f nt %11.7f nn’,j-1,xf(j),ea(j));

end

disp(’’);

disp(’’);

disp(’’);

disp(’’);

disp(’’);

hold on;

ezplot(f);

grid on;

end

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
2.4. MÉTODO DE PUNTO FIJO. 35
36 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

cuya gra…ca corresponde a

2.5. Método de Newton.

Sea f(x) una función continúa en un intervalo cerrado [a; b] tal que existe un c
2 [a; b] con la condición f (c) = 0: Con una aproximación inicial x0 por el pun-
to P0 (x0 ; f (x0 )) trazamos una recta tangente a la curva y = f (x) en el punto
P0 (x0 ; f (x0 )): La recta tangente intersecta al eje x en el punto (x1 ; 0), el punto
2.5. MÉTODO DE NEWTON. 37

x1 es una nueva aproximación a la raíz.

Nuevamente trazamos una recta tangente a la curva f (x) por el punto de tangencia,
el corte de la tangente con el eje x es el punto (x2 ; 0) este determinará una nueva
aproximación a la raíz c:

(2.6)

En la fígura (2.6) se tiene la grá…ca de f(x) cuyas tangentes aproximan a la raíz.

Continuando con este proceso iterativo obtendremos una nueva aproximación a la


raíz con error de 0 < "1 << 1;cuando la distancia jxi xi+1 j < "1 en la iteración
i-ésima o cuando jf (xi+1 )j < "2 con 0 < "2 << 1:

Hallando la formula iterativa, dado el punto P0 (x0 ; f (x0 )) se traza la recta tangente,
esta tendra por ecuación,

y f (x0 ) = m(x x0 )
38 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

la pendiente de la recta tangente esta dada por m = f 0(x0 ) luego la ecuación de la


recta tangente esta dada por

y f (x0 ) = f 0(x0 )(x x0 )

como el punto (x1 ; 0) está en la recta tangente debe satisfacer

0 f (x0 ) = f 0(x0 )(x1 x0 )

y despejando x1 se obtiene

f (x0 )
x1 = x0 ; f 0(x0 ) 6= 0:
f 0(x0 )

En la i-ésima iteración tenemos

f (xi 1 )
xi = xi 1 ; f 0(xi 1 ) 6= 0
f 0(xi 1 )
3
Ejemplo 2.10 Encontrar una raíz dentro de 10 para 3x2 7x 6 = 0 tomando
como valor inicial x0 = 1:

Solución Siguiendo el algoritmo del método de Newton da los valores de la


siguiente tabla.
2.5. MÉTODO DE NEWTON. 39

i xi f(xi) f'(xi) error Raíz


0 1 -10 -1
1 -9 300 -61 10
2 -4,08196721 72,5611395 -31,4918033 4,91803279
3 -1,77783941 15,9270148 -17,6670365 2,3041278
4 -0,87632914 2,43816229 -12,2579749 0,90151027
5 -0,67742497 0,1186886 -11,0645498 0,19890417
6 -0,66669805 0,0003452 -11,0001883 0,01072693
7 -0,66666667 2,9544E-09 -11 3,1381E-05 -0,666667
8 -0,66666667 0 -11 2,6858E-10 -0,666667

Algoritmo 2.11 Método de Newton.


fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE NEWTON ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=input(’PORFAVOR, INGRESE LA FUNCION: ’,’s’);
g=input(’PORFAVOR, INGRESE SU DERIVADA: ’,’s’);
graf=input(’¿DESEA GRAFICAR LA FUNCION? (DIGITE 1=SI; 0=NO) ’);
if graf==1
ezplot(f);
end
xai=input(’INGRESE EL PUNTO INICIAL (X0): ’);
tol=input(’INGRESE EL PORCENTAJE DE ERROR: ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
f=inline(f);
g=inline(g);
40 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES

i=1;

ea(1)=100;

xa(1)=xai;

xr(1)=xa(1)-((f(xa(1))/g(xa(1))));

fprintf(’It. x Error Aprox.nn’);

fprintf(’%2dt % 11.7fnn’,i,xr(i));

while abs (ea(i))>=tol,

xa(i+1)=subs(xr(i));

xr(i+1)=xa(i+1)-((f(xa(i+1))/g(xa(i+1))));

ea(i+1)=abs((xr(i+1)-xr(i)));

fprintf(’%2dt % 11.7fnt % 11.7fnn’,...

i+1,xr(i+1),ea(i+1));

i=i+1;

end

disp(’— — — — — — — - ’);

fprintf(’LA RAIZ ES ’)

xr(i)

disp(’— — — — — — — - ’);

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);


2.5. MÉTODO DE NEWTON. 41

end
42 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
Capítulo 3

Sistemas de ecuaciones lineales.

Muchos problemas relacionados con el campo de la ingeniería, ciencias económicas y


sociales entre otras se pueden expresar en terminos de sistemas de ecuaciones alge-
bráicos lineales. Debido a ello en el presente capítulo se realiza un estudio a algunos
métodos más usados para resolver estos sistemas. Cabe destacar la importancia de
diferenciar entre mñetodos directos y métodos iterativos.

Ejemplo 3.1 Suponga que un equipo de tres paracaidistas está unido por una cuerda
ligera mientras va en caída libre a una velocidad de 5m=s. Ver 3.1

Calcule la tensión en cada sección de la cuerda y la aceleración del equipo, dados los
siguientes datos.

Paracaidista Masa (Kg) Coe…ciente de arrastre Kg/s


1 70 10
2 60 14
3 40 17

Los diagramas de cuerpo libre para cada uno de los paracaidistas se relacionan a

43
44 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

continuación.Ver 3.1

(3.1)
Sumando las fuerzas en la dirección vertical y utilizando la segunda ley de Newton,
se obtiene el siguiente sistema de ecuaciones lineales....

m1 g T c1 v = m1 a
m2 g + T c2 v R = m2 a
m3 g c3 v + R = m3 a

Estas ecuaciones tiene tres incognitas: a; T y R:.[2]: Es decir

2 3 2 3 2 3
70 1 0 a 636
6 7 6 7 6 7
6 7 6 7 6 7
6 60 1 1 7 6 T 7= 6 518 7
4 5 4 5 4 5
40 0 1 R 307
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 45

3.1. Métodos directos de solución

El prototipo de estos métodos se conoce como la eliminación de Gauss y se presen-


tana continuación,[7]

3.1.1. Eliminación de Gauss

Dado el sistema lineal de n ecuaciones con n incognitas

a11 x1 + a12 x2 + ::: + a1n xn = b1


a21 x1 + a22 x2 + ::: + a2n xn = b2
:::
an1 x1 + an2 x2 + ::: + ann xn = bn
suponiendo que el sistema tiene solución única formamos el sistema matricial
2 3 2 3 2 3
a11 a12 ::: a1n x1 b1
6 7 6 7 6 7
6 a a22 ::: a2n 7 6 x 7 6 b 7
6 21 7 6 2 7 6 2 7
6 7 6 7 =6 7
6 : 7 6
::: ::: : 5 4 : 5 7 6 : 7
4 4 5
an1 an2 ::: ann xn bn
de…nimos la matriz ampliada
2 3
a11 a12 ::: a1n b1
6 7
6 a b2 7
6 21 a22 ::: a2n 7
6 7
6 : ::: ::: : : 7
4 5
an1 an2 ::: ann bn
haciendo transformaciones sobre las …las de la matriz ampliada llevamos el sistema
a una matríz triangular superior

2 3
a11 a12 ::: a1n b1
6 7
6 0 a22 ::: a2n b2 7
6 7
6 7
6 : ::: ::: : : 7
4 5
0 0 ::: ann bn
46 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Este último sistema se resuelve utilizando el método de sustitución regresiva.

Ejemplo 3.2 Dado el sistema

70x1 + x2 = 636
60x1 x2 + x3 = 518

40x1 x3 = 307

solucionarlo utilizando el método de Gauss.

Solución Escribiendo el sistema en forma matricial se obtiene


2 3 2 3 2 3
6 70 1 0 7 x
6 1 7 6 636 7
6 7 6 7 6 7
6 60 1 1 7 6 x2 7 = 6 518 7
4 5 4 5 4 5
40 0 1 x3 307

cuya matriz ampliada corresponde


2 3
70 1 0 636
6 7
6 7
6 60 1 1 518 7
4 5
40 0 1 307

llevando el sistema a una matriz triangular superior


Eliminación en la …la 2 y columna 1
2 3
70 1 0 636
6 7
6 7
6 0 1;8571 1 27;1429 7
4 5
40 0 1 307

Eliminación en la …la 3 y columna 1


2 3
70 1 0 636
6 7
6 7
6 0 1;8571 1 27;1429 7
4 5
0 0;5714 1 56;4286
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 47

Eliminación en la …la 3 y columna 2


2 3
6 70 1 0 636 7
6 7
6 0 1;8571 1 27;1429 7
4 5
0 0 1;3077 48;0729

y luego podemos encontrar la solución del sistema utilizando sustitución regresiva.

Algoritmo 3.3 Eliminación de Gauss


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE ELIMINACIÓN DE GAUSS ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’Este programa realiza el procedimiento de Gauss para la solucion de un sistema
de ecuaciones’);
fprintf(’nn’);
fprintf(’nn’);
p=0;
while p==0;
A=input(’Ingrese la matriz aumentada( en []): nn’);
fprintf(’nn’);
48 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

[x,y]=size(A);
Ay=A;
disp(Ay)
if x+1==y;
p=1;
else
fprintf(’nn’);
fprintf(’La matriz no es de nxn+1’);
A=input(’Introduzca la matriz aumentada:’);
end
for j=1:x-1;
for i=j+1:x;
A(i,:)=[-A(i,j)/A(j,j)]*A(j,:)+A(i,:);
fprintf(’Eliminación en la …la %2d y columna %2d’,i,j);
fprintf(’nn’);
disp(A)
end
end
end
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
if retchoose==1
MENU
end
if retchoose==0
disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);
end
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 49
50 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.1.2. Eliminación de Gauss Jordan con pivoteo.

Dado el sistema lineal de n ecuaciones con n incognitas

a11 x1 + a12 x2 + ::: + a1n xn = b1


a21 x1 + a22 x2 + ::: + a2n xn = b2
:::
an1 x1 + an2 x2 + ::: + ann xn = bn

suponiendo que el sistema tiene solución única formamos el sistema matricial


2 3 2 3 2 3
a11 a12 ::: a1n x1 b1
6 7 6 7 6 7
6 a 7 6 x 7 6 b 7
6 21 a22 ::: a2n 7 6 2 7 6 2 7
6 7 6 7 =6 7
6 : ::: ::: : 7 6 : 7 6 : 7
4 5 4 5 4 5
an1 an2 ::: ann xn bn

de…nimos la matriz ampliada


2 3
a11 a12 ::: a1n b1
6 7
6 a b2 7
6 21 a22 ::: a2n 7
6 7
6 : ::: ::: : : 7
4 5
an1 an2 ::: ann bn

el objetivo es hacer transformaciones con pivoteo de tal manera que llevemos el


sistema a una matriz identidad

2 3
1 0 ::: 0 b1
6 7
6 0 1 ::: 0 b2 7
6 7
6 7
6 : : 1 0 : 7
4 5
0 0 0 1 bn

por tanto la solución será

x1 = b1 x2 = b2 :::: xn = bn
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 51

Ejemplo 3.4 Dado el sistema

70x1 + x2 = 636
60x1 x2 + x3 = 518

40x1 x3 = 307

solucionarlo utilizando el método de Gauss.

Solución Escribiendo el sistema en forma matricial se obtiene


2 3 2 3 2 3
70 1 0 x 636
6 7 6 1 7 6 7
6 7 6 7 6 7
6 60 1 1 7 6 x2 7 = 6 518 7
4 5 4 5 4 5
40 0 1 x3 307

cuya matriz ampliada corresponde


2 3
70 1 0 636
6 7
6 7
6 60 1 1 518 7
4 5
40 0 1 307

luego realizando transformaciones sobre la matriz ampliada, eliminación en la …la 2


y columna 1 2 3
6 1 1=70 0 318=35 7
6 7
6 0 13=7 1 190=7 7
4 5
40 0 1 307
Eliminación en la …la 3 y columna 1
2 3
1 1=70 0 318=35
6 7
6 7
6 0 13=7 1 190=7 7
4 5
0 4=7 1 395=7

Eliminación en la …la 3 y columna 2


2 3
1 1=70 0 318=35
6 7
6 7
6 0 13=7 1 190=7 7
4 5
0 0 17=13 625=13
52 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Eliminación en la …la 1 y columna 2


2 3
1 0 1=130 577=65
6 7
6 7
6 0 1 7=13 190=13 7
4 5
0 0 1 625=17

Eliminación en la …la 1 y columna 3


2 3
6 1 0 0 1461=170 7
6 7
6 0 1 7=13 190=13 7
4 5
0 0 1 625=17

Eliminación en la …la 1 y columna 2


2 3
1 0 0 1461=170
6 7
6 7
6 0 1 0 585=17 7
4 5
0 0 1 625=17

Algoritmo 3.5 Eliminación de Gauss Jordan con pivoteo.


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE GAUSS-JORDAN CON PIVOTEO ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 53

disp(’BIENVENIDO’);
fprintf(’Recuerde para el calculo se trabajara con la matriz ampliada, Ajb, es la que
usted debe ingresarnnnn’);
f=input(’PORFAVOR INDIQUE, ¿CUANTAS FILAS TIENE LA MATRIZ?: ’);
c=input(’PORFAVOR INDIQUE, ¿CUANTAS COLUMNAS TIENE LA MATRIZ?:
’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
for k=1:c
for j=1:f
fprintf(’PORFAVOR, INTRODUZCA EL ELEMENTO ’);
fprintf(’Fila %x’, j)
fprintf(’, Columna %x’, k)
fprintf(’nn’);
r=input( ’’);
fprintf(’— — — — — — — -nn’);
A(j,k)=r;
j=j+1;
end
k=k+1;
end
A
for k=1:c-1
A(k,:)=A(k,:)/A(k,k);
for j=k+1:f
A(j,:)=A(j,:)-A(k,:)*A(j,k);
j=j+1;
A
end
54 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

k=k+1;
A
end
for k=f:-1:2
for j=k-1:-1:1
A(j,:)=A(j,:)-A(k,:)*A(j,k);
j=j-1;
A
end
k=k-1;
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
A
disp(’LA MATRIZ REDUCIDA INDICA LOS RESULTADOS DE "x"’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
if retchoose==1
clear all
menu
end
if retchoose==0
disp(’EL USO DE LA APLICACION HA FINALIZADO’);
break
end
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 55
56 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2. Métodos de Factorización

3.2.1. Factorización LU

Dado el sistema lineal de 3 ecuaciones con 3 incognitas

a11 x1 + a12 x2 + a13 x3 = b1 (3.2)


a21 x1 + a22 x2 + a23 x3 = b2
a31 x1 + a32 x2 + a33 x3 = b3
suponiendo que el sistema tiene solución única formamos el sistema matricial
2 3 2 3 2 3
a a a x b
6 11 12 13 7 6 1 7 6 1 7
6 7 6 7 6 7
6 a21 a22 a23 7 6 x2 7 = 6 b2 7
4 5 4 5 4 5
a31 a32 a33 xn b3

el método de Gauss aplicado al sistema (3.2) conduce a


2 3
a a a b1
6 11 12 13 7
6 7
6 0 a22 a23 b2 7
4 5
0 0 a33 b3
donde se aprecia una matriz triangular superior de orden 3 que se llamara U .
Ahora se de…ne una matriz triangular inferior L de orden 3 con números 1 a lo largo
de la diagonal principal y con lij igual al factor que permitió eliminar el elemento aij
del sistema (3.2) : tiene Ax = b luego LU x = b; haciendo U x = c donde c es vector
desconocido por tanto Lc = b; a partir de este sistema podemos determinar c y por
tanto solucionar U x = c:

Ejemplo 3.6 Dado el sistema

70x1 + x2 = 636
60x1 x2 + x3 = 518

40x1 x3 = 307

solucionarlo utilizando el método de Factorización LU.


3.2. MÉTODOS DE FACTORIZACIÓN 57

Solución Escribiendo el sistema en forma matricial se obtiene


2 3 2 3 2 3
70 1 0 x 636
6 7 6 1 7 6 7
6 7 6 7 6 7
6 60 1 1 7 6 x2 7 = 6 518 7
4 5 4 5 4 5
40 0 1 x3 307

La matriz U es: 2 3
70 1 0
6 7
6 7
U =6 0 13=7 1 7
4 5
0 0 17=13
y la matriz L 2 3
6 1 0 0 7
6 7
L = 6 6=7 1 0 7
4 5
4=7 4=13 1
El vector c es 2 3
636
6 7
6 7
c=6 190=7 7
4 5
625=13
El vector solución para el sistema de ecuaciones es:
2 3
6 1461=170 7
6 7
x = 6 585=17 7
4 5
625=17

Algoritmo 3.7 Factorización LU


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
58 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);


fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE FACTORIZACION LU ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’Este programa realiza la Factorizacion LU para la solucion de sistemas de
ecuaciones’);
fprintf(’nn’);
fprintf(’nn’);
format rat
fprintf(’nn’);
p=0;
while p==0;
A=input(’Ingrese la matriz aumentada( en []): nn’);
fprintf(’nn’);
[x,y]=size(A);
Ay=A;
if x+1==y;
p=1;
else
fprintf(’nn’);
fprintf(’La matriz que ingreso no tiene las dimensiones nxn+1 nn’);
A=input(’Introduzca la matriz aumentada:’);
end
if A(1,1)==0
fprintf(’Recuerde que el dato de la primera …la primera columna no puede ser cero.
3.2. MÉTODOS DE FACTORIZACIÓN 59

nn’)
p=0;
else
p=1;
end
for j=1:x-1;
for i=j+1:x;
A(i,:)=[-A(i,j)/A(j,j)]*A(j,:)+A(i,:);
fprintf(’nn’);
end
end
end
C=zeros(x,1);
C(:,1)=A(:,y);
fprintf(’La matriz C es: nn’);
disp(C)
U=zeros(x,y-1);
U(:,:)=A(:,1:x);
fprintf(’La matriz U es: nn’);
disp(U)
F=zeros(x,1);
sum=0;
for i=x:-1:1
for j=x:-1:i
if j==i
F(j,1)=(-sum+C(j,1))/U(i,i);
sum=0;
else
60 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

sum=sum+F(j,1)*U(i,j);

end

end

end

fprintf(’La matriz de soluciones para el sistema de ecuaciones que usted ingreso es:
nn’);

disp(F)

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

end
3.2. MÉTODOS DE FACTORIZACIÓN 61
62 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2.2. Factorización de Cholesky

Método utilizado cuando la matriz A del sistema es de…nida positiva:

De…nición 3.8 Una matriz A 2 Mn n se llama de…nida positiva, si:


i) A = AT ( A es simétrica )
ii) xT Ax > 0 para todo x 2 Rn ; x 6= 0:

En el caso de tener un sistema Ax = b con A de…nida positiva, la factorización


LU es posible y toma la forma LLT donde L es triangular inferior: Por tanto si
tenemos el sistema de ecuaciones lineales

a11 x1 + a12 x2 + ::: + a1n xn = b1


a21 x1 + a22 x2 + ::: + a2n xn = b2
:::
an1 x1 + an2 x2 + ::: + ann xn = bn

donde
2 3
a11 a12 ::: a1n
6 7
6 a 7
6 21 a22 ::: a2n 7
A=6 7
6 : ::: ::: : 7
4 5
an1 an2 ::: ann

es de…nida positiva es decir se puede efectuar la factorización de Cholesky con


2 3
l11 0 ::: 0
6 7
6 l 7
6 21 l22 ::: 0 7
L=6 7
6 : ::: ::: : 7
4 5
ln1 ln2 ::: lnn

El sistema se soluciona de manera semejante a la factorización planteada anteri-


ormente.
3.2. MÉTODOS DE FACTORIZACIÓN 63

Ejemplo 3.9 Dado el sistema

2x1 x2 = 5
1x1 + 4x2 + 2x3 = 10

2x2 + 2x3 = 15

solucionarlo utilizando el método de Factorización de Cholesky.

Solución La matriz A es de…nida positiva por tanto el sistema acepta la factor-


ización de Cholesky con
2 3
1393=985 0 0
6 7
6 7
L=6 985=1393 1738=829 0 7
4 5
0 929=869 649=701
y 2 3
1393 985
6 985 1393
0 7
T 6 1738 929 7
L =6 0 7
4 829 869 5
649
0 0 701

luego la solución viene dada por


2 3
10=3
6 7
6 7
x = 6 5=3 7
4 5
10=3

Algoritmo 3.10 Factorización de Cholesky


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
64 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);


fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE CHOLESKY ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
matriz=input (’Ingrese la matriz aumentada del sistema, por ejemplo: [5 -4 2 20;2
-3 4 19;1 1 3 10]nn’);
tam=size(matriz); %sacar el tamaño de la matriz para determinar A(matris de coe-
…cientes)
% y b(vector de terminos independientes)
n=tam(1); %saca el numero de …las de la matriz
for i=1:n
b(i)=matriz(i,n+1); %determinar "b"
for j=1:n
A(i,j)=matriz(i,j); %determinar .A "
end
end
b1=b’; % "b.es un vector columna
for k=1:n %Algoritmo de cholesky
for i=1:k-1 %””””””””””’
sum=0; %””””””””””’
for j=1:i-1 %””””””””””’
sum=sum+A(i,j)*A(k,j); %””””””””””’
end %””””””””””’
A(k,i)=(A(k,i)-sum)/A(i,i); %””””””””””’
3.2. MÉTODOS DE FACTORIZACIÓN 65

end %””””””””””’
sum=0; %””””””””””’
for j=1:k-1 %””””””””””’
sum=sum+A(k,j)*A(k,j); %””””””””””’
end %””””””””””’
A(k,k)=sqrt(A(k,k)-sum); %””””””””””’
end %””””””””””’
for i=1:n-1 %Añade los ceros de la L de cholesky
for j=1:n %”(puesto que el algoritmo solo ”’
if j>i %”’altera los elementos de””””’
A(i,j)=0; %”’la diagonal principal de A”””
end %””y por debajo de esta)”””””
end %”””””””””””””””””’
end %”””””””””””””””””’
L=A; %cambio de variable
Lt=L’; %Lt sera la U de cholesky(transpuesta de L)
c=b1; %se inicializa el vector ç", que tiene el mismo tamaño de "b"
c(1)=b1(1)/L(1,1); %se determina el primer elemento de c
for i=2:n %procedimiento para hallar ç"(progresivamente)
s=0; %”””””””””””””””””””””””
for j=1:n-1 %”””””””””””””””””””””””
if i~=j & i>j %”””””””””””””””””””””””
s=s+L(i,j)*c(j) ; %”””””””””””””””””””””””
end %”””””””””””””””””””””””
end %”””””””””””””””””””””””
c(i)=(b1(i)-s)/L(i,i); %”””””””””””””””””””””””
end %”””””””””””””””””””””””
x=c; %se inicializa el vector "x", que tiene el mismo tamaño de ç"
66 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

x(n)=c(n)/Lt(n,n); %se determina x(n)(ultima solucion del sistema)

for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente)

z=0; %””””””””””””””””””””””’

for j=n:-1:2 %”””Lt*x=c”””””””””””””””””

if i~=j & i<j %””””””””””””””””””””””’

z=z+Lt(i,j)*x(j); %””””””””””””””””””””””’

end %””””””””””””””””””””””’

end %””””””””””””””””””””””’

x(i)=(c(i)-z)/Lt(i,i); %””””””””””””””””””””””’

end %””””””””””””””””””””””’

L %muestra la matriz triangular inferior de cholesky

Lt %muestra ”””””””””””superior ””””

LLt=L*Lt %muestra la factorizacion de cholesky

x %vector solucion del sistema

clear all %elimina las variables del espacio de trabajo(evita que el programa se cargue
de basura)

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
3.2. MÉTODOS DE FACTORIZACIÓN 67
68 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2.3. Método de Doolitle

Directamente permite hacer una factorización de la matriza A del sistema

a11 x1 + a12 x2 + ::: + a1n xn = b1


a21 x1 + a22 x2 + ::: + a2n xn = b2
:::
an1 x1 + an2 x2 + ::: + ann xn = bn

en terminos de la matriz LU . Encontrando la formula directa


2 3 2 3 2 3
6 l11 0 0 7 6 u11 u12 u13 7 6 a11 a12 a13 7
6 7 6 7 6 7
6 l21 l22 0 7 6 0 u22 u23 7 = 6 a21 a22 a23 7
4 5 4 5 4 5
l31 l23 l33 0 0 u33 a31 a23 a33

planteamos el siguiente sistema de ecuaciones


a)
l11 u11 = a11
l11 u12 = a12
l11 u13 = a13
b)
l21 u11 = a21
l21 u12 + l22 u22 = a22
l21 u13 + l22 u23 = a23
y
l31 u11 = a31
l31 u12 + l32 u22 = a32
l31 u13 + l32 u23 + l33 u33 = a33
un sistema de nueve ecuaciones con doce incognitas.
El método de Doolitle plantea que los elementos de la diagonal proincipal de la
matriz L sean unos. Por tanto l11 = l22 = l33 = 1 con estos valores se resuelven las
ecuaciones directamente.
3.2. MÉTODOS DE FACTORIZACIÓN 69

Ejemplo 3.11 Dado el sistema

70x1 + x2 = 636

60x1 x2 + x3 = 518
40x1 x3 = 307

solucionarlo utilizando el método de factolrización de Doolitle.

Solución Escribiendo el sistema en forma matricial se obtiene


2 3 2 3 2 3
70 1 0 x 636
6 7 6 1 7 6 7
6 7 6 7 6 7
6 60 1 1 7 6 x2 7 = 6 518 7
4 5 4 5 4 5
40 0 1 x3 307

La matriz U es:
2 3
70 1 0
6 7
6 7
U =6 0 13=7 1 7
4 5
0 0 17=13

y la matriz L 2 3
6 1 0 0 7
6 7
L = 6 6=7 1 0 7
4 5
4=7 4=13 1

El vector c es 2 3
636
6 7
6 7
c=6 190=7 7
4 5
625=13
El vector solución para el sistema de ecuaciones es:
2 3
1461=170
6 7
6 7
x = 6 585=17 7
4 5
625=17
70 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Algoritmo 3.12 Método de Doolitle


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE DOOLITTLE ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
matriz=input (’Ingrese la matriz aumentada del sistema, por ejemplo: [5 -4 2 20;2
-3 4 19;1 1 3 10]nn’);
tam=size(matriz); %sacar el tamaño de la matriz para determinar:
%A(matriz de coe…cientes) y b(vector de terminos independientes)
n=tam(1); %saca el numero de …las de la matriz(tamaño de A)
for i=1:n
b(i)=matriz(i,n+1); %determinar "b"
for j=1:n
A(i,j)=matriz(i,j); %determinar .A "
end
end
b1=b’; % "b.es un vector columna
L=eye(n); %inicializa la "L"de doolittle(le da el tamaño de A),y evita crear sus unos
3.2. MÉTODOS DE FACTORIZACIÓN 71

y ceros
for k=1:n-1 %factorizacion de doolittle””””””””””””””’
for i=k+1:n %”””””””””””””””””””””””””””””””””’
L(i,k)=A(i,k)/A(k,k); %(se determina la "L")””””””””””” ”””””’
for j=1:n %””””””””””””””””””””””””””””””””””
A(i,j)=A(i,j)-A(k,j)*L(i,k); %(se determina la Ü"(A se transforma en U))
end %””””””””””””””””””””””””””””””””””’
end %””””””””””””””””””””””””””””””””””’
end %””””””””””””””””””””””””””””””””””’
U=A; %cambio de variable
c=b1; %se inicializa el vector ç", que tiene el mismo tamaño de "b"(se determina
c(1))
for i=2:n %procedimiento para hallar ç"(progresivamente)
z=0; %”””””””””””””””””””””””””””””””””””””
for j=1:n-1 %””””L*c=b””””””””””””””””””””””””””””’
if i~=j & i>j %”””””””””””””””””””””””””””””””””””””
z=z+L(i,j)*c(j); %”””””””””””””””””””””””””””””””””””””
end %”””””””””””””””””””””””””””””””””””””
end %”””””””””””””””””””””””””””””””””””””
c(i)=b1(i)-z; %”””””””””””””””””””””””””””””””””””””
end %”””””””””””””””””””””””””””””””””””””
x=c; %se inicializa el vector "x", que tiene el mismo tamaño de ç"
x(n)=c(n)/U(n,n); %se determina x(n)(ultima solucion del sistema)
for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente)
z=0; %””””””””””””””””””””””’
for j=n:-1:2 %”””U*x=c”””””””””””””””””
if i~=j & i<j %””””””””””””””””””””””’
z=z+U(i,j)*x(j); %””””””””””””””””””””””’
72 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

end %””””””””””””””””””””””’

end %””””””””””””””””””””””’

x(i)=(c(i)-z)/U(i,i); %””””””””””””””””””””””’

end %””””””””””””””””””””””’

L %muestra la matriz triangular inferior de doolittle

U %muestra ”””””””””””superior ””””””

LU=L*U %muestra la factorizacion de doolittle

x %vector solucion del sistema

clear all %elimina las variables del espacio de trabajo(evita que el programa se cargue
de basura)

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
3.2. MÉTODOS DE FACTORIZACIÓN 73
74 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2.4. Método de Crout

Igual que el método anterior solo que en la matriz U los elementos de la diagonal
principal son unos. Así u11 = u22 = u33 = 1:

Ejemplo 3.13 Dado el sistema

70x1 + x2 = 636
60x1 x2 + x3 = 518

40x1 x3 = 307

solucionarlo utilizando el método de factorización de Crout.

Solución Escribiendo el sistema en forma matricial se obtiene


2 3 2 3 2 3
6 70 1 0 7 6 x1 7 6 636 7
6 7 6 7 6 7
6 60 1 1 7 6 x2 7 = 6 518 7
4 5 4 5 4 5
40 0 1 x3 307

La matriz L corresponde
2 3
6 70 0 0 7
6 7
L = 6 60 13=7 0 7
4 5
40 4=7 17=13

y la matríz U es -
2 3
1 1=70 0
6 7
6 7
U =6 0 1 7=13 7
4 5
0 0 1

el vector desconocido c es 2 3
318=35
6 7
6 7
c = 6 190=13 7
4 5
625=17
3.2. MÉTODOS DE FACTORIZACIÓN 75

y la solución viene dada por


2 3
1461=170
6 7
6 7
c = 6 585=17 7
4 5
626=17

Algoritmo 3.14 Método de Crout


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE CROUT ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
matriz=input (’Ingrese la matriz aumentada del sistema, por ejemplo: [5 -4 2 20;2
-3 4 19;1 1 3 10]nn’);
tam=size(matriz); %sacar el tamaño de la matriz para determinar
%A(matriz de coe…cientes)y b(vector de terminos independientes)
n=tam(1); %saca el numero de …las de la matriz
for i=1:n
b(i)=matriz(i,n+1); %determinar "b"
for j=1:n
A(i,j)=matriz(i,j); %determinar .A "
76 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

end
end
b1=b’; % "b.es un vector columna
U=eye(n); %inicializa la Ü"de crout(le da el tamaño de A),y evita crear sus unos y
ceros
for k=1:n-1 %factorizacion de crout””””””””””’
for j=k+1:n %”””””””””””””””””””””’
U(k,j)=A(k,j)/A(k,k); %(se determina la Ü")”””””””””””
for i=1:n %”””””””””””””””””””””’
A(i,j)=A(i,j)-A(i,k)*U(k,j); %(se determina la "L"(A se transforma en L))
end %”””””””””””””””””””””’
end %”””””””””””””””””””””’
end %”””””””””””””””””””””’
L=A; %cambio de variable
c=b1; %se inicializa el vector ç", que tiene el mismo tamaño de "b"
c(1)=b1(1)/L(1,1); %se determina el primer elemento de c
for i=2:n %procedimiento para hallar ç"(progresivamente)
s=0; %”””””””””””””””””””””””
for j=1:n-1 %”””””””””””””””””””””””
if i~=j & i>j %”””””””””””””””””””””””
s=s+L(i,j)*c(j); %”””””””””””””””””””””””
end %”””””””””””””””””””””””
end %”””””””””””””””””””””””
c(i)=(b1(i)-s)/L(i,i); %”””””””””””””””””””””””
end %”””””””””””””””””””””””
x=c; %se inicializa el vector "x", que tiene el mismo tamaño de ç"
for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente)
s=0; %””””””””””””””””””””””’
3.2. MÉTODOS DE FACTORIZACIÓN 77

for j=n:-1:2 %””””””””””””””””””””””’

if i~=j & i<j %””””””””””””””””””””””’

s=s+U(i,j)*x(j); %””””””””””””””””””””””’

end %””””””””””””””””””””””’

end %””””””””””””””””””””””’

x(i)=c(i)-s; %””””””””””””””””””””””’

end %””””””””””””””””””””””’

L %muestra la matriz triangular inferior de crout

U %muestra ”””””””””””superior ””””

LU=L*U %muestra la factorizacion de crout

x %vector solucion del sistema

clear all %elimina las variables del espacio de trabajo(evita que el programa se cargue
de basura)

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
78 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.3. MÉTODOS ITERATIVOS 79

3.3. Métodos iterativos

Métodos empleados para solucionar sistemas de ecuaciones lineales muy grandes


(n > 50); así como también sistemas dispersos aquellos que tienen gran cantidad de
ceros, y tambien en aquellos sistemas donde la matriz A del sitema es mal condi-
cionada.

De…nición 3.15 (Condición de una matriz) Para cada norma submultiplicativa


k:k ; el valor de
1
K(A) = kAk A

se llama número de condición de la matriz (no singular) A con respecto a la norma


k:k :

De la de…nición anterior si K(A) u 1 decimos que la matriz esta bien condicionada


y si K(A) >> 1 decimos que esta mal condicionada

3.3.1. Método de Jacobi

Considerando el sistema de ecuaciones lineales Ax = b con A 2 Rn n


, b 2 Rn si
descomponemos A en las siguientes matrices

A=L+D+R

donde L es una matriz triangular inferior, D es la matriz diagonal formada por los
elementos de A y R es una matriz triangular superior. Entonces

(L + D + R)x = b

Dx = b (L + R)x S{ dii 6= 0

1
x=D (b (L + R)x)

x = D 1b D 1 (L + R)x si D 1
existe
80 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

entonces a partir de un vector inicial x0 2 Rn , se tiene la siguiente iteración de


punto …jo

xk+1 = D 1 b D 1 (L + R)xk k = 0; 1; :::; n

escribiendo en componentes se tiene que

1 X
n
xk+1
i = (bi aij xkj i = 1; :::; n k = 0; 1; :::
aii j=1i6=j

El proceso converge cuando xk xk+1 < ":

Ejemplo 3.16 Encontrar la solución del siguiente sistema de ecuaciones lineales


utilizando el método de Jacobi tomando como vector incial x0 = (0; 0; 0) y con un
2
error de 10

2x1 + x2 + x3 =4

x1 + 3x2 + x3 = 5

x1 + 2x2 4x3 =6

Solución La formula iterativa corresponde a

xk+1
1 = 21 (4 xk2 xk3 )

xk+1
2 = 13 ( 5 + xk1 xk3 )

xk+1
3 = 1
4
(6 xk1 2xk2 )
3.3. MÉTODOS ITERATIVOS 81

los cálculos se pueden apreciar en la siguiente tabla

i x1 x2 x3 Error Solución
0 0 0 0
1 2 -1,66666667 -1,5 3,00462606
2 3,58333333 -0,5 -1,83333333 1,99478487
3 3,16666667 0,13888889 -0,85416667 1,24119196
4 2,35763889 -0,32638889 -0,63888889 0,95778592
5 2,48263889 -0,66782407 -1,07378472 0,56686627
6 2,8708044 -0,48119213 -1,21325231 0,45271973
7 2,84722222 -0,30531443 -1,02289497 0,26024028
8 2,6641047 -0,3766276 -0,94085166 0,21295234
9 2,65873963 -0,46501455 -1,02228763 0,12030317
10 2,74365109 -0,43965758 -1,06782237 0,09963104
11 2,75373997 -0,39617552 -1,03391602 0,05605458
12 2,71504577 -0,40411467 -1,00965276 0,04635706
13 2,70688372 -0,42510049 -1,02329589 0,02632791
14 2,72419819 -0,42327346 -1,03582932 0,02145264
15 2,72955139 -0,41332416 -1,03058718 0,01245493
16 2,72195567 -0,41328714 -1,02427423 0,00987672 Solución

Algoritmo 3.17 Método de jacobi


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE JACOBI ’);
82 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
r=input(’Ingrese el numero de ecuaciones: ’);
A=input(’Ingrese la matriz A: ’);
b=input(’Ingrese la matriz b: ’);
X0=zeros(1,r);
K=0; Norma=1;
fprintf(’K X(1) X(2) X(3) X(4) Normann’)
while Norma>0.0001
K=K+1;
fprintf(’%2d’,K)
for i=1:r
suma=0;
for j=1:r
if i ~=j
suma=suma+A(i,j)*X0(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf(’%10.4f’,X(i))
end
Norma=norm(X0-X);
fprintf(’%10.4fnn’,Norma)
X0=X;
if K>25
dis(’No se alcanzo la convergencia’)
break
end
end
3.3. MÉTODOS ITERATIVOS 83

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

end
84 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.3. MÉTODOS ITERATIVOS 85

3.3.2. Método de Gauss Seidell.

Considerando el sistema de ecuaciones lineales Ax = b con A 2 Rn n


, b 2 Rn si
descomponemos A en las siguientes matrices

A=L+D+R

donde L es una matriz triangular inferior, D es la matriz diagonal formada por los
elementos de A y R es una matriz triangular superior. Entonces

(L + D + R)x = b

(L + D) x = b Rx S{ dii 6= 0

1
x = (L + D) (b Rx)

1 1 1
x = (L + D) b (L + D) Rx si D existe
entonces a partir de un vector inicial x0 2 Rn , se tiene la siguiente iteración de
punto …jo
1 1
xk+1 = (L + D) b (L + D) Rxk k = 0; 1; :::; n

escribiendo en componentes se tiene que


1 X
i 1 X
n
xk+1
i = (bi aij xk+1
j aij xkj i = 1; :::; n k = 0; 1; :::
aii j=1 j=i+1

El proceso converge cuando xk xk+1 < ":

Ejemplo 3.18 Encontrar la solución del siguiente sistema de ecuaciones lineales


utilizando el método de Gauss - Seidell tomando como vector incial x0 = (0; 0; 0) y
2
con un error de 10
2x1 + x2 + x3 =4

x1 + 3x2 + x3 = 5

x1 + 2x2 4x3 =6
86 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Solución La formula iterativa corresponde a

xk+1
1 = 12 (4 xk2 xk3 )

xk+1
2 = 13 ( 5 + xk+1
1 xk3 )

xk+1
3 = 1
4
(6 xk+1
1 2xk+1
2 )

los cálculos se pueden apreciar en la siguiente tabla

i x1 x2 x3 Error Solución
0 0 0 0
1 2 -1 -1,5 2,6925824
2 3,25 -0,08333333 -0,72916667 1,73117353
3 2,40625 -0,62152778 -1,20920139 1,10995525
4 2,91536458 -0,29181134 -0,91706453 0,67324181
5 2,60443793 -0,49283251 -1,09530677 0,41091993
6 2,79406964 -0,37020786 -0,98658652 0,25063337
7 2,67839719 -0,44500543 -1,05290342 0,1528814
8 2,74895442 -0,39938072 -1,01245175 0,09325382
9 2,70591624 -0,42721067 -1,03712628 0,05688254
10 2,73216847 -0,41023508 -1,02207542 0,03469695
11 2,71615525 -0,42058977 -1,03125607 0,02116429
12 2,72592292 -0,41427367 -1,0256561 0,0129097
13 2,71996489 -0,41812634 -1,02907195 0,0078746 Solución

Algoritmo 3.19 Método de Gauss - Seidell


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
3.3. MÉTODOS ITERATIVOS 87

fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);


fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE GAUSS SEIDELL ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
r=input(’Ingrese el numero de ecuaciones: ’);
A=input(’Ingrese la matriz A: ’); b=input(’Ingrese la matriz b: ’);
X0=zeros(1,r);X=X0; K=0; Norma=1;
fprintf(’K X(1) X(2) X(3) X(4) Normann’)
while Norma>0.0001
K=K+1; fprintf(’%2d’,K)
for i=1:r
suma=0;
for j=1:r
if i ~=j
suma=suma+A(i,j)*X(j);
end
end
X(i)=(b(i)-suma)/A(i,i); fprintf(’%10.4f’,X(i))
end
Norma=norm(X0-X); fprintf(’%10.4fnn’,Norma)
X0=X;
if K>17
dis(’No se alcanzo la convergencia’)
break
end
end
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
88 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

end
3.3. MÉTODOS ITERATIVOS 89
90 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.3.3. Teoremas de Convergencias de métodos iterativos

Teorema 3.20 Un método iterativo de la forma

xk+1 = Cxk + t k 2 N0 x 0 2 Rn ; t 2 Rn …jos

converge si y s;olo si

(C) = max fj j ; valor propio de Cg

Teorema 3.21 Si A es estrictamente diagonal dominante o diagonalmente irre-


ducible entonces el método de Gaus- Seidell y Jacobi convergen.
Capítulo 4

Sistemas de ecuaciones no lineales.

En este capítulo se estudia las tecnicas que permitan resolver sistemas de ecuaciones
no lineales, f (x) = 0; se utilizaran sistemas de dos ecuaciones no lineales con dos
incognitas, lo cual no implica la perdida de generalidad y a cambio permite realizar
los cálculos de manera más agil. entre los métodos a estudiar tenemos el método
de punto …jo multivariable y el método de Newton Raphson.[7]

4.1. Método de punto …jo multivariable.

Método utilizado para resolver sistemas de ecuaciones no lineales. Se ilustra por


medio del siguiente ejemplo.

Resolver.

f1 (x; y) = x2 10x + y 2 + 8 = 0
(4.1)
f2 (x; y) = xy 2 + x 10y + 8 = 0

Despejando x del termino 10x de la primera función, y despejando y de la segunda


función del termino 10y, obtenemos

91
92 CAPÍTULO 4. SISTEMAS DE ECUACIONES NO LINEALES.

2
k+1 k k
xk + (y k )2 + 8
x = g1 (x ; y ) =
10
2 (4.2)
k+1 k+1 k
xk+1 y k + xk+1 + 8
y = g2 (x ;y ) =
10

Con un valor inicial de x0 = 0 y y0 = 0, y utilizando la anterior fórmula iterativa,


el siguiente guión en matlab permite desarrolllar el sistema.

Algoritmo 4.1 PUNTO FIJO MULTIVARIADO


clc;
fprintf(’PUNTO FIJO MULTIVARIADOnn’);
disp(’— — — — — — — — — — — — — — — — — — ’);
disp(’f1(x,y)=x^2-10x+y^2+8=0’);
disp(’f2(x,y)=xy^2+x-10y+8=0’);
disp(’— — — — — — — — — — — — — — — — — — ’);
x0=0;
y0=0;
fprintf(’k x(k) y(k) Dist nn’)
fprintf(’%2d %10.5f %10.5fnn’, 0, x0, y0)
for k=1:11
x1=(x0^2+y0^2+8)/10;
y1=(x1*y0^2+x1+8)/10;
Dist=((x1-x0)^2+(y1-y0)^2)^0.5;
fprintf(’%2d %10.5f %10.5f %10.5fnn’,k,x0,y0, Dist)
x0=x1;
y0=y1;
end
4.2. MÉTODO DE NEWTON RAPHSON. 93

4.2. Método de Newton Raphson.

Método utilizado para resolver sistemas de ecuaciones no lineales. Se ilustrara con


el siguiente ejemplo. para un sistema de dos ecuaciones con dos incognitas,

f1 (x; y) = 0
(4.3)
f2 (x; y) = 0

Una vez expandido en series de Taylor, alrededor de los puntos (xk ; y k ); se llega al
siguiente sistema,

@f1 k+1 @f1 k+1


(x xk ) + (y yk ) = f1 (xk ; y k )
@x @y
(4.4)
@f2 k+1 @f2 k+1
(x xk ) + (y yk ) = f2 (xk ; y k )
@x @y

Sea
xk+1 xk = h
(4.5)
k+1 k
y y =j

Sustituyendo [4.5]en[4.4]se tiene

@f1 @f1
h+ j= f1
@x @y
(4.6)
@f2 @f2
h+ j= f2
@x @y

El sistema [4.6] en forma matricial se expresa como,


2 3 2 3 2 3
@f1 @f1
h f1
6 @x @y 7 6 7 6 7
4 @f @f2 5 4 5 = 4 5 (4.7)
2
@x @y j f2

Resolviendo [4.7] el sistema hallamos los valores de h y j, que reemplazandolos en


94 CAPÍTULO 4. SISTEMAS DE ECUACIONES NO LINEALES.

[4.5] se obtiene la siguiente formula iterativa,

xk+1 = xk + h
(4.8)
k+1 k
y =y +j

Para resolver el sistema [4.2] en Matlab se tiene el siguiente guión.

Algoritmo 4.2 Metodo de Newton para resolver sistemas de ecuaciones no lineales


x0=0;
y0=0;
fprintf(’k x(k) y(k) jx(k+1)-x(k)jnn’)
fprintf(’%2d %10.5f %10.5fnn’, 0, x0, y0)
for k=1:4;
%Derivadas parciales
df1x=2*x0-10;
df1y=2*y0;
df2x=y0^2+1;
df2y=2*x0*y0-10;

%Sistema a resolver
f1=x0^2-10*x0+y0^2+8;
f2=x0*y0^2+x0-10*y0+8;
%Matriz Jacobiana
A=[df1x df1y; df2x df2y];
b=[-f1;-f2];

%Resolucion del Sistema


hj=inv(A)*b;
%Calculo de x1 y y1
x1=x0+hj(1);
4.2. MÉTODO DE NEWTON RAPHSON. 95

y1=y0+hj(2);

%Evaluacion de la distancia entre dos iteraciones


Dist=((x1-x0)^2+(y1-y0)^2)^0.5;

fprintf(’%2d %10.5f %10.5f %10.5fnn’, k, x1, y1, Dist)

%Actualizacion de los datos


x0=x1; y0=y1;
end
96 CAPÍTULO 4. SISTEMAS DE ECUACIONES NO LINEALES.
Capítulo 5

Aproximación funcional e
interpolación

El problema de interpolación consiste en encontrar el valor de la función f (x), de


la cuál sólo se conocen algunos puntos, para un valor de x que se encuentre entre
dos valores consecutivos conocidos. [3]: Se estudiará la aproximación de funciones
disponibles en forma discreta ( puntos tabulados) con funciones analíticas sencillas o
bien de aproximación de funciones cuya complejidad naturaleza exija su reemplazo
por funciones mas simples. para lograr esto se parte de una tabla de valores dados, y
utilizando la familia de polinomios, aproximaremos una sección de la tabla por una
linea recta, una parábola, etc la elección del grado se hará analizando el fenomeno
que originó los valores y, el tipo de aproximación, con base en la exactitud de éstos,
[7]:

Ejemplo 5.1 Las tablas [5.1] y [5.2]presentan la temperatura de ebullición de la


acetona (C3 H6 O) a diferentes presiones.

P untos 0 1 2 3 4 5 6 (5.1)
T (o C) 56;5 78;6 113 144;5 181 205 214;5
P (atm) 1 2 5 10 20 30 40

97
98 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

P untos 0 1 2 3 (5.2)
T (o C) 56;5 113 181 214;5
P (atm) 1 5 20 40
Supongase que sólo se dispusiera de la segunda tabla y se desea calcular la temper-
atura de ebullición de la acetona a 2 atm de presión.

5.1. Aproximación polinomial simple e interpolación

La aproximación es uno de los procedimientos más útiles en el procesamiento de


información el cual consiste en construir curvas con base en unos cuantos puntos de
referencia:Las curvas obtenidas representan y aproximan la información puntual y
con las debidas precauciones, se usan frecuentemente en lugar de los datos originales.
Si la curva que se construye pasa por todos los puntos de la tabla, se denomina una
interpolación. Si la curva no tiene que pasar por los puntos pero satisface un cierto
criterio de cercanía, se denomina una aproximación a los datos de la tabla.

Ejemplo 5.2 A continuación se presentan las presiones de vapor del cloruro de


magnesio.
P untos 0 1 2 3 4 5 6 (5.3)

T (o C) 930 988 1050 1068 1142 1316 1223

P (atm) 10 20 40 60 100 200 400

Supongamos que contamos solo con los puntos 0; 2; 4; 6 de la tabla [5.3] y se desea
calcular la presión de vapor a 950 C.

Solución ( Para dos puntos experimentales) Una forma de resolver este proble-
ma sería sustituir los puntos (0) y (2) en la ecuación de la línea recta P (T ) = a0 +a1 T
donde se desconoce a0 y a1 : Se plantea entonces la solución de un sistema de dos
ecuaciones lineales con dos incognitas el cual resulta de sustituir los puntos P0 y P2
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 99

obtetiendose,
10 = P (930) = a0 + a1 930

20 = P (988) = a0 + a1 988
Las soluciones para el polinomio de la forma P (T ) = a0 + a1 T son: a1 = 0;1724 y
a0 = 150;3448:
Esta ecuación puede emplearse para aproximar la presión cuando la temperatura es
conocida.
Solución ( Para tres puntos experimentales) Una forma de resolver este prob-
lema sería sustituir los puntos (0), (2) y (4); ( No importa cuales puntos utilice ) en
la ecuación del polinomio de grado dos P (T ) = a0 + a1 T + a2 T 2 donde se desconoce
a0 , a1 y a2 . Se plantea entonces la solución de un sistema de tres ecuaciones lineales
con tres incognitas el cual resulta de sustituir los puntos P0 ,P2 y P4 obtetiendose,

10 = P (930) = a0 + a1 930 + a2 (930)2

20 = P (988) = a0 + a1 988 + a2 (988)2

100 = P (1142) = a0 + a1 1142 + a2 (1142)2

Las soluciones para el polinomio de la forma P (T ) = a0 + a1 T + a2 T 2 son: a2 =


0;0016; a1 = 2;9676 y a0 = 1;3539e + 003
Generalizando si se desea aproximar una función con un polinomio de grado n,se
necseitan n + 1 puntos, que sustituidos en la ecuación polinomial de grado n :

Pn (x) = a0 + a1 x + a2 x2 + ::: + an xn

genera un sistema de n + 1 ecuaciones lineales con incognitas a0 a1 ; :::; an : Una vez


resuelto el sistema se sustituten los valores en el polinomio.

Algoritmo 5.3 disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);


cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
100 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’APROXIMACION POLINOMIAL SIMPLE ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’BIENVENIDO’);
puntos=input(’PORFAVOR, INGRESE EL NUMERO DE PUNTOS CON LOS
QUE DESEA TRABAJAR ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
if puntos==0
disp(’Lo sentimos, el metodo requiere la presencia de al menos dos puntos’)

end
if puntos==1
disp(’Lo sentimos, el metodo requiere la presencia de al menos dos puntos’)

end
%PARA DOS PUNTOS
if puntos==2
a12=input(’PORFAVOR, INGRESE EL PRIMER TERMINO (x1) ’);
a22=input(’PORFAVOR, INGRESE EL SEGUNDO TERMINO (x2) ’);
A=[1 a12 ; 1 a22];
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 101

b1=input(’PORFAVOR, INGRESE f(x1) ’);


b2=input(’PORFAVER, INGRESE f(x2) ’);
B=[b1;b2];
Amp=[A,B]
B(2,1) = B(2,1)- (((A(2,1))/(A(1,1))))*(B(1,1));
A(2,:) = A(2,:)- (((A(2,1))/(A(1,1))))*(A(1,:));
Amp=[A,B]
disp(’......................................................’);
disp(’Las soluciones para el polinomio de la forma P(x)= a0+ a1(x) son: ’);
a1=(B(2,1))/(A(2,2))
a0=(((B(1,1))-((A(1,2))*a1))/(A(1,1)))
hallarp=input(’¿Desea calcular algun P(xi) particular? (Marque 1=SI o 0=NO) ’);
if hallarp==1
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
xi=input(’Porfavor, ingrese el punto a evaluar (xi): ’);
P(xi)=a0+(a1*(xi));
P(xi)
end
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
%PARA TRES PUNTOS
if puntos==3
a12=input(’PORFAVOR, INGRESE EL PRIMER TERMINO (x1) ’);
a22=input(’PORFAVOR, INGRESE EL SEGUNDO TERMINO (x2) ’);
a32=input(’PORFAVOR, INGRESE EL TERCER TERMINO (x3) ’);

A=[1 a12 (a12)^2; 1 a22 (a22)^2; 1 a32 (a32)^2];


102 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

b1=input(’PORFAVOR, INGRESE f(x1) ’);


b2=input(’PORFAVOR, INGRESE f(x2) ’);
b3=input(’PORFAVOR, INGRESE f(x3) ’);
B=[b1;b2;b3];
Amp=[A,B]
B(3,1) = B(3,1)-(((A(3,1))/(A(1,1))))*(B(1,1));
A(3,:) = A(3,:)-(((A(3,1))/(A(1,1))))*(A(1,:));
B(2,1) = B(2,1)-(((A(2,1))/(A(1,1))))*(B(1,1));
A(2,:) = A(2,:)-(((A(2,1))/(A(1,1))))*(A(1,:));
Amp=[A,B]
disp(’......................................................’);

B(3,1) = B(3,1)-((A(3,2))/(A(2,2)))*B(2,:);
A(3,:) = A(3,:)-((A(3,2))/(A(2,2)))*A(2,:);
Amp=[A,B]
disp(’......................................................’);
disp(’Las soluciones para el polinomio de la forma P(x)= a0+ a1(x)+ a2(x^2) son:
’);
a2=(B(3,1))/(A(3,3))
a1=(((B(2,1))-((A(2,3))*a2))/(A(2,2)))
a0=((B(1,1)-((A(1,3))*a2)-((A(1,2))*a1))/(A(1,1)))
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
hallarp=input(’¿Desea calcular algun P(xi) particular? (Marque 1=SI o 0=NO) ’);
if hallarp==1
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
xi=input(’Porfavor, ingrese el punto a evaluar (xi): ’);
P(xi)=a0+(a1*(xi))+(a2*(xi^2));
P(xi)
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 103

end
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
%PARA CUATRO PUNTOS
if puntos==4
a12=input(’PORFAVOR, INGRESE EL PRIMER TERMINO (x1) ’);
a22=input(’PORFAVOR, INGRESE EL SEGUNDO TERMINO (x2) ’);
a32=input(’PORFAVOR, INGRESE EL TERCER TERMINO (x3) ’);
a42=input(’PORFAVOR, INGRESE EL CUARTO TERMINO (x4) ’);

A=[1 a12 (a12)^2 (a12)^3; 1 a22 (a22)^2 (a22)^3; 1 a32 (a32)^2 (a32)^3; 1 a42
(a42)^2 (a42)^3];
b1=input(’PORFAVOR, INGRESE f(x1) ’);
b2=input(’PORFAVOR, INGRESE f(x2) ’);
b3=input(’PORFAVOR, INGRESE f(x3) ’);
b4=input(’PORFAVOR, INGRESE f(x4) ’);

B=[b1;b2;b3;b4];

Amp=[A,B]
B(4,1) = B(4,1)-(((A(4,1))/(A(1,1))))*(B(1,1));
A(4,:) = A(4,:)-(((A(4,1))/(A(1,1))))*(A(1,:));
B(3,1) = B(3,1)-(((A(3,1))/(A(1,1))))*(B(1,1));
A(3,:) = A(3,:)-(((A(3,1))/(A(1,1))))*(A(1,:));
B(2,:) = B(2,1)-(((A(2,1))/(A(1,1))))*(B(1,1));
A(2,:) = A(2,:)-(((A(2,1))/(A(1,1))))*(A(1,:));
Amp=[A,B]
104 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

disp(’......................................................’);

B(4,1) = B(4,1)-(((A(4,2))/(A(3,2))))*B(3,1);
A(4,:) = A(4,:)-(((A(4,2))/(A(3,2))))*A(3,:);
B(3,1) = B(3,1)-(((A(3,2))/(A(2,2))))*B(2,1);
A(3,:) = A(3,:)-(((A(3,2))/(A(2,2))))*A(2,:);
Amp=[A,B]
disp(’......................................................’);
B(4,1) = B(4,1)-((A(4,3))/(A(3,3)))*B(3,1);
A(4,:) = A(4,:)-((A(4,3))/(A(3,3)))*A(3,:);
Amp=[A,B]
disp(’......................................................’);

disp(’Las soluciones del polinomio de la forma P(x)= a0+ a1(x)+ a2(x^2)+ a3(x^3)
son: ’);
a3=(B(4,1))/(A(4,4))
a2=((B(3,1))-((A(3,4))*a3))/(A(3,3))
a1=((B(2,1))-((A(2,4))*a3)-((A(2,3))*a2))/(A(2,2))
a0=((B(1,1)-((A(1,4))*a3)-((A(1,3))*a2))-((A(1,2))*a1))/(A(1,1))
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
hallarp=input(’¿Desea calcular algun P(xi) particular? (Marque 1=SI o 0=NO) ’);
if hallarp==1
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
xi=input(’Porfavor, ingrese el punto a evaluar (xi): ’);
P(xi)=a0+(a1*(xi))+(a2*(xi^2))+((a3*(xi^3)));
P(xi)
end
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 105

disp(’GRACIAS POR UTILIZAR LA APLICACION’);


disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
%PARA CINCO PUNTOS
if puntos==5
a12=input(’PORFAVOR, INGRESE EL PRIMER TERMINO (x1) ’);
a22=input(’PORFAVOR, INGRESE EL SEGUNDO TERMINO (x2) ’);
a32=input(’PORFAVOR, INGRESE EL TERCER TERMINO (x3) ’);
a42=input(’PORFAVOR, INGRESE EL CUARTO TERMINO (x4) ’);
a52=input(’PORFAVOR, INGRESE EL QUINTO TERMINO (x5) ’);
A=[1 a12 (a12)^2 (a12)^3 (a12)^4; 1 a22 (a22)^2 (a22)^3 (a22)^4; 1 a32 (a32)^2
(a32)^3 (a32)^4; 1 a42 (a42)^2 (a42)^3 (a42)^4; 1 a52 (a52)^2 (a52)^3 (a52)^4];
b1=input(’PORFAVOR, INGRESE f(x1) ’);
b2=input(’PORFAVOR, INGRESE f(x2) ’);
b3=input(’PORFAVOR, INGRESE f(x3) ’);
b4=input(’PORFAVOR, INGRESE f(x4) ’);
b5=input(’PORFAVOR, INGRESE f(x5) ’);

B=[b1;b2;b3;b4;b5];

Amp=[A,B]
B(5,1) = B(5,1)-(((A(5,1))/(A(1,1))))*(B(1,1));
A(5,:) = A(5,:)-(((A(5,1))/(A(1,1))))*(A(1,:));
B(4,1) = B(4,1)-(((A(4,1))/(A(1,1))))*(B(1,1));
A(4,:) = A(4,:)-(((A(4,1))/(A(1,1))))*(A(1,:));
B(3,1) = B(3,1)-(((A(3,1))/(A(1,1))))*(B(1,1));
A(3,:) = A(3,:)-(((A(3,1))/(A(1,1))))*(A(1,:));
B(2,:) = B(2,1)-(((A(2,1))/(A(1,1))))*(B(1,1));
106 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

A(2,:) = A(2,:)-(((A(2,1))/(A(1,1))))*(A(1,:));
Amp=[A,B]
disp(’......................................................’);
B(5,1) = B(5,1)-(((A(5,2))/(A(4,2))))*B(4,1);
A(5,:) = A(5,:)-(((A(5,2))/(A(4,2))))*A(4,:);
B(4,1) = B(4,1)-(((A(4,2))/(A(3,2))))*B(3,1);
A(4,:) = A(4,:)-(((A(4,2))/(A(3,2))))*A(3,:);
B(3,1) = B(3,1)-(((A(3,2))/(A(2,2))))*B(2,1);
A(3,:) = A(3,:)-(((A(3,2))/(A(2,2))))*A(2,:);
Amp=[A,B]
disp(’......................................................’);
B(5,1) = B(5,1)-((A(5,3))/(A(4,3)))*B(4,1);
A(5,:) = A(5,:)-((A(5,3))/(A(4,3)))*A(4,:);
B(4,1) = B(4,1)-((A(4,3))/(A(3,3)))*B(3,1);
A(4,:) = A(4,:)-((A(4,3))/(A(3,3)))*A(3,:);
Amp=[A,B]
disp(’......................................................’);
B(5,1) = B(5,1)-((A(5,4))/(A(4,4)))*B(4,1);
A(5,:) = A(5,:)-((A(5,4))/(A(4,4)))*A(4,:);
Amp=[A,B]
disp(’......................................................’);
disp(’Las soluciones del polinomio de la forma P(x)= a0+ a1(x)+ a2(x^2)+ a3(x^3)+
a4(x^4) son: ’);
a4=(B(5,1))/(A(5,5))
a3=((B(4,1))-((A(4,5))*a4))/(A(4,4))
a2=((B(3,1))-((A(3,5))*a4)-((A(3,4))*a3))/(A(3,3))
a1=((B(2,1))-((A(2,5))*a4)-((A(2,4))*a3)-((A(2,3))*a2))/(A(2,2))
a0=((B(1,1))-((A(1,5))*a4)-((A(1,4))*a3)-((A(1,3))*a2)-((A(1,2))*a1))/(A(1,1))
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 107

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);

hallarp=input(’¿Desea calcular algun P(xi) particular? (Marque 1=SI o 0=NO) ’);

if hallarp==1

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);

xi=input(’Porfavor, ingrese el punto a evaluar (xi): ’);

P(xi)=a0+(a1*(xi))+(a2*(xi^2))+((a3*(xi^3)))+(a4*(xi^4));

P(xi);

disp(’El polinomio evaluado en ’),xi

disp(’Entrega como resultado ’),P(xi)

end

end

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end

UTILIZANDO DOS PUNTOS


108 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 109

UTILIZANDO TRES PUNTOS


110 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
5.2. POLINOMIOS DE LAGRANGE 111

5.2. Polinomios de lagrange

Este método de aproximación polinomial no necesita resolver un sistema de ecua-


ciones lineales como en el caso anterior y los cálculos se realizan directamente. Se
parte de una tabla de datos.

De…nición 5.4 De…nición 5.5 Los polinomios de Lagrange Lk (x) ; k = 0; 1; :::; n


para n = 1 son dados por
Yn
(x xj )
Lk (x) =
j=0
(xk xj )
j6=k

para los puntos x0 ; x1 ; :::; xn : Si n = 0 entonces L0 (x) = 1:

Teorema 5.6 L0 ; L1 ; :::; Ln forman una base de Pn y el polinomio de interpolación


de Lagrange se construye a partir de Lk de la siguiente manera.
X
n
P (x) = f (xk )Lk (x)
k=0

Nota: La formulación en polinomios de Lagrange es inmanejable dado que


agregar o quitar un elemento de la tabla de datos implica construir de nuevo los
polinomios básicos.

Ejemplo 5.7 Construir el polinomio de Lagrange de grado tres para la tabla [5.3]
con los puntos (0) ; (1) (2) ; (3) :

Solución: El polinomio tiene la forma

p(x) = L0 (x)f (x0 ) + L1 (x)f (x1 ) + L2 (x)f (x2 ) + L3 (x)f (x3 )

donde
(x x1 ) (x x2 ) (x x3 ) (x 988) (x 1050) (x 1088)
L0 (x) = = ;
(x0 x1 ) (x0 x2 ) (x0 x3 ) (930 988) (930 1050) (930 1088)

: así
1
L0 (x) (x 988) (x 1050) (x 1088)
1099 680
112 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

(x x0 ) (x x2 ) (x x3 ) (x 930) (x 1050) (x 1088)


L1 (x) = = ;
(x1 x0 ) (x1 x2 ) (x1 x3 ) (988 930) (988 1050) (988 1088)

1
L1 (x) = (x 930) (x 1050) (x 1088)
359 600
(x x0 ) (x x1 ) (x x3 ) (x 930) (x 988) (x 1088)
L2 (x) = = ;
(x2 x0 ) (x2 x1 ) (x2 x3 ) (1050 930) (1050 988) (1050 1088)

:
1
L2 (x) = (x 930) (x 988) (x 1088)
282 720
y
(x x0 ) (x x1 ) (x x2 ) (x 930) (x 988) (x 1050)
L3 (x) = = ;
(x3 x0 ) (x3 x1 ) (x3 x2 ) (1088 930) (1088 988) (1088 1050)
:
1
L3 (x) = (x 930) (x 988) (x 1050)
600 400
El polinomio de Lagrange es
367048647864051 243423845357663 2 217456600519417 261117814077185
p(x) = x3 x+ x
73786976294838206464 18014398509481984 17592186044416 68719476736
Algoritmo 5.8 function [C,L]=lagrange(X,Y)disp(’— — — — — — — — — — — — —
— — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
5.2. POLINOMIOS DE LAGRANGE 113

fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’POLINOMIO DE LAGRANGE ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’BIENVENIDO’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
fprintf(’PORFAVOR, INGRESE LOS VALORES DE ENTRADA (xi): nn’);
X=input(’Hagalo en forma de vectorial (Ej.: [-1 1 2]):nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
fprintf(’PORFAVOR, INGRESE LOS VALORES DE SALIDA (f(xi)): nn’);
Y=input(’Hagalo en forma de vectorial (Ej.: [1 4 2]):nn ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
%coe…cientes de Lagrange
w=length(X);
n=w-1;
L=zeros(w,w);
% Formación de los polinomios coe…cientes de Lagrange
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
%Calculo de los coe…cientes del polinomio interpolador de Lagrange
C=Y*L;
114 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

%syms x

fprintf(’EL POLINOMIO DE LAGRANGE ES:nn’);

pretty(poly2sym(C))

x=-5:0.001:5;

p=polyval(C,x);

plot(x,p,’-’,x,p,’*’);

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
5.2. POLINOMIOS DE LAGRANGE 115
116 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

cuya grá…ca correspondiente es

5.3. Polinomios de Newton.

Dada una tabla tabular

P untos 0 1 2 ::: n (5.4)

x x0 x1 x2 ::: xn

f (x) f (x0 ) f (x1 ) f (x2 ) ::: f (x3 )


5.3. POLINOMIOS DE NEWTON. 117

se puede establecer un polinomio de grado n de la forma

Pn (x) = a0 + a1 (x x0 ) + a2 (x x0 )(x x1 ) + ::: + an (x x0 )(x x1 ):::(x xn 1 )

y que pasa por los puntos (0) ; (1) (2) ; :::; (n) los coe…cientes a0 ; a1 ; a2 ; :::; an están
dados por

a0 = f [x0 ]

a1 = f [x0 ; x1 ]

a2 = f [x0 ; x1 ; x2 ]

:
:
an = f [x0 ; x1 ; :::; xn]

donde f [x0 ] ; f [x0 ; x1 ] ; :::; f [x0 ; x1 ; :::; xn] : son diferencias divididas.

Corolario 5.9 Las diferencias divididas f [x0 ; x1 ; :::; xk ] se obtienen a partir de la


recursión

f [xi+1 ; :::; xk ] f [xi ; :::; xk 1 ]


f [xi ; :::; xk ] =
xk xi

para k = 0; 1; :::n donde f [xi ] = fi i = 0; 1; :::; n


118 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

Información Diferencias Divididas


x f (x) Primeras Segundas Terceras
x0 f [x0 ]
f [x1 ] f [x0 ]
f [x0 ; x1 ] = x1 x0
f [x1 ;x2 ] f [x0 ;x1 ]
x1 f [x1 ] f [x0 ; x1 ; x2 ] = x2 x0
f [x2 ] f [x1 ]
f [x1 ; x2 ] = x2 x1
f [x0 ; x1 ; x2 ; x3 ]
f [x2 ;x3 ] f [x1 ;x2 ]
x2 f [x2 ] f [x1 ; x2 ; x3 ] = x3 x1
f [x3 ] f [x2 ]
f [x2 ; x3 ] = x3 x2
f [x1 ; x2 ; x3 ; x4 ]
f [x3 ;x4 ] f [x2 ;x3 ]
x3 f [x3 ] f [x2 ; x3 ; x4 ] = x4 x2
f [x4 ] f [x3 ]
f [x3 ; x4 ] = x4 x3

x4 f [x4 ]
(Tabla general de diferencias divididas)

Ejemplo 5.10 Para los valores siguientes

P untos 0 1 2 3 4 (5.5)

e 40 60 80 100 120

p 0;63 1;36 2;18 3 3;93

donde e son los volts y p los kilowats en una curva de pérdida en el núcleo para un
motor eléctrico:

1. Elabore una tabla de diferencias divididas

2. Construya el polinomio de Newton en diferencias divididas con todos los datos

Solución
5.3. POLINOMIOS DE NEWTON. 119

1.

x f (x) Primeras Segundas Terceras Cuartas


40 0;63 = a0
0;0365 = a1
4
60 1;36 1;125 10 = a2
6
0;041 1;875 10 = a3
8
80 2;18 0 5;208 4 10 = a4
6
0;041 2;291 7 10
4
100 3 1;375 10
0;046 5
120 3;93
(Tabla Diferencias Divididas)

2. El polinomio tiene la forma

P4 (x) = a0 +a1 (x 40)+a2 (x 40)(x 60)+a3 (x 40)(x 60)(x 80)+a4 (x 40)(x 60)(x 80)(x

con los ai i = 0; 1; ::; 4 como se muestran en la tabla anterior.

Algoritmo 5.11 disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);


cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
120 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN

disp(’POLINOMIO DE NEWTON (METODO DE LAS DIFERENCIAS DIVIDI-


DAS) ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’BIENVENIDO’);
clear;
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
A=input(’PORFAVOR, INGRESE LOS DATOS EN UNA MATRIZ COMO PARE-
JAS ORDENADAS, ASI; [x0 f(x0); x1 f(x1); x2 f(x2); ...] nn ’);
S=size(A);
D=0;
f=0
for i=1:1:(S(1,1)-1)
if A(i,1)==A(i+1,1)
f=1
else
f=2
end
end
k=2;
if f==2
for i=1:1:S(1,1)-1
for j=1:1:(S(1,1)-i)
d=((A(j+1,k)-A(j,k))/(A(i+j,1)-A(j,1)))
A(j,k+1)=d
end
k=k+1;
end
fprintf(’P %.i= %.10f’,S(1,1),A(1,2))
5.3. POLINOMIOS DE NEWTON. 121

for h=3:1:S(1,1)+1

fprintf(’+ %.15f’,A(1,h))

i=h-2;

for j=1:1:i

fprintf(’(x-( %.5f))’,A(j,1))

end

end

disp(’GRACIAS POR UTILIZAR LA APLICACION’);

disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);

else

fprintf(’ERROR LA MATRIZ FUE MAL INGRESADA...INGRESE DE NUEVO


LOS DATOS COMO PAREJAS ORDENADAS’);

clear;

diferencias;

end

retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);

if retchoose==1

MENU

end

if retchoose==0

disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);

end
122 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
Capítulo 6

Integración Numérica

En cursos de cálculo diferencial e integral se estudia como obtener las derivadas de


una función f (x), y se puede observar que un buen número de casos, el problema en
matemáticas no tiene solución analítica: algunos ejemplos son:

Z Z Z
x2 sin x
e dx x
dx ecos x

En este capítu lo se estudian algunos métodos desarrollados en el análisis numérico


para integrar funciones de…nidas en forma tabular: ya sean obtenidas como resultado
de algun experimento o simplemente tabulando la función que se desea integrar.
Entre los métodos a estudiar están el método de la regla de los trapecios, Simpson
1/3 y Regla de Simpson 3/8.

6.1. Regla de los Trapecios

Corresponde ésta al caso en que la función f se aproxima en cada subintervalo


[xk ; xk+1 ] , k = 0; 1; :::; N 1, mediante el polinomio de interpolación lineal de

123
124 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA

Lagrange, pk (x) , usando los nodos xk y xk+1 .

Como el polinomio de interpolación de Lagrange es


x xk+1 x xk
pk (x) = f (xk ) + f (xk+1 )
xk xk+1 xk+1 xk
luego
Z xk+1 Z xk+1
f (x)dx = pk (x)
xk xk
Z xk+1
x xk+1 x xk
= f (xk ) + f (xk+1 ) dx
xk xk xk+1 xk+1 xk

f (xk ) + f (xk+1 )
= (xk+1 xk )
2

la cual equivale al ancho por la altura promedio.

Pero h = xk+1 xk , así que


Z xk+1
h
f (x)dx = [f (xk ) + f (xk+1 )]
xk 2

es decir " #
Z b X1
N
h
f (x)dx = f (a) + f (b) + 2 f (xk )
a 2 k=1

Si N > 1, la fórmula anterior se conoce como regla compuesta de los Trapecios.

En el caso N = 1, caso en el cual h = b a , dicha fórmula se reduce a


6.1. REGLA DE LOS TRAPECIOS 125

Z b
h
f (x)dx = [f (a) + f (b)]
a 2

fórmula que se conoce como regla simple de los Trapecios.

Error de fórmula en la regla de los trapecios

El error total es
N b a
ET = h3 f ii ( ) = h2 f ii ( ) 2 (a; b)
12 12

Si f (ii) (x) L para toda x 2 [a; b], entonces

N ii N b a
jET j = h3 f ( ) h3 L = h3 L
12 12 12
b a
recuerde que h =
N
En el caso de la regla simple de los Trapecios, tenemos que h = b ay
h3 00
ET = f ( ) para algún 2 (a; b)
12
Z 2
1
Ejemplo 6.1 Use la regla de los Trapecios con N = 65, para estimar I = dx.
1 x
Solución Utilizando el algoritmo del método de los trapecios

Algoritmo 6.2 function [I]=Trapecio(a,b,m)


h=(b-a)/m;
s(1)=funcion(a)+funcion(b);
s(2)=0;
for i=1:m-1
x=a+i*h;
s(2)=s(2)+funcion(x);
end
I=h*(s(1)+2*s(2))/2;
126 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA

con a=1, b=2 y m=5 se obtiene el siguiente resultado.


6.2. REGLA DE SIMPSON 1/3 127

6.2. Regla de Simpson 1/3

En este caso se aproxima la función f en cada subintervalo [xk ; xk+2 ], k = 0; 2; :::; N


2, mediante un polinomio de interpolación de Lagrange de gradomenor o igual que
dos, usando los nodos xk ; xk+1 ; xk+2 . Observe que, en este caso, el número de subin-
tervalos N debe ser par, N 2:

Es decir,
2 3
Z b
N
X
2
2 N
X
2
2

h4
f (x)dx ' f (a) + f (b) + 4 f (x2k+1 ) + 2 f (x2k )5
a 3 k=0 k=1

Si N = 2m , con m un entero, m 2 , la fórmula anterior se conoce como regla


1
compuesta de Simpson :
3
1 1
Lo de viene de que en la fórmula obtenida, h aparece multiplicada por .
3 3
b a
En el caso particular N = 2 , se tiene que h = , y la fórmula anterior se reduce
2
a. Z b
b
a+b a
f (x)dx ' f (a) + 4f (
) + f (b)
a 6 2
1
fórmula que se conoce como regla simple de Simpson .
3
1
El error al aplicar la regla de Simpson sobre todo el intervalo [a; b], es decir, el
3
error total, ET , es
128 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA

N b a iv
ET = h5 f iv ( ) = h4 f ( ) 2 (a; b)
180 180

Si f (iv) (x) L para toda x 2 [a; b], entonces


N NL b a
jET j = h5 f iv ( ) h5 = h4 L
180 180 180

En el caso N = 2,
h4 iv (b a)5 iv
ET = f ( )= f ( ) 2 (a; b)
90 2880
Se presenta el correspondiente algoritmo.

Algoritmo 6.3 function [I]=Simpson(a,b,m)


h=(b-a)/(2*m);
s(1)=funcion(a)+funcion(b);
s(2)=0;
s(3)=0;
for i=1:(2*m)-1
x=a+(i*h);
if rem(i,2)==0
s(3)=s(3)+funcion(x);
else
s(2)=s(2)+funcion(x);
end
end
I=h*(s(1)+4*s(2)+2*s(3))/3;
Z
3
Ejemplo 6.4 Use la regla de Simpson 1/3 con N = 6, para estimar I = sin2 xdx.
0

1
Solución Utilizando el algoritmo del método de Simpson con a = 0; b =
3
6.2. REGLA DE SIMPSON 1/3 129

3
; m = 3 se obtiene el siguiente resultado,
130 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA

6.3. Regla de Simpson 3/8

De la misma forma que se obtuvieron las regla de los Trapecios y la regla de Simpson
1
, se puede interpolar la función f en cada subintervalo [xk ; xk+3 ] , k = 0; 3; :::; N 3
3
(lo que requiere que N sea un entero positivo múltiplo de 3, es decir, N = 3m, m
un entero positivo), mediante un polinomio de interpolación de Lagrange de grado
menor o igual que tres, pk (x) , usando los nodos xk ; xk+1 ; xk+2 ; xk+3 :

Es decir

2 3
Z b
N
X
3
3 N
X
3
3 N
X
3
3

3h 4
f (x)dx ' f (a) + f (b) + 3 f (x3k+1 ) + 3 f (x3k+2 ) + 2 f (x3k )5
a 8 k=0 k=0 k=1

Si N = 3m, m 2, m un entero, la fórmula anterior se conoce como regla com-


3
puesta de Simpson :
8
En el caso N = 3 , caso en el cual h = b a, dicha fórmula se reduce a

Z b
b a 2a + b a + 2b
f (x)dx ' f (a) + 3f ( ) + 3f ( ) + f (b)
a 8 3 3
6.3. REGLA DE SIMPSON 3/8 131

3
fórmula que se conoce como regla simple de Simpson :
8
Entonces el error total es
N b a
ET = h5 f iv ( ) = h4 f iv ( ) 2 (a; b)
80 80

Si f (iv) (x) L para toda x 2 [a; b], entonces

b a b a
jET j = h4 f iv ( ) h4 L
80 80

b a
En el caso N = 3, entonces h = y
3
5
3 b a (b a)5 iv
ET = f iv ( ) = f ( ) 2 (a; b)
80 3 6480
Se presenta el correspondiente algoritmo

Algoritmo 6.5 Regla de Simpson 3/8


disp(’— — — — — — — — — — — — — — — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DE SIMPSON 3/8 ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
132 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA

disp(’METODO DE SIMPSON 3/8’)


f=inline(input(’ingrese la funcion a integrar:’,’s’));
a=input(’ingrese intervalo inferior:’);
b=input(’ingrese intervalo superior:’);
d=input(’ingrese numero de trapecios :’);
h=(b-a)/d;
c=0;suma=0;sumav=0;
s=a;
while (s<=b)
c=c+1;
s=s+h;
end
x=a:h:b;
if(rem((c-1),3)~=0)
disp(’nnnnERROR’)
disp(’SE REQUIERE UN NUMER0 DE PAREJAS DIVISIBLE POR 3’)
disp(’EJECUTE DE NUEVO Y CAMBIE EL PASO’)
break;
else p=4;
for i=1:c
…=feval(f,x(i));
if(i==1 j i==c)
suma=suma+…;
else
if(i==p)
sumav=sumav+(…*2);
p=p+3;
else sumav=sumav+(…*3);
6.3. REGLA DE SIMPSON 3/8 133

end
end
end
end
suma=suma+sumav;
integral=(3*h/8)*suma;
t0=feval(f,x(1));
t1=feval(f,x(2));
t2=feval(f,x(3));
t3=feval(f,x(4));
t4=feval(f,x(5));
f4=(t4-(4*t3)+(6*t2)-(4*t1)+t0)/(h^4);
error=-((b-a)/80)*(h^4)*f4;
integral=integral+error
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
if retchoose==1
MENU
end
if retchoose==0
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
end

Z
3
Ejemplo 6.6 Use la regla de Simpson 3/8 con N = 6, para estimar I = sin2 xdx.
0

3
Solución Utilizando el algoritmo del método de Simpson con a = 0; b =
8
134 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA

3
; N = 6 se obtiene el siguiente resultado
Bibliografía

[1] BURDEN. Richard L, DOUGLAS FAIRES, J. Análisis numérico. Thomson


Learning. Septima edición. México. 2002.

[2] CHAPRA Steven C, CANALE Raymond P, Métodos numéricos para ingenieros.


Mc Graw Hill. Quinta edición. Mexico. 2006.

[3] IRIARTE Rafael, BALDERRAMA V. Métodos Numéricos. Trillas. Primera edi-


ción. México. 1997.

[4] MATLAB, The lenguaje of technical computing, Getting started with Matlab,
Versión 5. The Math Works Inc.

[5] MANTILLA PRADA. Ignacio. Analisis numérico. Facultad de ciencias Univer-


sidad Nacional de colombia. Departamento de Matemáticas. Bogotá. 2004.

[6] MORA ESCOBAR. Hector Manuel. Introducción a C y a métodos numéri-


cos. Facultad de ciencias Universidad Nacional de colombia. Departamento de
Matemáticas. Bogotá. 2004.

[7] NIEVES HURTADO, Antonio y DOMINGUEZ SANCHEZ, Federico. Métodos


numéricos aplicados a la ingeniería. Compañía editorial continental. Mexico 2003.

[8] SANCHEZ. Juan Miguel, SOUTO, Antonio. Problemas de cálculo numérico para
ingenieros con aplicaciones Matlab. Mc Graw Hill. Madrid. 2005.

135

También podría gustarte