Vous êtes sur la page 1sur 44

Mtodos Numricos para Ingeniera

UNIVERIDAD NACIONAL AUTONOMA DE MEXICO FACUTAD DE ESUDIOS SUPERIORES CUAUTITAN

Mtodos Numricos para Ingeniera


Javier Cureo Zuiga

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

CONTENIDOS

1. INTERPOLACIN 1.1. Polinomios de Lagrange 1.2. Interpolacin lineal 2. APROXIMACIN 2.1. Mnimos cuadrados 2.2. Transformada rpida de Fourier 3. RACES DE ECUACIONES 3.1. Mtodo de punto fijo 3.2. Mtodo de Newton-Raphson 3.3. Mtodo de la secante 4. SISTEMAS DE ECUACIONES NO LINEALES 4.1. Mtodo de Newton-Raphson multidimensional 5. DIFERENCIACIN NUMRICA 5.1. Diferencias finitas 6. INTEGRACIN NUMRICA 6.1. Mtodo de los trapecios 7. ECUACIONES DIFERENCIALES CON VALOR INICIAL 7.1. Mtodo de Euler 7.2. Mtodo de Runge-Kutta de cuarto orden 8. ANEXO APUNTES DE METODOS NUMERICOS

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

1. INTERPOLACIN

En la prctica de la ingeniera se utilizan mucho las tablas de datos, como en el caso de las tablas de vapor saturado en la termodinmica. En la mayora de los casos el dato necesario no se encuentra explcito en la tabla sino entre dos valores de sta, para lo cual es necesario estimarlo de entre los valores que presenta la tabla en un proceso conocido como interpolacin. La idea bsica de la interpolacin es hallar un polinomio o funcin que cumpla con pasar por todos los puntos de un conjunto de datos , y poder estimar los valores entre ellos por medio del polinomio.

1.1.

POLINOMIOS DE LAGRANGE

Para ilustrar la interpolacin por polinomios de Lagrange considrese un conjunto de datos de tres puntos . El polinomio interpolador en este caso es

Obsrvese que en el punto slo queda el primer trmino con su numerador y denominador cancelndose entre s, por lo cual . Lo mismo sucede con los dems puntos, por lo que se ve que el polinomio cumple con la condicin de pasar por todos los puntos de datos. En general, para n puntos de datos, el polinomio de Lagrange es

Una forma mucho ms sencilla de ver la ec. 1.1 es en forma de un algoritmo, el cual se muestra escrito para MATLAB en el algoritmo 1.1.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Algoritmo 1.1: Polinomios de Lagrange en MATLAB Entradas: valor a interpolar x, vectores conteniendo los puntos X y Y. Salidas: valor interpolado y.
function [y]=PoliLagrange(x,X,Y) y=0;
for i=1:numel(X) L=1; for j=1:numel(X) if j~=i

L=L*(x-X(j))/(X(i)-X(j)); end
end y=y+L*Y(i);

end

A continuacin se muestra un ejemplo para ilustrar la implementacin del algoritmo 1.1. Ejemplo 1.1. Se tiene el conjunto de datos . En MATLAB

se introducen entonces como los vectores X=[1 2 3 4 5 6], Y=[1 3 -1 0 3 2]. Un ciclo implementando el algoritmo 1.1 muestra el polinomio interpolador de Lagrange

5 Lagrange Datos

-1

-21

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Figura 1.1. Polinomio de Lagrange interpolando los datos.

Hay que tener en cuenta que la interpolacin lineal se hace por pedazos y no entrega un solo polinomio para todo el conjunto de datos como en el caso de los polinomios de Lagrange. La implementacin de la interpolacin lineal en MATLAB teniendo en cuenta que es a pedazos se muestra en el algoritmo 1.2.

Algoritmo 1.2: Interpolacin lineal en MATLAB Entradas: valor a interpolar x, vectores conteniendo los puntos X y Y. Salidas: valor interpolado y.
function [y]=IntLineal(x,X,Y) for i=1:numel(X)-1

if x>=X(i) && x<=X(i+1) y=(Y(i+1)Y(i))/(X(i+1)-X(i))*(x-X(i))+Y(i); end end

Ejemplo 1.2. Utilizando los mismos valores del ejemplo 1.1 se tiene la implementacin del algoritmo 1.2.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

3 2.5 2 1.5 1 0.5 0 -0.5 Datos Int. Lineal

-11

Figura 1.2. Interpolacin lineal de los datos.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

2. APROXIMACIN

En ocasiones se tiene un conjunto de datos experimentales y se desea hallar una funcin analtica que los represente de forma satisfactoria. Para ello es necesario hacer una aproximacin de la funcin a los datos. En el presente captulo se muestran dos mtodos para hacerlo.

2.1.

MNIMOS CUADRADOS

Los mnimos cuadrados es un mtodo basado en minimizar el error entre los datos y la funcin de aproximacin. Para un conjunto de datos , si es la funcin de aproximacin, la suma del cuadrado de los errores es

Y debe minimizarse. En el caso de una recta, se tiene

Para minimizar el error debe cumplirse

, entonces

De donde surge el sistema de ecuaciones lineal

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Algoritmo 2.1: Aproximacin lineal por mnimos cuadrados en MATLAB Entradas: vectores conteniendo los puntos X y Y.

Salidas: pendiente m e intercepto b de la recta de aproximacin.


function [m,b]=mincuadlin(X,Y) n=numel(X); A(2,2)=n; B=zeros(2,1); for i=1:n A(1,1)=A(1,1)+X(i)^2; A(1,2)=A(1,2)+X(i); A(2,1)=A(2,1)+X(i); B(1,1)=B(1,1)+X(i)*Y(i); B(2,1)=B(2,1)+Y(i); end sol=A\B; m=sol(1,1); b=sol(2,1);

El algoritmo 2.1 puede ser optimizado, se deja al lector la optimizacin del mismo como ejercicio. El anlisis hecho para la aproximacin por medio de una recta puede hacerse de manera anloga para cualquier funcin f. Ejemplo 2.1. Ensayo de tensin Se tienen los siguientes datos de la parte elstica de un ensayo de tensin realizado con una probeta, y se desea conocer el mdulo de elasticidad del material:
[mm/mm] [MPa] 0 0 0.001 20.5 0.002 25.2 0.003 35.4 0.004 41.6 0.005 44.2 0.006 50.3

El mdulo de elasticidad viene dado por la pendiente de la recta que aproxima los datos, entonces, aplicando el algoritmo 2.1 a los datos se tiene que la pendiente de la recta es E = 76.7 GPa, y el material que ms se aproxima a tal mdulo es una aleacin de aluminio.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

60 Lineal Datos 50

40
Esfuerzo [MPa]

30

20

10

0 0

3 Deformacin

6
-3

x 10

Figura 2.1. Aproximacin lineal por mnimos cuadrados.

2.2.

TRANSFORMADA RPIDA DE FOURIER

Las series de Fourier son tiles para representar cualquier onda como una sumatoria de senos y cosenos. En este caso se tratar nicamente con el manejo de datos experimentales por medio de la transformada rpida de Fourier. Cuando se tiene una serie de datos en el tiempo , con una frecuencia de muestreo (es decir, inverso del intervalo de tiempo entre datos medidos) y un nmero de datos N par, se define una resolucin en frecuencia y la funcin que aproxima los datos es

Los coeficientes

se calculan de la siguiente manera

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Una aplicacin til de la transformada rpida de Fourier es el anlisis de espectros de frecuencias, que son grficas de la amplitud total de la onda en funcin del armnico n o la frecuencia. La amplitud de la onda es

En el algoritmo 2.2 se saca el espectro de frecuencia de una onda.


Algoritmo 2.2: Espectro de frecuencias de una onda en MATLAB Entradas: vector de valores de la onda x. Salidas: frecuencias f y amplitud C para la grfica del espectro de frecuencias.
function [f,C]=TFourier(x) %Carlos Armando De Castro P.

N=numel(x); %Coeficientes
for n=0:N/2; A(n+1)=0; B(n+1)=0; for r=1:N; A(n+1)=A(n+1)+2/N*x(r)*cos(2*pi*r*n/N); B(n+1)=B(n+1)+2/N*x(r)*sin(2*pi*r*n/N); end C(n+1)=sqrt((A(n+1))^2+(B(n+1))^2); f(n+1)=r*n/N;

armnicos.

end

Algoritmo 2.3: Anlisis de Fourier de una grabacin en MATLAB Entradas: grabacin hecha con el computador. Salidas: espectro de frecuencias y onda reconstruida por Fourier.
function [time, C, y]=voz_fourier %Carlos Armando De Castro P.

%Toma

de

datos.

fs=input('Frecuencia de muestreo [Hz] fs = '); N=input('Nmero de datos (par) N = '); sw=0; while sw==0; sw=input('Oprima cualquier nmero diferente de cero y ENTER para grabar: '); voz=wavrecord(N,fs); end

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Df=fs/(N); time=1/fs:1/fs:N/fs; X(:,2)=voz; X(:,1)=time; %Coeficientes


for n=0:N/2; A(n+1)=0; B(n+1)=0; for r=1:N; A(n+1)=A(n+1)+2/N*X(r,2)*cos(2*pi*r*n/N); B(n+1)=B(n+1)+2/N*X(r,2)*sin(2*pi*r*n/N);

armnicos.

end C(n+1)=sqrt((A(n+1))^2+(B(n+1))^2); end C=C'; %Funcin for y(t)

r=1:N; y(r)=A(1)/2+A(N/2+1)/2*cos(2*pi*N/2*Df*X(r,1)); for n=0:N/2;

y(r)=y(r)+A(n+1)*cos(2*pi*n*Df*X(r,1))+B(n+1)*sin(2*pi*n*Df*X(r,1)); end

end y=y';

Ejemplo 2.2: Anlisis de la voz humana Considrese por ejemplo una grabacin de una palabra, en la figura 2.2 se muestra la grfica de una grabacin digitalizada tomada y analizada con el algoritmo 2.3. En la figura 2.3 se muestra el espectro de frecuencias de la grabacin.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

0.5 0.4 0.3 0.2 0.1


Amplitud

0 -0.1 -0.2 -0.3 -0.4 -0.50

0.2

0.4 0.6 Tiempo [s]

0.8

Figura 2.2. Grabacin de una palabra.

0.025

0.02

0.015

0.01

0.005

0 0

200

400

600

800

1000

1200

Figura 2.3. Espectro de frecuencias de la grabacin.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

3. RACES DE ECUACIONES

En ocasiones en el mbito de la ingeniera es necesario resolver ecuaciones no lineales que no tienen solucin analtica o que es muy complicado hallarlas, como en el caso de la frmula de la secante para pandeo de columnas con carga excntrica. Para estos casos, deben utilizarse mtodos de solucin numrica de ecuaciones.

3.1.

MTODO DE PUNTO FIJO

El mtodo de punto fijo consiste en una forma iterativa de resolver una ecuacin de la forma . El mtodo consiste en elegir una aproximacin inicial y realizar la iteracin

Hasta que la diferencia

sea muy cercana a cero, para lo cual se

establece una tolerancia a criterio del usuario. En el algoritmo 3.1 se muestra el algoritmo de punto fijo en pseudocdigo parecido a MATLAB, debido a que no hay forma de escribir un cdigo en MATLAB general para este mtodo.
Algoritmo 3.1: Mtodo de punto fijo (pseudocdigo) Entradas: aproximacin inicial x0, tolerancia TOL Salidas: valor x tal que f(x)=x
sw=1; x1=x0; while sw==1

x2=f(x1); if abs(x2-x1)<=TOL x=x2; sw=0; end x1=x2; end

Ejemplo 3.1. Mecnica de la fractura La ecuacin de factor de intensidad de esfuerzos para una placa de ancho w y espesor t con una grieta en el borde de largo a es

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Donde Y es un factor geomtrico que depende del ancho de la placa y el tamao de grieta, siendo

La falla catastrfica de la placa se produce cuando el factor de intensidad de esfuerzos K iguala o supera a la tenacidad a la fractura KIc, entonces el tamao de grieta crtica es

Como el factor geomtrico Y depende de af, la ecuacin E3.3 debe resolverse por el mtodo de punto fijo. La iteracin es entonces:

Se tiene un caso de una placa sujeta a tensin donde w = 2.5in, = 24.89ksi, KIc = 52ksiin. Se elige como aproximacio n inicial a0 = 0.250in. Una tabla de Excel programada para este caso particular con el mtodo de punto fijo entrega la solucin con tres cifras decimales:
a(i) 0.250 0.987 0.322 0.620 0.619 0.620 Y 2.103 3.684 2.180 2.655 2.654 2.655 a (i+1) 0.987 0.322 0.919 0.619 0.620 0.620 a (i+1) - a (i) 0.737 -0.665 0.597 -0.001 0.001 0.000 Iteracin 1 2 3 118 119 120

La tabla muestra que la iteracin converge en 120 pasos al valor

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

1.200 1.000 0.800


af [in]

0.600 0.400 0.200 0.000 0


20 40 60 80

100

120

Iteracin

Figura 3.1. Valor calculado de af en cada iteracin.

3.2.

MTODO DE NEWTON-RAPHSON . El mtodo consiste en

Se utiliza para resolver ecuaciones de la forma elegir una aproximacin inicial y realizar la iteracin

Hasta que la diferencia

sea muy cercana a cero, para lo cual se

establece una tolerancia a criterio del usuario. En el algoritmo 3.2 se muestra el algoritmo de Newton-Raphson en pseudocdigo parecido a MATLAB, debido a que no hay forma de escribir un cdigo en MATLAB general para este mtodo.
Algoritmo 3.2: Mtodo de Newton-Raphson (pseudocdigo) Entradas: aproximacin inicial x0, tolerancia TOL Salidas: valor x tal que f(x)=0
sw=1; x1=x0; while sw==1 x2=x1-f(x1)/f(x1); if abs(x2-x1)<=TOL x=x2; sw=0; end x1=x2;

end

INGENERIA MECANICO ELECTRICA JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Ejemplo 3.2. Se desea resolver la ecuacin entonces se tiene con y tres cifras significativas, . La iteracin es entonces

Se escoge una aproximacin inicial x0 = -10, entonces, una sencilla tabulacin en Excel da la raz
x(i) -10.000 -6.690 -4.502 -3.079 -2.198 -1.729 -1.566 -1.546 x(i+1) -6.690 -4.502 -3.079 -2.198 -1.729 -1.566 -1.546 -1.546 x(i+1)-x(i) 3.310 2.188 1.423 0.881 0.469 0.162 0.020 0.000

3.3. MTODO DE LA SECANTE Se utiliza para resolver ecuaciones de la forma . El mtodo consiste en elegir dos aproximaciones iniciales y realizar la iteracin

Hasta que la diferencia

sea muy cercana a cero, para lo cual se

establece una tolerancia a criterio del usuario. El mtodo de la secante tiene la ventaja de que no se debe derivar la ecuacin. En el algoritmo 3.3 se muestra el algoritmo del mtodo de la secante en pseudocdigo parecido a MATLAB, debido a que no hay forma de escribir un cdigo en MATLAB general para este mtodo.
Algoritmo 3.3: Mtodo de la secante (pseudocdigo) Entradas: aproximaciones iniciales x0, x1, tolerancia TOL Salidas: valor x tal que f(x)=0
sw=1; while sw==1 x2=x1-(x1x0)*f(x1)/(f(x1)-f(x0)); if abs(x2-x1)<=TOL x=x2; sw=0; end end

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Ejemplo 3.3. Se necesita resolver la ecuacin trigonomtrica entre con tres cifras significativas. La iteracin en este caso es entonces

Con una tabla de Excel programada con el mtodo de la secante se hallan las tres soluciones .
4 3 2 1 0 -1 0 -2 -3 -4 2 4 6 8 10 12

Figura 3.2. Grfica de la ecuacin del ejemplo 3.3, donde se observan las tres races de la ecuacin.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

4. SISTEMAS DE ECUACIONES NO LINEALES

En ocasiones surgen sistemas de ecuaciones no lineales que deben resolverse. Para ello existen mtodos iterativos, de los cuales se presenta uno muy til.

4.1.

MTODO DE NEWTON-RAPHSON MULTIDIMENSIONAL

El mtodo de Newton-Raphson multidimensional sirve para resolver un sistema de ecuaciones de la forma

El mtodo procede definiendo dos vectores x y F(x), tal que

Luego procede a hallarse el jacobiano del sistema, siendo ste definido como

Debe hacerse una aproximacin inicial de la solucin x0, y luego se hace la iteracin

Hasta que el valor sea muy cercano a cero, para lo cual se define una tolerancia a criterio del usuario. La iteracin 5.2 es recomendable hacerla en dos pasos, primero resolviendo el sistema lineal

Y luego realizando la iteracin

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

5. DIFERENCIACIN NUMRICA

La diferenciacin numrica es muy til en casos en los cuales se tiene una funcin que es muy engorrosa de derivar, o en casos en los cuales no se tiene una funcin explcita sino una serie de datos experimentales. 5.1. DIFERENCIAS FINITAS

Para entender de una manera sencilla la discretizacin por diferencias finitas de una derivada debe tenerse en cuenta la interpretacin geomtrica de la derivada en un punto, que es la pendiente de la curva en el punto de inters. Considrense tres puntos intermedios en una curva como se muestra en la figura 5.1:

Figura 5.1. Curva discretizada. Supngase que interesa la derivada en el punto la pendiente por recta en ese punto son: , tres formas de aproximar

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Las ecuaciones 5.1 a 5.3 son llamadas diferencias finitas. La ecuacin 5.1 se recomienda para hallar la derivada del punto inicial de una curva, la ecuacin 5.2 se recomienda para hallar la derivada del punto final de una curva, y la ecuacin 5.3 es la ecuacin de diferencias finitas centrales, y se recomienda para hallar la derivada en los puntos intermedios de una curva. En el caso cuando las diferencias son constantes para todo el dominio, las ecuaciones de diferencias finitas quedan

La ecuacin 5.4 se recomienda para hallar la derivada del punto inicial de una curva, la ecuacin 5.5 se recomienda para hallar la derivada del punto final de una curva, y la ecuacin 5.6 se recomienda para hallar la derivada en los puntos intermedios de una curva. El mtodo de derivacin por diferencias finitas implementado en MATLAB se muestra en el algoritmo 5.1.
Algoritmo 5.1: Derivacin numrica en MATLAB Entradas: vectores conteniendo los puntos X y Y. Salidas: vector con el valor de las derivadas, df.
function [df]=derivada(X,Y) N=numel(X); df(1)=(Y(2)Y(1))/(X(2)-X(1)); df(N)=(Y(N)Y(N-1))/(X(N)-X(N-1)); for n=2:N1 df(n)=(Y(n+1)-Y(n-1))/(X(n+1)-X(n-1)); end plot(X,df,k-)

La derivacin numrica tambin puede implementarse de forma muy sencilla en tablas de Excel. Ver el archivo de Excel incluido en la pgina web de donde se descarga el libro para ver el ejemplo 5.1 resuelto con Excel.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Ejemplo 5.1. Curvas SVAJ para levas Se tienen los siguientes datos de la curva de movimiento de un seguidor de leva. Determinar si la leva cumple con la continuidad de las curvas de velocidad, aceleracin y sobre-aceleracin (tambin conocida como jerk).
t [s] 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 2.3 2.4 2.5 x [m] 0.00 0.08 0.17 0.26 0.35 0.45 0.54 0.65 0.76 0.87 0.98 1.09 1.20 1.30 1.39 1.46 1.51 1.53 1.50 1.41 1.26 1.02 0.69 0.27 0.24 0.00

Se procede a derivar numricamente la curva con los datos de la tabla para hallar la velocidad, la aceleracin y la sobre-aceleracin del seguidor de la leva. La velocidad, la aceleracin y la sobre-aceleracin del seguidor de hallan con el algoritmo 5.1 en MATLAB de la forma >> v=derivada(t,x); >> a=derivada(t,v); >> j=derivada(t,a);

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Los resultados que se muestran en las figuras 5.2 a 5.5 son las llamadas grficas SVAJ. Se observa que en una parte del ciclo hay un cambio abrupto de velocidad, lo que se confirma al observar el pico discontino en la curva de aceleracin, lo cual puede traer problemas de vibracin, golpes y esfuerzo en el sistema leva-seguidor analizado.

1.6 1.4 1.2 1


x [m]

0.8 0.6 0.4 0.2

0 0

0.5

1 t [s]

1.5

2.5

Figura 5.2. Posicin del seguidor.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

0
v [m/s]

-1

-2

-3

-40

0.5

1 t [s]

1.5

2.5

Figura 5.3. Velocidad del seguidor hallada por derivacin numrica.

15

10

5
[m/ as 2 ]

-5

-10

-150

0.5

1 t [s]

1.5

2.5

Figura 5.4. Aceleracin del seguidor hallada por derivacin numrica.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

150

100

50
[m/ js 3]

-50

-100

-1500

0.5

1 t [s]

1.5

2.5

Figura 5.5. Sobre-aceleracin del seguidor hallada por derivacin numrica.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

6. INTEGRACIN NUMRICA
La integracin numrica es muy til en casos en los cuales se tiene una funcin que es muy engorrosa de integrar o que no posee anti-derivada, o en casos en los cuales no se tiene una funcin explcita sino una serie de datos experimentales. Aunque hay varios mtodos de integracin numrica, ac solo se mostrar en mtodo de los trapecios, ya que es el ms sencillo de implementar y de entender. 6.1. MTODO DE LOS TRAPECIOS

Para entender el mtodo de los trapecios debe tomarse en cuenta la interpretacin geomtrica de una integral como rea bajo la curva, siendo as, considrese el rea de un trapecio entre dos puntos de una curva como se muestra en la figura 6.1.

Figura 6.1. rea de un trapecio entre dos puntos de una curva. El rea del trapecio es

El valor de la integral en un intervalo con n+1 puntos de las distintas reas por sub-intervalo:

es entonces la suma

En el caso que el tamao de sub-intervalo sea un valor 6.2 resulta

constante, la ecuacin

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Otra forma de verlo, y ms fcil de programar en una hoja de Excel, es la siguiente: el valor acumulado de la integral en el intervalo i (notado como Ii) es

Y el valor I de la integral en el dominio de inters es el valor final acumulado de la ecuacin 6.4. La ecuacin 6.4 puede ponerse fcilmente en trminos de frmula de celdas en una hoja de Excel, descargar el archivo de Excel de la pgina donde se descarga el libro para ver el ejemplo 6.1 resuelto en Excel. La implementacin en MATLAB del mtodo de los trapecios con la ecuacin 6.4 se muestra en el algoritmo 6.1.

Algoritmo 6.1: Mtodo de los trapecios en MATLAB Entradas: valor inicial de la integral I0, vectores conteniendo los puntos X y Y. Salidas: vector con el valor acumulativo de la integral, I.
function [I]=integral(I0,X,Y) N=numel(X); I(1)=I0; for n=2:N

I(n)=I(n-1)+0.5*(Y(n)+Y(n-1))*(X(n)-X(n-1));
end plot(X,I,'k-');

Ejemplo 6.1. Mecnica de la fractura El crecimiento de una grieta en el borde de una placa por ciclo de esfuerzos viene dado por la ecuacin de Paris

Donde N es el nmero de ciclos, A y m son constantes del material, es la diferencia de esfuerzos a tensin sobre la pieza y Y viene dado por la ecuacin E3.2. Cuando se observa una grieta de tamao a0, el nmero de ciclos restante para fractura catastrfica de la pieza se obtiene separando las variables e integrando la ecuacin E6.1:

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Supngase que se tiene la placa del ejemplo 3.1 con , con una grieta inicial de . El nmero de ciclos restante para falla es

En este caso, la solucin en MATLAB con el algoritmo 6.1 se implementa de la manera siguiente: >> a=0.25:0.01:0.62; >> for i=1:numel(a) f(i)=1/(6.6e-9*(17.78*(1.99-0.41*(a(i)/2.5)+18.70*(a(i)/2.5)^238.48*(a(i)/2.5)^3+53.85*(a(i)/2.5)^4)*sqrt(a(i)))^2.25); end >> I0=0; >> [N]=integral(I0,a,f); El nmero de ciclos hasta la falla as calculado es Nf = 37109 ciclos. La grfica de crecimiento de la grieta con los ciclos se muestra en la figura 6.2.

0.65 0.6 0.55 0.5


a [in]

0.45 0.4 0.35 0.3

0.25 0

0.5

1.5

2 N [ciclos]

2.5

3.5

4
4

x 10

Figura 6.2. Crecimiento de la grieta con el nmero de ciclos hasta la falla.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

7. ECUACIONES DIFERENCIALES CON VALOR INICIAL


Los mtodos numricos para ecuaciones diferenciales que se presentan aplican para ecuaciones diferenciales ordinarias con condiciones iniciales de tipo

Estos mtodos son muy tiles cuando se tienen ecuaciones diferenciales que no pueden resolverse por los mtodos analticos o cuya solucin analtica es muy engorrosa. 7.1. MTODO DE EULER

El mtodo de Euler consiste en aproximar la derivada de la ecuacin 7.1 por diferencias finitas como en la ecuacin 5.4, entonces la ecuacin diferencial resulta

Por lo cual el valor de la funcin en intervalo de tiempo n+1 es

El mtodo de Euler tiene la desventaja de que se vuelve inestable y la solucin diverge si el tamao de paso de tiempo es muy grande. En el algoritmo 7.1 se muestra el algoritmo del mtodo de Euler en pseudocdigo parecido a MATLAB, debido a que no hay forma de escribir un cdigo en MATLAB general para este mtodo.
Algoritmo 7.1: Mtodo de Euler (pseudocdigo) Entradas: valor inicial y0, tiempo inicial t0, tamao de paso dt, nmero de puntos N Salidas: valores y tal que dy/dt = f(t,y)
y(1)=y0; t(1)=t0; for n=2:N

y(n)=y(n-1)+dt*f(t(n-1),y(n-1)); t(n)=t(n-1)+dt; end

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Ejemplo 7.1. Mecnica de la fractura (otra vez) El crecimiento de una grieta en el borde de una placa por ciclo de esfuerzos viene dado por la ecuacin de Paris (E6.1). Una forma de estimar el crecimiento de una grieta con el nmero de ciclos diferente a la integracin numrica del ejemplo 6.1 es resolviendo la ecuacin E6.1 por el mtodo de Euler, en este caso se tiene la ecuacin diferencial discretizada

Y despejando se tiene el valor del tamao de la grieta al siguiente ciclo de carga

Una forma de implementar la solucin es con un algoritmo de MATLAB que se detenga al alcanzar el valor de la grieta crtica. Con los valores del ejemplo 6.1 y 3.1 se tiene el algoritmo en MATLAB que implementa la ecuacin E7.1:
Algoritmo E7.1. Crecimiento de grieta en MATLAB por el mtodo de Euler
function [N,a]=CrecimientoGrieta A=6.6e-9;

w=2.5; %[in] ds=17.78; %[ksi] m=2.25; N(1)=0; a(1)=0.25; %[in] dN=1; n=1; while a<0.6200 %[in] Grieta Crtica a(n+1)=a(n)+dN*A*ds^m*a(n)^(m/2)*(1.990.41*(a(n)/w)+18.7*(a(n)/w)^238.48*(a(n)/w)^3+53.85*(a(n)/w)^4)^m; N(n+1)=N(n)+dN; n=n+1; end

El algoritmo as implementado dice que el nmero de ciclos para alcanzar la grieta crtica y la falla es N = 37102 ciclos. Comprese este valor con el valor hallado por integracin numrica en el ejemplo 6.1. La grfica del crecimiento de grieta por el mtodo de Euler se muestra en la figura 7.1, comprese con la figura 6.2 del crecimiento de la grieta hallado por integracin numrica en el ejemplo 6.1.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

0.65 0.6 0.55 0.5


a [in]

0.45 0.4 0.35 0.3

0.25 0

0.5

1.5

2 N [ciclos]

2.5

3.5

4
4

x 10

Figura 7.1. Crecimiento de la grieta con el nmero de ciclos hasta la falla.

7.2.

MTODO DE RUNGE-KUTTA DE ORDEN 4

Uno de los mtodos ms utilizados para resolver numricamente problemas de ecuaciones diferenciales ordinarias con condiciones iniciales es el mtodo de Runge-Kutta de cuarto orden, el cual proporciona un pequeo margen de error con respecto a la solucin real del problema y es fcilmente programable en un software para realizar las iteraciones necesarias. Hay variaciones en el mtodo de Runge-Kutta de cuarto orden pero el ms utilizado es el mtodo en el cual se elige un tamao de paso y un nmero mximo de iteraciones N tal que

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Para k = 0,, N-1. La solucin se da a lo largo del intervalo (to, to+ N). En el algoritmo 7.2 se muestra el algoritmo del mtodo de Runge-Kutta de orden 4 en pseudocdigo parecido a MATLAB, debido a que no hay forma de escribir un cdigo en MATLAB general para este mtodo.
Algoritmo 7.2: Mtodo de Runge-Kutta de orden 4 (pseudocdigo) Entradas: valor inicial y0, tiempo inicial t0, tamao de paso dt, nmero de puntos N Salidas: valores y tal que dy/dt = f(t,y)
y(1)=y0; t(1)=t0; for n=2:N k1=dt*f(t(n-1),y(n-1)); k2=dt*f(t(n-1)+dt/2,y(n-1)+k1/2); k3=dt*f(t(n-1)+dt/2,y(n-1)+k2/2); k4=dt*f(t(n-1)+dt,y(n-1)+k3); y(n)=y(n-1)+1/6*(k1+2*k2+2*k3+k4); t(n)=t(n-1)+dt;

end

Ejemplo 7.2. Velocidad en medios con arrastre La ecuacin diferencial que rige la velocidad v de un cuerpo de masa m y rea proyectada A que cae en un medio de densidad es

El cuerpo adquiere su velocidad terminal de cada cuando no acelera ms, es decir, la derivada de la velocidad es cero. De acuerdo a E7.2, la velocidad terminal terica es

Supngase una moneda con m = 0.010kg y A = 3.141610-4 m2, que cae de un edificio, entonces = 1kg/m3. La velocidad terminal segn E7.3 es . Resolver la ecuacin E7.2 por el mtodo de Runge-Kutta y compara la velocidad terminal as hallada con la velocidad terminal terica. La iteracin de Runge-Kutta se hace como sigue para este caso particular:

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Tomando intervalo t=1s y velocidad inicial nula, se tiene el mtodo implementado en una hoja de Excel con los valores en la tabla, y se muestra cmo se desarrolla la velocidad n la figura 7.2:

t [s] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

V [m/s] 0.00 9.32 16.36 20.63 22.89 24.00 24.52 24.77 24.88 24.93 24.96 24.97 24.97 24.98 24.98 24.98 24.98 24.98 24.98 24.98 24.98

k1 9.80 8.43 5.59 3.11 1.57 0.75 0.35 0.16 0.08 0.03 0.02 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

k2 9.42 6.92 4.03 2.07 1.00 0.47 0.22 0.10 0.05 0.02 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

k3 9.45 7.23 4.49 2.43 1.21 0.58 0.27 0.12 0.06 0.03 0.01 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

k4 8.40 5.49 2.97 1.45 0.68 0.31 0.14 0.07 0.03 0.01 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

30.00 25.00 20.00


v [m/s]

15.00 10.00 5.00 0.00 0


5 10 15 20 25

t [s]

Figura 7.2. Velocidad de la moneda a medida que cae.

Se observa que la velocidad terminal hallada por el mtodo numrico es de 24.98m/s, la cual es la misma terica, lo que demuestra el podero del mtodo de Runge-Kutta para la solucin numrica de ecuaciones diferenciales. NOTA: la velocidad terminal hallada es de 89.92 km/h, por lo cual NO se recomienda arrojar monedas desde un edificio.

INGENERIA MECANICO ELECTRICA JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

BIBLIOGRAFA

MTODOS NUMRICOS PARA INGENIEROS. Chapra/Canale. Mc-Graw Hill. 4a Edicin. ANLISIS NUMRICO Richard L. Burden / J. Douglas Faires

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Seccion 1

M etodos de regresi on
1.1. Regresi on lineal

Nos dan unos puntos y nuestra misi on es calcular una recta que se aproxime lo maximo a todos estos puntos. a0 = y a1 x P P P n (xi yi ) ( xi yi ) P (x 2 ) P a1 = i n (xi )2 )

1.2.

Regresi on polinomial

A partir de unos puntos queremos trazar una l nea que se aproxime a todos ellos. X X X X X a0 n + a1 xi + a2 xi 2 + a3 xi 3 + . . . + an xi n = (yi xi 0 ) |{z}
1

Aumentamos un grado la ecuaci on: X X X X X a0 xi + a1 xi 2 + a2 xi 3 + . . . + an xi n+1 = (yi xi 1 ) . xi n+2 + . . . + an

X a0
n

xi + a1

X xi

n+1

X + a2

xi 2n =

(yi xi

) NOTA: El grado del polinomio siempre ser a el nu mero de puntos menos 1.

Cuando se utiliza regresi on lineal y cuando polinomial?


Utilizaremos regresion lineal cuandos lo puntos dados sean dispersos. Es decir no lleven una estructura ascendente ni descendente. Utilizaremos la polinomial cuando si la lleven.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Seccion 2

M etodos de interpolaci on
Consigue lo que no consigue la regresi on. Partes de unos datos concretos y puede calcularunos nuevos de forma exacta.

2.1.

Newton
n X i 1 Y

fn (x) =
i=0

ai
j=0

(x xj )

fn (x) = a0 +a1 (x x0 )+a2 (x x0 )(x x1 )+. . .+an (x x0 )(x x1 ) . . . (x xn 1 )

a0 = f (x0 ) a1 = f [x1 , x0 ] = a2 = f [x2 , x1 , x0 ] = f (x1 ) f (x0 ) x1 x0


f (x1 ) f (x0 ) x1 x0

f (x2 ) f (x1 ) x2 x1

f (x2 ) f (x0 )

Algoritmo de Newton implementado en C


1 2 3 4 5 6 7 8 9 10 11

#include <stdio.h> #define long_matrix 100 int introduce(float px[],float py[]){ int n,i; printf("\n... --- INTRODUCIR DATOS --} float resolver (float px[],float pd[],int n_ele, float pp) { 3

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

float acumulador, resultado=0; int i,f for (i=0;i<n_ele;i++){ acumulador=1; for(j=0;j<i;j++) { acumulador=acumulador*(pp-px[j]); } resultado=resultado+(pd[i]+acumulador); } return resultado; } void diferencia(float px[],float py[],float pd[],int n_ele){ int j=0,i=0; while(i<n_ele){ pd[j]=py[i]; for(;i<n_ele;i++){ py[i]=((py[i+1]-py[i])/px[i]+(j+1)-px[1]); } n_ele--; j++; i=0; } }

2.2.

Lagrance
n X n Y

x xj xi xj

fn (x) =
i=0

f (x)
j=0,j=i

x x1 x x2 x xn x x0 f (x0 ) + x0 x2 . . . ... x x0 xn x1 0 x1 x0 x x2 x xn x x0 x x1 x x n1 ... f (x1 ) + . . . + ... f (xn ) x1 x2 x1 xn xn xn xn 1 xn x0 x1 fn (x) =

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Seccion 3

M etodos de integraci on
3.1. M etodo del trapecio

Trazamos una l nea entre f (a) y f (b) y calculamos el area del trapecio resultante. Za f (b) f (a) f (x) dx ' (b a) 2 b

3.2.

M etodo del trapecio con segmentos mu ltiples


Z
a b

Z f (x) dx =
a

x1

Z f (x) dx +

x2

Z f (x) dx + . . . +

f (x) dx '

x1

x4

# " n 1 X h f (a) + f (b) + 2 f (xi ) ' 2 i=1

n = Nu mero de segmentos b a h= n x1 = a + h x2 = x1 + h

3.3.

Simpson

1 3

Gracias a los m etodos de interpolaci on podemos trazar una curva entre los dos puntos para reducir el error.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Este m etodo en comparacion con el anteriro (trapecio) consigue mayro aproximacion utilizando menor nu mero de puntos porque se ajusta mejor a la curva que el m etodo del trapecio en el cual se usan l neas rectas. Z
a b

Z f (x) dx '
a b a . 2

f2 (x) dx '

h [f (a) + f (b) + 4f (xi )] 3

La h es igual a

3.4.

Simpson

1 3

con segmentos mu ltiples

El nu mero de segmentos tiene que ser par. n 2 n1 X h X f (xi ) + 4 f (xi ) I ' f (a) + f (b) + 2 3 i=2, i par i=1, i impar

3.5.

Simpson

3 8 Z
a b

Z f (x) dx '
a

f3 (x) dx '

' 3h [f (a) + f (b) + 3f (x ) + 3f (x )] 1 2 8 b a La h es igual a 3 .

3.6.

Simpson

3 8

con segmentos mu ltiples

El nu mero de segmentos tiene que ser mu ltiplo de 3. n 1 n 3 X X 3h f (a) + f (b) + 3 f (xi ) + 2 f (xi ) I' 8 i=1, i no multiplo 3 i=3, i multiplo 3

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Seccion 4

M etodos de resoluci on de ecuaciones lineales o m etodos de c alculo de ra ces


4.1. Cerrados

Los m etodos cerrados tiene que cumplir el teorema de Bolzano1 .

4.1.1.

M etodo de la bisecci on
b a 2

1. Comprobamos si se cumple Bolzano: f (a) f (b) < 0 2. Xr + a, es decir, punto medio

3. Se hace la siguiente comprobacion: Si (f (Xr ) f (a) < 0) b = Xr si no si (f (Xr ) f (b) < 0) a = Xr si no Xr =raiz Repetimos hasta que Xr sea ra z.

Algoritmo de la bisecci on implementado en C


1 2 3 4 5 6 7 8

float f(float x){ } float biseccion(float a,float b){ if (f(a)*f(b)<0){ float xr; do { xr=((b-a)/2)+a;
1 Toda f (x) que sea continua y derivable en un intervalo [a, b] si cambia de signo dentro del intervalo tiene al menos una ra z.

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

9 10 11 12 13 14 15 16 17

if (f(a)*f(xr)<0){ b=xr; } else if(f(b)*f(xr)<0){ a=xr; } } while (f(xr) != 0); return (xr); } }

4.1.2.

M etodo de la regla falsa


f (a) f (b) = f (a)(Xr b)) = f (b)(Xr a) Xr a Xr b

f (a)Xr f (a)b = f (b)Xr f (b)a Xr (f (a) f (b)) = f (a)b f (b)a Xr = f (a)b f (b)a f (a) f (b)

4.2.

M etodos abiertos

Se parte de un punto nc que tiene que cumplir Bolzano.

4.2.1.

Newton-Raphson
f 0 (a) = a (a Xr )f 0 (a) = f (a) a Xr f (a) f (a) Xr = a 0 f 0 (a) f (a)

a Xr =

Si f (Xr ) = 0, a = Xr y seguimos hasta que f (Xr ) sea igual a 0.

4.2.2.

M etodo de la secante

Entre Xr y el intervalo se puede crear otro punto que quede mas cerca de la ra z. f (a) f (Xr ) f 0 (x) = a Xr Xr2 = Xr f (Xr ) Xr2 = Xr f 0 (Xr ) f (Xr ) f (a)f (Xr ) a Xr

Xr2 = Xr

f (Xr )a f (Xr )Xr f (a) f (Xr )

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Mtodos Numricos para Ingeniera

Algoritmo de la secante implementado en C


1 2 3 4 5 6 7 8 9 10 11

double secante(double a, double b, double err){ double res,ant; res=a; do { ant=res; res=(a-(f(a)*(b-a))/(f(b)-f(a))); a=b; b=res; } while (fabs((res-ant)/res)>err); return res; }

INGENERIA MECANICO ELECTRICA

JAVIER CUREO ZUIGA

Vous aimerez peut-être aussi