Numérico
Intensivo 2010
Índice
Índice ................................................... 3
INTERPOLACION ........................................... 31
INTERPOLACION: ...................................... 32
INTERPOLACION LINEAL ................................ 32
Interpolación polinómica. ........................... 33
Mínimos Cuadrados ................................... 35
Interpolación de LaGrange ........................... 36
Interpolación de Newton ............................. 37
Trazadores cúbicos (Splines) ........................ 38
Raíces de Ecuaciones .................................... 46
Raíces de Ecuaciones .................................. 47
Método de la bisección .............................. 50
Algoritmo Método de la bisección: .................. 51
Método de la Falsa Posición ......................... 51
Algoritmo Método falsa posición: .................. 52
Regla falsa Modificada .............................. 53
Algoritmo Regula Falsi Modificada: ................. 53
Método Newton ....................................... 56
Algoritmo Método de Newton: ....................... 60
Método de la Secante ................................ 60
Algoritmo Método de la Secante: .................... 60
Punto Fijo .......................................... 61
Algoritmo Punto Fijo: .............................. 61
ECUACIONES LINEALES ..................................... 65
ECUACIONES LINEALES ................................... 66
Eliminación hacia adelante ......................... 68
Sustitución hacia atrás ............................ 71
Algoritmo de Gauss aplicado al determinante de una
matriz ............................................. 72
METODO GAUSS - JORDAN ............................... 72
La inversa por el método Gauss Jordan .............. 77
Método de Gauss Seidel ............................. 83
DESCOMPOSICIÓN LU ................................... 84
Integración ............................................. 90
Fórmula de Trapecios .................................. 91
Ing. Sergio Velásquez
Análisis Numérico.
Introducción
Ing. Sergio Velásquez
Análisis Numérico.
Introducción
6
Ing. Sergio Velásquez
Análisis Numérico.
Errores
7
Ing. Sergio Velásquez
Análisis Numérico.
Errores
8
Ing. Sergio Velásquez
Análisis Numérico.
9
Ing. Sergio Velásquez
Análisis Numérico.
10
Ing. Sergio Velásquez
Análisis Numérico.
Definiciones
Ahora que disponemos de una idea correcta de qué es el
error y de cuál es su origen, podemos formalizar el
concepto de error. Generalmente, no conocemos el valor de
una cierta magnitud y hemos de conformarnos con un valor
aproximado x. Para estimar la magnitud de este error
necesitamos dos definiciones básicas:
Error absoluto
de x:
( )= Ec. 1.
Error relativo
de x:
( )
( )= ; ( 0) Ec. 2.
o bien:
| ( )| ( ) Ec. 5.
Dígitos significativos
11
Ing. Sergio Velásquez
Análisis Numérico.
Ejemplo 1:
y no la siguiente:
(3) = 35.478
1
= |35.47846 35.479| = 5.4 10 10
2
= 1 10 Ec. 9.
12
Ing. Sergio Velásquez
Análisis Numérico.
Solución:
(4) = 35.4784
= |35.47846 35.4784| = 6.0 10 1 10
(3) = 35.478
= |35.47846 35.478| = 4.6 10 1 10
Propagación de errores
( ) ( )+ ( 2) Ec. 13.
2
( ) = | ( )| ( ) Ec. 14.
13
Ing. Sergio Velásquez
Análisis Numérico.
( )= ( , 2, … . . , ) ( ) Ec. 15.
Ejemplo 3:
( )= 2 ( )+ 2 ( )
, 2 , 2
( )= ( )+ 2 , , ( )
14
Ing. Sergio Velásquez
Análisis Numérico.
= 1000 ( ) = 0.002
1 ( )
= =1 ( )= ( )
=0 ( ) ( ) ( )=2 ( )
= (10 ) = 10 ( ) ( ) ( )=2 ( )
=( ) 5 ( ) ( )+5 ( ) = 7 ( )
= (2 ) =1 ( ) 2 ( ) + 2 ( ) + 4 ( ) + 4 ( ) = 12 ( )
50 ( ) ( ) ( ) = 80 ( )
= 50 ( ) ( )
( )= + = 680 ( )
50.00 ± 0.10
15
Ing. Sergio Velásquez
Análisis Numérico.
Aritmética de computadores
16
Ing. Sergio Velásquez
Análisis Numérico.
732.5051 = 0.7325051 10
0.005612 = 0.5612 10
17
Ing. Sergio Velásquez
Análisis Numérico.
=± ×2 Ec. 18.
donde m es un entero.
El número q se denomina mantisa y el
entero m exponente.
En un ordenador binario tanto q como m estarán
representados como números en base 2.
Puesto que la mantisa q está normalizada, en la
representación binaria empleada se cumplirá que:
1 Ec. 19.
| | 1
2
18
Ing. Sergio Velásquez
Análisis Numérico.
19
Ing. Sergio Velásquez
Análisis Numérico.
Ejemplo 5:
Suponga un ordenador cuya notación de punto fijo
consiste en palabras de longitud 32 bits repartidas del
siguiente modo: 1 bit para el signo, 15 bits para la parte
entera y 16 bits para la parte fraccionaria. Represente
los números 26.32, 1234 × 10 y 12542.29301 en base 2
empleando esta notación de punto fijo y notación de punto
flotante con 32 bits. Calcule el error de almacenamiento
cometido en cada caso.
Solución:
El número 26.32 en binario se escribe del siguiente
modo:
26.32 = 11010. 01010001111010111000
20
Ing. Sergio Velásquez
Análisis Numérico.
= 0 0000000000.00000000000001000; ( ) = 1.1 × 10
1.234 × 10
= 0 01110100 10000001011001001110111; ( ) = 1.7 × 10
12542.29301 = 0 011000011111110.0100101100000010; ( ) = 9 × 10
= 0 1000111011000011111110010010110 ; ( ) = 3 × 10
es .
21
Ing. Sergio Velásquez
Análisis Numérico.
22
Ing. Sergio Velásquez
Análisis Numérico.
= (1 + ) | | 2
23
Ing. Sergio Velásquez
Análisis Numérico.
| ( ) | 1
× 10
3
( ) 2 <2
24
Ing. Sergio Velásquez
Análisis Numérico.
Multiplicación.
La operación de multiplicar dos números expresados en
punto flotante implica sumar los exponentes y multiplicar
las mantisas.
Si la mantisa resultante no está normalizada, se
recurre a renormalizar el resultado ajustando adecuadamente
el exponente.
Después, es necesario redondear la mantisa a p bits.
Para analizar el error de esta operación supongamos dos
números:
= 2 ; = 2
25
Ing. Sergio Velásquez
Análisis Numérico.
= 1+
División.
Para llevar a cabo la división en punto flotante, se
divide la mitad de la mantisa del numerador por la mantisa
del denominador (para evitar cocientes mayores de la
unidad), mientras que los exponentes se restan. Esto es:
26
Ing. Sergio Velásquez
Análisis Numérico.
/2 +1
= 2
1
<1
4 2
1
/2 + 2 /2
( / )= 2
1 1
/ 2 > /2
2 4
1
1+ /2
/2 2
= / 2
1 1
1+ > /2
2 4
= 1+
Adición y sustracción.
La operación de suma o resta se realiza del siguiente
modo: se toma la mantisa del operando de menor magnitud
(supongamos que es y) y se desplaza fx - fy posiciones a la
derecha. La mantisa resultante es sumada (o restada) y el
resultado se normaliza y después se redondea. Es decir:
= 2 2
27
Ing. Sergio Velásquez
Análisis Numérico.
28
Ing. Sergio Velásquez
Análisis Numérico.
= Ec. 24.
±
29
Ing. Sergio Velásquez
Análisis Numérico.
30
Ing. Sergio Velásquez
Análisis Numérico.
INTERPOLACION
31
Ing. Sergio Velásquez
Análisis Numérico.
INTERPOLACION:
INTERPOLACION LINEAL
Es la fórmula más simple de interpolación y consiste en
conectar dos puntos con un polinomio de grado uno (una
línea recta), es decir se ajusta una línea a dos puntos
datos.
y
f(a)
y=f(x)
y=g(x)
f(b)
a b x
Figura 2. Interpolación lineal
32
Ing. Sergio Velásquez
Análisis Numérico.
= ( )+ ( ) Ec. 28.
+
Ejemplo:
La corriente directa a través de un diodo está dada en
función de la temperatura en la siguiente tabla, es de
interés conocer la corriente para 33 ºC.
T (ºC) 25 30 35 40
Id (A) 0.20059939 0.16076958 0.12977740 0.10547891
Tabla 1. corriente directa a través de un diodo
En Matlab:
T=[25 30 35 40];
Id=[0.20059939 0.16076958 0.12977740 0.10547891];
Tx=33;
Idx=(T(3)-Tx)*Id(2)/(T(3)-T(2))+(Tx-T(2))*Id(3)/(T(3)-T(2))
Idx =
0.14217428
O de otra manera:
Idx=interp1(Tx, Id, T, 'linear')
Idx =
0.14217428
INTERPOLACIÓN POLINÓMICA.
En este caso se ajustan los n puntos a un único
polinomio cuyo grado es n - 1, si se considera el polinomio
de grado 1 se estará aplicando la interpolación lineal,
33
Ing. Sergio Velásquez
Análisis Numérico.
este polinomio proporciona una fórmula para calcular los
valores intermedios.
Supongamos que tenemos n puntos de datos:
x1 x2 .... xn
y1 y2 .... yn
Tabla 2. Tabla de datos
El polinomio de orden n - 1 que pasa por los n puntos
será de la forma:
g(x) = a X + a X + a X + … … . . +a Ec. 29.
Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No. 1, para un polinomio de grado 3:
» x(1,:)=[T(1)^3 T(1)^2 T(1)^1 T(1)^0];
» x(2,:)=[T(2)^3 T(2)^2 T(2)^1 T(2)^0];
» x(3,:)=[T(3)^3 T(3)^2 T(3)^1 T(3)^0];
» x(4,:)=[T(4)^3 T(4)^2 T(4)^1 T(4)^0];
polinomio=(x\Id')';
Idx=polyval(polinomio,Tx)
Idx =
0.14125097
O de otra manera
polinomio=polyfit(T,Id,3)
Idx= polyval(polinomio,Tx)
Idx =
0.14125097
34
Ing. Sergio Velásquez
Análisis Numérico.
MÍNIMOS CUADRADOS
En este caso se ajustan los n puntos a un polinomio
cuyo grado puede variar entre 1 y n - 1, si se considera el
polinomio de grado 1 se estará aplicando la interpolación
lineal. Supóngase el siguiente polinomio:
f(x) = a X + a X + a X + … … . . +a
Como el polinomio no puede ajustarse a todos los
puntos, este se determina minimizando entre el polinomio y
los datos, la desviación del polinomio respecto de los
puntos esta definida por:
ri =yi – f(xi) Ec. 30.
R= r Ec. 31.
x a = x y Ec. 33.
n n n n
x i2(n 1)
x i2(n 1) 1
x ni 1
x ni 1y i
i 1 i 1 i 1 a1 i 1
n n n
x i2( n 1) 1
x ni 2 a2 x ni 2 y i
i 1 i 1
: i 1
: : :
n n an 1
n
x ni 1
x i0 yi
i 1 i 1 i 1
35
Ing. Sergio Velásquez
Análisis Numérico.
Resolviendo el sistema se obtienen los coeficientes del
polinomio y luego se evalúa para obtener el valor buscado
Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No. 1, para un polinomio de grado 3:
Idx =
0.1413
INTERPOLACIÓN DE LAGRANGE
La fórmula de interpolación de LaGrange de orden n
será:
36
Ing. Sergio Velásquez
Análisis Numérico.
En donde:
(x x )(x x ) … (x x ) (x x)
h (x) = = Ec. 35.
(x x )(x x ) … (x x ) (x x)
,
Ejemplo
Calcular el valor de Id usando los datos del ejemplo No
k=(Tx-T(1))*(Tx-T(2))*(Tx-T(3))*(Tx-T(4));
h(1)=k/(T(1)-T(2))/(T(1)-T(3))/(T(1)-T(4))/(Tx-T(1));
h(2)=k/(T(2)-T(1))/(T(2)-T(3))/(T(2)-T(4))/(Tx-T(2));
h(3)=k/(T(3)-T(1))/(T(3)-T(2))/(T(3)-T(4))/(Tx-T(3));
h(4)=k/(T(4)-T(1))/(T(4)-T(2))/(T(4)-T(3))/(Tx-T(4));
Idx=sum(h.*Id)
Idx =
0.14125097
INTERPOLACIÓN DE NEWTON
Si se tienen n pares de datos la fórmula para la
interpolación de Newton con diferencias dividas hacia
delante genera el siguiente polinomio de grado n - 1:
37
Ing. Sergio Velásquez
Análisis Numérico.
La coeficientes a(i,j) pertenecen a la matriz de
diferencias divididas que se construye de la siguiente
manera:
f(x2 ) f ( x1 )
0 0
x2 x1
f(x3 ) f(x2 ) a 21 a11
A 0
x3 x2 x 3 x1
f (x 4 ) f (x 3 ) a 31 a 21 a 32 a 22
x4 x3 x4 x2 x 4 x1
Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No.
A(:,1)=[(Id(2)-Id(1))/(T(2)-T(1));
(Id(3)-Id(2))/(T(3)-T(2));
(Id(4)-Id(3))/(T(4)-T(3))];
A(:,2)=[0;(A(2,1)-A(1,1))/(T(3)-T(1));(A(3,1)-A(2,1))/(T(4)-
T(2))];
A(:,3)=[0; 0; (A(3,2)-A(2,2))/(T(4)-T(1))]
A =
-0.00796596122740 0 0
-0.00619843524540 0.00017675259820 0
-0.00485969835570 0.00013387368897 -0.00000285859395
Idx=Id(1)+A(1,1)*(Tx-T(1))+A(2,2)*(Tx-T(1))*(Tx-T(2))+A(3,3)*(Tx-
T(1))*(Tx-T(2))*(Tx-T(3))
Idx =
0.14125097225137
38
Ing. Sergio Velásquez
Análisis Numérico.
Esta técnica se conoce con el nombre de aproximación
polinómica segmentaria.
Obviamente la aproximación más cruda es la
interpolación lineal segmentaria, en la que simplemente se
unen puntos sucesivos del conjunto de datos con una serie
de líneas rectas, pero esto sería una aproximación muy
burda, por lo tanto se usa una aproximación polinómica
entre punto y punto usando un polinomio de grado tres.
Sea hi = xi+1 - xi
Entonces yi e yi +1 vendrán dada por:
yi = di
yi +1 =aihi3 + bihi2 + cihi + di
39
Ing. Sergio Velásquez
Análisis Numérico.
Si introducimos los valores calculados de ai, bi, y di
en la ecuación de yi +1 quedara:
40
Ing. Sergio Velásquez
Análisis Numérico.
S1 y3 y2 y2 y1
h1 2(h1 h2 ) h2 0 0 0 0 S2 h2 h1
y4 y3 y3 y2
0 h2 2(h2 h3 ) h3 0 0 0 S3
h3 h2
0 0 h3 2(h3 h4 ) h4 S4 6 y5 y4 y4 y3
: :
h4 h3
: :
:
0 0 0 0 hn 2 2(hn 2 hn 1 ) hn 1 Sn 1 yn yn 1 yn 1 yn 2
Sn hn 1 hn 2
hn 1 hn 2
Ejemplo
Calcular el valor de Id usando los datos del ejemplo
No:
41
Ing. Sergio Velásquez
Análisis Numérico.
» S=A\y';
» S=[0 s' 0];
» a2=(S(3)-S(2))/(6*h(2));
» b2=S(2)/2;
» c2=(Id(3)-Id(2))/h(2)-(2*h(2)*S(2)+h(2)*S(3))/6;
» d2=Id(2);
» pol=[a2 b2 c2 d2];
» x= Tx-T(2);
» Idx=polyval(pol,x)
Idx =
0.1411
Ejemplos
42
Ing. Sergio Velásquez
Análisis Numérico.
% OBSERVAR TRIDIMENSIONALMENTE LOS DATOS DE LA
% TABLA (zm) VERSUS (X) Y (y)
% 6) SE FIJAN LOS VALORES DE (x) y (y), LOS CUALES
% SE QUIERE INTERPOLAR, EN LA TABLA (zm),
% ESTOS VALORES DEBEN SER UBICADOS EN LAS VARIABLES
% (xi) Y (yi). EN ESTE PUNTO EXISTEN TRES CASOS:
%% CASO 1)
% xi = UN NÚMERO
% yi = UN NÚMERO
%% CASO 2)
% xi = VECTOR DE VARIOS VALORES NÚMERICOS, DE TAMAÑO (1 X a)
% yi = VECTOR DE VARIOS VALORES NÚMERICOS, DE TAMAÑO (1 X b)
%% IMPORTANTE: ESTOS VECTORES DEBEN SER DE IGUAL TAMAÑO O EN SU
% DEFECTO DEBEN SER VECTORES CON DIFERENTES
% ORIENTACIONES, UNO VECTOR COLUMNA Y EL OTRO
% VECTOR FILA
%% CASO 3)
% xi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (a X b)
% yi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (c X d)
%
% IMPORTANTE: EN ESTE CASO, SE DEBEN GENERAR LA MATRICES MALLAS
% (xim) Y (yim) CON LA INSTRUCCIÓN:
% [xim,yim]=meshgrid(xi,yi);
% LA INTERPOLACIÓN SE REALIZA COLUMNA POR COLUMNA
%
%
% 7) SE APLICA LA INSTRUCCIÓN DE INTERPOLACIÓN
% EN DOS DIMENSIONES, SEGÚN:
%% CASO 1) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO: zi = UN NÚMERO
%
% CASO 2) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO:
% zi = UNA MATRIZ, PARA VECTORES DE DIFERENTES TAMAÑOS
% zi = UN VECTOR, PARA VECTORES DE IGUAL TAMAÑO
%%
% CASO 3) zi=interp2(xm,ym,zm,xim,yim)
% RESULTANDO: zi = UNA MATRIZ
%%NOTA:PARA TODOS LOS CASOS SE DEBE ESCOGER EL MÉTODO A UTILIZAR
%% EJEMPLO
%EN ESTE EJEMPLO SE MUESTRA LA DIFERENCIA ENTRE LOS MÉTODOS DE
%INTERPOLACIÓN,
% APLICADOS AL CASO (1)
%% PARA LA TABLA DE VALORES, INTERPOLAR PARA LOS SIGUIENTES
VECTORES
%
% xi = [1:0.5:91] VECTOR DE TAMAÑO (1 x 31)
% yi = [1:0.5:196] VECTOR DE TAMAÑO (66 X 1)
%
% UTILIZANDO TODOS LOS MÉTODOS DE INTERPOLACIÓN
%
% EN ESTE EJEMPLO NO SE MUESTRAN LOS RESULTADOS NUMÉRICOS, YA QUE
LAS
% MATRICES SON MUY GRANDE. SOLO SE MOSTRARÁN LAS GRÁFICAS QUE
ILUSTRAN
% LA INTERPOLACIÓN
close all
clear
clc
43
Ing. Sergio Velásquez
Análisis Numérico.
% TABLA:
zm=[0.1256 0.9551 1.3189 1.1203 0.6148 0.1792
0.0099
1.0178 1.5842 1.5552 1.0463 0.4373 0.0674 -
0.0087
1.6882 1.8680 1.4524 0.7442 0.1644 -0.0591 -
0.0253
1.9906 1.7445 1.0330 0.2799 -0.1442 -0.1728 -
0.0364
1.8591 1.2408 0.3885 -0.2455 -0.4215 -0.2487 -
0.0396
1.3223 0.4666 -0.3408 -0.7173 -0.6069 -0.2705 -
0.0342
0.4973 -0.4093 -0.9957 -1.0328 -0.6600 -0.2333 -
0.0213
-0.4362 -1.1960 -1.4336 -1.1231 -0.5692 -0.1452 -
0.0037
-1.2745 -1.7220 -1.5590 -0.9686 -0.3543 -0.0255
0.0146
-1.8351 -1.8726 -1.3446 -0.6030 -0.0622 0.0998
0.0298
-1.9956 -1.6150 -0.8370 -0.1059 0.2434 0.2033
0.0385
-1.7211 -1.0054 -0.1470 0.4143 0.4960 0.2625
0.0388
-1.0714 -0.1766 0.5750 0.8441 0.6405 0.2645
0.0306
-0.1882 0.6907 1.1717 1.0900 0.6453 0.2088
0.0158];
44
Ing. Sergio Velásquez
Análisis Numérico.
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO NEAREST')
figure
surfl(xim,yim,zil)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO LINEAR')
figure
surfl(xim,yim,zis)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO SPLINE')
figure
surfl(xim,yim,zic)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES INTERPOLADOS')
title('METODO CUBIC')
figure
surfl(xim,yim,zc)
colormap(winter)
xlabel('VALORES DE xi')
ylabel('VALORES DE Yi')
zlabel('VALORES CALCULADOS')
title('CALCULADOS')
45
Ing. Sergio Velásquez
Análisis Numérico.
Raíces de Ecuaciones
46
Ing. Sergio Velásquez
Análisis Numérico.
Raíces de Ecuaciones
47
Ing. Sergio Velásquez
Análisis Numérico.
RLC Respuesta Step
8
Volt en volts
-2
-4
-6
-8
-10
0 0.5 1 1.5 2 2.5
Tempo segs -3
x 10
48
Ing. Sergio Velásquez
Análisis Numérico.
En la tabla anterior se observa 4 cambios de signo para
Vc(t) en el intervalo de t que va de 0 a 0,002 segundos, lo
cual es una evidencia clara de que la ecuación tiene cuatro
raíces en ese intervalo.
+ 64 0.6
0.4
0.2
f(3,5) = -0.0473 0
2.5 3 3.5 4 4.5 5 5.5 6 x
-0.2
f(4,5) = 0.0369
-0.4
-0.6
-0.8
-1
f(5) 1 9
f (7) = 1 7
0
Figura 5.
0 2 4 6 8 10 12 x
49
Ing. Sergio Velásquez
Análisis Numérico.
Se puede observar que no hay cambio de f(x) para x = 5
y x = 7, pero observando la gráfica nos damos cuenta que en
ese intervalo existen dos raíces para esa función.
MÉTODO DE LA BISECCIÓN
f(x)
f(x)
b a f(b)
c a f (a)
f (b) f (a)
f(c) a c p b
f(b) f(a)
y f(a) (c a) f(a)
b a
50
Ing. Sergio Velásquez
Análisis Numérico.
Algoritmo Método de la bisección:
Inicio
Declarar: F(x), a, b, c, error, x
Leer: F(x), a, b, error
Hacer: Mientras (1/2)*|a - b| >= error
Hacer: c = (1/2)*(a + b)
Si F(c)*F(a) < 0 Entonces
Hacer: b = c
Si No
Hacer: a = c
Fin de si
Fin de Mientras
Mostrar: c
Fin
F(b ) f (a ) 0
Un inconveniente de este método es que es de
convergencia lenta, aunque es simple y robusto, además de
fácil de implementar.
51
Ing. Sergio Velásquez
Análisis Numérico.
f(x) f(x)
f(b)
c1 x
c2
a p b
f(a)
Inicio
Declarar: F(x), a, b, c0, c, xd, it, error
Leer: F(x), a, b, error
Hacer: xd = 1+error
Hacer: Mientras xd >=error
Hacer: c0=c
Hacer: c = a + ((b - a) *f(a))/(f(b) - f(a))
xd = |c-c0|
Si F(c)*F(a) < 0 Entonces
Hacer: b = c
Si No
Hacer: a = c
Fin de si
Fin de Mientras
Mostrar: c
Fin
52
Ing. Sergio Velásquez
Análisis Numérico.
REGLA FALSA MODIFICADA
f(x) f(x)
f(b)
f(b)/2
c1 c2 x
a p b
f(a)
53
Ing. Sergio Velásquez
Análisis Numérico.
f(x) f(x)
f(b)
X0 X2 X1 x
f(x)
f(b)
X2
X0
x
X1
54
Ing. Sergio Velásquez
Análisis Numérico.
Según este método, la aproximación a una raíz se
encuentra a partir de la determinación del punto de
intersección con el eje X de la recta que une los puntos
( x0,f(x0)/2) y (x1,f(x1)) si la función es convexa en el
intervalo o bien a partir de la recta que une los puntos
(x0,f(x0)) y (x1, f(x1)/2) si la función es cóncava en el
intervalo. En la figura (10) se representa gráficamente el
método de Hamming.
( )
Inicio
Declarar: F(x), a, b, c, yb, ya, yc, ca, cb, error, c0, xd
Leer: F(x), a, b, error
Hacer: xd = 1+error
Hacer: yb = f(b)
Hacer: ya = f(a)
Hacer: Mientras xd >= error
Hacer: c0 = c
Hacer: c = a + (b - a) *ya/(yb - ya)
hacer: xd = |c – c0|
Hacer: yc = f(c)
Si F(c)*F(a) < 0 Entonces
Hacer: yb = yc
Hacer: b = c
Hacer: cb = cb + 1
55
Ing. Sergio Velásquez
Análisis Numérico.
Hacer: ca = 0
Si cb > 1 entonces Hacer: ya = ya/2
Si No
Hacer: ya = yc
Hacer: a = c
Hacer: ca = ca + 1
Hacer: cb = 0
Si ca > 1 entonces Hacer: yb = yb/2
Fin de si
Fin de Mientras
Mostrar: c
Fin
MÉTODO NEWTON
Dada f(x) como una función continua derivable dos veces
en un intervalo cerrado [a, b] y sea x1 una aproximación
inicial a la solución exacta p de la ecuación f(x)=0 en ese
mismo intervalo.
F(x)
F(x1)
F(x(1))
F(X2)
F(X3)
x
p X3 X2 X1
X1 - X2
56
Ing. Sergio Velásquez
Análisis Numérico.
Este método parte de una aproximación
inicial x0 y obtiene una aproximación mejor, x1, dada
por la fórmula:
Ec. 38.
Ec. 41.
57
Ing. Sergio Velásquez
Análisis Numérico.
F(x)
X1 x
X2 X0
58
Ing. Sergio Velásquez
Análisis Numérico.
F(x)
X1 x
X0
A
F(x)
x
X0 X1
B
59
Ing. Sergio Velásquez
Análisis Numérico.
(figura (13a)) o bien converge hacia un punto que no es un
cero de la ecuación (figura (13b)).
MÉTODO DE LA SECANTE
Un inconveniente del método de Newton es la necesidad
de evaluar la derivada primera de la función, lo cual puede
llegar a resultar engorroso. Una forma de evitar el cálculo
de f'(x) consiste en considerar como aproximación a la
derivada la recta que pasa por los valores de 2 iteraciones
sucesivas. Se comienza el proceso iterativo con dos
aproximaciones iniciales x1 y x2 de la raíz de la ecuación
f(x)=0. La siguiente aproximación x3 se determina por la
intersección de la recta que pase por los puntos (x1,
f(x1)) y (x2, f(x2)) con el eje x, y así sucesivamente.
xn 1 xn 2
xn xn 1 f(xn 1) *
f (x n 1 ) f (x n 2 )
60
Ing. Sergio Velásquez
Análisis Numérico.
Hacer: xd = |X(it+1) – X(it)|
Fin de Mientras
Mostrar: X(it)
Fin
PUNTO FIJO
Dada una función F(x) siempre podrá escribirse de la
forma x = G(x).
Y Y=x
p
G(x2 Y=G(x)
G(x
) 1
)
G(x0
)
x
X1 X2 X3 x
61
Ing. Sergio Velásquez
Análisis Numérico.
Hacer: it = it + 1
Hacer: X(it) = G(x(it - 1))
Hacer: xd = |x(it - 1) - x(it)|
Fin de Mientras
Mostrar; x(it)
Fin
Ejemplo
62
Ing. Sergio Velásquez
Análisis Numérico.
% IMPORTANTE: ESTOS VECTORES DEBEN SER DE IGUAL TAMAÑO O EN SU
% DEFECTO DEBEN SER VECTORES CON DIFERENTES
% ORIENTACIONES, UNO VECTOR COLUMNA Y EL OTRO
% VECTOR FILA
%
% CASO 3)
% xi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (a X b)
% yi = MATRIZ DE VARIOS NÚMEROS, DE TAMAÑO (c X d)
%
% IMPORTANTE: EN ESTE CASO, SE DEBEN GENERAR LA MATRICES MALLAS
% (xim) Y (yim) CON LA INSTRUCCIÓN:
% [xim,yim]=meshgrid(xi,yi);
% LA INTERPOLACIÓN SE REALIZA COLUMNA POR COLUMNA
%
%
% 7) SE APLICA LA INSTRUCCIÓN DE INTERPOLACIÓN
% EN DOS DIMENSIONES, SEGÚN:
%
% CASO 1) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO: zi = UN NÚMERO
%
% CASO 2) zi=interp2(xm,ym,zm,xi,yi)
% RESULTANDO:
% zi = UNA MATRIZ, PARA VECTORES DE DIFERENTES TAMAÑOS
% zi = UN VECTOR, PARA VECTORES DE IGUAL TAMAÑO
%
%
% CASO 3) zi=interp2(xm,ym,zm,xim,yim)
% RESULTANDO: zi = UNA MATRIZ
%
%
% EJEMPLO
%
% EN ESTE EJEMPLO SE ILISTRARÁ EL CASO (1)
%
% PARA LA SIGUIENTE TABLA DE VALORES, INTERPOLAR PARA:
%
% xi = 35
% yi = 50
close all
clear all
clc
% TABLA:
zm=[0.1256 0.9551 1.3189 1.1203 0.6148 0.1792
0.0099
1.0178 1.5842 1.5552 1.0463 0.4373 0.0674 -
0.0087
1.6882 1.8680 1.4524 0.7442 0.1644 -0.0591 -
0.0253
1.9906 1.7445 1.0330 0.2799 -0.1442 -0.1728 -
0.0364
1.8591 1.2408 0.3885 -0.2455 -0.4215 -0.2487 -
0.0396
1.3223 0.4666 -0.3408 -0.7173 -0.6069 -0.2705 -
0.0342
0.4973 -0.4093 -0.9957 -1.0328 -0.6600 -0.2333 -
0.0213
-0.4362 -1.1960 -1.4336 -1.1231 -0.5692 -0.1452 -
0.0037
63
Ing. Sergio Velásquez
Análisis Numérico.
-1.2745 -1.7220 -1.5590 -0.9686 -0.3543 -0.0255
0.0146
-1.8351 -1.8726 -1.3446 -0.6030 -0.0622 0.0998
0.0298
-1.9956 -1.6150 -0.8370 -0.1059 0.2434 0.2033
0.0385
-1.7211 -1.0054 -0.1470 0.4143 0.4960 0.2625
0.0388
-1.0714 -0.1766 0.5750 0.8441 0.6405 0.2645
0.0306
-0.1882 0.6907 1.1717 1.0900 0.6453 0.2088
0.0158];
% VARIABLES (x) Y (y)
x=[ 1,16,31,46,61,76,91];
y=[1,16,31,46,61,76,91,106,121,136,151,166,181,196 ];
[xm,ym]=meshgrid(x,y);
mesh(xm,ym,zm) % GRÁFICA DE LA TABLA VERSUS (x) Y (y)
colormap(jet)
xlabel('VALORES DE X')
ylabel('VALORES DE Y')
zlabel('VALORES DE LA TABLA')
b=-1;
brighten(b)
% VALORES DONDE SE REALIZARÁ LA INTERPOLACIÓN
xi = 35;
yi = 50;
zi=interp2(xm,ym,zm,xi,yi);
% PARA EFECTOS DE COMPARACIÓN, LA TABLA UTILIZADA
% EN LA INTERPOLACIÓN
% FUE GENERADA MEDIANTE LA SIGUIENTE FUNCIÓN:
% zc=sin((xi+yi)*pi/m).*(1+cos((xi)*pi/m));
% POR LO TANTO, ES POSIBLE DETERMINAR
% EL VALOR CALCULADO DE LA FUNCIÓN
% Y COMPARARLO CON EL VALOR INTERPOLADO:
% FUNCIÓN PARA GENERAR LA TABLA
m=100;
zc=sin((xi+yi)*pi/m).*(1+cos((xi)*pi/m));
disp(' ')
disp(' ')
disp(' RESULTADO DE LA INTERPOLACIÓN ')
disp(' ')
fprintf(' VALOR INTERPOLADO zi = %2.6f\n',zi)
disp(' ')
fprintf(' VALOR CALCULADO zc = %2.6f\n',zc)
64
Ing. Sergio Velásquez
Análisis Numérico.
ECUACIONES LINEALES
65
Ing. Sergio Velásquez
Análisis Numérico.
ECUACIONES LINEALES
a 11 a 12 ···· a 1n x1 y1
a 21 a 22 ···· a 2n x2 y2
A : : : X Y
: :
: : : xm ym
a m1 a m 2 ···· a mn
66
Ing. Sergio Velásquez
Análisis Numérico.
el caso de un sistema homogéneo solo existen dos soluciones
posibles: X = 0 (solución trivial) o infinitas soluciones.
a 11 a12 ···· a 1n y1
a 21 a 22 ···· a 2n y2
AY : : : :
: : : :
a m1 a m 2 ···· a mn ym
MÉTODO DE GAUSS
Este es un método de eliminación, que trabaja sobre
sistemas de ecuaciones lineales donde él número de
67
Ing. Sergio Velásquez
Análisis Numérico.
ecuaciones es igual al número de incógnitas, cuyo fin es el
de hallar la matiz incógnita X.
La eliminación de Gauss está constituida por dos pasos:
Eliminación hacia delante y La sustitución hacia atrás.
1 0 0 0
0 1 -1 0
-4 6 30 -24
0 0 -24 36
68
Ing. Sergio Velásquez
Análisis Numérico.
Luego se define la matriz de términos independiente que
se llamara B
>>Y=[15;45;210;180]
15
45
210
180
1 0 0 0 15
0 1 -1 0 45
-4 6 30 -24 210
0 0 -24 36 180
-4 6 30 -24 210
0 1 -1 0 45
1 0 0 0 15
0 0 -24 36 180
69
Ing. Sergio Velásquez
Análisis Numérico.
>>AY(3,:)=AY(3,:)+(1/4)*AY(1,:)
-4 6 30 -24 210
0 1 -1 0 45
0 3/2 15/2 -6 135/2
0 0 -24 36 180
-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 1 -1 0 45
0 0 -24 36 180
-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 0 -6 4 0
0 0 -24 36 180
-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 0 -24 36 180
0 0 -6 4 0
70
Ing. Sergio Velásquez
Análisis Numérico.
A la fila cuatro se le resta la fila tres multiplicada
por un cuarto (F4 = F4 - (1/4)*F3)
>>AY(4,:)=AY(4,:)-(1/4)*AY(3,:)
-4 6 30 -24 210
0 3/2 15/2 -6 135/2
0 0 -24 36 180
0 0 0 -5 -45
:
:
x1 = ( y1 - a1,i xi ) / y1,1
De donde:
A=AY(:,[ 1 2 3 4]);
Y=AY(:,[5]);
x4 = y4/a44 =-45/(-5) = 9
x3 =(y3- a34*x4)/a33 =( 180 – 36*9)/(-24) = 6
x2=(y2-(a24*x4+a23*x3))/a22 =
(135/2-(-6*9+6*(15/2)))/(3/2) = 51
71
Ing. Sergio Velásquez
Análisis Numérico.
x1=(y1-(a14*x4+a13*x3+a12*x2))/a22=
(210-(-24*9+30*6+6*51))/(-4) = 15
1 0 ···· 0 x1
0 1 ···· 0 x2
A : : : :
1
: : : :
0 0 ···· 1 xn
72
Ing. Sergio Velásquez
Análisis Numérico.
forma[I X], donde los Xn representan la solución del
sistema.
>>AY=[A B]
1 0 0 0 15
0 1 -1 0 45
-4 6 30 -24 210
0 0 -24 36 180
>>AUX=AY(1,:);
>>AY(1,:)=AY(3,:);
>>AY(3,:)=AUX;
-4 6 30 -24 210
0 1 -1 0 45
1 0 0 0 15
0 0 -24 36 180
73
Ing. Sergio Velásquez
Análisis Numérico.
>>AY(3,:)=AY(3,:)+(1/4)*AY(1,:);
-4 6 30 -24 210
0 1 -1 0 45
0 3/2 15/2 -6 135/2
0 0 -24 36 180
1 0 0 0 15
0 3/2 15/2 -6 135/2
0 1 -1 0 45
0 0 -24 36 180
74
Ing. Sergio Velásquez
Análisis Numérico.
1 0 0 0 15
0 3/2 15/2 -6 135/2
0 0 -6 4 0
0 0 -24 36 180
1 0 0 0 15
0 1 5 -4 45
0 0 -6 4 0
0 0 -24 36 180
1 0 0 0 15
0 1 5 -4 45
0 0 -24 36 180
0 0 -6 4 0
1 0 0 0 15
0 1 5 -4 45
0 0 -24 36 180
0 0 0 -5 -45
75
Ing. Sergio Velásquez
Análisis Numérico.
1 0 0 0 15
0 1 0 7/2 165/2
0 0 -24 36 180
0 0 0 -5 -45
La fila tres se multiplica por (-1/24) (F3=(-1/24)*F3)
>>AY(3,:)=(-1/24)*AY(3,:)
1 0 0 0 15
0 1 0 7/2 165/2
0 0 1 -3/2 -15/2
0 0 0 -5 -45
1 0 0 0 15
0 1 0 0 51
0 0 1 -3/2 -15/2
0 0 0 -5 -45
1 0 0 0 15
0 1 0 0 51
0 0 1 0 6
0 0 0 -5 -45
1 0 0 0 15
0 1 0 0 51
76
Ing. Sergio Velásquez
Análisis Numérico.
0 0 1 0 6
0 0 0 1 9
X=AY(:,[5]);
1 0 0 0 1 0 0 0
0 1 -1 0 0 1 0 0
-4 6 30 -24 0 0 1 0
0 0 -24 36 0 0 0 1
>>AUX=AU(1,:);
>>AU(1,:)=AU(3,:);
>>AU(3,:)=AUX
-4 6 30 -24 0 0 1 0
0 1 -1 0 0 1 0 0
1 0 0 0 1 0 0 0
0 0 -24 36 0 0 0 1
>>AU(3,:)=AU(3,:)+(1/4)*AU(1,:) ;
-4 6 30 -24 0 0 1 0
0 1 -1 0 0 1 0 0
77
Ing. Sergio Velásquez
Análisis Numérico.
0 3/2 15/2 -6 1 0 1/4 0
0 0 -24 36 0 0 0 1
>>AU(1,:)=(-1/4)*AU(1,:)
1 0 0 0 1 0 0 0
0 3/2 15/2 -6 1 0 1/4 0
0 1 -1 0 0 1 0 0
0 0 -24 36 0 0 0 1
1 0 0 0 1 0 0 0
0 3/2 15/2 -6 1 0 1/4 0
78
Ing. Sergio Velásquez
Análisis Numérico.
0 0 -6 4 -2/3 1 -1/6 0
0 0 -24 36 0 0 0 1
1 0 0 0 1 0 0 0
0 1 5 -4 2/3 0 1/6 0
0 0 -6 4 -2/3 1 -1/6 0
0 0 -24 36 0 0 0 1
1 0 0 0 1 0 0 0
0 1 5 -4 2/3 0 1/6 0
0 0 -24 36 0 0 0 1
0 0 -6 4 -2/3 1 -1/6 0
1 0 0 0 1 0 0 0
0 1 5 -4 2/3 0 1/6 0
0 0 -24 36 0 0 0 1
0 0 0 -5 -2/3 1 -1/6 -1/4
1 0 0 0 1 0 0 0
0 1 0 7/2 2/3 0 1/6 5/24
79
Ing. Sergio Velásquez
Análisis Numérico.
0 0 -24 36 0 0 0 1
0 0 0 -5 -2/3 1 -1/6 -1/4
1 0 0 0 1 0 0 0
0 1 0 7/2 2/3 0 1/6 5/2
0 0 1 -3/2 0 0 0 -1/2
0 0 0 -5 -2/3 1 -1/6 -1/4
1 0 0 0 1 0 0 0
0 1 0 0 1/5 7/10 1/20 1/30
0 0 1 -3/2 0 0 0 -1/24
0 0 0 -5 -2/3 1 -1/6 -1/4
1 0 0 0 1 0 0 0
0 1 0 0 1/5 7/10 1/20 1/30
0 0 1 0 1/5 -3/10 1/20 1/30
0 0 0 -5 -2/3 1 -1/6 -1/4
1 0 0 0 1 0 0 0
0 1 0 0 1/5 7/10 1/20 1/30
0 0 1 0 1/5 -3/10 1/20 1/30
80
Ing. Sergio Velásquez
Análisis Numérico.
0 0 0 1 2/15 -1/5 1/30 1/20
1 0 0 0
1/5 7/10 1/20 1/30
1/5 -3/10 1/20 1/30
2/15 -1/5 1/30 1/20
MÉTODO DE JACOBI
81
Ing. Sergio Velásquez
Análisis Numérico.
iteraciones, entre más cercano sea el valor inicial a valor
real, mas rápido converge a la solución.
Una condición suficiente para que el método de Jacobi
converja es:
N
ai , j a i, j
j 1, j i
para toda i
j 1, j i
X i(t )
a i ,i
X1 - X2 + 0 X3 = 45
6 X1 + 30 X2 - 24 X3 = 210
0 X1 + -24 X2 + 36 X3 = -180
82
Ing. Sergio Velásquez
Análisis Numérico.
i 1 n
1
xi( k ) bi aij x (jk ) aij x (jk 1)
aii j 1 j i 1
83
Ing. Sergio Velásquez
Análisis Numérico.
x( j 1)
x( j)
M máx
1 j k x ( j) x( j 1)
X1 = X2 + 45
X2 = - (6/30) X1 + (24/30) X3 + (210/30)
X3 = (24/36) X2 -(180/36)
DESCOMPOSICIÓN LU
El esquema de descomposición LU es una transformación
de una matriz A como el producto de dos matrices,
A = L U
84
Ing. Sergio Velásquez
Análisis Numérico.
Donde L es una matriz triangular inferior y U es una
o en forma equivalente
l2,1 = a2,1/ u1,1, l3,1 = a3,1/ u1,1
o bien
u2,2 = u2,2 - l2,1 u1,2 , u2,3 = u2,3 - l2,1 u1,3
85
Ing. Sergio Velásquez
Análisis Numérico.
o, en forma equivalente,
l3,2 = [a3,2 - l3,1 u1,2]/ u2,2
o bien
u3,3 = a3,3 - l3,1u1,3 - l3,2 u2,3
Ejemplo
% RESOLUCION ITERATIVA
% la resolución iterativa de ecuaciones lineales no es aplicable
% a todos los problemas, pero resulta de gran utilidad para
% sistemas cuyos numeros de incognitas es muy grande y la matriz
% de coeficiente esta despoblada.
% Existen tres metodos iterativos:
% 1) Metodo de Jacobi
% 2) Metodo de Gauss - Seidel
% 3) metodo de Sobre Relajacion Sucesiva (SOR)
% Consideremos una ecuacion lineal:
% a * x = y
% Donde:
% (a) es la matriz cuadrada de los coeficientes
% (x) es el vector de las incognitas
% (y) es el vector de los terminos independientes
% Todos los metodos requieren una estimacion inicial, la cual
% denotaremos con x(t), donde t = numero de iteracion
% se puede comenzar con el vector nulo, todos los valores
% iniciales de X(t=0) son cero.
% Una condicion suficiente para que la resolucion iterativa
% converja es:
% n
% |a(i,i)|>= sumatoria(|a(i,j)|), para todo i
% j=1,j~=i
%
% La solucion por el metodo de Jacobi se expresa:
% n
% x(i) = (y(i)-sumatoria(a(i,j)*x(j)))/a(i,i)
% j=1,j~=i
%
% La solucion por el metodo de Gauss - siedel se expresa:
%
% i-1 n
%x(i) =(y(i)-sumatoria(a(i,j)*x(j))-sumatoria(a(i,j)*x(j))/a(i,i)
% j=1 j=i+1
% La solucion por el metodo de SOR se expresa:
%
% i-1 n
% x(i) = w*(y(i)-sumatoria(a(i,j)*x(j))-
sumatoria(a(i,j)*x(j))/a(i,i)+(1-w)*x(i)
86
Ing. Sergio Velásquez
Análisis Numérico.
% j=1 j=i+1
%Donde(w)es un parametro de sobre relajacion que satisface la
expresion:
%
% 1 <= w < 2
%
% Como regla empirica se puede asignar un valor a (w) entre 1.2 y
1.7
% El siguiente ejemplo ilustra como se puede resolver un sistema
de
% ecuaciones lineales utilizando el metodo GAUSS - SEIDEL
% y luego para efectos de comparacion se aplican los metodos
% anteriormente explicados.
% El sistema de ecuaciones es el siguiente:
%% 4x1 = 12
% 5x2 + 19x3 = 0
% 14x3 = 15
%% Escribiendo la matriz, tendremos:
%% a =
% 4 0 0
% 0 5 19
% 0 0 14
%
% y =
% 12
% 0
% 15
%
% Solucion:
clc
close all
clear all
a=[4,0,0;0,5,19;0,0,14]
y=[12,0,15]'
x=zeros(1,3)';
for elem=1:50
error=0;
for i=1:3
s=0; xb=x(i);
for j=1:3
if i~=j,s=s+a(i,j)*x(j);end
end
x(i)=(y(i)-s)/a(i,i);
error=error+abs(x(i)-xb);
end
fprintf('elem. num. =%3.0f,error = %7.2e\n',elem,error)
if error/3<0.001,break;end
end
x
disp('solucion por la via tradicional')
disp('************************************************************
')
disp('Determinacion de las incognitas:')
disp('************************************************************
')
disp('')
disp('solucion tipo A')
disp('************************************************************
')
x=a\y;
87
Ing. Sergio Velásquez
Análisis Numérico.
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(x)
disp('************************************************************
')
disp('')
disp('solucion tipo B')
disp('************************************************************
')
z=y'/a';
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(z)
disp('************************************************************
')
disp('')
disp('solucion tipo C')
disp('************************************************************
')
x=inv(a)*y;
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(x)
disp('************************************************************
')
disp('')
disp('solucion tipo D')
disp('************************************************************
')
x=a^(-1)*y;
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(x)
disp('************************************************************
')
disp('')
disp('solucion tipo E')
disp('************************************************************
')
z=y'*inv(a');
disp('x1,x2 y x3 tienen, respectivamente, los siguientes
valores:')
disp(z)
Ejemplo
Dado el siguiente circuito: Plantee el sistema de ecuaciones,
calcule la inversa y el determinante de la matriz A y resuelva el
sistema
10 1 20 V
I2
10
2 0 20
I1 5 A
50 20
I3
100 V
25 5
88
Ing. Sergio Velásquez
Análisis Numérico.
-1I1+0I2+1I3+0I4=5
-20I1+60I2-20I3=-120
95I1-40I2+45I3=100
A =
-1 0 1
-20 60 -20
95 -40 45
B=[0;-120;100]
B =
0
-120
100
inver1(A)
ans =
-0.2794 0.0059 0.0088
0.1471 0.0206 0.0059
0.7206 0.0059 0.0088
deter1(A)
ans =
-6800
jordan1(A,B)
ans =
0.1765 -1.8824 0.1765
I1=0.1765 A
I2=-1.8824 A
I3=0.1765 A
89
Ing. Sergio Velásquez
Análisis Numérico.
Integración
90
Ing. Sergio Velásquez
Análisis Numérico.
Fórmula de Trapecios
91
Ing. Sergio Velásquez
Análisis Numérico.
n=length(x);
h=(x(np)-x(1))/n
i=h/2*(y(1)+y(n)+2*(sum(y)-y(1)-y(n)))
92
Ing. Sergio Velásquez
Análisis Numérico.
i =
1.9984
Fórmula de Simpson
En la fórmula de trapecios hicimos una interpolación
lineal para aproximar a la función en el intervalo [a,b].
93
Ing. Sergio Velásquez
Análisis Numérico.
debe cumplirse es que, como empleamos 3 puntos para
construir cada polinomio interpolante de grado 2, el número
de subintervalos h debe ser par
b (n / 2 ) 1 n/2
h
f ( x )dx f (a ) 2 f ( x 2 j ) 4 f ( x 2 j 1 ) f (b)
a
3 j 1 j 1
n=length(x);
94
Ing. Sergio Velásquez
Análisis Numérico.
h=(x(np)-x(1))/n;
sumap=0;
for i = 1: length(x)/2-1
sumap = sumap + y(2*i);
end
sumai=0;
for i = 1: length(x)/2
sumai = sumai + y(2*i-1);
end
I=h/3*(y(1)+2*sumap+4*sumai+y(n))
I =
1.9904
b
3h
f ( x )dx f (a) 3f ( x 1 ) 3f ( x 2 ) 2f ( x 3 ) 3f ( x 4 ) 3f ( x 5 ) 2f ( x 6 ) ........ f (b)
a
8
INTEGRACIÓN DE ROMBERG
95
Ing. Sergio Velásquez
Análisis Numérico.
b a
resultado de integrar usando h n,1 de allí se forma la
22
matriz:
I1,1
I2,1
:
In,1
Ejemplo
% intgra1
% ESTE PROGRAMA ILUSTRA COMO SE PUEDE INTEGRAR EN FORMA
% DEFINIDA, ENTRE DOS VALORES, UNA FUNCIÓN UTILIZANDO
% EL MÉTODO INTERACTIVO ADAPTADO DE LA REGLA DE SIMPSON.
% MEDIANTE LA INSTRUCCIÓN: QUAD
%
% Q = QUAD('nombre de la función',a,b)
%
% DONDE:
%
% Q = VALOR DE LA INTEGRAL ENTRE LOS LÍMITES DE INTEGRACIÓN
%
% 'nombre de la función' = sin, cos, abs, sinh, sqrt, etc
%
% a = LÍMITE INFERIOR DE INTEGRACIÓN
%
% b = LÍMITE SUPERIOR DE INTEGRACIÓN
%
%
% EJEMPLO
%
clc
close all
clear all
96
Ing. Sergio Velásquez
Análisis Numérico.
%
% EVALUAR LA INTEGRAL DEL SENO ENTRE 0 Y pi
a=0;
b=pi;
q=quad('sin',a,b); % RESPUESTA NUMÉRICA
%
% LA RESPUESTA ANLÍTICA A LA INTEGRAL DE LA FUNCIÓN ES :
%
% qa = -cos entre: a,b
%
% EVALUANDO LA RESPUESTA ANALÍTICA
qa=-cos(b)-(-cos(a));
disp(' ')
disp(' RESPUESTA')
disp('-----------------------------------------------------')
Ejemplo
% intgra10
% ESTE PROGRAMA ILUSTRA COMO SE PUEDE INTEGRAR EN FORMA
% DEFINIDA, ENTRE DOS VALORES, UNA FUNCIÓN UTILIZANDO
% EL MÉTODO INTERACTIVO ADAPTADO DE LA REGLA DE LONGITUD 8
% DE NEWTON - COTES
% MEDIANTE LA INSTRUCCIÓN: QUAD8
%
% Q = QUAD8('nombre de la función',a,b)
%
% DONDE:
%
% Q = VALOR DE LA INTEGRAL ENTRE LOS LÍMITES DE INTEGRACIÓN
%
% 'nombre de la función' = sin, cos, abs, sinh, sqrt, etc
%
% a = LÍMITE INFERIOR DE INTEGRACIÓN
%
% b = LÍMITE SUPERIOR DE INTEGRACIÓN
%
clc
close all
clear all
close all hidden
%
% EJEMPLO : QUAD8 ES MEJOR QUE QUAD PARA EL MANEJO DE
SINGULARIDADES
97
Ing. Sergio Velásquez
Análisis Numérico.
% PERO AMBOS MÉTODOS NO MANEJAN BIEN LAS FUNCIONES
SINGULARES.
% EN ESTE EJEMPLO VEREMOS EL USO DE LOS ARGUMENTOS
% TOL Y TRACE en quad8
%
% tol ES LA TOLERANCIA CON QUE MATLAB EJECUTA LAS ITERACIONES.
% LAS ITERACIOENES SE REALIZAN MIENTRAS SE CUMPLA LO SIGUIENTE,
% HASTA UN LIMITE DE 10 ITERACIONES:
%
% ERROR = (CÁLCULO PREVIO - CÁLCULO ACTUAL)/CÁLCULO PREVIO <
TOL
%
% POR DEFECTO tol = 1.0 E-3
%
% TRACE ES UN PARÁMETRO QUE CUANDO ES DIFERENTE DE CERO MUESTRA
% UNA GRÁFICA CON EL PROGRESO DE LA INTEGRACIÓN
%
% EN ESTE EJEMPLO UTILIZAREMOS UNA TOLERANCIA DE tol = 1.e-5
%
% EVALUAR LA INTEGRAL DE LA SIGUIENTE FUNCIÓN =
%
% SQRT(x)
%
% ENTRE LOS SIGUIENTES LÍMITES:
%
% LÍMITE INFERIOR a = 0 EN ESTE RANGO LA FUNCIÓN ES
% DISCONTINUA ( SINGULAR )
% LÍMITE SUPERIOR b = 1
%
a=0;
b=1;
tol=1.e-2;
q=quad('sqrt',a,b,tol,1); % RESPUESTA NUMÉRICA
qa=(2/3)*b^(3/2)-(2/3)*a^(3/2);
disp(' ')
disp(' RESPUESTA')
disp('-----------------------------------------------------')
fprintf(' LÍMITE INFERIOR a = %f \n LÍMITE SUPERIOR b =
%f \n ',a,b);
disp('______________________________')
98
Ing. Sergio Velásquez
Análisis Numérico.
function yf=itgfun3(x)
% funcion que se utiliza en el programa intgra15.m
xe=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];
ye=[-0.447,1.978,3.28,6.16,7.08,7.34,7.66,9.56,9.48,9.36,11.12];
n=length(xe)-5;
p=polyfit(xe,ye,n);
a6=p(1,1);
a5=p(1,2);
a4=p(1,3);
a3=p(1,4);
a2=p(1,5);
a1=p(1,6);
a0=p(1,7);
yf=a6*x.^6+a5*x.^5+a4*x.^4+a3*x.^3+a2*x.^2+a1*x+a0;
99
Ing. Sergio Velásquez
Análisis Numérico.
Solución Numérica de
Ecuaciones Diferenciales
Ordinarias
100
Ing. Sergio Velásquez
Análisis Numérico.
Método de Euler
Pretendemos resolver
dy
f ( t, y ) ,a t b, con y(a) =
dt
101
Ing. Sergio Velásquez
Análisis Numérico.
Métodos de Taylor de orden superior
donde
, t i+1]
102
Ing. Sergio Velásquez
Análisis Numérico.
Los diferentes métodos de Runge - Kutta surgen de las
diferentes aproximaciones tomadas para calcular la integral
de f(y, t)
103
Ing. Sergio Velásquez
Análisis Numérico.
Métodos Multipaso
104
Ing. Sergio Velásquez
Análisis Numérico.
En términos generales podemos definir a un método
multipaso como aquel que para encontrar una aproximación
yi+1 a la solución exacta en el punto ti+1, usa m puntos
anteriores en una ecuación del tipo
105
Ing. Sergio Velásquez
Análisis Numérico.
Si tomamos un polinomio de Newton con diferencias hacia
atrás, tenemos
donde
106
Ing. Sergio Velásquez
Análisis Numérico.
otro método. Usualmente se arranca con un método de un solo
paso (Runge - Kutta de cuarto orden, por ejemplo), y una
vez generados los m - 1 valores iniciales que faltaban, se
sigue con el método multipaso.
De la misma manera se puede deducir el método de Adams
- Bashforth de cuatro pasos
107
Ing. Sergio Velásquez
Análisis Numérico.
métodos explícitos. Sin embargo presentan la desventaja de
tener que llevar el método a una representación explícita
para yi+1 (ya que aparece en el término derecho).
Valores iniciales
, y3 = 3
108
Ing. Sergio Velásquez
Análisis Numérico.
solo paso, por lo que son mejores cuando el número de
puntos que hay que evaluar es grande.
En los métodos multipaso se aprovechan cálculos
anteriores de f(y, t), solo hay que evaluar f(yi, ti) en
cada iteración. En cambio en Runge - Kutta, por ejemplo,
hay que realizar varias evaluaciones de f(y, t) para
calcular los ki en cada iteración.
La desventaja que presentan es que deben inicializarse
recurriendo a algún método de un solo paso, con el que se
generan los primeros puntos.
Sea el problema
109
Ing. Sergio Velásquez
Análisis Numérico.
110
Ing. Sergio Velásquez
Análisis Numérico.
y finalmente
Ejemplo
111
Ing. Sergio Velásquez
Análisis Numérico.
% dy/dx = 3x^2
% La ecuación diferencial está definida en la función (odefun1.m),
% la cual se encuentra almacenada en la librería de MATLAB
clc
close all
clear all
% SOLUCIÓN MATLAB
[x,y]=ode45('odefun1',[2,4],0.5);
% NOTE QUE: y_inicial = 0.5 CUANDO t_inicial = 2.0
% SOLUCIÓN ANALÍTICA
% para comparar la solución numérica con la solución analítica
% tenemos la solución analítica de la ecuación diferencial
% la cual es la siguiente:
% ya = x.^3 - 7.5
% Evaluación de la solución analítica
y_analitica = x.^3 - 7.5;
plot(x,y,'ro',x,y,'r-',x,y_analitica,'*') % Gráfica simultanea de
la solución
% MATLAB y la solución analítica
legend('SOLUCIÓN MATLAB','SOLUCIÓN MATLAB','SOLUCIÓN ANÁLITICA');
xlabel('VARIABLE x')
ylabel('VARIABLES (y) y (y analitica)')
clc
disp( ' ')
disp( 'A CONTINUACIÓN SE MUESTRA LA FUNCIÓN "odefun1" ')
disp( 'LA CUAL CONTIENE A LA ECUACIÓN DIFERENCIAL A SER INTEGRADA.
')
type odefun1
112