Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE MÉTODOS NUMÉRICOS
Lista de símbolos V
Introducción VII
Objetivos IX
1. Preliminares 1
1.1. Repaso de cálculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Algunos apuntes en Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Programación en Matlab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
iii
iv ÍNDICE GENERAL
Bibliografía 135
Lista de símbolos
N Números naturales.
C Números Complejos.
R Números reales.
Rn Espacio euclideo n dimensional.
Ck Funciones diferenciables k veces con k 2 N a valor en C:
Un abierto de Rn :
1
Q(x0 ; ) Cubo,.de centro en x0 y de lado > 0: = jQ(x0 ; )j n
Q(x0 ; ) := x = (xi )1 i n ; jxi x0i j < para x0 = (x0i )1 i n
2
h ; iL2 ( ) Producto interno de…nido en L ( ) ;
k.k Norma euclidiana de…nida en Rn .
j.j La métrica euclidiana de…nida en R:
B (x0 ; r) Bola de radio r > 0 y centro x0 2 Rn de…nida como
fx 2 Rn ; kx x0 k < rg
v
vi LISTA DE SÍMBOLOS
Introducción
vii
viii INTRODUCCIÓN
ofrecidos en el programa. Sin embargo siempre queda la expectativa de que las per-
sonas con el paso del tiempo puedan colaborar para lograr complementar dicha guía.
De esta manera se cierran ciertas brechas a nivel regional sobre la incorporación del
uso de computadores en la formación de los profesionales uptecistas.
La manera como se quiere dar comienzo a este proyecto es indicar algunas funciones
básicas en Matlab, se presentarán algunas guías con indicaciones como ejecutar
el algoritmo y mostrar algunas aplicaciones en el campo de la ingeniería, ciencias
económicas y sociales.
Objetivos
ix
x OBJETIVOS
Capítulo 1
Preliminares
si, dado cualquier número real " > 0;existe un número real > 0 tal que jf (x) Lj <
"; siempre que x 2 X y jx x0 j < :
l m f (x) = f (x0 )
x!x0
1
2 CAPÍTULO 1. PRELIMINARES
Muchas veces los vectores tienen un a ley de formación. Esto permite una mayor
facilidad para ingresar dicho vector. Por ejemplo, un vector con 100 elementos,
donde el primer elemento es 2, el último es 200 y los elementos intermedios van
incrementados de dos en dos, puede ingresarse de la siguiente manera abreviada.
0
>>u=[1 2 3 4 5 6 7 8] Se ingresa un vector …la.
>>v=8:-1:1 Se ingresa otro vector …la.
>>u+v Suma de vectores.
>>v’ Vector columna transpuesto.
>>u*v’ El vector u por el v transpuesto
(Producto interior entre vectores)
>>sqrt(u*u’) Norma del vector u
(“sqrt”calculala raíz cuadrada).
4 CAPÍTULO 1. PRELIMINARES
>>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.
Por ejemplo:
6 CAPÍTULO 1. PRELIMINARES
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.
Matlab debe estar direccionado al directorio donde guardamos los programas. Esto
se logra con el siguiente comando.
>> cd c:nnumerico.
Todos los archivos con programas Matlab deben terminar con la extensión .m.
Veamos un ejemplo: Deseamos resolver la ecuación de segundo grado 3x2 +5x+2 = 0.
Escribamos primero un programa rutero ( para escribir un programa se puede us-
ar cualquier editor de texto que permita guardar archivos como ascii; por ejemplo
1.3. PROGRAMACIÓN EN MATLAB. 7
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;
end
Donde vi, in, vf son el valor inical, el incremento y el valor …nal de la variable escalar
i.
While relación
instrucciones
end
if relación
instrucciones
end
Por ejemplo,
if relación
instrucciones 1
else
instrucciones 2
end
Las relaciones para los comandos if y while se construyen mediante los siguientes
1.3. PROGRAMACIÓN EN MATLAB. 9
relacionadores.
< Menor que
> Mayor que
<= Menor o igual a
>= Mayor o igual a
== Igual a
Y los siguientes conectivos lógicos
& Y
j O
xor o excluyente
Solución.
function y=fun1(x) % Si la entrada es un vector, la salida también lo es.
n=length(x) % Determina la longitud del vector x.
% A continuación se calcula el valor de la función componente a componente.
for i=1:n % Al omitir el incremento este se asume igual a 1.
if x(i)<=0
y(i)=2*(sin(2*x(i)))^2;
else
y(i)=1-exp(-x(i));
end
end
Para hacer la gra…ca de la función en el intervalo [ 10; 10] puede utilizarse este
programa del siguiente modo
10 CAPÍTULO 1. PRELIMINARES
>>x=-10:.01:10
>>plot(x,fun1(x))
Capítulo 2
Los métodos que se presentan en la siguiente guía rtequieren que las funciones sean
diferenciables, y por tanto continuas, en el intervalo donde se requiere. El problema
de encontar las raices, o ceros de una ecuación algebráica fe la forma f (x) = 0, se
presenta frecuentemente dentro del campo de la ingeniería, las ciencias econónicas
y sociales entre otros. Para este problema se presentan diversos métodos, en el
presente capitulo se estudiaran algunos de ellos.
dN (t)
= N (t):
dt
11
12 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
con una tasa constante la ecuación diferencial que rige la situación será.
dN (t)
= N (t) +
dt
cuya solución es
N (t) = N0 e t + (e t
1):
Los métodos numéricos que se tratan en este capítulo sirven para obtener aproxi-
maciones a las soluciones de este tipo de ecuaciones cuando no es posible obtener
respuestas exáctas por métodos algebráicos, [1]:
Supongamos que f es una función continua en un intervalo [a; b] con f (a) f (b) < 0.
Entonces, por teorema del valor intermedio para funciones continuas, existe al menos
un c 2 (a; b) tal que f (c) = 0. Asumiremos en lo que sigue que la raíz en este
intervalo es única (aunque el método también se puede aplicar cuando hay más de
una raíz en (a; b) ).
El método de Bisección aplicado a la función f (x) para aproximar la raíz c 2 [a; b],
consiste en dividir sucesivamente el intervalo [a; b] por la mitad, hasta que la longitud
del subintervalo que contiene a la raíz c sea menor que la tolerancia especi…cada ".
(2.1)
3
Ejemplo 2.2 Encontrar las soluciones exactas dentro de 10 para x3 7x2 + 14x
6 = 0 en el intervalo [0; 1]
Solución
14 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
n x0 x1 xc Distancia Raíz
1 0 1 0,5 0
2 0,5 1 0,75 0,25
3 0,5 0,75 0,625 0,125
4 0,5 0,625 0,5625 0,0625
5 0,5625 0,625 0,59375 0,03125
6 0,5625 0,59375 0,578125 0,015625
7 0,578125 0,59375 0,5859375 0,0078125
8 0,578125 0,5859375 0,58203125 0,00390625
9 0,58203125 0,5859375 0,58398438 0,00195313
10 0,58398438 0,5859375 0,58496094 0,00097656 0,00097656
11 0,58496094 0,5859375 0,58544922 0,00048828 0,00048828
12 0,58544922 0,5859375 0,58569336 0,00024414 0,00024414
13 0,58569336 0,5859375 0,58581543 0,00012207 0,00012207
14 0,58569336 0,5858154 0,58575439 6,1035E-05 6,1035E-05
15 0,58575439 0,5858154 0,58578491 3,0518E-05 3,0518E-05
end
xr(i+1)=(xa(i+1)+xb(i+1))/2;
ea(i+1)=abs((xr(i+1)-xr(i)));
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
disp(’— — — — — — — - ’);
xr(i)
disp(’— — — — — — — - ’);
else
disp(’’);
disp(’— — — — — — — - ’);
end
if retchoose==1
MENU
end
if retchoose==0
end
2.1. MÉTODO DE BISECCIÓN. 17
Dada una función contínua en el intervalo [a; b] tal que existe un punto xc 2 [a; b]
y f (xc ) = 0 tomamos dos puntos iniciales x0 y x1 aproximados a la raíz. Por los
puntos P0 (x0 ; f (x0 )) y P1 (x1 ; f (x1 )) trazamos una recta secante a la grá…ca de la
función y = f (x); esta recta secante cotará el eje x en el punto (x2 ; 0). El punto x2
será una nueva aproximación a la raíz xc :
Con los puntos P2 (x2 ; f (x2 )) y P1 (x1 ; f (x1 )) repetimos el proceso para hallar una
20 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
nueva aproximación.
Continuamos el proceso iterativo hasta cuando la distancia jxn xn+1 j < " y ten-
dremos una raíz aproximada f (xn+1 ) ' 0:
(2.2)
xi+1 xi
xi+2 = xi f (xi )
f (xi+1 ) f (xi )
2.2. MÉTODO DE LA SECANTE. 21
3
Ejemplo 2.4 Encontrar las soluciones exáctas dentro de 10 para x3 7x2 + 14x
6 = 0 en el intervalo [0; 1]
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));
disp(’— — — — — — — - ’);
else
disp(’’);
disp(’— — — — — — — - ’);
end
if retchoose==1
MENU
end
24 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
2.3. MÉTODO DE LA REGLA FALSA. 25
Dada una función contínua en el intervalo [a; b] tal que existe un punto xc 2 [a; b] y
f (xc ) = 0 tomamos dos puntos iniciales xi que está a la izquierda de la raíz y xd a
la derecha de la raíz. Esta condición se puede comprobar si f (xi ) f (xd ) < 0. Por
los puntos Pi (xi ; f (xi )) y Pd (xd ; f (xd )) trazamos una recta secante a la grá…ca de la
función y = f (x); esta recta secante cotará el eje x en el punto (xn ; 0). El punto xn
será una nueva aproximación a la raíz xc ; luego determianamos a que lado de xc se
encuentra xn :
Para hallar la formula de recurrencia por los puntos Pi (xi ; f (xi )) y Pd (xd ; f (xd ))
pasa una recta cuya ecuación estará determinada por
f (xd ) f (xi )
y f (xi ) = (x xi )
xd xi
esta recta secante contiene al punto (xn ; 0) por tanto satisface la ecuación
f (xd ) f (xi )
0 f (xi ) = (xn xi )
xd xi
y al despejar xn se obtiene
xd xi
xn = xi f (xi ) (2.3)
f (xd ) f (xi )
(2.4)
3
Ejemplo 2.6 Encontrar las soluciones exáctas dentro de 10 para x3 7x2 + 14x
6 = 0 en el intervalo [0; 1] :
disp(’— — — — — — — - ’);
disp(’’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
if retchoose==1
MENU
end
if retchoose==0
end
end
30 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
2.4. MÉTODO DE PUNTO FIJO. 31
Sea f(x) una función continúa en un intervalo cerrado [a; b] tal que existe un c 2 [a; b]
con la condición f (c) = 0; de la función f (x); igualando a cero tenemos
f (x) = 0 (2.5)
de (2.5) despejamos x hallando una nueva función g(x) con un valor inicial x0 como
primera aproximación hallamos x1 = g(x0 ) y continuamos iterando, es decir x2 =
g(x1 ) y así continuamente xi+1 = g(xi ): El proceso converge cuando la distancia
jxi+1 xi j < "1 o cuando jf (xi+1 )j < "2 con 0 < "1 << 1; 0 < "2 << 1:
3
Ejemplo 2.8 Encontrar las soluciones exáctas dentro de 10 para 3x2 7x 6 = 0
tomando como valor inicial x0 = 1:
Solución Siguiendo el algoritmo del método del punto …jo da los valores de la
32 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’METODO DEL PUNTO FIJO ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’’);
disp(’’);
for m=1:1
for j=1:i;
end
disp(’’);
disp(’’);
disp(’’);
disp(’’);
disp(’’);
hold on;
ezplot(f);
grid on;
end
if retchoose==1
MENU
end
if retchoose==0
end
2.4. MÉTODO DE PUNTO FIJO. 35
36 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
Sea f(x) una función continúa en un intervalo cerrado [a; b] tal que existe un c
2 [a; b] con la condición f (c) = 0: Con una aproximación inicial x0 por el pun-
to P0 (x0 ; f (x0 )) trazamos una recta tangente a la curva y = f (x) en el punto
P0 (x0 ; f (x0 )): La recta tangente intersecta al eje x en el punto (x1 ; 0), el punto
2.5. MÉTODO DE NEWTON. 37
Nuevamente trazamos una recta tangente a la curva f (x) por el punto de tangencia,
el corte de la tangente con el eje x es el punto (x2 ; 0) este determinará una nueva
aproximación a la raíz c:
(2.6)
Hallando la formula iterativa, dado el punto P0 (x0 ; f (x0 )) se traza la recta tangente,
esta tendra por ecuación,
y f (x0 ) = m(x x0 )
38 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
y despejando x1 se obtiene
f (x0 )
x1 = x0 ; f 0(x0 ) 6= 0:
f 0(x0 )
f (xi 1 )
xi = xi 1 ; f 0(xi 1 ) 6= 0
f 0(xi 1 )
3
Ejemplo 2.10 Encontrar una raíz dentro de 10 para 3x2 7x 6 = 0 tomando
como valor inicial x0 = 1:
i=1;
ea(1)=100;
xa(1)=xai;
xr(1)=xa(1)-((f(xa(1))/g(xa(1))));
fprintf(’%2dt % 11.7fnn’,i,xr(i));
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)));
i+1,xr(i+1),ea(i+1));
i=i+1;
end
disp(’— — — — — — — - ’);
fprintf(’LA RAIZ ES ’)
xr(i)
disp(’— — — — — — — - ’);
if retchoose==1
MENU
end
if retchoose==0
end
42 CAPÍTULO 2. SOLUCIÓN DE ECUACIONES NO LINEALES
Capítulo 3
Ejemplo 3.1 Suponga que un equipo de tres paracaidistas está unido por una cuerda
ligera mientras va en caída libre a una velocidad de 5m=s. Ver 3.1
Calcule la tensión en cada sección de la cuerda y la aceleración del equipo, dados los
siguientes datos.
Los diagramas de cuerpo libre para cada uno de los paracaidistas se relacionan a
43
44 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
continuación.Ver 3.1
(3.1)
Sumando las fuerzas en la dirección vertical y utilizando la segunda ley de Newton,
se obtiene el siguiente sistema de ecuaciones lineales....
m1 g T c1 v = m1 a
m2 g + T c2 v R = m2 a
m3 g c3 v + R = m3 a
2 3 2 3 2 3
70 1 0 a 636
6 7 6 7 6 7
6 7 6 7 6 7
6 60 1 1 7 6 T 7= 6 518 7
4 5 4 5 4 5
40 0 1 R 307
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 45
2 3
a11 a12 ::: a1n b1
6 7
6 0 a22 ::: a2n b2 7
6 7
6 7
6 : ::: ::: : : 7
4 5
0 0 ::: ann bn
46 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
70x1 + x2 = 636
60x1 x2 + x3 = 518
40x1 x3 = 307
[x,y]=size(A);
Ay=A;
disp(Ay)
if x+1==y;
p=1;
else
fprintf(’nn’);
fprintf(’La matriz no es de nxn+1’);
A=input(’Introduzca la matriz aumentada:’);
end
for j=1:x-1;
for i=j+1:x;
A(i,:)=[-A(i,j)/A(j,j)]*A(j,:)+A(i,:);
fprintf(’Eliminación en la …la %2d y columna %2d’,i,j);
fprintf(’nn’);
disp(A)
end
end
end
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
if retchoose==1
MENU
end
if retchoose==0
disp(’GRACIAS POR UTILIZAR NUESTRA APLICACION’);
end
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 49
50 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
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
x1 = b1 x2 = b2 :::: xn = bn
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 51
70x1 + x2 = 636
60x1 x2 + x3 = 518
40x1 x3 = 307
disp(’BIENVENIDO’);
fprintf(’Recuerde para el calculo se trabajara con la matriz ampliada, Ajb, es la que
usted debe ingresarnnnn’);
f=input(’PORFAVOR INDIQUE, ¿CUANTAS FILAS TIENE LA MATRIZ?: ’);
c=input(’PORFAVOR INDIQUE, ¿CUANTAS COLUMNAS TIENE LA MATRIZ?:
’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
for k=1:c
for j=1:f
fprintf(’PORFAVOR, INTRODUZCA EL ELEMENTO ’);
fprintf(’Fila %x’, j)
fprintf(’, Columna %x’, k)
fprintf(’nn’);
r=input( ’’);
fprintf(’— — — — — — — -nn’);
A(j,k)=r;
j=j+1;
end
k=k+1;
end
A
for k=1:c-1
A(k,:)=A(k,:)/A(k,k);
for j=k+1:f
A(j,:)=A(j,:)-A(k,:)*A(j,k);
j=j+1;
A
end
54 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
k=k+1;
A
end
for k=f:-1:2
for j=k-1:-1:1
A(j,:)=A(j,:)-A(k,:)*A(j,k);
j=j-1;
A
end
k=k-1;
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
A
disp(’LA MATRIZ REDUCIDA INDICA LOS RESULTADOS DE "x"’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
if retchoose==1
clear all
menu
end
if retchoose==0
disp(’EL USO DE LA APLICACION HA FINALIZADO’);
break
end
3.1. MÉTODOS DIRECTOS DE SOLUCIÓN 55
56 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.2.1. Factorización LU
70x1 + x2 = 636
60x1 x2 + x3 = 518
40x1 x3 = 307
La matriz U es: 2 3
70 1 0
6 7
6 7
U =6 0 13=7 1 7
4 5
0 0 17=13
y la matriz L 2 3
6 1 0 0 7
6 7
L = 6 6=7 1 0 7
4 5
4=7 4=13 1
El vector c es 2 3
636
6 7
6 7
c=6 190=7 7
4 5
625=13
El vector solución para el sistema de ecuaciones es:
2 3
6 1461=170 7
6 7
x = 6 585=17 7
4 5
625=17
nn’)
p=0;
else
p=1;
end
for j=1:x-1;
for i=j+1:x;
A(i,:)=[-A(i,j)/A(j,j)]*A(j,:)+A(i,:);
fprintf(’nn’);
end
end
end
C=zeros(x,1);
C(:,1)=A(:,y);
fprintf(’La matriz C es: nn’);
disp(C)
U=zeros(x,y-1);
U(:,:)=A(:,1:x);
fprintf(’La matriz U es: nn’);
disp(U)
F=zeros(x,1);
sum=0;
for i=x:-1:1
for j=x:-1:i
if j==i
F(j,1)=(-sum+C(j,1))/U(i,i);
sum=0;
else
60 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
sum=sum+F(j,1)*U(i,j);
end
end
end
fprintf(’La matriz de soluciones para el sistema de ecuaciones que usted ingreso es:
nn’);
disp(F)
if retchoose==1
MENU
end
if retchoose==0
end
3.2. MÉTODOS DE FACTORIZACIÓN 61
62 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
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
2x1 x2 = 5
1x1 + 4x2 + 2x3 = 10
2x2 + 2x3 = 15
end %””””””””””’
sum=0; %””””””””””’
for j=1:k-1 %””””””””””’
sum=sum+A(k,j)*A(k,j); %””””””””””’
end %””””””””””’
A(k,k)=sqrt(A(k,k)-sum); %””””””””””’
end %””””””””””’
for i=1:n-1 %Añade los ceros de la L de cholesky
for j=1:n %”(puesto que el algoritmo solo ”’
if j>i %”’altera los elementos de””””’
A(i,j)=0; %”’la diagonal principal de A”””
end %””y por debajo de esta)”””””
end %”””””””””””””””””’
end %”””””””””””””””””’
L=A; %cambio de variable
Lt=L’; %Lt sera la U de cholesky(transpuesta de L)
c=b1; %se inicializa el vector ç", que tiene el mismo tamaño de "b"
c(1)=b1(1)/L(1,1); %se determina el primer elemento de c
for i=2:n %procedimiento para hallar ç"(progresivamente)
s=0; %”””””””””””””””””””””””
for j=1:n-1 %”””””””””””””””””””””””
if i~=j & i>j %”””””””””””””””””””””””
s=s+L(i,j)*c(j) ; %”””””””””””””””””””””””
end %”””””””””””””””””””””””
end %”””””””””””””””””””””””
c(i)=(b1(i)-s)/L(i,i); %”””””””””””””””””””””””
end %”””””””””””””””””””””””
x=c; %se inicializa el vector "x", que tiene el mismo tamaño de ç"
66 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
z=0; %””””””””””””””””””””””’
z=z+Lt(i,j)*x(j); %””””””””””””””””””””””’
end %””””””””””””””””””””””’
end %””””””””””””””””””””””’
x(i)=(c(i)-z)/Lt(i,i); %””””””””””””””””””””””’
end %””””””””””””””””””””””’
clear all %elimina las variables del espacio de trabajo(evita que el programa se cargue
de basura)
if retchoose==1
MENU
end
if retchoose==0
end
3.2. MÉTODOS DE FACTORIZACIÓN 67
68 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
70x1 + x2 = 636
60x1 x2 + x3 = 518
40x1 x3 = 307
La matriz U es:
2 3
70 1 0
6 7
6 7
U =6 0 13=7 1 7
4 5
0 0 17=13
y la matriz L 2 3
6 1 0 0 7
6 7
L = 6 6=7 1 0 7
4 5
4=7 4=13 1
El vector c es 2 3
636
6 7
6 7
c=6 190=7 7
4 5
625=13
El vector solución para el sistema de ecuaciones es:
2 3
1461=170
6 7
6 7
x = 6 585=17 7
4 5
625=17
70 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
y ceros
for k=1:n-1 %factorizacion de doolittle””””””””””””””’
for i=k+1:n %”””””””””””””””””””””””””””””””””’
L(i,k)=A(i,k)/A(k,k); %(se determina la "L")””””””””””” ”””””’
for j=1:n %””””””””””””””””””””””””””””””””””
A(i,j)=A(i,j)-A(k,j)*L(i,k); %(se determina la Ü"(A se transforma en U))
end %””””””””””””””””””””””””””””””””””’
end %””””””””””””””””””””””””””””””””””’
end %””””””””””””””””””””””””””””””””””’
U=A; %cambio de variable
c=b1; %se inicializa el vector ç", que tiene el mismo tamaño de "b"(se determina
c(1))
for i=2:n %procedimiento para hallar ç"(progresivamente)
z=0; %”””””””””””””””””””””””””””””””””””””
for j=1:n-1 %””””L*c=b””””””””””””””””””””””””””””’
if i~=j & i>j %”””””””””””””””””””””””””””””””””””””
z=z+L(i,j)*c(j); %”””””””””””””””””””””””””””””””””””””
end %”””””””””””””””””””””””””””””””””””””
end %”””””””””””””””””””””””””””””””””””””
c(i)=b1(i)-z; %”””””””””””””””””””””””””””””””””””””
end %”””””””””””””””””””””””””””””””””””””
x=c; %se inicializa el vector "x", que tiene el mismo tamaño de ç"
x(n)=c(n)/U(n,n); %se determina x(n)(ultima solucion del sistema)
for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente)
z=0; %””””””””””””””””””””””’
for j=n:-1:2 %”””U*x=c”””””””””””””””””
if i~=j & i<j %””””””””””””””””””””””’
z=z+U(i,j)*x(j); %””””””””””””””””””””””’
72 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
end %””””””””””””””””””””””’
end %””””””””””””””””””””””’
x(i)=(c(i)-z)/U(i,i); %””””””””””””””””””””””’
end %””””””””””””””””””””””’
clear all %elimina las variables del espacio de trabajo(evita que el programa se cargue
de basura)
if retchoose==1
MENU
end
if retchoose==0
end
3.2. MÉTODOS DE FACTORIZACIÓN 73
74 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
Igual que el método anterior solo que en la matriz U los elementos de la diagonal
principal son unos. Así u11 = u22 = u33 = 1:
70x1 + x2 = 636
60x1 x2 + x3 = 518
40x1 x3 = 307
La matriz L corresponde
2 3
6 70 0 0 7
6 7
L = 6 60 13=7 0 7
4 5
40 4=7 17=13
y la matríz U es -
2 3
1 1=70 0
6 7
6 7
U =6 0 1 7=13 7
4 5
0 0 1
el vector desconocido c es 2 3
318=35
6 7
6 7
c = 6 190=13 7
4 5
625=17
3.2. MÉTODOS DE FACTORIZACIÓN 75
end
end
b1=b’; % "b.es un vector columna
U=eye(n); %inicializa la Ü"de crout(le da el tamaño de A),y evita crear sus unos y
ceros
for k=1:n-1 %factorizacion de crout””””””””””’
for j=k+1:n %”””””””””””””””””””””’
U(k,j)=A(k,j)/A(k,k); %(se determina la Ü")”””””””””””
for i=1:n %”””””””””””””””””””””’
A(i,j)=A(i,j)-A(i,k)*U(k,j); %(se determina la "L"(A se transforma en L))
end %”””””””””””””””””””””’
end %”””””””””””””””””””””’
end %”””””””””””””””””””””’
L=A; %cambio de variable
c=b1; %se inicializa el vector ç", que tiene el mismo tamaño de "b"
c(1)=b1(1)/L(1,1); %se determina el primer elemento de c
for i=2:n %procedimiento para hallar ç"(progresivamente)
s=0; %”””””””””””””””””””””””
for j=1:n-1 %”””””””””””””””””””””””
if i~=j & i>j %”””””””””””””””””””””””
s=s+L(i,j)*c(j); %”””””””””””””””””””””””
end %”””””””””””””””””””””””
end %”””””””””””””””””””””””
c(i)=(b1(i)-s)/L(i,i); %”””””””””””””””””””””””
end %”””””””””””””””””””””””
x=c; %se inicializa el vector "x", que tiene el mismo tamaño de ç"
for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente)
s=0; %””””””””””””””””””””””’
3.2. MÉTODOS DE FACTORIZACIÓN 77
s=s+U(i,j)*x(j); %””””””””””””””””””””””’
end %””””””””””””””””””””””’
end %””””””””””””””””””””””’
x(i)=c(i)-s; %””””””””””””””””””””””’
end %””””””””””””””””””””””’
clear all %elimina las variables del espacio de trabajo(evita que el programa se cargue
de basura)
if retchoose==1
MENU
end
if retchoose==0
end
78 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.3. MÉTODOS ITERATIVOS 79
A=L+D+R
donde L es una matriz triangular inferior, D es la matriz diagonal formada por los
elementos de A y R es una matriz triangular superior. Entonces
(L + D + R)x = b
Dx = b (L + R)x S{ dii 6= 0
1
x=D (b (L + R)x)
x = D 1b D 1 (L + R)x si D 1
existe
80 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
1 X
n
xk+1
i = (bi aij xkj i = 1; :::; n k = 0; 1; :::
aii j=1i6=j
2x1 + x2 + x3 =4
x1 + 3x2 + x3 = 5
x1 + 2x2 4x3 =6
xk+1
1 = 21 (4 xk2 xk3 )
xk+1
2 = 13 ( 5 + xk1 xk3 )
xk+1
3 = 1
4
(6 xk1 2xk2 )
3.3. MÉTODOS ITERATIVOS 81
i x1 x2 x3 Error Solución
0 0 0 0
1 2 -1,66666667 -1,5 3,00462606
2 3,58333333 -0,5 -1,83333333 1,99478487
3 3,16666667 0,13888889 -0,85416667 1,24119196
4 2,35763889 -0,32638889 -0,63888889 0,95778592
5 2,48263889 -0,66782407 -1,07378472 0,56686627
6 2,8708044 -0,48119213 -1,21325231 0,45271973
7 2,84722222 -0,30531443 -1,02289497 0,26024028
8 2,6641047 -0,3766276 -0,94085166 0,21295234
9 2,65873963 -0,46501455 -1,02228763 0,12030317
10 2,74365109 -0,43965758 -1,06782237 0,09963104
11 2,75373997 -0,39617552 -1,03391602 0,05605458
12 2,71504577 -0,40411467 -1,00965276 0,04635706
13 2,70688372 -0,42510049 -1,02329589 0,02632791
14 2,72419819 -0,42327346 -1,03582932 0,02145264
15 2,72955139 -0,41332416 -1,03058718 0,01245493
16 2,72195567 -0,41328714 -1,02427423 0,00987672 Solución
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
r=input(’Ingrese el numero de ecuaciones: ’);
A=input(’Ingrese la matriz A: ’);
b=input(’Ingrese la matriz b: ’);
X0=zeros(1,r);
K=0; Norma=1;
fprintf(’K X(1) X(2) X(3) X(4) Normann’)
while Norma>0.0001
K=K+1;
fprintf(’%2d’,K)
for i=1:r
suma=0;
for j=1:r
if i ~=j
suma=suma+A(i,j)*X0(j);
end
end
X(i)=(b(i)-suma)/A(i,i);
fprintf(’%10.4f’,X(i))
end
Norma=norm(X0-X);
fprintf(’%10.4fnn’,Norma)
X0=X;
if K>25
dis(’No se alcanzo la convergencia’)
break
end
end
3.3. MÉTODOS ITERATIVOS 83
if retchoose==1
MENU
end
if retchoose==0
end
84 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
3.3. MÉTODOS ITERATIVOS 85
A=L+D+R
donde L es una matriz triangular inferior, D es la matriz diagonal formada por los
elementos de A y R es una matriz triangular superior. Entonces
(L + D + R)x = b
(L + D) x = b Rx S{ dii 6= 0
1
x = (L + D) (b Rx)
1 1 1
x = (L + D) b (L + D) Rx si D existe
entonces a partir de un vector inicial x0 2 Rn , se tiene la siguiente iteración de
punto …jo
1 1
xk+1 = (L + D) b (L + D) Rxk k = 0; 1; :::; n
x1 + 3x2 + x3 = 5
x1 + 2x2 4x3 =6
86 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
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 )
i x1 x2 x3 Error Solución
0 0 0 0
1 2 -1 -1,5 2,6925824
2 3,25 -0,08333333 -0,72916667 1,73117353
3 2,40625 -0,62152778 -1,20920139 1,10995525
4 2,91536458 -0,29181134 -0,91706453 0,67324181
5 2,60443793 -0,49283251 -1,09530677 0,41091993
6 2,79406964 -0,37020786 -0,98658652 0,25063337
7 2,67839719 -0,44500543 -1,05290342 0,1528814
8 2,74895442 -0,39938072 -1,01245175 0,09325382
9 2,70591624 -0,42721067 -1,03712628 0,05688254
10 2,73216847 -0,41023508 -1,02207542 0,03469695
11 2,71615525 -0,42058977 -1,03125607 0,02116429
12 2,72592292 -0,41427367 -1,0256561 0,0129097
13 2,71996489 -0,41812634 -1,02907195 0,0078746 Solución
if retchoose==1
MENU
end
if retchoose==0
end
3.3. MÉTODOS ITERATIVOS 89
90 CAPÍTULO 3. SISTEMAS DE ECUACIONES LINEALES.
converge si y s;olo si
En este capítulo se estudia las tecnicas que permitan resolver sistemas de ecuaciones
no lineales, f (x) = 0; se utilizaran sistemas de dos ecuaciones no lineales con dos
incognitas, lo cual no implica la perdida de generalidad y a cambio permite realizar
los cálculos de manera más agil. entre los métodos a estudiar tenemos el método
de punto …jo multivariable y el método de Newton Raphson.[7]
Resolver.
f1 (x; y) = x2 10x + y 2 + 8 = 0
(4.1)
f2 (x; y) = xy 2 + x 10y + 8 = 0
91
92 CAPÍTULO 4. SISTEMAS DE ECUACIONES NO LINEALES.
2
k+1 k k
xk + (y k )2 + 8
x = g1 (x ; y ) =
10
2 (4.2)
k+1 k+1 k
xk+1 y k + xk+1 + 8
y = g2 (x ;y ) =
10
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,
Sea
xk+1 xk = h
(4.5)
k+1 k
y y =j
@f1 @f1
h+ j= f1
@x @y
(4.6)
@f2 @f2
h+ j= f2
@x @y
xk+1 = xk + h
(4.8)
k+1 k
y =y +j
%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];
y1=y0+hj(2);
Aproximación funcional e
interpolación
P untos 0 1 2 3 4 5 6 (5.1)
T (o C) 56;5 78;6 113 144;5 181 205 214;5
P (atm) 1 2 5 10 20 30 40
97
98 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
P untos 0 1 2 3 (5.2)
T (o C) 56;5 113 181 214;5
P (atm) 1 5 20 40
Supongase que sólo se dispusiera de la segunda tabla y se desea calcular la temper-
atura de ebullición de la acetona a 2 atm de presión.
Supongamos que contamos solo con los puntos 0; 2; 4; 6 de la tabla [5.3] y se desea
calcular la presión de vapor a 950 C.
Solución ( Para dos puntos experimentales) Una forma de resolver este proble-
ma sería sustituir los puntos (0) y (2) en la ecuación de la línea recta P (T ) = a0 +a1 T
donde se desconoce a0 y a1 : Se plantea entonces la solución de un sistema de dos
ecuaciones lineales con dos incognitas el cual resulta de sustituir los puntos P0 y P2
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 99
obtetiendose,
10 = P (930) = a0 + a1 930
20 = P (988) = a0 + a1 988
Las soluciones para el polinomio de la forma P (T ) = a0 + a1 T son: a1 = 0;1724 y
a0 = 150;3448:
Esta ecuación puede emplearse para aproximar la presión cuando la temperatura es
conocida.
Solución ( Para tres puntos experimentales) Una forma de resolver este prob-
lema sería sustituir los puntos (0), (2) y (4); ( No importa cuales puntos utilice ) en
la ecuación del polinomio de grado dos P (T ) = a0 + a1 T + a2 T 2 donde se desconoce
a0 , a1 y a2 . Se plantea entonces la solución de un sistema de tres ecuaciones lineales
con tres incognitas el cual resulta de sustituir los puntos P0 ,P2 y P4 obtetiendose,
Pn (x) = a0 + a1 x + a2 x2 + ::: + an xn
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’APROXIMACION POLINOMIAL SIMPLE ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’BIENVENIDO’);
puntos=input(’PORFAVOR, INGRESE EL NUMERO DE PUNTOS CON LOS
QUE DESEA TRABAJAR ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
if puntos==0
disp(’Lo sentimos, el metodo requiere la presencia de al menos dos puntos’)
end
if puntos==1
disp(’Lo sentimos, el metodo requiere la presencia de al menos dos puntos’)
end
%PARA DOS PUNTOS
if puntos==2
a12=input(’PORFAVOR, INGRESE EL PRIMER TERMINO (x1) ’);
a22=input(’PORFAVOR, INGRESE EL SEGUNDO TERMINO (x2) ’);
A=[1 a12 ; 1 a22];
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 101
B(3,1) = B(3,1)-((A(3,2))/(A(2,2)))*B(2,:);
A(3,:) = A(3,:)-((A(3,2))/(A(2,2)))*A(2,:);
Amp=[A,B]
disp(’......................................................’);
disp(’Las soluciones para el polinomio de la forma P(x)= a0+ a1(x)+ a2(x^2) son:
’);
a2=(B(3,1))/(A(3,3))
a1=(((B(2,1))-((A(2,3))*a2))/(A(2,2)))
a0=((B(1,1)-((A(1,3))*a2)-((A(1,2))*a1))/(A(1,1)))
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
hallarp=input(’¿Desea calcular algun P(xi) particular? (Marque 1=SI o 0=NO) ’);
if hallarp==1
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
xi=input(’Porfavor, ingrese el punto a evaluar (xi): ’);
P(xi)=a0+(a1*(xi))+(a2*(xi^2));
P(xi)
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 103
end
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
end
%PARA CUATRO PUNTOS
if puntos==4
a12=input(’PORFAVOR, INGRESE EL PRIMER TERMINO (x1) ’);
a22=input(’PORFAVOR, INGRESE EL SEGUNDO TERMINO (x2) ’);
a32=input(’PORFAVOR, INGRESE EL TERCER TERMINO (x3) ’);
a42=input(’PORFAVOR, INGRESE EL CUARTO TERMINO (x4) ’);
A=[1 a12 (a12)^2 (a12)^3; 1 a22 (a22)^2 (a22)^3; 1 a32 (a32)^2 (a32)^3; 1 a42
(a42)^2 (a42)^3];
b1=input(’PORFAVOR, INGRESE f(x1) ’);
b2=input(’PORFAVOR, INGRESE f(x2) ’);
b3=input(’PORFAVOR, INGRESE f(x3) ’);
b4=input(’PORFAVOR, INGRESE f(x4) ’);
B=[b1;b2;b3;b4];
Amp=[A,B]
B(4,1) = B(4,1)-(((A(4,1))/(A(1,1))))*(B(1,1));
A(4,:) = A(4,:)-(((A(4,1))/(A(1,1))))*(A(1,:));
B(3,1) = B(3,1)-(((A(3,1))/(A(1,1))))*(B(1,1));
A(3,:) = A(3,:)-(((A(3,1))/(A(1,1))))*(A(1,:));
B(2,:) = B(2,1)-(((A(2,1))/(A(1,1))))*(B(1,1));
A(2,:) = A(2,:)-(((A(2,1))/(A(1,1))))*(A(1,:));
Amp=[A,B]
104 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
disp(’......................................................’);
B(4,1) = B(4,1)-(((A(4,2))/(A(3,2))))*B(3,1);
A(4,:) = A(4,:)-(((A(4,2))/(A(3,2))))*A(3,:);
B(3,1) = B(3,1)-(((A(3,2))/(A(2,2))))*B(2,1);
A(3,:) = A(3,:)-(((A(3,2))/(A(2,2))))*A(2,:);
Amp=[A,B]
disp(’......................................................’);
B(4,1) = B(4,1)-((A(4,3))/(A(3,3)))*B(3,1);
A(4,:) = A(4,:)-((A(4,3))/(A(3,3)))*A(3,:);
Amp=[A,B]
disp(’......................................................’);
disp(’Las soluciones del polinomio de la forma P(x)= a0+ a1(x)+ a2(x^2)+ a3(x^3)
son: ’);
a3=(B(4,1))/(A(4,4))
a2=((B(3,1))-((A(3,4))*a3))/(A(3,3))
a1=((B(2,1))-((A(2,4))*a3)-((A(2,3))*a2))/(A(2,2))
a0=((B(1,1)-((A(1,4))*a3)-((A(1,3))*a2))-((A(1,2))*a1))/(A(1,1))
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
hallarp=input(’¿Desea calcular algun P(xi) particular? (Marque 1=SI o 0=NO) ’);
if hallarp==1
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
xi=input(’Porfavor, ingrese el punto a evaluar (xi): ’);
P(xi)=a0+(a1*(xi))+(a2*(xi^2))+((a3*(xi^3)));
P(xi)
end
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 105
B=[b1;b2;b3;b4;b5];
Amp=[A,B]
B(5,1) = B(5,1)-(((A(5,1))/(A(1,1))))*(B(1,1));
A(5,:) = A(5,:)-(((A(5,1))/(A(1,1))))*(A(1,:));
B(4,1) = B(4,1)-(((A(4,1))/(A(1,1))))*(B(1,1));
A(4,:) = A(4,:)-(((A(4,1))/(A(1,1))))*(A(1,:));
B(3,1) = B(3,1)-(((A(3,1))/(A(1,1))))*(B(1,1));
A(3,:) = A(3,:)-(((A(3,1))/(A(1,1))))*(A(1,:));
B(2,:) = B(2,1)-(((A(2,1))/(A(1,1))))*(B(1,1));
106 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
A(2,:) = A(2,:)-(((A(2,1))/(A(1,1))))*(A(1,:));
Amp=[A,B]
disp(’......................................................’);
B(5,1) = B(5,1)-(((A(5,2))/(A(4,2))))*B(4,1);
A(5,:) = A(5,:)-(((A(5,2))/(A(4,2))))*A(4,:);
B(4,1) = B(4,1)-(((A(4,2))/(A(3,2))))*B(3,1);
A(4,:) = A(4,:)-(((A(4,2))/(A(3,2))))*A(3,:);
B(3,1) = B(3,1)-(((A(3,2))/(A(2,2))))*B(2,1);
A(3,:) = A(3,:)-(((A(3,2))/(A(2,2))))*A(2,:);
Amp=[A,B]
disp(’......................................................’);
B(5,1) = B(5,1)-((A(5,3))/(A(4,3)))*B(4,1);
A(5,:) = A(5,:)-((A(5,3))/(A(4,3)))*A(4,:);
B(4,1) = B(4,1)-((A(4,3))/(A(3,3)))*B(3,1);
A(4,:) = A(4,:)-((A(4,3))/(A(3,3)))*A(3,:);
Amp=[A,B]
disp(’......................................................’);
B(5,1) = B(5,1)-((A(5,4))/(A(4,4)))*B(4,1);
A(5,:) = A(5,:)-((A(5,4))/(A(4,4)))*A(4,:);
Amp=[A,B]
disp(’......................................................’);
disp(’Las soluciones del polinomio de la forma P(x)= a0+ a1(x)+ a2(x^2)+ a3(x^3)+
a4(x^4) son: ’);
a4=(B(5,1))/(A(5,5))
a3=((B(4,1))-((A(4,5))*a4))/(A(4,4))
a2=((B(3,1))-((A(3,5))*a4)-((A(3,4))*a3))/(A(3,3))
a1=((B(2,1))-((A(2,5))*a4)-((A(2,4))*a3)-((A(2,3))*a2))/(A(2,2))
a0=((B(1,1))-((A(1,5))*a4)-((A(1,4))*a3)-((A(1,3))*a2)-((A(1,2))*a1))/(A(1,1))
5.1. APROXIMACIÓN POLINOMIAL SIMPLE E INTERPOLACIÓN 107
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
if hallarp==1
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
P(xi)=a0+(a1*(xi))+(a2*(xi^2))+((a3*(xi^3)))+(a4*(xi^4));
P(xi);
end
end
if retchoose==1
MENU
end
if retchoose==0
end
Ejemplo 5.7 Construir el polinomio de Lagrange de grado tres para la tabla [5.3]
con los puntos (0) ; (1) (2) ; (3) :
donde
(x x1 ) (x x2 ) (x x3 ) (x 988) (x 1050) (x 1088)
L0 (x) = = ;
(x0 x1 ) (x0 x2 ) (x0 x3 ) (930 988) (930 1050) (930 1088)
: así
1
L0 (x) (x 988) (x 1050) (x 1088)
1099 680
112 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
1
L1 (x) = (x 930) (x 1050) (x 1088)
359 600
(x x0 ) (x x1 ) (x x3 ) (x 930) (x 988) (x 1088)
L2 (x) = = ;
(x2 x0 ) (x2 x1 ) (x2 x3 ) (1050 930) (1050 988) (1050 1088)
:
1
L2 (x) = (x 930) (x 988) (x 1088)
282 720
y
(x x0 ) (x x1 ) (x x2 ) (x 930) (x 988) (x 1050)
L3 (x) = = ;
(x3 x0 ) (x3 x1 ) (x3 x2 ) (1088 930) (1088 988) (1088 1050)
:
1
L3 (x) = (x 930) (x 988) (x 1050)
600 400
El polinomio de Lagrange es
367048647864051 243423845357663 2 217456600519417 261117814077185
p(x) = x3 x+ x
73786976294838206464 18014398509481984 17592186044416 68719476736
Algoritmo 5.8 function [C,L]=lagrange(X,Y)disp(’— — — — — — — — — — — — —
— — — — — — — — — — — ’);
cln=input(’¿Desea limpiar la pantalla? (Digite 1=Si; 0=NO) ’);
if cln==1
clc;
end
fprintf(’nn’);
fprintf(’UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAnn’);
fprintf(’PROYECTO DE PRIMER NOMBRAMIENTOnn’);
fprintf(’GUIA PRACTICA DE METODOS NUMÉRICOSnn’);
fprintf(’ALEXIS FAVIAN MALPICA VEGAnn’);
5.2. POLINOMIOS DE LAGRANGE 113
fprintf(’nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’POLINOMIO DE LAGRANGE ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’BIENVENIDO’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
fprintf(’PORFAVOR, INGRESE LOS VALORES DE ENTRADA (xi): nn’);
X=input(’Hagalo en forma de vectorial (Ej.: [-1 1 2]):nn’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
fprintf(’PORFAVOR, INGRESE LOS VALORES DE SALIDA (f(xi)): nn’);
Y=input(’Hagalo en forma de vectorial (Ej.: [1 4 2]):nn ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
%coe…cientes de Lagrange
w=length(X);
n=w-1;
L=zeros(w,w);
% Formación de los polinomios coe…cientes de Lagrange
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
end
%Calculo de los coe…cientes del polinomio interpolador de Lagrange
C=Y*L;
114 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
%syms x
pretty(poly2sym(C))
x=-5:0.001:5;
p=polyval(C,x);
plot(x,p,’-’,x,p,’*’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
disp(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
if retchoose==1
MENU
end
if retchoose==0
end
5.2. POLINOMIOS DE LAGRANGE 115
116 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
x x0 x1 x2 ::: xn
y que pasa por los puntos (0) ; (1) (2) ; :::; (n) los coe…cientes a0 ; a1 ; a2 ; :::; an están
dados por
a0 = f [x0 ]
a1 = f [x0 ; x1 ]
a2 = f [x0 ; x1 ; x2 ]
:
:
an = f [x0 ; x1 ; :::; xn]
donde f [x0 ] ; f [x0 ; x1 ] ; :::; f [x0 ; x1 ; :::; xn] : son diferencias divididas.
x4 f [x4 ]
(Tabla general de diferencias divididas)
P untos 0 1 2 3 4 (5.5)
e 40 60 80 100 120
donde e son los volts y p los kilowats en una curva de pérdida en el núcleo para un
motor eléctrico:
Solución
5.3. POLINOMIOS DE NEWTON. 119
1.
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
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(’— — — — — — — — — — — — — — — — — — — — — — — — — ’);
else
clear;
diferencias;
end
if retchoose==1
MENU
end
if retchoose==0
end
122 CAPÍTULO 5. APROXIMACIÓN FUNCIONAL E INTERPOLACIÓN
Capítulo 6
Integración Numérica
Z Z Z
x2 sin x
e dx x
dx ecos x
123
124 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA
f (xk ) + f (xk+1 )
= (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
Z b
h
f (x)dx = [f (a) + f (b)]
a 2
El error total es
N b a
ET = h3 f ii ( ) = h2 f ii ( ) 2 (a; b)
12 12
N ii N b a
jET j = h3 f ( ) h3 L = h3 L
12 12 12
b a
recuerde que h =
N
En el caso de la regla simple de los Trapecios, tenemos que h = b ay
h3 00
ET = f ( ) para algún 2 (a; b)
12
Z 2
1
Ejemplo 6.1 Use la regla de los Trapecios con N = 65, para estimar I = dx.
1 x
Solución Utilizando el algoritmo del método de los trapecios
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
N b a iv
ET = h5 f iv ( ) = h4 f ( ) 2 (a; b)
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.
1
Solución Utilizando el algoritmo del método de Simpson con a = 0; b =
3
6.2. REGLA DE SIMPSON 1/3 129
3
; m = 3 se obtiene el siguiente resultado,
130 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA
De la misma forma que se obtuvieron las regla de los Trapecios y la regla de Simpson
1
, se puede interpolar la función f en cada subintervalo [xk ; xk+3 ] , k = 0; 3; :::; N 3
3
(lo que requiere que N sea un entero positivo múltiplo de 3, es decir, N = 3m, m
un entero positivo), mediante un polinomio de interpolación de Lagrange de grado
menor o igual que tres, pk (x) , usando los nodos xk ; xk+1 ; xk+2 ; xk+3 :
Es decir
2 3
Z b
N
X
3
3 N
X
3
3 N
X
3
3
3h 4
f (x)dx ' f (a) + f (b) + 3 f (x3k+1 ) + 3 f (x3k+2 ) + 2 f (x3k )5
a 8 k=0 k=0 k=1
Z b
b a 2a + b a + 2b
f (x)dx ' f (a) + 3f ( ) + 3f ( ) + f (b)
a 8 3 3
6.3. REGLA DE SIMPSON 3/8 131
3
fórmula que se conoce como regla simple de Simpson :
8
Entonces el error total es
N b a
ET = h5 f iv ( ) = h4 f iv ( ) 2 (a; b)
80 80
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
end
end
end
end
suma=suma+sumav;
integral=(3*h/8)*suma;
t0=feval(f,x(1));
t1=feval(f,x(2));
t2=feval(f,x(3));
t3=feval(f,x(4));
t4=feval(f,x(5));
f4=(t4-(4*t3)+(6*t2)-(4*t1)+t0)/(h^4);
error=-((b-a)/80)*(h^4)*f4;
integral=integral+error
retchoose=input(’¿Desea volver al menu de seleccion? (1=Si; 0=No) ’);
if retchoose==1
MENU
end
if retchoose==0
disp(’GRACIAS POR UTILIZAR LA APLICACION’);
end
Z
3
Ejemplo 6.6 Use la regla de Simpson 3/8 con N = 6, para estimar I = sin2 xdx.
0
3
Solución Utilizando el algoritmo del método de Simpson con a = 0; b =
8
134 CAPÍTULO 6. INTEGRACIÓN NUMÉRICA
3
; N = 6 se obtiene el siguiente resultado
Bibliografía
[4] MATLAB, The lenguaje of technical computing, Getting started with Matlab,
Versión 5. The Math Works Inc.
[8] SANCHEZ. Juan Miguel, SOUTO, Antonio. Problemas de cálculo numérico para
ingenieros con aplicaciones Matlab. Mc Graw Hill. Madrid. 2005.
135