Sei sulla pagina 1di 145

GUIA PRRACTICA DE ALGORITMOS EN MATLAB

PARA EL AREA DE MTODOS NUMRICOS DE LA


UPTC SECCIONAL DUITAMA

Alexis Favian Malpica Vega Proyecto de primer nombramiento

Universidad Pedaggica y Tecnolgica de Colombia


Facultad Seccional Duitama
Licenciatura en Matemticas y Estadstica
Duitama Boyac
2011
ii
ndice general

Lista de smbolos V

Introduccin VII

Objetivos IX

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


0.2. Objetivos especcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix

1. Preliminares 1
1.1. Repaso de clculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Algunos apuntes en Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Programacin en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Solucin de ecuaciones no lineales 11


2.1. Mtodo de biseccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2. Mtodo de la secante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3. Mtodo de la regla falsa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4. Mtodo de punto jo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5. Mtodo de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3. Sistemas de ecuaciones lineales. 43


3.1. Mtodos directos de solucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.1. Eliminacin de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.1.2. Eliminacin de Gauss Jordan con pivoteo. . . . . . . . . . . . . . . . . . . 50
3.2. Mtodos de Factorizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.1. Factorizacin LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

iii
iv NDICE GENERAL

3.2.2. Factorizacin de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62


3.2.3. Mtodo de Doolitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.2.4. Mtodo de Crout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3. Mtodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3.1. Mtodo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.3.2. Mtodo de Gauss Seidell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.3.3. Teoremas de Convergencias de mtodos iterativos . . . . . . . . . . . . . . . 90

4. Sistemas de ecuaciones no lineales. 91


4.1. Mtodo de punto jo multivariable. . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2. Mtodo de Newton Raphson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

5. Aproximacin funcional e interpolacin 97


5.1. Aproximacin polinomial simple e interpolacin . . . . . . . . . . . . . . . . . . . . 98
5.2. Polinomios de lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.3. Polinomios de Newton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

6. Integracin Numrica 123


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

Bibliografa 135
Lista de smbolos

N Nmeros naturales.
C Nmeros Complejos.
R Nmeros 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 denido en L ( ) ;
k.k Norma euclidiana denida en Rn .
j.j La mtrica euclidiana denida en R:
B (x0 ; r) Bola de radio r > 0 y centro x0 2 Rn denida como
fx 2 Rn ; kx x0 k < rg

v
vi LISTA DE SMBOLOS
Introduccin

La nocin de algoritmo es un concepto clsico en las matemticas. Es un concepto


muy anterior a la aparicin de las computadoras y de las calculadoras. En realidad, en
la enseanza bsica tradicional todos aprendimos algoritmos como el de la divisin, la
multiplicacin y la extraccin de races cuadradas. Con el transcurso del tiempo, los
dos primeros se convierten generalmente en operaciones ms conocidas y practicadas
y, el tercero, en la operacin ms fcilmente olvidada.
Cabe destacar que para el rea de mtodos numricos 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 Pedaggica y Tec-
nolgica de Colombia en la seccional Duitama, en el rea de mtodos numricos,
algunos docentes no estn en la capacidad de orientar el curso mirando la opcin
de la programacin de algoritmos en matlab, por la apata a las nuevas tecnologas
dejando de ver que este sera el espacio adecuado para que el estudiante desarrolle
habilidades y destrezas en la solucin de problemas. Tambin por experiencia propia
el estudiante a la hora de realizar demasiados clculos cae en el aburrimiento lo cual
le quita expectativas a la clase, adems se ha podido comprobar en el desarrollo
de algunas clases que esta modalidad le permite al estudiante aanzar ms en los
temas vistos esto se identica en el mejoramiento del rendimiento acadmico de los
estudiantes y la posibilidad de abordar trabajos relevantes en el rea.
Luego lo que se quiere aportar es una gua prctica de mtodos numricos imple-
mentada en el programa Matlab que permita dar solucin a la mayora de los temas

vii
viii INTRODUCCIN

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 gua.
De esta manera se cierran ciertas brechas a nivel regional sobre la incorporacin del
uso de computadores en la formacin de los profesionales uptecistas.
La manera como se quiere dar comienzo a este proyecto es indicar algunas funciones
bsicas en Matlab, se presentarn algunas guas con indicaciones como ejecutar
el algoritmo y mostrar algunas aplicaciones en el campo de la ingeniera, ciencias
econmicas y sociales.
Objetivos

0.1. Objetivo general

1. Disear y elaborar una gua prctica de algoritmos en el programa Matlab de


la materia mtodos numricos para uso de los docentes y estudiantes de la
Universidad Pedaggica y Tecnolgica de Colombia.

0.2. Objetivos especcos

1. Estudiar algunos conceptos bsicos del programa Matlab.

2. Disear guas de algoritmos de algunos temas ofrecidos en los contenidos pro-


gramticos de mtodos numricos.

3. Construir algoritmos que permitan la solucin de algunos problemas aplicados


a la ingeniera, ciencias sociales y la economa.

4. Hacer un documento que permita la recoleccin de varios algoritmos en Mat-


lab para el rea de mtodos numricos que permita su implementacin en los
diferentes programas acadmicos ofrecidos por la Universidad pedaggica y
Tecnolgica de Colombia.

ix
x OBJETIVOS
Captulo 1

Preliminares

En este primer captulo dedicado a preliminares se puede encontar un repaso a los


principales teorema utilizados en gran parte para demostrar una formula iterativa
o convergencia de algn mtodo estudiado. se presntan tambin algunos principios
de programacin en Matlab.

1.1. Repaso de clculo

Los conceptos de lmite y continuidad de una funcin son fundamentales en el estudio


de clculo diferencial.

Denicin 1.1 Una funcin denida en un conjunto X de numeros reales tiene


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

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

Denicin 1.2 Sea f una funcin denida en un conjunto X de nmeros reales y


x0 2 X: Entonces f es continua en x0 si

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

1
2 CAPTULO 1. PRELIMINARES

La funcin f es continua en el conjunto X si es continua en cada nmero de X:

Los siguiente teoremas son fundamentales de la deduccin de mtodos para la es-


timacin del error. Las demostraciones de estos teoremas se pueden encontrar en
cualquier libro de clculo.

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 nmero 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 nmero 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]. Adems se f es
derivable en (a; b), entonces los nmeros 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


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

1.2. Algunos apuntes en Matlab

Se presenta una introduccin a Matlab.


MATLAB es un lenguaje de programacin y una herramienta de clculo.
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 continuacin se dar una serie de comandos que muestran como trabajar
con escalares, vectores y matrices.

>> a=1; % Un escalar, ingrselo 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 formacin. 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 continuacin 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
(sqrtcalculala raz cuadrada).
4 CAPTULO 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 continuacin 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 posicin (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 nmeros 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 construccin de


algunas matrices.

Por ejemplo:
6 CAPTULO 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 maysculas y minsculas. Por lo tanto, a y


Ason variables diferentes.

1.3. Programacin 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 numrico ( es aconsejable tener un
directorio diferente del directorio Matlab, ya que si guardamos programas en el
directorio donde se encuentra Matlab, lo estamos modicando 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 extensin .m.
Veamos un ejemplo: Deseamos resolver la ecuacin 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. PROGRAMACIN 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 numrico, 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 continuacin se dan algunos comandos ms usados en programas.


1. for. La sintaxis de este comando es
For i=vi:in:vf
instrucciones
8 CAPTULO 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 relacin

instrucciones

end

Las instrucciones se ejecutan reiteradamente mientras la relacin sea verdadera.

3. If. La sintaxis de este comando es

if relacin

instrucciones

end

Las instrucciones se ejecutan si la relacin es verdadera. Otras formas de este co-


mando son posibles.

Por ejemplo,

if relacin

instrucciones 1

else

instrucciones 2

end

Si la relacin 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. PROGRAMACIN EN MATLAB. 9

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

& Y
j O
xor o excluyente

Se presenta un ejemplo de programa.


Construya un programa que evale la funcin.
8
< 2 sin2 2x x 0
f (x) (1.1)
: 1 e x x>0

Solucin.
function y=fun1(x) % Si la entrada es un vector, la salida tambin lo es.
n=length(x) % Determina la longitud del vector x.
% A continuacin se calcula el valor de la funcin 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 graca de la funcin en el intervalo [ 10; 10] puede utilizarse este
programa del siguiente modo
10 CAPTULO 1. PRELIMINARES

>>x=-10:.01:10
>>plot(x,fun1(x))
Captulo 2

Solucin de ecuaciones no lineales

Los mtodos que se presentan en la siguiente gua 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 ecuacin algebrica fe la forma f (x) = 0, se
presenta frecuentemente dentro del campo de la ingeniera, las ciencias econnicas
y sociales entre otros. Para este problema se presentan diversos mtodos, en el
presente capitulo se estudiaran algunos de ellos.

Ejemplo 2.1 El crecimiento de una poblacin numerosa puede modelarse durante


periodos breves, con slo suponer que sta crece constantemente con el tiempo a una
tasa proporcional al nmero 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 poblacin satisface la ecuacin diferencial

dN (t)
= N (t):
dt

La solucin de esta ecuacin diferencial utilizando el mtodo de separacin de vari-


ables es N (t) = N0 e t , donde N0 denota la poblacin inicial.
Este modelo exponencial es vlido slo cuando la poblacin se halla aislada, es decir,
sin que exista inmigracin proveniente del exterior. S se permite la inmigracin

11
12 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

con una tasa constante la ecuacin diferencial que rige la situacin ser.
dN (t)
= N (t) +
dt
cuya solucin es
N (t) = N0 e t + (e t
1):

Supongase que cierta poblacin tiene inicialmente un millon de habitantes, que


435000 de ellos inmigran hacia la comunidad durante el primer ao y que 1564000
se encuentran en ella al nal del ao 1. Si se quiere determinar la natalidad de la
poblacin, se debe determinar en la ecuacin
435000
1564000 = 1000000e + (e 1):

Los mtodos numricos que se tratan en este captulo sirven para obtener aproxi-
maciones a las soluciones de este tipo de ecuaciones cuando no es posible obtener
respuestas exctas por mtodos algebricos, [1]:

2.1. Mtodo de biseccin.

Supongamos que f es una funcin 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 raz en este
intervalo es nica (aunque el mtodo tambin se puede aplicar cuando hay ms de
una raz en (a; b) ).

El mtodo de Biseccin aplicado a la funcin f (x) para aproximar la raz 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 raz c sea menor que la tolerancia especicada ".

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 aproximacin a la raz c:
2
2.1. MTODO DE BISECCIN. 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 raz ser c = xc : Observese la fgura (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]

Solucin
14 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

Siguiendo el algoritmo de biseccin da los valores de la siguiente tabla.

n x0 x1 xc Distancia Raz
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 mtodo 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 PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprvintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
fprintf(ALEXIS FAVIAN MALPICA VEGAnn);
fprintf(nn);
disp( );
2.1. MTODO DE BISECCIN. 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 CAPTULO 2. SOLUCIN 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. MTODO DE BISECCIN. 17

Al ejecutar el programa desde Matlab se obtiene la siguiente ventana


18 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

y seleccionando 1 para mtodo de biseccin se obtiene


2.2. MTODO DE LA SECANTE. 19

el cual arroja la graca de la funcin

2.2. Mtodo de la secante.

Dada una funcin contnua 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 raz. Por los
puntos P0 (x0 ; f (x0 )) y P1 (x1 ; f (x1 )) trazamos una recta secante a la grca de la
funcin y = f (x); esta recta secante cotar el eje x en el punto (x2 ; 0). El punto x2
ser una nueva aproximacin a la raz xc :
Con los puntos P2 (x2 ; f (x2 )) y P1 (x1 ; f (x1 )) repetimos el proceso para hallar una
20 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

nueva aproximacin.
Continuamos el proceso iterativo hasta cuando la distancia jxn xn+1 j < " y ten-
dremos una raz aproximada f (xn+1 ) ' 0:

(2.2)

El proceso se evidencia en la fgura (2.2) :


Para hallar la formula de recurrencia por los puntos P0 (x0 ; f (x0 )) y P1 (x1 ; f (x1 ))
pasa una recta cuya ecuacin 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 ecuacin
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 iteracin se obtiene

xi+1 xi
xi+2 = xi f (xi )
f (xi+1 ) f (xi )
2.2. MTODO DE LA SECANTE. 21

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

Solucin Siguiendo el algoritmo de la secante da los valores de la siguiente


tabla.
i xi f(xi) Distancia Raz
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 Mtodo de la secante.


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 CAPTULO 2. SOLUCIN 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. MTODO 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 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES
2.3. MTODO DE LA REGLA FALSA. 25

2.3. Mtodo de la regla falsa.

Dada una funcin contnua 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 raz y xd a
la derecha de la raz. Esta condicin 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 grca de la
funcin y = f (x); esta recta secante cotar el eje x en el punto (xn ; 0). El punto xn
ser una nueva aproximacin a la raz 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 raz 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 ecuacin 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 ecuacin

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 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

El proceso se observa segn la fgura (2.4)

(2.4)

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

Solucin. Siguiendo el algoritmo del mtodo de la regla falsa se resumen los


resultados en la siguiente tabla.
n xi xd xc Distancia Raz
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 Mtodo de la regla falsa


2.3. MTODO 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 PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 CAPTULO 2. SOLUCIN 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. MTODO 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 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES
2.4. MTODO DE PUNTO FIJO. 31

2.4. Mtodo de punto jo.

Sea f(x) una funcin contina en un intervalo cerrado [a; b] tal que existe un c 2 [a; b]
con la condicin f (c) = 0; de la funcin f (x); igualando a cero tenemos

f (x) = 0 (2.5)

de (2.5) despejamos x hallando una nueva funcin g(x) con un valor inicial x0 como
primera aproximacin 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 exctas dentro de 10 para 3x2 7x 6 = 0
tomando como valor inicial x0 = 1:

Solucin Siguiendo el algoritmo del mtodo del punto jo da los valores de la


32 CAPTULO 2. SOLUCIN 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 Mtodo de punto jo.


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

fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 funcin 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 CAPTULO 2. SOLUCIN 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. MTODO DE PUNTO FIJO. 35
36 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

cuya graca corresponde a

2.5. Mtodo de Newton.

Sea f(x) una funcin contina en un intervalo cerrado [a; b] tal que existe un c
2 [a; b] con la condicin f (c) = 0: Con una aproximacin 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. MTODO DE NEWTON. 37

x1 es una nueva aproximacin a la raz.

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
aproximacin a la raz c:

(2.6)

En la fgura (2.6) se tiene la grca de f(x) cuyas tangentes aproximan a la raz.

Continuando con este proceso iterativo obtendremos una nueva aproximacin a la


raz con error de 0 < "1 << 1;cuando la distancia jxi xi+1 j < "1 en la iteracin
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 ecuacin,

y f (x0 ) = m(x x0 )
38 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES

la pendiente de la recta tangente esta dada por m = f 0(x0 ) luego la ecuacin 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 iteracin tenemos

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

Solucin Siguiendo el algoritmo del mtodo de Newton da los valores de la


siguiente tabla.
2.5. MTODO DE NEWTON. 39

i xi f(xi) f'(xi) error Raz


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 Mtodo de Newton.


fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 CAPTULO 2. SOLUCIN 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. MTODO DE NEWTON. 41

end
42 CAPTULO 2. SOLUCIN DE ECUACIONES NO LINEALES
Captulo 3

Sistemas de ecuaciones lineales.

Muchos problemas relacionados con el campo de la ingeniera, ciencias econmicas y


sociales entre otras se pueden expresar en terminos de sistemas de ecuaciones alge-
bricos lineales. Debido a ello en el presente captulo se realiza un estudio a algunos
mtodos ms usados para resolver estos sistemas. Cabe destacar la importancia de
diferenciar entre metodos directos y mtodos iterativos.

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

Calcule la tensin en cada seccin de la cuerda y la aceleracin del equipo, dados los
siguientes datos.

Paracaidista Masa (Kg) Coeciente 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

continuacin.Ver 3.1

(3.1)
Sumando las fuerzas en la direccin 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. MTODOS DIRECTOS DE SOLUCIN 45

3.1. Mtodos directos de solucin

El prototipo de estos mtodos se conoce como la eliminacin de Gauss y se presen-


tana continuacin,[7]

3.1.1. Eliminacin 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 solucin 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
denimos 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 matrz 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Este ltimo sistema se resuelve utilizando el mtodo de sustitucin regresiva.

Ejemplo 3.2 Dado el sistema

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

40x1 x3 = 307

solucionarlo utilizando el mtodo de Gauss.

Solucin 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


Eliminacin 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

Eliminacin 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. MTODOS DIRECTOS DE SOLUCIN 47

Eliminacin 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 solucin del sistema utilizando sustitucin regresiva.

Algoritmo 3.3 Eliminacin de Gauss


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
fprintf(ALEXIS FAVIAN MALPICA VEGAnn);
fprintf(nn);
disp( );
disp(METODO DE ELIMINACIN 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 CAPTULO 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(Eliminacin 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. MTODOS DIRECTOS DE SOLUCIN 49
50 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.1.2. Eliminacin 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 solucin 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

denimos 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 solucin ser

x1 = b1 x2 = b2 :::: xn = bn
3.1. MTODOS DIRECTOS DE SOLUCIN 51

Ejemplo 3.4 Dado el sistema

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

40x1 x3 = 307

solucionarlo utilizando el mtodo de Gauss.

Solucin 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, eliminacin 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
Eliminacin 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

Eliminacin 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Eliminacin 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

Eliminacin 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

Eliminacin 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 Eliminacin 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 PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
fprintf(ALEXIS FAVIAN MALPICA VEGAnn);
fprintf(nn);
disp( );
disp(METODO DE GAUSS-JORDAN CON PIVOTEO );
disp( );
3.1. MTODOS DIRECTOS DE SOLUCIN 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 CAPTULO 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. MTODOS DIRECTOS DE SOLUCIN 55
56 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2. Mtodos de Factorizacin

3.2.1. Factorizacin 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 solucin 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 mtodo 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 dene una matriz triangular inferior L de orden 3 con nmeros 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 mtodo de Factorizacin LU.


3.2. MTODOS DE FACTORIZACIN 57

Solucin 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 solucin 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 Factorizacin LU


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
58 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);


fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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. MTODOS DE FACTORIZACIN 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 CAPTULO 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. MTODOS DE FACTORIZACIN 61
62 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2.2. Factorizacin de Cholesky

Mtodo utilizado cuando la matriz A del sistema es denida positiva:

Denicin 3.8 Una matriz A 2 Mn n se llama denida positiva, si:


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

En el caso de tener un sistema Ax = b con A denida positiva, la factorizacin


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 denida positiva es decir se puede efectuar la factorizacin 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 factorizacin planteada anteri-


ormente.
3.2. MTODOS DE FACTORIZACIN 63

Ejemplo 3.9 Dado el sistema

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

2x2 + 2x3 = 15

solucionarlo utilizando el mtodo de Factorizacin de Cholesky.

Solucin La matriz A es denida positiva por tanto el sistema acepta la factor-


izacin 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 solucin viene dada por


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

Algoritmo 3.10 Factorizacin de Cholesky


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

fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);


fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 tamao 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. MTODOS DE FACTORIZACIN 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 %Aade 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 tamao 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 tamao de "
66 CAPTULO 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. MTODOS DE FACTORIZACIN 67
68 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2.3. Mtodo de Doolitle

Directamente permite hacer una factorizacin 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 mtodo 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. MTODOS DE FACTORIZACIN 69

Ejemplo 3.11 Dado el sistema

70x1 + x2 = 636

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

solucionarlo utilizando el mtodo de factolrizacin de Doolitle.

Solucin 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 solucin para el sistema de ecuaciones es:
2 3
1461=170
6 7
6 7
x = 6 585=17 7
4 5
625=17
70 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Algoritmo 3.12 Mtodo de Doolitle


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 tamao de la matriz para determinar:
%A(matriz de coecientes) y b(vector de terminos independientes)
n=tam(1); %saca el numero de las de la matriz(tamao 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 tamao de A),y evita crear sus unos
3.2. MTODOS DE FACTORIZACIN 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 tamao 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 tamao 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 CAPTULO 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. MTODOS DE FACTORIZACIN 73
74 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.2.4. Mtodo de Crout

Igual que el mtodo 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 mtodo de factorizacin de Crout.

Solucin 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 matrz 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. MTODOS DE FACTORIZACIN 75

y la solucin viene dada por


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

Algoritmo 3.14 Mtodo de Crout


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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 tamao de la matriz para determinar
%A(matriz de coecientes)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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

end
end
b1=b; % "b.es un vector columna
U=eye(n); %inicializa la "de crout(le da el tamao 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 tamao 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 tamao de "
for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente)
s=0; %
3.2. MTODOS DE FACTORIZACIN 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.3. MTODOS ITERATIVOS 79

3.3. Mtodos iterativos

Mtodos empleados para solucionar sistemas de ecuaciones lineales muy grandes


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

Denicin 3.15 (Condicin de una matriz) Para cada norma submultiplicativa


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

se llama nmero de condicin de la matriz (no singular) A con respecto a la norma


k:k :

De la denicin 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. Mtodo 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

entonces a partir de un vector inicial x0 2 Rn , se tiene la siguiente iteracin 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 solucin del siguiente sistema de ecuaciones lineales


utilizando el mtodo 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

Solucin 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. MTODOS ITERATIVOS 81

los clculos se pueden apreciar en la siguiente tabla

i x1 x2 x3 Error Solucin
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 Solucin

Algoritmo 3.17 Mtodo de jacobi


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
fprintf(ALEXIS FAVIAN MALPICA VEGAnn);
fprintf(nn);
disp( );
disp(METODO DE JACOBI );
82 CAPTULO 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. MTODOS 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.3. MTODOS ITERATIVOS 85

3.3.2. Mtodo 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 iteracin 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 solucin del siguiente sistema de ecuaciones lineales


utilizando el mtodo 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

Solucin 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 clculos se pueden apreciar en la siguiente tabla

i x1 x2 x3 Error Solucin
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 Solucin

Algoritmo 3.19 Mtodo de Gauss - Seidell


disp( );
cln=input(Desea limpiar la pantalla? (Digite 1=Si; 0=NO) );
if cln==1
clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
3.3. MTODOS 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 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

if retchoose==1

MENU

end

if retchoose==0

disp(GRACIAS POR UTILIZAR LA APLICACION);

end
3.3. MTODOS ITERATIVOS 89
90 CAPTULO 3. SISTEMAS DE ECUACIONES LINEALES.

3.3.3. Teoremas de Convergencias de mtodos iterativos

Teorema 3.20 Un mtodo 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 mtodo de Gaus- Seidell y Jacobi convergen.
Captulo 4

Sistemas de ecuaciones no lineales.

En este captulo 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 clculos de manera ms agil. entre los mtodos a estudiar tenemos el mtodo
de punto jo multivariable y el mtodo de Newton Raphson.[7]

4.1. Mtodo de punto jo multivariable.

Mtodo 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 funcin, y despejando y de la segunda


funcin del termino 10y, obtenemos

91
92 CAPTULO 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 frmula iterativa,


el siguiente guin 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. MTODO DE NEWTON RAPHSON. 93

4.2. Mtodo de Newton Raphson.

Mtodo 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 CAPTULO 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 guin.

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. MTODO 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 CAPTULO 4. SISTEMAS DE ECUACIONES NO LINEALES.
Captulo 5

Aproximacin funcional e
interpolacin

El problema de interpolacin consiste en encontrar el valor de la funcin f (x), de


la cul slo se conocen algunos puntos, para un valor de x que se encuentre entre
dos valores consecutivos conocidos. [3]: Se estudiar la aproximacin de funciones
disponibles en forma discreta ( puntos tabulados) con funciones analticas sencillas o
bien de aproximacin 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 seccin de la tabla por una
linea recta, una parbola, etc la eleccin del grado se har analizando el fenomeno
que origin los valores y, el tipo de aproximacin, con base en la exactitud de stos,
[7]:

Ejemplo 5.1 Las tablas [5.1] y [5.2]presentan la temperatura de ebullicin 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

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 slo se dispusiera de la segunda tabla y se desea calcular la temper-
atura de ebullicin de la acetona a 2 atm de presin.

5.1. Aproximacin polinomial simple e interpolacin

La aproximacin es uno de los procedimientos ms tiles en el procesamiento de


informacin el cual consiste en construir curvas con base en unos cuantos puntos de
referencia:Las curvas obtenidas representan y aproximan la informacin 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
interpolacin. Si la curva no tiene que pasar por los puntos pero satisface un cierto
criterio de cercana, se denomina una aproximacin a los datos de la tabla.

Ejemplo 5.2 A continuacin 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 presin de vapor a 950 C.

Solucin ( Para dos puntos experimentales) Una forma de resolver este proble-
ma sera sustituir los puntos (0) y (2) en la ecuacin de la lnea recta P (T ) = a0 +a1 T
donde se desconoce a0 y a1 : Se plantea entonces la solucin de un sistema de dos
ecuaciones lineales con dos incognitas el cual resulta de sustituir los puntos P0 y P2
5.1. APROXIMACIN POLINOMIAL SIMPLE E INTERPOLACIN 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 ecuacin puede emplearse para aproximar la presin cuando la temperatura es
conocida.
Solucin ( Para tres puntos experimentales) Una forma de resolver este prob-
lema sera sustituir los puntos (0), (2) y (4); ( No importa cuales puntos utilice ) en
la ecuacin del polinomio de grado dos P (T ) = a0 + a1 T + a2 T 2 donde se desconoce
a0 , a1 y a2 . Se plantea entonces la solucin 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 funcin con un polinomio de grado n,se
necseitan n + 1 puntos, que sustituidos en la ecuacin 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

clc;
end
fprintf(nn);
fprintf(UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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. APROXIMACIN POLINOMIAL SIMPLE E INTERPOLACIN 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

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. APROXIMACIN POLINOMIAL SIMPLE E INTERPOLACIN 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

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. APROXIMACIN POLINOMIAL SIMPLE E INTERPOLACIN 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

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. APROXIMACIN POLINOMIAL SIMPLE E INTERPOLACIN 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN
5.1. APROXIMACIN POLINOMIAL SIMPLE E INTERPOLACIN 109

UTILIZANDO TRES PUNTOS


110 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN
5.2. POLINOMIOS DE LAGRANGE 111

5.2. Polinomios de lagrange

Este mtodo de aproximacin polinomial no necesita resolver un sistema de ecua-


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

Denicin 5.4 Denicin 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 interpolacin


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

Nota: La formulacin en polinomios de Lagrange es inmanejable dado que


agregar o quitar un elemento de la tabla de datos implica construir de nuevo los
polinomios bsicos.

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

Solucin: 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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

(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 PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
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( );
%coecientes de Lagrange
w=length(X);
n=w-1;
L=zeros(w,w);
% Formacin de los polinomios coecientes 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 coecientes del polinomio interpolador de Lagrange
C=Y*L;
114 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

%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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

cuya grca 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 coecientes a0 ; a1 ; a2 ; :::; an estn
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


recursin

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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

Informacin 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 prdida en el ncleo para un
motor elctrico:

1. Elabore una tabla de diferencias divididas

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

Solucin
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 PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
fprintf(ALEXIS FAVIAN MALPICA VEGAnn);
fprintf(nn);
disp( );
120 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN

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 CAPTULO 5. APROXIMACIN FUNCIONAL E INTERPOLACIN
Captulo 6

Integracin Numrica

En cursos de clculo diferencial e integral se estudia como obtener las derivadas de


una funcin f (x), y se puede observar que un buen nmero de casos, el problema en
matemticas no tiene solucin analtica: algunos ejemplos son:

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

En este captu lo se estudian algunos mtodos desarrollados en el anlisis numrico


para integrar funciones denidas en forma tabular: ya sean obtenidas como resultado
de algun experimento o simplemente tabulando la funcin que se desea integrar.
Entre los mtodos a estudiar estn el mtodo 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 funcin f se aproxima en cada subintervalo


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

123
124 CAPTULO 6. INTEGRACIN NUMRICA

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

Como el polinomio de interpolacin 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 frmula anterior se conoce como regla compuesta de los Trapecios.

En el caso N = 1, caso en el cual h = b a , dicha frmula se reduce a


6.1. REGLA DE LOS TRAPECIOS 125

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

frmula que se conoce como regla simple de los Trapecios.

Error de frmula 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 algn 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
Solucin Utilizando el algoritmo del mtodo 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 CAPTULO 6. INTEGRACIN NUMRICA

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 funcin f en cada subintervalo [xk ; xk+2 ], k = 0; 2; :::; N


2, mediante un polinomio de interpolacin de Lagrange de gradomenor o igual que
dos, usando los nodos xk ; xk+1 ; xk+2 . Observe que, en este caso, el nmero 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 frmula anterior se conoce como regla


1
compuesta de Simpson :
3
1 1
Lo de viene de que en la frmula obtenida, h aparece multiplicada por .
3 3
b a
En el caso particular N = 2 , se tiene que h = , y la frmula anterior se reduce
2
a. Z b
b
a+b a
f (x)dx ' f (a) + 4f (
) + f (b)
a 6 2
1
frmula 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 CAPTULO 6. INTEGRACIN NUMRICA

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
Solucin Utilizando el algoritmo del mtodo de Simpson con a = 0; b =
3
6.2. REGLA DE SIMPSON 1/3 129

3
; m = 3 se obtiene el siguiente resultado,
130 CAPTULO 6. INTEGRACIN NUMRICA

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 funcin f en cada subintervalo [xk ; xk+3 ] , k = 0; 3; :::; N 3
3
(lo que requiere que N sea un entero positivo mltiplo de 3, es decir, N = 3m, m
un entero positivo), mediante un polinomio de interpolacin 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 frmula anterior se conoce como regla com-


3
puesta de Simpson :
8
En el caso N = 3 , caso en el cual h = b a, dicha frmula 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
frmula 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 PEDAGGICA Y TECNOLGICA DE COLOMBIAnn);
fprintf(PROYECTO DE PRIMER NOMBRAMIENTOnn);
fprintf(GUIA PRACTICA DE METODOS NUMRICOSnn);
fprintf(ALEXIS FAVIAN MALPICA VEGAnn);
fprintf(nn);
disp( );
disp(METODO DE SIMPSON 3/8 );
disp( );
132 CAPTULO 6. INTEGRACIN NUMRICA

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
Solucin Utilizando el algoritmo del mtodo de Simpson con a = 0; b =
8
134 CAPTULO 6. INTEGRACIN NUMRICA

3
; N = 6 se obtiene el siguiente resultado
Bibliografa

[1] BURDEN. Richard L, DOUGLAS FAIRES, J. Anlisis numrico. Thomson


Learning. Septima edicin. Mxico. 2002.

[2] CHAPRA Steven C, CANALE Raymond P, Mtodos numricos para ingenieros.


Mc Graw Hill. Quinta edicin. Mexico. 2006.

[3] IRIARTE Rafael, BALDERRAMA V. Mtodos Numricos. Trillas. Primera edi-


cin. Mxico. 1997.

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

[5] MANTILLA PRADA. Ignacio. Analisis numrico. Facultad de ciencias Univer-


sidad Nacional de colombia. Departamento de Matemticas. Bogot. 2004.

[6] MORA ESCOBAR. Hector Manuel. Introduccin a C y a mtodos numri-


cos. Facultad de ciencias Universidad Nacional de colombia. Departamento de
Matemticas. Bogot. 2004.

[7] NIEVES HURTADO, Antonio y DOMINGUEZ SANCHEZ, Federico. Mtodos


numricos aplicados a la ingeniera. Compaa editorial continental. Mexico 2003.

[8] SANCHEZ. Juan Miguel, SOUTO, Antonio. Problemas de clculo numrico para
ingenieros con aplicaciones Matlab. Mc Graw Hill. Madrid. 2005.

135

Potrebbero piacerti anche