Proyecto Metodos Numericos Taylor
Proyecto Metodos Numericos Taylor
NUMERICOS
Texto guía de aprendizaje para estudiantes de Ingeniería
Autor:
Washington Medina G *
OCTUBRE 2013
*Ingeniero Civil
*Master en Docencia Universitaria e investigación educativa
*Master en Tecnología de la Información y Multimedia Educativa
CAPITULO I. Teoría del error y sistemas de ecuaciones lineales
METODOS NUMERICOS
Introducción.
Las matemáticas, desde las grandes culturas creadoras de los grandes teoremas
aplicados en la actualidad, han estado por lo general sujetas a procesos recursivos
con la demora que su cálculo implica y el riesgo de cometer errores en el proceso
numérico.
Considerando que los métodos numéricos son técnicas mediante las cuales es posible
formular problemas de tal forma que puedan resolverse usando operaciones. Aunque
hay muchos tipos de métodos numéricos, todos comparten una característica común:
llevan a cabo un buen número de tediosos cálculos aritméticos. Es por ello que la
computación es una herramienta que nos facilita el uso y desarrollo de ellos.
CAPITULO I
Teoría del error y Sistemas de ecuaciones lineales
Siempre que se desea dar solución a un problema matemático, se utilizan ciertos
métodos o procedimientos que implican obtener datos en procesos iterativos, los
mismos que desde su origen acarrean un error, error que se lo puede clasificar así.
1. Errores por apreciación
2. Errores por obtención de resultados
Ea x x (2.1)
Métodos Numèricos 3 Ing. Washington Medina MSc
a a
r (2.2)
x x
(3.1)
Métodos Numèricos 4 Ing. Washington Medina MSc
b
bk a ki xi
xn n xk i k 1
(3.3)
a nn a kk
para k = n - 1, n - 2,......... , 1
Podemos ver que los sistemas triangulares son fáciles de tratar, por lo que se
recomienda buscar métodos para reducir cualquier sistema a un sistema triangular
(superior o inferior).
La idea general como se explicó anteriormente es hacer cero todos los elementos que
se encuentren debajo de la diagonal principal.
Ejemplo 2
3 1 4 2
1 2 3 6
2 1 5 4
Métodos Numèricos 7 Ing. Washington Medina MSc
k i J
1 1 1 a11 a12 1 a13 4 a 2
a a11 a 1 a12 a 3 a13 a 3 a14 14
a11 3
11 11 11
4
Multiplicador = a21 = 1
2 1 a 21 a 21 a 21 * a11 0 5
a 23 a 23 a 21 * a13
5 3
a a 22 a 22 a 21 * a12 16
3
a 24 a 24 a 21 * a14
3
4
Multiplicador = a31 = 2
3 1 a31 a31 a31 * a11 0 7
a33 a33 a31 * a13
1 3
a a32 a32 a31 * a12 8
3
a34 a34 a31 * a14
3
4
k i J
2 2 2 a 22 a 23 a 24 16
a a 22 a 1 a 23 a 1 a 24
a 22 3
22 22
4
Multiplicador = a32 = 1/3
3 2 a32 a32 a32 * a 22 0 8
a a a a *a 2 a34 a34 a32 * a 24
5
33 33 32 23
k i J
3 3 3 a33 a34 8
a a 33 1 a34
a33 a33 10
4
Una vez obtenida la matriz triangular superior, se realiza un proceso regresivo para
calcular las soluciones, aplicando las siguientes fórmulas tomando en cuenta que el k
de inicio es: k = n y que la variable b corresponde a los términos independientes:
b
bk a ki xi
xn n xk i k 1
a nn a kk
La solución es:
x1 = 0.8
X2 = 2.4
X3 = -1.2
Ejercicios:
Calcular las inversas de: una matriz de 3*3 y de una matriz de 4*4
inicio
M=N
i =1,N
J = 1, N
A[i,J]
i =1,N
C(i,i) = A (i,i)
J = i, N
no si
a i=N b
a b
k=i+ 1 DD = 1
L=k ,N i= 1,N
D = A(L, i) J = i, M
J = i, M
DD = DD*C(i,i)
Imprimir
DD
Métodos Numèricos 10 Ing. Washington Medina MSc
J = 1, M
A[i,J]
I=1, M
C(i,i) = A (i,i)
J = i, M
no si
i=n
DD = 1
k=i+1
L=k ,N i= 1,N
D = A(L, i )
J = i, N
J = i, M
DD = DD*C(i,i)
A(L,J) = A(L,J) –D*A(i,J)
BB
Métodos Numèricos 11 Ing. Washington Medina MSc
BB
BB
NO SI
DD=0
X(N)=A(N,M)/A(N,N)
El sistema no tiene
solución o puede tener
i= N-1, infinito número de
soluciones
S(i) = 0
J = i+1, N
C(J) = X(J)*A(i,J)
S(i) = s(i) + c(J)
i= 1, N
x(i)
clc
clear
n=input('ingrese número de ecuaciones');
for i=1:n
for j=1:n
fprintf('A(%d,%d)=',i,j);
A(i,j)=input('');
end
end
A
for i=1:n
fprintf('B(%d,%d)=',i,1);
B(i,1)=input('');
end
end
B
C=inv(A);
D=C*B;
for i=1:n
fprintf('X(%d)=',i);D(i)
end
Métodos Numèricos 12 Ing. Washington Medina MSc
>> A =[1 2 3 ; 4 2 1 ; 4 3 1]
A=
1 2 3
4 2 1
4 3 1
B=
1
5
2
B=
1
5
2
C = 11
C=
S=
2.3636
-3.0000
1.5455
Suma de matrices
Resta de matrices
Multiplicación de matrices
Transpuesta de una matriz
Multiplicación de una matriz por un escalar
Métodos Numèricos 13 Ing. Washington Medina MSc
CAPITULO II
clc
clear
a=input('Ingrese el coeficiente 1');
b=input('Ingrese el coeficiente 2');
c=input('Ingrese el coeficiente 3');
delta=b*b - 4*a*c;
if delta==0
x1=-b/(2*a);
x2=-b/(2*a);
fprintf('\n\nLa solucion 1 es: %2.2f\n\n',x1);
fprintf('\n\nLa solucion 2 es: %2.2f\n\n',x2);
break;
else
if delta>0
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
fprintf('\n\nLa solucion 1 es: %2.2f\n\n',x1);
fprintf('\n\nLa solucion 2 es: %2.2f\n\n',x2);
break;
else
x1=(-b+sqrt(delta)*(-1))/2*a;
x2=(-b-sqrt(delta)*(-1))/2*a;
% disp. De las líneas siguientes visualizan la parte imaginaria de la respuesta
fprintf('\n\nLa solucion 1 es: %2.2f\n\n'),disp(x1)
fprintf('\n\nLa solucion 2 es: %2.2f\n\n'),disp(x2)
end
end
Métodos Numèricos 14 Ing. Washington Medina MSc
% INGRESO DE UN POLINOMIO
>>
>> p =[1 3 -4 5 6] % polinomio de 4 grado
p=
1 3 -4 5 6
ans =
931
ans =
-4.1654
0.9235 + 1.1227i
0.9235 - 1.1227i
-0.6816
M =moviein(17);
x=[-2*pi:0.1:2*pi]';
for j=1:17
y=sin(x+j*pi/8);
plot(x,y);
M(:,j)=getframe;
End
Métodos Numèricos 16 Ing. Washington Medina MSc
clc
clear
f=input('ingrese la funcion:','s');
xo=input('ingrese el valor inicial de x:');
h=input('ingrese el intervalo');
n=input('ingrese el numero de pares ordenados:');
f1=inline(f);
fprintf('\t x\t\t y\n')
for k=1:n
y=feval(f1,xo);
fprintf('\t\t%4.2f\t\t%4.2f\n',xo,y)
xo=xo+h;
end
x=-5:0.01:5;
y= x.^3-5*x.^2+11;
plot(x,y)
Código para la gráfica de un polinomio por medio de una tabla de datos x,y
clc
clear
n=input('ingrese el numero de pares ordenados');
for i=1:n
fprintf('x(%d)=',i);
x(i)=input('');
end
for i=1:n
fprintf('y(%d)=',i);
y(i)=input('');
end
fprintf('\t\t x\t\t\t y\n')
for i=1:n
fprintf('\t\t%4.2f\t\t%4.2f\n',x(i),y(i))
end
plot(x,y)
end
x y
-1.00 6.00
0.00 5.00
1.00 3.00
2.00 7.00
3.00 1.00
4.00 2.00
5.00 3.00
Métodos Numèricos 17 Ing. Washington Medina MSc
2
r a 2 2 a3 (5.1)
a1 a1
max
Divergencia. En el análisis de los métodos nos encontraremos con este término, por lo
que es conveniente entender que la divergencia de un método es la imposibilidad de
encontrar la solución con la aplicación de dicho método.
Siendo el polinomio:
x1 x2 x3 x4 x5 x6
FIG. 6.1.1
Métodos Numèricos 18 Ing. Washington Medina MSc
De lo indicado se anota que: en una tabla de valores X-Y para graficar una función, la
solución del polinomio se encuentra entre loas valores de x cuyos valores respectivos
de y cambien de signo, como lo muestra la siguiente tabla:
X Y
1 4
3 7
6 -5
Una forma fácil de iniciar la construcción de las tablas de valores es contar con un
valor tentativo de x, el cual se lo puede calcular aplicando la fórmula indicada a
continuación que representa el valor máximo al que pueden llegar las soluciones del
polinomio, fórmula que presenta coherencia en los resultados si las raíces del
polinomio son reales.
2
r
a2 a3
2 (5.1)
máx a1 a1
Para una mejor organización del método, se sugiere el uso de una tabla de datos
donde:
K número de iteraciones
x1, x2 valores de la variable x que pertenecen al intervalo
fx1, fx2 valores de la función o polinomio al reemplazar el valor de x
En la tabla se aplica el siguiente criterio: Si la multiplicación de dos valores fx1, fx2
da como resultado un valor negativo, en el intervalo de sus correspondientes
valores de x se encuentra la solución.
ejemplo 3:
k X1 X2 F(X1) F(X2) F(X1)*F(X2) = "-"
TABLA 6.1.1
Métodos Numèricos 19 Ing. Washington Medina MSc
2 2
a 2 2 a3 4.25
4.75
2
r max 2.93 3
a1 a1 1 1
K x1 x2 f x1 fx2 fx1*fx2
1 3,00000 2,50000 1,00000 0,37500 +
2 2,50000 2,00000 0,37500 0,25000 +
3 2,00000 1,50000 0,25000 0,62500 +
4 1,50000 1,00000 0,62500 1,50000 +
5 1,00000 0,50000 1,50000 2,87500 +
6 0,50000 0,00000 2,87500 4,75000 +
7 0,00000 -0,50000 4,75000 7,12500 +
8 -0,50000 -1,00000 7,12500 10,00000 +
9 -1,00000 -1,50000 10,00000 13,37500 +
10 -1,50000 -2,00000 13,37500 17,25000 +
TABLA 6.1.2
En el ejemplo no existe solución alguna puesto que son raíces imaginarias y por ende el
método diverge, además, rmáx no es aplicable porque funciona sólo para soluciones
reales.
TABLA 6.1.3
Las soluciones se encuentran en los intervalos: 4.5 < X < 5 y -1 < X < -0.5
Métodos Numèricos 20 Ing. Washington Medina MSc
inicio
N,
K
I=1,N+
1
A[i]
Rm(0)=0
X1(L)=Rmáx-Rm(L-1)
1 L=1,k
X2(L)=x1(L)-Rm
P=Q=A(N+1); J =N
I =1,N
P=P+A(i)*x1(L)J
Q=Q+A(i)*x2(L)J
J=N-1
F1(L)=P; F2(L)=Q
M(L)=F1(L)*F”(L)
1
si
M(L)
<0
No hay solución Si hay solución
X1(L)=X2(L)
L=1,
Imprimir:
K,x1,x2,f1,f2,solución
Métodos Numèricos 21 Ing. Washington Medina MSc
clc
clear
f=input('Ingrese la funcion: ','s');
input('el ingreso de los siguientes datos permite el calculo de rmax')
a1=input('Ingrese el coeficiente 1: ');
a2=input('Ingrese el coeficiente 2: ');
a3=input('Ingrese el coeficiente 3: ');
delta=input('Ingrese el intervalo de disminucion');
n=input('Ingrese el numero de iteracciones');
rmax=sqrt((a2/a1)^2-2*a3/a1);
%x=5;
x=rmax;
x2=x-delta;
f1=inline(f);
fxl=f1(x);
f2=inline(f);
fx2=f2(x2);
fprintf('\t k\t\t\t x1\t\t\t\t x2\t\t\t\t fx1\t\t\t fx2\t\t fx1*fx2\n')
for k=1:n
fx1=f1(x);
fx2=f2(x2);
fxm=fx1*fx2;
fprintf('\t%3d\t\t%10.4f\t\t%10.4f\t\t%10.4f\t\t%10.4f\t\t%10.4f\n',k,x,x2,fx1,fx2,fxm)
x=x2;
x2=x-delta;
end
end
fplot(f,[-15 15],'r')
grid
Rectifique el código para iniciar el cálculo con otro valor diferente a Rmax, bajo un
algoritmo de decisión if-else.
clc
clear
f= input('Ingrese la funcion: ','s');
a1=input('Ingrese el coeficiente 1: ');
a2=input('Ingrese el coeficiente 2: ');
a3=input('Ingrese el coeficiente 3: ');
delta=input('Ingrese el intervalo de disminucion');
rmax=sqrt((a2/a1)^2-2*a3/a1);
x=rmax;
Métodos Numèricos 22 Ing. Washington Medina MSc
x2=x-delta;
f1=inline(f);
f2=inline(f);
n=1;
fx1=f1(x);
fx2=f2(x2);
while fx1*fx2>=0
fprintf('\t\t%10.2f\t\t%10.2f\t\t%10.2f\t\t%10.2f\n',x,x2,fx1,fx2);
x=x2;
x2=x-delta;
if n<50
else
fprintf('\n\nno se encuentran intervalos solucion');break
end
fx1=f1(x);
fx2=f2(x2);
n=n+1;
end
fprintf('\t\t%10.2f\t\t%10.2f\t\t%10.2f\t\t%10.2f\n',x,x2,fx1,fx2);
fprintf('\n\nel numero de iteracciones fue: %d\n',n);
fprintf('hay solucion en el ultimo intervalo');break
end
Una vez que se han determinado los intervalos donde se encuentran las soluciones de
un polinomio, se analiza cada intervalo por separado y, aplicando el método de
interpolación, se obtiene la solución aproximada. El método de interpolación permite
encontrar la solución de un polinomio bajo las siguientes condiciones:
F(X2)
x1 x3 x2
F(x1)
FIG. 6.2.1
F(X2 F(x1
) )
E
x1 x3 x2
F(X2
)
F(x1
)
F(X2
) F(x1
)
F(x1
) F(X2
)
FIG 6.2.2
Métodos Numèricos 24 Ing. Washington Medina MSc
El valor x3 será el nuevo límite por lo tanto el intervalo ha sido reducido y se acerca a
la respuesta.
No Si
Fx3
>0
No Si No Si
F[1] Fx1
>0 >0
FIG. 6.2.3
No Si
Fx1*Fx3
>0
X2=X1+E X1=X1+E
FIG. 6.2.4
Métodos Numèricos 25 Ing. Washington Medina MSc
2. Las soluciones estén muy cercanas entre sí que provoque por la mala selección del
intervalo, el no encontrar la solución.
Asumiendo por parte del calculista un error permisible (como sugerencia puede
utilizarse 0.001 que equivale al 0.1%), el resultado será aceptado si se cumple la
siguiente condición:
error asumido
|fx1| ó |fx2|
Ejemplo 5.
k x x2 fx1 fx2 E
1 4.5000 5.0000 -1.0000 1.8750 0.1739
2 4.6739 5.0000 -0.0567 1.8750 0.0096
3 4.6835 5.0000 -0.0030 1.8750 0.0005
4 4.6840 5.0000 -0.0002 1.8750 0.0000
TABLA 6.2.1
a) rmáx
b) Los intervalos por el método de investigación.
c) Las soluciones por el método de interpolación.
Métodos Numèricos 26 Ing. Washington Medina MSc
a) Cálculo de r máx.
2
a 2 2 a3
r a1 a1
máx
2
2.71 2 5.095
r 1
máx 1
r 4.187 4.2
máx
k x x2 fx1 fx2 e
1 1.2000 1.7000 0.3616 -2.9304 0.0549
2 1.2000 1.2549 0.3616 -0.0353 0.0500
3 1.2000 1.2500 0.3616 -0.0002 0.0500
Métodos Numèricos 27 Ing. Washington Medina MSc
k x x2 fx1 fx2 e
1 -2.3000 -1.8000 -6.1344 3.2086 0.3283
2 -2.3000 -1.9717 -6.1344 0.4950 0.3038
3 -2.3000 -1.9962 -6.1344 0.0669 0.3005
4 -2.3000 -1.9995 -6.1344 0.0089 0.3001
5 -2.3000 -1.9999 -6.1344 0.0012 0.3000
6 -2.3000 -2.0000 -6.1344 0.0002 0.3000
Soluciones: X1 = 3.4600
Se puede chequear el resultado al
mismo tiempo con yf(x1) en la
X2 = 1.2500 primera solución y, con con y
F(x2) que son los valores que en este
ejercicio sufren variaciones
X3 = -2.0000
Diagrama de flujo del método de interpolación para calcular una solución conociendo
el intervalo por el método de investigación.
N, x1, x2
i=1,N+1
METODO
DE
A(i) INTERPOLACION
J=N, P=Q=R=A(N+1)
i=1,N
P=P+A(i)*x1(1)J
Q=Q+A(i)*x2(1)J
P * x 2 (1) x1(1)
P Q
x 3 x1(1) J N
i=1,N
R=R+A(i)*x3(1)J
no si
P*Q>0
L=1,K L=1,K
i=1,N i=1,N
A B
J=J-1 J=J-1
P=P+A(i)*x1(L)J P=P+A(i)*x1(L)J
Q=Q+A(i)*x2(L)J Q=Q+A(i)*x2(L)J
2
1
Métodos Numèricos 28 Ing. Washington Medina MSc
1 2
no si no si
E<=0.001 E<=0.001
A B
imprimir
no si
otro cálculo
fin inicio
while k<20
e= (abs(fx1)*(x2-x1))/(abs(fx2)+abs(fx1));
fprintf('\t%2d\t\t%4.4f\t\t%4.4f\t\t%4.4f\t\t%4.4f\t\t%4.4f\n',k,x1,x2,fx1,fx2,e)
x2=x1+e;
fx2= f1(x2);
if abs(fx2)<0.0001
fprintf('\n\n la solucion es ');disp(x2);break;
end
if k==20
fprintf('\n\n en el intervalo escogido no hay solucion ');break;
end
k=k+1;
end
end
x=-5:0.01:5;
fplot(f1,[-5 5],'b');
grid
end
f(xo)
solución
x3 x2 x1 xO
FIG. 6.3.1
F ( x0 )
tg
x0 x1 (6.2)
Métodos Numèricos 30 Ing. Washington Medina MSc
F ( x0 )
F'
x0 x1 (6.3)
F ( x0 )
x1 x0
F ' ( x0 ) (6.4)
Fórmula de Newton
F (x ) Raphson para el cálculo de
x n 1 xn ' n (6.5) raíces aproximadas de un
F ( xn ) polinomio.
2. Las soluciones estén muy cercanas entre sí que provoque infinito número de cálculos
sin obtenerse la respuesta deseada.
Control del error:
Al ser el resultado una aproximación, es necesario imponernos un valor de error, que
permita a la vez acercarnos al resultado y delimitar las iteraciones, por lo que se
podría asumir la siguiente relación:
fx er (6.6)
Ejemplo 7.
Del polinomio x4 - 1.3x3 - 10.24x2 + 4.83x + 19.42 , encontrar una de las soluciones
sabiendo que dicha solución está entre el siguiente intervalo: 3.25<x<3.75
Solución:
1. Derivamos la función
f(x) = x4 - 1.3x3 - 10.24x2 + 4.83x + 19.42
f´(x) =4x3 – 3.9x2 –20.48x + 4.83
K Xi Fx F ´x fx/f´x x(i+1)
1 3.75000 22.73172 84.12375 0.27022 3.47978
2 3.47978 4.08030 54.88455 0.07434 3.40544
3 3.40544 0.26479 47.82997 0.00554 3.39990
4 3.39990 0.00141 47.32110 0.00003 3.39987
5 3.39987 0.00000 47.31837 0.00000 3.39987
6 3.39987 0.00000 47.31837 0.00000 3.39987
TABLA 6.3.1
K Xi fx f ´x fx/f´x x(i+1)
1 3.25000 -6.10266 34.38875 -0.17746 3.42746
2 3.42746 1.34056 49.87662 0.02688 3.40058
3 3.40058 0.03362 47.38351 0.00071 3.39987
4 3.39987 0.00002 47.31842 0.00000 3.39987
5 3.39987 0.00000 47.31837 0.00000 3.39987
6 3.39987 0.00000 47.31837 0.00000 3.39987
TABLA 6.3.2
La solución aproximada es 3.39987
Ejemplo 9. Calcular una de las soluciones del siguiente polinomio
x3 - 10.24x2 + 4.83x + 19.42 = 0
2
a
2
a 10.24
rmax 2 2 3 rmax 2(4.83) 9.76 10
a1 a1 1
TABLA 6.3.3
Como podemos observar en la tabla en x1, en la iteración 1 va el valor aproximado de
rmax, se ha aproximado el valor para que sea más sencillo ir restando el valor de 0.5,
que ha sido un valor escogido por conveniencia, no necesariamente tiene que ser este
valor, como tampoco era necesario aproximar el valor de rmax.
En x2 en la iteración 1 se coloca el valor de rmax – 0.5.
En las siguientes iteraciones el valor de x2 pasa a ser el valor de x1, y a la nueva x1 se le
resta 0.5 para colocar este valor en x2.
Este proceso se realiza hasta cuando en el producto F(x 1)* F(x2) sea negativo. Cada
vez que aparezca un producto negativo quiere decir que en este intervalo esta una de
las soluciones.
En este caso hemos encontrado tres intervalos para efectos de comprensión del lector,
aunque solo era necesario encontrar un intervalo, puesto que sólo necesitamos una de
las soluciones.
3. Escogemos uno de los intervalos donde está una de las soluciones.
En este caso vamos a elegir el primer intervalo y con estos valores realizamos el
mismo procedimiento descrito en el ejemplo 8.
F(x) =X3 – 10.24x2 + 4.83x + 19.42 = 0
F’(x)=3x2 - 20.48x + 4.83
TABLA 6.3.4
Solución: 9.51863 con un error del 3.6 %
Métodos Numèricos 34 Ing. Washington Medina MSc
inicio
N,
k
I=1,N+
1
A[i]
1 Z=1,k
Fx=0; p=N
I=1,N+
1
Fx=Fx+A[i].x p
P=N-1
F<0.0
01
J=1,
N
fin
si
Fx1=Fx1+n*A[J]x(n-1)
n=n-1
x=x - (Fx/Fx1)
1
Métodos Numèricos 35 Ing. Washington Medina MSc
clc
clear
% syms x (para la versión 7.0)
% f1= inline (char(f) (para la versión 7.0)
% df=diff(f) ó diff(f,x) (para la versión 7.0)
f=input('ingrese la funcion : ','s');
xo=input('ingrese el valor inicial de x : ');
n=input('ingrese las iteracciones : ');
f1=inline(f);
df=diff(f,'x');
fprintf('la derivada de la funcion es');disp(df);
df1=inline(df);
fprintf('\t\t k\t\t\t x\t\t\t\t fx\t\t\t\t dfx\t\t\t fx/dfx\n')
for k=1:n
fx=f1(xo);
dfx=df1(xo);
if dfx==0
fprintf('\n\n\n HAY DIVERGENCIA EN EL METODO PUES LA PRIMERA
DERIVADA ES CERO')
break;
end
dfx=df1(xo);
w=fx/dfx;
fprintf('\t\t%2d\t\t%10.4f\t\t%10.4f\t\t%10.4f\t\t%10.4f\n',k,xo,fx,dfx,w)
x1=xo-w;
xo=x1;
end
if dfx>0
fprintf('\n\n la solucion x es');disp(xo)
fprintf('el valor de la funcion para la solucion es');disp(f1(xo))
end
if dfx<0
fprintf('\n\n la solucion x es');disp(xo)
fprintf('el valor de la funcion para la solucion es');disp(f1(xo))
end
fplot(f1,[-5 5],'b');
hold on
plot(xo,0,'*r')
grid
Rectificar el código para que la respuesta obtenida sea parte de la última fila del cuadro
de resultados.
Analice el por qué sugiere el programador xo = xo +0.75
Rectifique el programa para que no utilice la sugerencia del programador del ítem
anterior y considere la divergencia del método cuando la derivada es cero
Se requiere en el programa de Newton Raphson en el que se utiliza el siclo FOR
comparar el error?
Métodos Numèricos 36 Ing. Washington Medina MSc
Haga las rectificaciones en el programa para que funcione con el método de Von mises
Rectifique el programa para ingresar el error admisible
Rectificar el programa para resolver funciones trigonométricas, considerando que la
división f´x/fx NO debe ser transformada a grados.
clc
clear
f=input('ingrese la funcion : ','s');
xo=input('ingrese el valor inicial de x : ');
er=input('ingrese el error admisible : ');
%n=input('ingrese las iteracciones : ');
f1=inline(f);
df=diff(f,'x');
fprintf('la derivada de la funcion es');disp(df)
df1=inline(df);
fprintf('\t\t k\t\t x\t\t\t fx\t\t dfx\t\t\t fx/dfx\n')
fx=f1(xo);
k=1;
while abs(fx)>er
fx=f1(xo);
dfx=df1(xo);
if dfx==0
xo=xo+0.75 %sugerncia del programador
end
dfx=df1(xo);
w=fx/dfx;
fprintf('\t\t%2d\t\t%3.4f\t\t%3.4f\t\t%3.4f\t\t%3.4f\n',k,xo,fx,dfx,w)
x1=xo-w;
xo=x1;
k=k+1;
if k>50
fprintf('las soluciones son imaginarias');break
end
end
y=f1(xo);
fprintf('la solucion x es');disp(xo)
fprintf('el valor de la funcion para la solucion es');disp(y)
fplot(f1,[-15 15],'b');
grid
Rectificar el código para que la respuesta obtenida sea parte de la última fila del cuadro
de resultados.
Analice el por qué sugiere el programador xo = xo +0.75
Rectifique el programa para que no utilice la sugerencia del programador del ítem
anterior y considere la divergencia del método cuando la derivada es cero
Métodos Numèricos 37 Ing. Washington Medina MSc
Haga las rectificaciones en el programa para que funcione con el método de Von mises
Rectifique el programa para ingresar el error admisible
En la parte correspondiente a la gráfica, realice un proceso similar al taller anterior
y = x^3-2.45*x^2-4*x+3.25;
newtonraphson.m:
% Lectura de datos
% Tengo que leer la cota de error 'cota', el número de iteraciones máximo 'n'
% y el valor inicial 'xi'
xanterior = xi;
x = xanterior;
eanterior = inf;
e = eanterior;
i = 1; % contador de iteraciones
% Debo realizar un procedimiento iterativo mientras el error sea mayor que la cota
% y el número de iteración sea menor que n
x = xanterior - y/yd;
% Para dibujar
yant=mifuncion(xanterior);
plot ([xanterior x],[yant 0],'r')
Métodos Numèricos 38 Ing. Washington Medina MSc
e = abs (x - xanterior);
xanterior = x;
eanterior = e;
i=i+1;
end
hold off
% Comprobación de por cual de las dos (tres) condiciones salió
if (e<cota)
disp ('Se encontró la solución');
disp ('La solución hallada es: ');
x
disp ('La cota de error es: ');
e
disp ('El número de iteraciones utilizado es: ');
i
disp ('Y el valor de la función en dicho punto es: ');
mifuncion(x)
else
disp ('Se superó el número de iteraciones');
end
Rectifique el programa con variables que sean más entendibles para ud.
Rectifique el programa considerando el ingreso de una función sin acudir a otro
archivo.
Rectifique el programa para que pueda visualizarse la tabla de valores
clc
clear
f=input('ingrese la funcion : ','s');
xo=input('ingrese el valor inicial de x : ');
%xo=xo*pi/180;
er=input('ingrese el error admisible : ');
n=input('ingrese las iteracciones : ');
f1=inline(f);
df=diff(f,'x');
fprintf('la derivada de la funcion es');disp(df)
df1=inline(df);
fprintf('\t\t k\t\t\t x\t\t\t\t fx\t\t\t\t dfx\t\t\t fx/dfx\n')
for k=1:n
fx=f1(xo*pi/180);
dfx=df1(xo*pi/180);
if dfx==0
xo=xo+0.75; %sugerencia del programador
Métodos Numèricos 39 Ing. Washington Medina MSc
end
dfx=df1(xo*pi/180);
w=(fx/dfx);
if abs(fx)<er,break,end
fprintf('\t\t%2d\t\t%10.4f\t\t%10.4f\t\t%10.4f\t\t%10.4f\n',k,xo,fx,dfx,w)
x1=xo-w;
xo=x1;
end
y=f1(xo);
fprintf('la solucion x es');disp(xo)
fprintf('el valor de la funcion para la solucion es');disp(y)
fplot(f1,[-5 5],'b');
grid
Este método encuentra todas las soluciones reales que tenga un polinomio, es el
resultado de la combinación del método de Newton Raphson y la aplicación de la
división sintética doble (teoría de Ruffini para bajar de grado un polinomio con dos
divisiones continuas).
Se sugiere como punto de inicio un valor cercano a rmáx; aunque, para automatización
del método se puede iniciar con cualquier valor.
P R
Q
D D
P QD R
P( X ) ( X Xn )Qx R ( X Xn deno min ador ) (6.7)
si X Xn P( X ) R
P'( X ) Q( X ) ( X Xn )Q'( X )
si x xn Q( X ) R'
P'( X ) Q( X )
P'( X ) R'
1 -2 5 -7
X=7 7 35 200
1 5 40 273
X=7 7 84
1 12 124
273
X 7
124
x 7 2.202 4.798
1 -2 5 -7
X=4.8 4.8 13.44 88.51
1 7.6 54.92
81.51
X 4.8
54.92
x 4.8 1.484 3.316
1 -2 5 -7
X=3.32 3.32 4.38 31.15
1 4.64 24.78
Se continua con el mismo proceso hasta lograr la solución, los valores los resumimos
en la siguiente tabla, misma que es factible obtenerla con mayor facilidad
por el método de Newton Rapshon:
Métodos Numèricos 41 Ing. Washington Medina MSc
K X R R’ R/R’
1 7 273 124 2.20
2 4.8 81.51 54.92 1.48
3 3.32 24.14 24.78 0.97
4 2.35 6.68 12.17 0.55
5 1.8 1.35 7.52 0.18
6 1.62 0.1 6.38 0.016
7 1.6 0.02 6.28 0.003
TABLA 6.4.1
i=1,N+1
A(i)
a
2
a
X (1) 2 2 3
a1 a1
K=1
A
no si
K<soluciones
divergencia b(1)=a(1)
c(1)=b(1)
B i=2,N+1
b(i)=a(i)+b(i-1)*x(k)
J=2,N
c(J)=b(J)+b(J-1)*x(k)
E(k)=b(i) / c(j)
no si
K<0.001
K=K+1 X(k)=solución(N)
X(k)=X(k)-E(k-1) i=2,N+1
a(i)=b(i)
A
N=N-1
no si
N=1
B Solución(1)=-a(2)/a(1)
imprimir soluciones
fin
Métodos Numèricos 43 Ing. Washington Medina MSc
4 3 2
13. x 5 x 15.23 x 6.24 x 24.84 0
Sol : x1 6.9806 x 2 1.2814 x 3 4 1.631 0.34i
3 2
14. x 14 x 56 x 64 0
Sol : x1 8 x2 4 x3 2
5 4 3 2
15. x 8 x 17 x 8 x 14 x 20 0
Sol : x1 5 x2 2 x 1 x 4 5 1 i
2
3 2
16. 2 x 41x 4 x 2 0
Sol : x1 20.5947 x 2 0.1779 x 3 0.2727
3 2
17. x 8 x 15 x 1 0
Sol : x1 5.0937 x 2 2.8370 x 3 0.0690
3 2
18. x 5x 4x 2 0
Sol : x1 3.81 x 2 1.5293 x 3 0.3429
3 2
19. x 4x 5x 7 0
Sol : x1 4.74 x 2 0.8989 x 3 1.6419
4 3 2
20. x 2 x 3x 2 x 1 0
Sol : x1 2 0.5 1.732i x 0.5 0.866i
3 4
2
21. x 2x 7 0
Sol : x1 2 1 2.449i
3 2
22. x 3x 7 x 5 0
Sol : x 1 x 2 3 1 2i
1
Consulta, investigación:
1. Consultar y analizar los métodos de la Secante
y de VonMises.
2. Consultar el Método LIN para soluciones
imaginarias.
3. Realizar un ejercicio por cada método de
solución numérica de ecuaciones en ecuaciones
que involucren funciones trigonométricas.
Métodos Numèricos 44 Ing. Washington Medina MSc
CAPITULOIII
APROXIMACIÓN POLINOMIAL
7. Interpolación Matemática
En las aplicaciones en general, es frecuente trabajar con funciones expresadas en
forma tabular, o valores que provienen de un experimento.
Interpolar un valor implica calcular el valor de Y para una valor específico de X, este
problema es factible resolverlo aplicando métodos aproximados que permiten calcular
el valor a interpolarse a la vez definir la ecuación que contiene a todos y cada uno de
los puntos dados.
La interpolación polinomial se puede expresar por series de potencias, por
interpolación de Newton y por interpolación de Lagrange, concentraremos nuestro
estudio en los dos últimos métodos.
La aproximación polinomial tiene gran utilidad cuando los valores reflejados en la
tabla tienen el comportamiento de una función desconocida y que en muchas ocasiones
el encontrar la antiderivada de la misma resulta una imposibilidad matemática.
Y=f(x)
Y=P(x
)
y0 y1 y2 ..........yn
Xo X1 X2.............Xn
FIG. 7.1
7.1. Interpolación de newton (interpolación con incrementos constantes).
Considerando en el gráfico anterior incrementos constantes los pares ordenados son:
Xi yi
X0 yo
x1 = x0 + h y1
x2 = x0 + 2h y2
..... ..
....... ...
xn = x0 + nh yn
TABLA 7.1.1
Métodos Numèricos 45 Ing. Washington Medina MSc
Xi yi y 2y 3y
x0 yo
a0 = y1 – yo
x1 = x 0 + h y1 b0 = a1 – a0
a1 = y2 – y1 c0 = b1 – b0
x2 = x0 + 2h y2 b1 = a2 - a1
a2 = y3 – y2 c1 = b2 – b1
x3 = x0 + 3h y3 b2 = a3 – a2
a3 = y4 – y3 . .
x4 = x0 + 4h y4 . . c(n-3)=b(n-2)-b(n-3)
..... .. . .
....... ... . b(n-2)=a(n-1) - a(n-2)
.
a(n-1)=y(n) – y(n-1)
xn = x0 + nh yn
TABLA 7.1.2
y3 = a2 – y2
a2 = a1 + b1
b1 = b0 + c4
y3 = a1 + b1 + a2 + y1
y3 = a1 + b1 + (b0 + a0) + a0 + y0
y3 = (a0 + b0) + b0 + c0 + b0 + a0 + a0 + y0
y3 = yo + 3a0 + 3b0 + c0
.......
........
y4 = yo + 4a0 + 6b0 + 4c0 + d0 (7.2)
Métodos Numèricos 46 Ing. Washington Medina MSc
Podemos observar que las diferencias se ven afectadas por los coeficientes del binomio
de Newton, por lo que puede generalizarse con la siguiente fórmula:
k ( k 1) k ( k 1)( k 2) k ( k 1)( k 2)( k 3)
y k y 0 ka o bo co d o ... ..
2 3 4
h
x0 xk x1 = x0 + h
x k xo
xk = x0 +kh k (7.3)
h
Ejemplo 11.
Dada la función tabular (x,y) , calcular:
- el valor de y para x = 3.2
- la función representativa
X y y 2y 3y
0 1 12 56 48
2 13 68 104 48
4 81 172 152 48
6 253 324 200
8 577 524
10 1101
TABLA 7.1.3
Solución.
observamos que es un polinomio de tercer grado entonces aplicamos las formulas:
xk = 3.2
Métodos Numèricos 47 Ing. Washington Medina MSc
x0 = 2
h=2
k = (xk – x0) / h
k = (3.2 - 2) / 2
k = 0.6
Para calcular la función representativa de una tabla dada podemos utilizar el mismo
método de la forma siguiente
x2
k
2
x2 x2 x2 x2 x2
( )( 1) ( )( 1)( 2)
x2 2 2 2 2 2
y 13 ( )68 * 104 * 48
2 2 6
el polinomio es y x3 x 2 1
X 0 1 2 3 4 5 6 7 8 9 10 11 12
Y -1 3 41 173 483 1079 2093 3681 6023 9323 13809 19733 27371
Sol. Y = 383.316
24. Interpolar x = 9
X 0 2 4 6 8 10 12 14 16
Y 5 8 43 158 401 820 1463 2378 3616
Sol. Y = 585.5
X 0 1 2 3 4 5 6 7
Y 1 2 5 10 17 26 37 50
Sol. Y = 12.22
Y = 20.803
Y = 46.56
Métodos Numèricos 48 Ing. Washington Medina MSc
TALLER 12: Código para la tabla de diferencias finitas del método de interpolación
de Newton ARCHIVO: INTERPOLACIONDENEWTON.m
clc
clear
n=input('Ingrese numero de datos');
for i=1:n
fprintf('A(%d,%d)=',i,1);
A(i,1)=input('');
end
%end
for i=1:n
% for j=1:n
fprintf('B(%d,%d)=',i,2);
A(i,2)=input('');
end
k=1;
%for i=1:n
for j=3:n
for i=1:n-k
A(i,j)=A(i+1,j-1)-A(i,j-1);
end
k=k+1;
end
A
%end
%for i=1:n
% for j=1:n
%fprintf('\t%3d\t\t%10.4f\t\t%10.4f\n',i,A,B)
% fprintf('\t\t%10.4f\t\t%10.4f\n',A(i,j))
%end
%end
n (X X J )
y
j 1
n
* yi donde ji (7.5)
i 1
(X
j 1
i XJ)
Métodos Numèricos 49 Ing. Washington Medina MSc
X Y
0 2
2 8
4 62
6 212
8 506
10 992
Solución:
y
3.2 23.2 43.2 63.2 83.2 10 * 2
0 20 40 60 80 10
3.2 03.2 43.2 63.2 83.2 10 * 8
2 02 42 62 82 10
3.2 03.2 23.2 63.2 83.2 10 * 62
. 4 04 24 64 84 10
3.2 03.2 23.2 43.2 83.2 10 * 212
6 06 26 46 86 10
3.2 03.2 23.2 43.2 63.2 10 * 506
8 08 28 48 68 10
3.2 03.2 23.2 43.2 63.2 8 * 992 31.568
10 010 210 410 610 8
26. Interpolar x =5
X 1 3 4 7 10 12
Y 1.8 51.4 136.2 846.6 2619 4630.6
Sol. Y = 287.02
X 0 1 4 7 10 13 16
Y -1 4 151 622 1579 3184 5599
Sol. Y = 2034
Métodos Numèricos 51 Ing. Washington Medina MSc
inicio
Interpolación de
Lagrange para
N, X
intervalos constantes
y variables
i=1,N+1
X(i), Y(i)
Y=0
Sugerencia:
i=1,N
co m p le te e l
si
i=N p ro g ra m a p a ra
q u e i n c lu ya e n
NUM=1 lo s resul tado s el
DEN=1
p o l i n o m i o
J=1,N re p re s e n ta ti vo
de los datos
si
J=N
tabulados
si
i=J
NUM=NUM*(X-X(J)
DEN=DEN*(X(i)-X(J)
NUM
Y Y * Y (i )
DEN
Y=solución
fin
- La solución está entre 1 < x < 2 por lo que se trabaja en ese intervalo .
-3 1
Y=0
1.75 1.5
5 2
(x 5)dx
2
(x 5)dx 205.33
2
Ahora vamos a ver como de la misma función pero expresada en forma tabular,
calculamos el área aproximada, utilizando rectángulos y trapecios :
X Y
1 6
2 9
3 14
4 21
5 30
1 2 3 4 5
FIG. 8.1
Para conocer el área aproximada bajo la curva , tomamos en cuenta los rectángulos
que se forman entre cada intervalo de par ordenado
Entonces : A=B*h
A = 1( 6 + 9 + 14 + 21 ) = 50
Si a este dato le comparamos con el de la integral de la función .
Tenemos que existe un error no tolerable . 205.33 50
Esto ocurre porque no estamos tomando en cuenta las pequeñas áreas casi triangulares
que se forman entre los rectángulos y la grafica de la función.
Para solucionar este error no tolerable se recomienda deducir fórmulas con el criterio
de trapecios que se acercan más a la gráfica.
Métodos Numèricos 54 Ing. Washington Medina MSc
La fórmula del área del trapecio nos permite plantear varios métodos para el cálculo
de integrales definidas.
x o x1 x2 x3 x4 x5 x6
FIG. 9.1
Aplicando la fórmula del trapecio, y sumando todos los trapecios indicados en el
gráfico se obtiene:
A = h ( Y0 + Y1 ) / 2 + h ( Y1 + Y2 ) / 2 + h ( Y2 + Y3 ) / 2 + ..........(9.1)
Realizando las operaciones correspondientes no queda :
h
A ( y0 y n 2 resto de ordenadas) (9.2)
2
Una forma sencilla de definir fórmulas más exactas es considerando que una función es
expresable como una serie (binomio de Newton) con diferencias finitas:
k ( k 1) 2 k ( k 1)( k 2) 3
f ( x ) y 0 ky o yo yo
2 3
k ( k 1)( k 2)( k 3) 4
y o ... (9.3)
4
xn n2 n3 n 2 2 n 4 n3 n 2 3
f ( x ) dx h ny
o 2
y (
o 6
4
) y (
o 24
6
6
) y ......
o
(9.5)
xo
FIG. 9.2
x2 n2 n3 n 2 2
f ( x ) dx h ny
o 2
y (
o 6
4
) y
o
xo
como y y y Y 2 y y 2 y y
o 1 o o 2 1 o
x2
h
f ( x ) dx ( yo 4 y1 y 2 ) (9.6)
3
xo
x3 n2 n3 n 2 2 n 4 n3 n 2 3
f ( x ) dx h ny
o 2
y (
o 6
4
) y (
o 24
6
6
) y
o
xo
3
como y y y Y 2 y y 2 y y y o y 3 3 y 2 3 y1 y o
o 1 o o 2 1 o
x3
3
f ( x ) dx
8
h( y
o
3y 3y y )
1 2 3
(9.7 )
xo
Si en cada uno de los análisis se considera los trapecios de cero a n, se definen tres
fórmulas:
h
A ( y0 y n 2 ordenadaspares 4 orden.impares) (9.9)
3
Fórmula de Simpson del 3/8: Se considera que n debe ser siempre múltiplo de 3
pues el análisis se lo realizó con tres trapecios. (9.10)
3
A h( y 0 y n 2 orden. multiplosde3 3 resto.de.orden). (9.10)
8
Ejemplo 15.
Resolver la integral indicada utilizando todas las fórmulas y encontrar el error de cada
una de ellas en relación con la solución exacta.
8
.i X Y
0 1 6
1 1.875 8.516
2 2.75 12.56
0.875 6 69 2 * (12.56 25.25 44.06)
Sol 4 * (8.516 18.14 33.89 55.77)
3 3.625 18.14 3
4 4.5 25.25
5 5.375 33.89 Sol 205.33
6 6.25 44.06
7 7.125 55.77
8 8 69
TABLA 9.2
.i X Y
0 1 6
1 1.778 8.16 3 6 69 2 * (16.16 37.13) 3 * (8.16 11.53 21.91
Sol * 0.778
28.91 46.6 57.13)
2 2.556 11.53 8
3 3.334 16.16
Sol 205.48
4 4.112 21.91
5 4.89 28.91
6 5.668 37.13
7 6.45 46.6
8 7.22 57.13
9 8 69
TABLA 9.3
Métodos Numèricos 58 Ing. Washington Medina MSc
Conclusión del ejercicio: se puede observar que las dos fórmulas de Simpson presentan
el menor error, en igual forma, el resultado es más cercano al real mientras más
intervalos existan.
i ni ci o
N, K
Integraci ón numér ic a por
di v er sos métodos
i =0,N -1
X( i ), Y( i)
h=X( 2) -X(1)
si
Tr apec ios
si s=0
si mpson 1/3
i =1,N -1
N es si
par S=S+y( i)
no es
apl ic able
N es si SP=0,
Y (o) Y ( N )
múlti pl o de 3 SIP=0 A( S) * h
i =2,N -2,2
2
no es
apl ic able
SP=SP+y (i )
2 1 2 2
i =1,N -1,2
SIP=SIP+y( i)
h
A (Y (o) Y ( N) 2 * S P 4 * S IP)
3
2
Métodos Numèricos 59 Ing. Washington Medina MSc
SP=0,
SIP=0
i=1,N -1
si
i es
múltiplo de 3
SIP=SIP+y (i
SP=SP+y( i)
)
3
A h(Y (o) Y ( N) 2 * S P 3 * S IP)
8
fin
TALLER 13: Código para integración numérica por el método del trapecio
ARCHIVO: integración1.m
clc
clear
f=input('ingrese la funcion : ','s');
x1=input('ingrese el valor inicial de x : ');
x2=input('ingrese el valor final de x : ');
n=input('ingrese pares ordenados: ');
x11=x1;
h=(x2-x1)/n;
f1=inline(f);
yo=f1(x1);
yn=f1(x2);
integral=int(f,'x')
fprintf('\t\t k\t\t x1\t\t\t fx\t\t \n')
area=0;
for k=1:n-1
x1=x1+h;
fx=f1(x1);
area=area+fx;
end
for k=0:n
fx=f1(x11);
x11=x11+h;
fprintf('\t\t%3d\t\t%4.2f\t\t%4.2f\t\n',k,x11,fx)
end
Métodos Numèricos 60 Ing. Washington Medina MSc
x=-5:0.01:5;
fplot(f1,[-5 5],'b');
grid
integral=(yo+yn+2*area)*h/2;
fprintf('el valor de la integral es' ),disp(integral)
TALLER 14: Código para integración numérica por el método de Simpson 1/3
ARCHIVO: integración13.m
clc
clear
f=input('ingrese la funcion : ','s');
x1=input('ingrese el valor inicial de x : ');
x2=input('ingrese el valor final de x : ');
n=input('ingrese pares ordenados: ');
if mod(n,2);
n=n+1;
end
x11=x1;
h=(x2-x1)/n;
f1=inline(f);
integral=int(f,'x')
fprintf('\t\t k\t\t x1\t\t\t fx\t\t \n')
for k=0:n
fx=f1(x11);
fprintf('\t\t%3d\t\t%4.2f\t\t%4.2f\t\n',k,x11,fx)
x11=x11+h;
end
yo=f1(x1);
yn=f1(x2);
area=0;
area1=0;
for k=1:n-1
x1=x1+h;
fx=f1(x1);
if mod(k,2) == 0
area1=area1+fx;
else
area=area+fx;
end
end
Métodos Numèricos 61 Ing. Washington Medina MSc
x=-5:0.01:5;
fplot(f1,[-5 5],'b');
grid
integral=(yo+yn+2*area1+4*area)*h/3;
fprintf('el valor de la integral es' ),disp(integral)
Observe que si ingresa un número impar el programa se ejecuta, pero no cumple con la
condición del método en el sentido de que funcione para un valor n par, rectifique el
código para que cumpla dicho requisito.
TALLER 15: Código para integración numérica por el método de Simpson 3/8
ARCHIVO: integración38.m
clc
clear
f=input('ingrese la funcion : ','s');
x1=input('ingrese el valor inicial de x : ');
x2=input('ingrese el valor final de x : ');
n=input('ingrese pares ordenados: ');
if mod(n,3)
fprintf('el valor de n debe ser multiplo de 3, rectifique\n\n')
n=input('ingrese pares ordenados: ');
else
n=n;
end
x11=x1;
h=(x2-x1)/n;
f1=inline(f);
fprintf('\t\t k\t\t x1\t\t\t fx\t\t \n')
for k=0:n
fx=f1(x11);
fprintf('\t\t%3d\t\t%4.2f\t\t%4.2f\t\n',k,x11,fx)
x11=x11+h;
end
yo=f1(x1);
yn=f1(x2);
integral=int(f,'x')
area=0;
area1=0;
for k=1:n-1
x1=x1+h;
fx=f1(x1);
if mod(k,3) == 0
area1=area1+fx;
else
area=area+fx;
end
Métodos Numèricos 62 Ing. Washington Medina MSc
end
x=-5:0.01:5;
fplot(f1,[-5 5],'b');
grid
integral=(yo+yn+2*area1+3*area)*3*h/8;
fprintf('el valor de la integral es' ),disp(integral)
TALLER 16: Código para integración numérica por el método de Simpson 3/8 para
funciones trigonométricas ARCHIVO: integración38contrigonometricas.m
clc
clear
f=input('ingrese la funcion : ','s');
x1=input('ingrese el valor inicial de x : ');
x2=input('ingrese el valor final de x : ');
n=input('ingrese pares ordenados: ');
if mod(n,3)
fprintf('el valor de n debe ser multiplo de 3, rectifique\n\n')
n=input('ingrese pares ordenados: ');
else
n=n;
end
x11=x1;
h=(x2-x1)/n;
f1=inline(f);
fprintf('\t\t k\t\t x1\t\t\t fx\t\t \n')
for k=0:n
fx=f1(x11*pi/180);
fprintf('\t\t%3d\t\t%4.4f\t\t%4.4f\t\n',k,x11,fx)
x11=x11+h;
end
yo=f1(x1*pi/180);
yn=f1(x2*pi/180);
%integral=int(f,'x')
area=0;
area1=0;
for k=1:n-1
x1=x1+h;
fx=f1(x1*pi/180);
if mod(k,3) == 0
area1=area1+fx;
Métodos Numèricos 63 Ing. Washington Medina MSc
else
area=area+fx;
end
end
x=-10:0.01:10;
fplot(f1,[-10 10],'b');
grid
integral=(yo+yn+2*area1+3*area)*3*h*(pi/180)/8;
fprintf('el valor de la integral es' ),disp(integral)
Observe que si ingresa para n un número que no sea múltiplo de 3, el programa se ejecuta, pero no
cumple con la condición del método en el sentido de que funcione para un valor n múltiplo de 3;
rectifique el código para que cumpla dicho requisito.
2.67
(x
1
28. 2
2 x 1)dx Sol : 0.7762
2 1
10
CAPITULO IV
APROXIMACIÓN FUNCIONAL (AJUSTE DE CURVAS)
Permite encontrar la ecuación de la curva que aunque no pase por todos los puntos de
una tabla de datos, tenga variaciones cercanas.La aproximación se basa en el método
de los mínimos cuadrados. La aproximación puede emplearse en muchos casos
prácticos, como por ejemplo en el tratamiento de resultados de observación, ya que ella
compensa las incorrecciones locales aisladas de la función f(x) (por ejemplo errores
producidos en la observación) y también proporciona una representación lo
suficientemente exacta en el transcurso del proceso correspondiente. la aproximación
funcional permite definir una función que esté cercana a una tabla de datos.
Una de las restricciones está en el hecho de conocer previamente a qué grado se acerca
la tabla de datos; por ello es que utilizamos el método de los mínimos cuadrados para
ajustar la curva y definir los coeficientes de la función
Para definir el grado del polinomio al que se desea ajustar el conjunto de puntos se
puede optar por construir el cuadro de diferencias finitas, pero, es más recomendable
graficar los puntos y observar que tipo de curvatura es para escoger el correspondiente
grado, también es recomendable que en lo posible se relacione a los puntos con una
ecuación de grado tres como máximo (aceptar este criterio como una recomendación,
puesto que con el uso de computadoras al facilitar los cálculos, la ecuación puede
relacionarse con un polinomio de n grado).
Aproximación polinomial
Aproximación funcional
FIG. 9.3
Se trata de obtener los coeficientes de la función:
Métodos Numèricos 65 Ing. Washington Medina MSc
y f ( x) ao a1 x a2 x 2 a3 x 3 .... am x m (9.11)
Luego del proceso matemático basado en los residuos o faltantes localizado entre el
punto Y conocido y el punto de la función a calcularse, se obtiene el siguiente sistema
de ecuaciones:
a0 x a1 x 2 a2 x 3 .....am m 1 xy
a0 x 2 a1 x 3 a3 x 4 .....an1 n 2 x 2 y
...................................... (9.12)
.........................................
Ejemplo 16.
Encontrar la ecuación de la curva que mejor se ajuste a la tabla de valores (ejercicio
tomado de Métodos Numéricos de Luthe. Edit. Limunsa)
x y
1 4
2 7
3 9
4 10
5 9
6 7
7 4
FIG. 9.4
Métodos Numèricos 66 Ing. Washington Medina MSc
Solución:
Para encontrar la función que mejor represente a la tabla de valores dada debemos
saber el grado de la función, para ello procedemos a graficar los valores de la tabla.
Como se puede observar, los datos obtenidos representar a una ecuación de segundo
grado, entonces para encontrar la solución formaremos tres ecuaciones:
Nao a1 x a2 x 2 y
ao x a1 x 2 a2 x 3 xy
(9.13)
a0 x a1 x a2 x x y
2 3 4 2
. a o
0.57421 a 5.14286 a
1 2
0.64285
ejemplo 17.
x y Nao a1 x a2 x 2 a3 x 3 y
1 1
2 7
3 25 ao x a1 x 2 a2 x 3 a3 x 4 xy
4 61
5 121 a0 x 2 a1 x 3 a2 x 4 a3 x 5 x 2 y
6 211
7 337 a0x3 a1x4 a2x5 a3x6 x3y
8 505
Resolviendo el sistema:
a0 0.944 a1 0.99 a2 0 a3 1
f(x) = 0.944 - 0.99x - 7.27x 10-11x² + x³
5. se resuelve el sistema z = w
ejemplo 18 resolver el ejemplo 16 con esta metodología
x0 x1 x2
1 1 1 4
1 2 4 7
1 3 9 9
1 4 16 10
X= 1 5 25 Y= 9
1 6 36 7
1 7 49 4
1 1 1 1 1 1 1
1 2 3 4 5 6 7
1 4 9 16 25 36 49
7 28 140
U=XT*X= 28 140 784
140 784 4676
50
T 200
V=X *Y
946
Métodos Numèricos 69 Ing. Washington Medina MSc
Resolvemos el siguiente sistema y los resultados son los mismos que el ejercicio 16
a0 a1 a2
7 28 140 50
28 140 784 200
=
140 784 4676 946
a o
0.57421 a 5.14286 a
1 2
0.64285
inicio
Apr oximación
funcional
N, G
(G= grado escogido
para el polinomio )
i=1,N
X(i), Y(i)
J=0,G
i=1,N
i=1,N
y( i,1) =y( i )
i=1,N
J=1,G+1
XT(J,i) =X(i,J)
1
Métodos Numèricos 70 Ing. Washington Medina MSc
k=N
i= 1,G+ 1
J= 1,N
Z(i ,J)= 0
L= 1,K
k=N
i= 1,G+ 1
J= 1,1
W( i,J) =0
L= 1,K
RESUEL VA EL
SISTEMA DE
ECUACI O NES
Z = W
i= 1,G+ 1
a(i)
fi n
clc
clear
n=input('Ingrese numero de datos: ');
for i=1:n
fprintf('X(%d)=',i);
x(i)=input('');
%A(i,1)=input('');
A(i,1)=x(i);
end
for i=1:n
fprintf('Y(%d)=',i);
%A(i,2)=input('');
y(i)=input('');
A(i,2)=y(i);
end
spline(x,y);
plot(x,y)
Métodos Numèricos 71 Ing. Washington Medina MSc
grid
g=input('Ingrese grado: ');
e=0;
for i=1:g+1
for j=1:n
if A(j,1)==0
B(j,i)=0;
end
B(j,i)=A(j,1)^e;
end
e=e+1;
end
B
for i=1:n
C(i,1)=A(i,2);
end
C
U=B' * B;
V=B' * C;
U
V
S=inv(U)*V;
S
33.
X 0 1 2 3 4 5 6 7
Y 2 4 3 6 5 7 9 8
34.
X 0 1 3 4 7 9
Y 2 4 6 9 11 14
35.
X 0 1 2 3 4 5 6
Y 3 6 9 15 18 21 25
36.
X 0 1 2 3 4 5
Y -1 0 1 20 99 304
Solución : y x 4 3x 3 2 x 2 x 1
37.
X 1 2 3 4 5 7
Y 3 19 53 111 304 323
CAPÌTULO V
Ecuación diferencial es una ecuación que relaciona dos o más variables en términos de
derivadas o diferenciales.
Un problema de valores iniciales está gobernado por una ecuación diferencial de orden
n y un conjunto de n condiciones independientes (x, y, y’, y’’, y’’, ...) todas ellas válidas
para el mismo punto inicial.
F(x,y)=0
G(x,y)
FIG. 10.1
En este capitulo nos centraremos en tres métodos para poder resolver las ecuaciones
diferenciales ordinarias, estas son:
Con Integración.
Métodos Numèricos 74 Ing. Washington Medina MSc
y’ = ½ ( 1 + x ) y2 ; y(0) = 1
12.1. Solución por integración.-
Sin lugar a duda es el método más conocido y utilizado para la solución de ecuaciones
diferenciales ordinarias, pero su aplicación es válida si el proceso de integración por
fórmulas es factible.
Para resolver utilizando éste método, debemos separar las variables independientes de
las dependientes en la ecuación original.
y 1
( x 1) y 2
x 2
y 1
( x 1)x
y2 2
y 1
y 2 2 ( x 1)x (12.1)
1 x2 x
C
y 4 2
1 x 2 2x C
y 4
4
y 2
x 2x C
integración.
Reemplazando x = 0 ; y = 1 en la solución, se obtiene C = -4.
Por tanto la solución particular es:
4
y
4 2x x 2
( x 1) ( x 1) 2 ( x 1) 3
ln( x) 0 1 * (1) * 2* ..............
1! 2! 3!
Métodos Numèricos 76 Ing. Washington Medina MSc
1 1
ln( x) x 1 ( x 1) 2 ( x 1) 3 ...........
2 3
Una vez que nos hemos familiarizado con la serie de Taylor, apliquemos estos criterios
a la solución de ecuaciones diferenciales ordinarias; con la siguiente formula:
( x x0 ) ( x x0 ) 2 ( x x0 ) 3
y y0 y'0 y' '0 y' ' ' 0 ........(12.2)
1! 2! 3!
Ejemplo 20
Resolver la siguiente ecuación diferencial ordinaria, utilizando la serie de Taylor.
y’ = ½ ( 1 + x ) y2 ; y(0) = 1
x=0
y=1
y’ = ½ (1+x)y2 = ½
y’’ = ½ y2 + (1+x)yy’ = 1
Y = 1 + ½ x + ½ x2 + 3/8 x3
12.3. Solución por el método de Runge Kutta.- El método sugiere que mediante
procesos iteractivos, se encuentre la solución de una ecuación diferencial ordinaria,
expresada en forma tabular. La base teórica del método es el de aproximaciones
sucesivas; y, luego del correspondiente análisis se obtienen las siguientes formulas.
Métodos Numèricos 77 Ing. Washington Medina MSc
h
y (0) t y ( 0) i ( k1 2 k 2 2 k 3 k 4 )
6
k1 f ( x , y )
h kh
k2 f (x , y 1 ) (12.3)
2 2
h k h
k3 f ( x , y 2 )
2 2
k 4 f ( x h, y k 3 h)
Se debe tomar en cuenta que este proceso se lo puede hacer varias veces sin considerar
ningún valor límite.
Ejemplo 21.
Resolver la siguiente ecuación diferencial ordinaria, utilizando el método de Runge
Kutta.
y’ = ½ ( 1 + x ) y2 ; y(0) = 1
para x 0 y 1
1
k1 (1 0 )(1)
2
0.5
2
k2
1
2
1 (0
0.1
2
) 1
0.1 * 0.5
2
2
0.5516
k3
1
2
1 (0
0.1
2
) 1
0.1 * 0.5516
2
2
0.5544
k3
1
1 (0 0.1)1 0.1 * 0.55442 0.6127
2
y 1
0.1
0.5 2 * 0.5516 2 * 0.5544 0.6127 1.05541
6
Con estos datos se realiza el siguiente proceso:
Métodos Numèricos 78 Ing. Washington Medina MSc
1
f ( 0.1) 1.0554 k1 (1 0.1)(1.0554 )
2
0.6126
2
1 2
f ( 0.15) 1.086 k2 (1 0.15)(1.086 ) 0.6782
2
1 2
f ( 0.15,1.0893) k3 (1 0.15)(1.0893) 0.6823
2
1 2
f ( 0.2,1.1236) k4 (1 0.2 )(1.1236 ) 0.7575
2
0.1
y 1.05541 ( 0.6126 2 ( 0.6782 ) 2 ( 0.6823) 0.7575) 1.12392
6
x y k1 k2 k3 k4
0 1,0000 0,5000 0,5516 0,5544 0,6127
0,1 1,0554 0,6126 0,6782 0,6823 0,7575
0,2 1,1236 0,7575 0,8431 0,8494 0,9494
0,3 1,2085 0,9492 1,0647 1,0745 1,2121
0,4 1,3158 1,2119 1,3735 1,3896 1,5872
0,5 1,4545 1,5868 1,8234 1,8517 2,1509
TABLA 12.3.1
i=1,5
x(i,1)=X , y(i,2)=Y ,
h=0.1
K1(i,3)=0.5*{1+X(i,1)}*Y(i,2)2
K2(i,4)=0.5*{1+X(i,1)+0.5h}*{Y(i,2)+K1(i,3)*0.5h}2
K3(i,5)=0.5*{1+X(i,1)+0.5h}*Y(i,2)+K2(i,4)*0.5h}2
K4(i,6)=0.5*{1+X(i,1)}*{Y(i,2)+K3(i,5)*h}2
X=X(i,1)+h
Y=Y(i,2)+(h/
6)*{K1(i,3)+2K2(i,4)+2K(i,5)+K(i,6)
i=1,5
TALLER 19: Código para el método de Runge Kutta para una sola función
ARCHIVO:rungekuttasimple.m
clc
clear
f=input('ingrese la funcion : ','s');
%g=input('ingrese la funcion : ','s');
x1=input('ingrese el valor de x : ');
y1=input('ingrese el valor y : ');
h=input('ingrese el valor de h : ');
n=input('ingrese pares ordenados: ');
Métodos Numèricos 80 Ing. Washington Medina MSc
f1=inline(f);
%g1=inline(g);
fprintf('\t\t\t x\t\t\t\t y\t\t\t\t k1\t\t\t\t k2\t\t\t\t k3\t\t\t k4\t\t \n')
for k=1:n
k1=f1(x1);
x2=x1+h/2;
y2=y1+k1*h/2;
k2=f1(x2);
x3=x1+h/2;
y3=y1+k2*h/2;
k3=f1(x3);
x4=x1+h;
y4=y1+k3*h;
k4=f1(x4);
fprintf('\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\n',x1,y1,k1,k2,k3,k4)
x1=x1+h;
y1=y1+h*(k1+2*k2+2*k3+k4)/6;
end
clc
clear
f=input('ingrese la funcion : ','s');
%g=input('ingrese la funcion : ','s');
x1=input('ingrese el valor de x : ');
y1=input('ingrese el valor y : ');
h=input('ingrese el valor de h : ');
n=input('ingrese pares ordenados: ');
f1=inline(f);
%g1=inline(g);
fprintf('\t\t\t x\t\t\t\t y\t\t\t\t k1\t\t\t\t k2\t\t\t\t k3\t\t\t k4\t\t \n')
for k=1:n
k1=f1(x1,y1);
x2=x1+h/2;
y2=y1+k1*h/2;
k2=f1(x2,y2);
x3=x1+h/2;
y3=y1+k2*h/2;
k3=f1(x3,y3);
x4=x1+h;
y4=y1+k3*h;
k4=f1(x4,y4);
fprintf('\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\t%9.4f\t\n',x1,y1,k1,k2,k3,k4)
x1=x1+h;
y1=y1+h*(k1+2*k2+2*k3+k4)/6;
end
Métodos Numèricos 81 Ing. Washington Medina MSc
Consultas e investigación:
1. Resolver tres ejercicios de integración cada uno con los
diferentes métodos involucrando en estos ejercicios
funciones trigonométricas, incluir conclusiones (en caso de
existir).
2. Resolver tres ejercicios de ecuaciones diferenciales por todos
los métodos involucrando en estos ejercicios funciones
trigonométricas, incluir conclusiones (en caso de existir).
EJERCICIO UNIFICADO
Encontrar la solución numérica de la ecuación diferencial indicada, por el método de
Runge Kutta.
CODIFICACIONES
La matriz triangular superior
La multiplicación de dos matrices
Intercambio de filas de una matriz
La matriz triangular inferior
la multiplicación de una matriz por un escalar
La transpuesta de una matriz
Generación de un tabla de datos X/Y de un polinomio
cálculo los coeficientes de la segunda derivada de un polinomio.
Definición de la concavidad del intervalo de un polinomio
Métodos Numèricos 82 Ing. Washington Medina MSc
BIBLIOGRAFÍA.
Murray, Spiegel, Albebra superior, Edit. McGraw-Hill, Tercera edición, 1989, México.
Nakamura, Métodos numéricos aplicados con software, Edit. Prentice Hall, 1993,
México.