Download - Libro Metodos Numericos
-
Captulo 1
Introduccion a Matlab
1.1. Objetivos
1. Manipular matrices en Matlab.
2. Crear y usar sus propias funciones en Matlab.
3. Crear entradas y salidas controladas por el usuario.
4. Desarrollar estructuras de seleccion en Matlab.
5. Desarrollar estructuras de repeticion en Matlab.
6. Graficar con Matlab.
1.2. Desarrollo.
Matlab es un lenguaje de programacion muy popular usado por estudiantes, ingenieros y cientfi-cos en universidades, institutos de investigacion y en las industrias en todo el mundo. El programaes popular porque es muy poderoso y facil de usar. El nombre Matlab significa laboratorio dematrices, este lenguaje puede usarse para calculos matematicos, modelacion y simulaciones.
1
-
2 CAPITULO 1. INTRODUCCION A MATLAB
La ventana de comando es la ventana principal y se abre cuando Matlab inicia. Cuando uncomando se escribe en la ventana de comandos y se le da Enter, el comando se ejecuta. Si colocamospunto coma (;) el resultado no se despliega. Si queremos escribir un comentario utilizamos el smbolode porcentaje al inicio de la linea y esta no es tomada en cuenta en los calculos.
1.2.1. Manipulando matrices en Matlab.
Una de las principales fortalezas de Matlab, es la manipulacion de matrices y arreglos. Podemosdefinir una matriz escribiendo una serie de numeros separados por un espacio o por comas, de estaforma ingresamos los elementos de la matriz. Para pasar a un nuevo renglon usamos punto y coma,consideremos los siguientes ejemplos.
>> A = [1 2 5 -5 9];
>> A= =[1, 2, -5, 9];
>> B=[2 3 -1;0 2 4;1 0.5 1.4];
>> B=[2, 3, -1;0, 2, 4;1, 0.5, 1.4];
En los ejemplos anteriores, A es un vector renglon que tiene 5 elementos, puede observar que estaescrito de dos formas, la matriz B tiene un tamano de tres por tres y tambien se escribio de dosformas equivalentes, el punto y coma evita que se despliegue la matriz en la pantalla.Matlab nos permite escribir matrices usando el operador dos puntos, veamos algunos ejemplos.
>> x=1:6
x= 1 2 3 4 5 6
>> y=1:0.5:4
y= 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000
En los ejemplos anteriores no se coloco punto y coma al final del arreglo y por eso los elementos dela matriz se despliegan, note que el vector x tiene un espacio de uno entre los elementos, en cambioel vector y tiene un espacio de 0.5, por supuesto el espaciamiento puede ser el que se quiera.Utilizando el comando linspace(a,b,N) construimos un vector que tiene N puntos igualmenteespaciados entre a y b.
-
1.2. DESARROLLO. 3
>> z=linspace(1,5,6)
z =
1.00000 1.80000 2.60000 3.40000 4.20000 5.00000
El operador punto es sumamente importante, si queremos multiplicar, dividir o elevar a una po-tencia cada elemento de un vector o una matriz usamos el punto antes del operador
.* ./ .^
Ejemplo 1: Se lanza una pelota hacia arriba con una rapidez inicial de 10m/s, desde la azotea deun edificio de 60 metros, construya una tabla que muestre como cambia la posicion y velocidad enfuncion del tiempo, el tiempo comenzando en cero y con incrementos de 0.5 hasta cuatro segundos.La posicion y velocidad en funcion del tiempo, tomando la referencia en el suelo son:
y = 60 + 10t 12
(9,8) t2
v = 10 9,8t
El script es:
>> format bank
>> t=0:0.5:4;
>> y=60+10t-4.9*t.^2;
>> v=10-9.8*t;
>> plot(t,y);
>> xlabel(Tiempo en segundos);
>> ylabel(Posicion en metros);
>> title(Posicion vr tiempo: caida libre);
>> tabla=[t,y,v]
Al correr el script anterior se obtiene
0.00 60.00 10.00
0.05 63.77 5.10
0.10 65.10 2.00
0.15 63.97 -4.70
0.20 60.40 -9.60
0.25 54.37 -14.50
0.30 45.90 -19.40
0.35 34.97 -24.30
0.40 21.60 -29.20
-
4 CAPITULO 1. INTRODUCCION A MATLAB
Observe que los vectores renglones t, y, v se transpusieron usando t, y y v y de esa manera selogra la tabla.Octave tiene algunas matrices especiales que pueden ser de utilidad al programar, comencemoscon la matriz de ceros
>> A=zeros(2)
ans =
0.00 0.00
0.00 0.00
>> B = zeros(2,3)
ans =
0.00 0.00 0.00
0.00 0.00 0.00
0.00 0.00 0.00
El numero entre parentesis define una matriz cuadrada. En cambio el comando zeros(m,n) cons-truye una matriz de m renglones y n columnas.La matriz ones(n) construye una matriz cuadrada de unos y ones(m,n) construye una matriz deunos de m renglones y n columnas.
>> ones(2)
ans =
1.00 1.00
1.00 1.00
>> ones(2,3)
ans =
1.00 1.00 1.00
1.00 1.00 1.00
-
1.2. DESARROLLO. 5
1.2.2. Funciones creadas por el usuario.
Las funciones definidas por el usuario se escriben en un editor y se salvan con la extension m.Toda funcion debe tener lo siguiente:
La palabra function.
Una variable que define la salida de la funcion.
Un nombre para la funcion.
Una variable o variables que definen los argumentos de entrada.
Considere los siguientes ejemplos:
Ejemplo 2 : una partcula se mueve en una recta de acuerdo a la ecuacion de posicion x =t3 4t2 3t + 1 al derivar obtenemos la velocidad v = 3t2 12t 3 al derivar obtenemos laaceleracion a = 6t 12(a) Construya una funcion en Matlab que evalue simultaneamente la posicion, velocidad y acele-racion para un tiempo cualquiera t y evalue en t = 1,0 (b) Evalue la funcion para un vector detiempo que comience en 0 y llegue 5 segundos con un paso de 0.5Desarrollo
function[posicion,velocidad,aceleracion]=movimiento(t)
%esta funcion calcula la posicion, velocidad y aceleracion de una
%particula dado los valores de t
posicion=t.^3-4.*t.^2-3.*t+1
velocidad=3.*t.^2-12.*t-3
aceleracion=6.*t-12
En este caso la funcion se salvo con el nombre movimiento.m ya que se debe salvar con el mismonombre que aparece en el script. Los argumentos de salida son posicion, velocidad y aceleracion yla entrada es t.(a) Al evaluar en t = 1,0 se tiene:En la ventana de comando o en la consola de OCTAVE se escribe:
>> [posicion,velocidad,aceleracion]=movimiento(1)
posicion=5
velocidad=-12
aceleracion=-6
(b) Para evaluacion de la funcion movimiento en un arreglo de t desde 0 hasta 3 en pasos deuno, se escribe
-
6 CAPITULO 1. INTRODUCCION A MATLAB
>> t=0:1:3;
>> [posicion,velocidad,aceleracion]=movimiento(t)
posicion=
1 -5 -13 -17
velocidad=
-3 -12 -15 -12
aceleracion=
-12 -6 0 6
Transponiendo los renglones por columnas en el resultado anterior logramos mas claridad visual-mente, veamos como se escribe
>> resultados=[t,posicion,velocidad,aceleracion]
0 1 -3 -12
1 -5 -12 -6
2 -13 -15 0
3 -17 -12 6
Matlab nos permite operar con las funciones elementales mas utilizadas en los cursos de fsica,veamos algunas de ellas.Para obtener el valor absoluto de un numero x, abs(x), ejemplo.
>> abs(-9)
ans = 9
La raz cuadrada de un numero x, se calcula con el comando sqrt(x), ejemplo.
>> sqrt(81)
ans = 9
La funcion signo, nos devuelve 1 si x < 0 o 1 si x > 0, ejemplo.
>> sign(-7)
ans = -1
>> sign(7)
ans = 1
La funcion exp(x), calcula la funcion exponencial de base (e), ex, ejemplo.
>> exp(2)
ans = 7.3891
-
1.2. DESARROLLO. 7
La funcion log(x), calcula el logaritmo natural ln(x), ejemplo.
>> log(40)
ans = 3.6889
La funcion log10(x), calcula el logaritmo de base 10, ejemplo.
>> log10(1000)
ans = 3
La funcion round(x), nos permite redondear el numero x, al entero mas cercano, ejemplo.
>> round(4.9)
ans = 5
La funcion factorial(x), calcula el factorial del numero entero positivo x, ejemplo.
>> factorial(5)
ans = 120
La funcion sin(x), calcula la funcion seno de x, donde x esta en radianes, si queremos realizar elcalculo en grados usamos la funcion sind(x), ejemplos.
>> sin(1.3)
ans = 0.96356
>> sind(45)
ans = 0,70711
La funcion asin(x), devuelve el arcoseno o seno inverso del numero x, donde x debe estar entre 1y -1, la funcion asind(x) nos retorna un angulo en grados.
>> asin(0.85)
ans = 1.0160
>> asind(0.5)
ans = 30.000
Las funciones cos(x), tan(x), nos retornan el coseno y tangente de x en radianes, respectivamente,las funciones cosd(x) y tand(x), nos retornan el coseno y tangente de x, donde x esta en grados.Para las funciones inversas usamos acos(x), atan(x), acosd(x) y atan(x).La funcion mean(x), nos devuelve la media o promedio de un vector x, ejemplo.
-
8 CAPITULO 1. INTRODUCCION A MATLAB
>> x= [1 2 3 4];
>> mean(x)
ans = 2.5000
La funcion sum(x), nos retorna la suma de todos los elementos del vector x, ejemplo.
>> x= [1 2 3 4];
>> sum(x)
ans = 10
1.2.3. Entradas y salidas controladas por el usuario.
Podemos permitir al usuario ingresar valores mientras el programa esta corriendo, la funcioninput nos permite hacer esto y desplegar texto en la pantalla.
Ejemplo 3 Una partcula esta descrita por la ecuacion de posicion x = 5t + 0,5t2, queremos queel usuario ingrese el valor del tiempo y as predecir la posicion, el script se salvo con el nombreejemplo3.m:
t = input(Ingrese el tiempo: )
x = 5.*t+0.5.*t.^2
disp(x)
Al correr el programa anterior, si el usuario ingresa 2 se obtiene
>> ejemplo3
>> Ingrese el tiempo: 2
12
En el script anterior se utilizo la funcion disp(x) para mostrar la salida de x.Podemos darle una salida formateada al programa anterior utilizando fprintf, modifiquemos elscript ejemplo3.m
t=input(Ingrese el tiempo: );
x=5.*t+0.5.*t.^2;
fprintf(La posicion es %3.3f metros \n, x)
En %3.3f el primer numero nos indica un espacio de tres unidades y el segundo numero el numerode cifras decimales, la letra n es para indicar nueva lnea, veamos una corrida evaluando otra vezen 2
-
1.2. DESARROLLO. 9
>> ejemplo3
Ingrese el tiempo: 2
La posicion es 12.000 metros
Si modificamos el script ejemplo3.m para evaluar un vector t, desde 0 hasta 3 con un paso de0.5, tenemos
t=0:0.5:3;
x=5.*t+0.5.*t.^2;
fprintf(t x \n)
tabla=[t;x];
fprintf(%2.1f %5.3f \n, tabla)
La corrida del script anterior da
>> ejemplo3
t x
0.0 0.000
0.5 2.625
1.0 5.500
1.5 8.625
2.0 12.000
2.5 15.625
3.0 19.500
1.2.4. Estructuras de seleccion en Matlab
Antes de ver las estructuras de seleccion, necesitamos conocer los operadores logicos, veamosla sintaxis.
< menor que
mayor que
>= mayor o igual que
== igual
~= diferente a
& y
| o
La estructura de comparacion mas simple es if, la sintaxis es:
-
10 CAPITULO 1. INTRODUCCION A MATLAB
if (expresion)
comandos
end
Si no se cumple lo que se esta comparando se salta las operaciones.La estructura if/else, nos permite realizar varias operaciones que surgen de hacer dos compara-ciones.
if (expresion)
comandos
else
comandos
end
En el Ejemplo 1, estudiamos el movimiento de un objeto en cada libre, ah obtuvimos la ecua-
cion de posicion y = 60 + 10t 12gt2, escribamos un script que calcule el tiempo que le toma
a la partcula llegar al suelo, el programa debe descartar los tiempos negativos y las solucionesimaginarias.
Ejemplo 4 La ecuacion de posicion evaluada cuando la partcula esta llegando al suelo es:0 = 4,9t2 + 10t + 60, tenemos que resolver una ecuacion de grado 2, el siguiente script nosda la solucion.
a =input(Ingrese a, el coeficiente del termino cuadratico: );
b=input(Ingrese b, el coeficiente del termino lineal: );
c=input(Ingrese c, el termino independiente: );
disc=b^2-4*a*c;
if disc >= 0
t1=(-b-sqrt(disc))/(2*a);
t2=(-b+sqrt(disc))/(2*a);
if t1>=0 & t2>=0
fprintf(Los tiempos son %3.3f segundos y %7.3f segundos \n, t1,t2)
end
if t1>=0 & t2
-
1.2. DESARROLLO. 11
Al ingresar los valores de nuestra ecuacion se tiene la siguiente salida.
Ingrese a, el coeficiente del termino cuadratico: -4.9
Ingrese b, el coeficiente del termino lineal: 10
Ingrese c, el termino independiente: 60
El tiempo es 4.665 segundos
Cuando tenemos decisiones multiples, tambien podemos usar elseif, veamos la estructura
if (expresion)
comandos
elseif (expresion)
comandos
elseif (expresion)
comandos
else
comandos
end
Ejemplo 5 En fsica suelen aparecer funciones seccionadas, suponga que tiene la siguiente funciony quiere evaluarla utilizando Octave
f (x) =
|x| x 0x 0 < x 1x2 1 < x 2x3 x > 2
La funcion en Octave es:
function y=funcion1(x)
if x0 & x1 & x
-
12 CAPITULO 1. INTRODUCCION A MATLAB
switch(z)
case 1
comando
case 2
comandos
case 3
comandos
.
.
.
endswitch
Ejemplo 6: tenemos dos numeros x y y, podemos seleccionar entre varias operaciones, las opcio-
nes son las siguientes, primera opcion multiplicar los numeros, segunda opcion dividiry
x, opcion
tres calcular r =x2 + y2. El script para realizar lo anterior es
x=input(Ingrese el valor de x: );
y=input(Ingrese el valor de y: );
disp(Si quiere multiplicar los numeros x y y, seleccione 1);
disp(Si quiere dividir y/x, seleccione 2);
disp(Si quiere calcular la raiz cuadrada de la suma de los cuadrados, seleccione 3);
z=input(Que operacion desea realizar con x y y, ingrese 1, 2 o 3: );
switch(z)
case 1
mult=x*y;
fprintf(La multiplicacion da %3.2f \n, mult);
case 2
if x~=0
div=y/x;
fprintf(La division de y/x es %3.3f \n, div);
else
fprintf(La division entre cero no esta definida)
end
case 3
r=(x^2+y^2)^0.5;
fprintf(La suma de los cuadrados y su respectiva raiz es %3.3f \n, r);
endswitch
1.2.5. Ciclos
Un ciclo es la ejecucion de un comando o un grupo de comandos, que se repiten varias vecesde manera consecutiva. Cada ronda de ejecucion se le llama paso. En cada paso al menos unavariable, pero usualmente mas de una variable, o inclusive todas las variables que estan definidasdentro de cada ciclo, se le asignan nuevos valores.En los ciclos for-end la ejecucion de un comando o grupos de comandos, se repite un numero de
-
1.2. DESARROLLO. 13
veces predeterminado. La sintaxis es la siguiente.
for k=i:m:n
comandos
end
Donde k es la variable indice del ciclo, i es el valor de k en el primer paso, m es el incremento dek despues de cada paso, n es el valor de k en el ultimo paso.
Ejemplo 7 La funcion cos(x) puede escribirse como una serie de Taylor de la siguiente manera
y = cos (x) =k=0
(1)k x2k(2k)!
Escribamos una funcion que calcule cos(x), el usuario ingresa x en grados y n el numero de termi-nos a utilizar en la serie.
function y=tcos(x,n)
% x es el angulo en grados
% n es el numero de terminos en la serie de Taylor
% xr es el angulo en radianes
xr=x*pi/180;
y=0;
for k=0:n-1
y=y+((-1)^k)*xr^(2*k)/factorial(2*k);
end
Evaluemos la funcion en 300 con cinco terminos en la serie:
>> tcos(30,5)
ans = 0.8660
Ejemplo 8 En muchos problemas de fsica surgen las integrales, como en el calculo de trabajos,fuerzas, integrales de trayectoria y usualmente la mayora no tiene solucion analtica, construya-mos una solucion numerica de integrales utilizando el metodo de la regla compuesta del trapecio.Construccion de la aproximacion a la integral
ba
f (x) h2
(f (a) + f (b)) + hm1k=1
f (xk)
Evaluando f (x) en los m+ 1 nodos equiespaciados xk = a+ kh, para k = 0, 1, 2, ...,m. Notese quex0 = a y xm = b. Escribamos una funcion que nos realice la integracion
-
14 CAPITULO 1. INTRODUCCION A MATLAB
function w=trapecio(f,a,b,m)
% f es la funcion a integrar, dada como una cadena de caracteres
% a y b son los extremos inferior y superior del intervalo de integracion
% m es el numero de subintervalos
% w es la aproximacion obtenida con la regla compuesta del trapecio
h=(b-a)/m;
w=0;
for k=1:(m-1)
x=a+h*k;
w=w+feval(f,x);
end
w=h*(feval(f,a)+feval(f,b))/2+h*w;
El comando feval(f,x) evalua la funcion f con el valor x, una funcion dada como cadena de caracte-res implica que cuando se llame la funcion f, esta tenemos que ponerla entre comillas, consideremosla evaluacion de la funcion f (x) = xsen (x) entre x = 0 y x = 1, primero escribimos la funcion enOctave
function y=fun1(x)
y=x.*sin(x);
Al correr la funcion trapecio se tiene
>> trapecio(fun1,0,1,100)
ans = 0.30118
El ciclo while-end se usa cuando se requiere un ciclo pero el numero de pasos no es conocidocon anticipacion. En el ciclo while-end el numero de pasos no se especifica cuando comienza elproceso, el proceso del ciclo continua hasta que se satisface una condicion. La estructura del ciclowhile-end es
while (expresion condicionante)
comandos
end
Ejemplo 9 consideremos el mapa unidimensional:
xn+1 =xn2
+3
2x2
sujeto a la condicion inicial xn = 1. Determinemos que pasa cuando n crece. Notemos que el puntofijo de este mapa, esto es donde xn = xn+1 esta dado por la solucion de la ecuacion:
xn =xn2
+3
2x2
-
1.2. DESARROLLO. 15
las cuales son xn =
3. Para probarlo usemos el siguiente script.
xanterior=2;
xnuevo=1;
while abs(xnuevo-xanterior)> 1e-5
xanterior=xnuevo;
xnuevo=xnuevo/2+3/(2*xnuevo)
end
El script anterior se salvo con el nombre mapa.m, la salida es
>> mapa
xnuevo=2
xnuevo=1.7500
xnuevo=1.7321
1.2.6. Graficando con Matlab
En fsica es de vital importancia graficar, generalmente esto nos da una idea mas clara decomo estan relacionadas las variables, comencemos con las graficas bidimensionales, suponga, quea traves de mediciones experimentales, se obtiene un conjunto de datos de tiempo contra distancia
>> t=[0 1.1 2.2 3.3 4.4 5.5 7 8.2];
>> x=[1 4 8.3 12.7 15 19.6 23.4 28];
Para graficar estos puntos, use el comando plot, con t y x como argumentos, plot(t,x), ademaspodemos agregar etiquetas a los ejes y darle un titulo a el grafico, veamos el script
>> t=[0 1.1 2.2 3.3 4.4 5.5 7 8.2];
>> x=[1 4 8.3 12.7 15 19.6 23.4 28];
>> plot(t,x);
>> xlabel(Tiempo t en segundos);
>> ylabel(Posicion x en metros);
>> title(Posicion vs tiempo);
al correr el script anterior automaticamente se abre una ventana de graficas y se muestra la si-guiente grafica
-
16 CAPITULO 1. INTRODUCCION A MATLAB
Podemos crear graficas simultaneas y agregar una etiqueta para identificar cada grafica, veamosel script
>> x=0:pi/120:2*pi;
>> y1=2*sin(x);
>> y2=3*sin(x);
>> y3=4*sin(x);
>> y4=5*sin(x);
>> legend(x vs y1,x vs y2,x vs y3,x vs y4);
>> title(Graficas simultaneas);
la grafica luce as
Puede cambiar la apariencia de sus graficos al seleccionar estilo y color, veamos el siguientescript
-
1.2. DESARROLLO. 17
>> x=0:0.1:8;
>> y1=x.^2.*exp(-x);
>> y2=x.*exp(-x);
>> plot(x,y1,.,x,y2,--k)
>> xlabel(Eje x);
>> ylabel(Eje y);
>> legend(Grafica y1,Grafica y2);
>> title(y1=x^{2}e^{-x} y2=xe^{-x})
al graficar se obtiene
En el ejemplo anterior se utilizo legend para agregar comentarios de cada grafica dentro delplano cartesiano, para lograr los puntos se coloco . y para lograr las linea continua k la k espara lograr el color negro, para los estilos consideremos la siguiente informacion.Tipo de lnea Indicador Tipo de marca Indicador Color Indicador
solida - punto . azul bpunteada : crculo o verde g
raya-punto -. marca x x rojo rrayada mas + cian c
estrella magenta mcuadrado s amarillo ydiamante d negro k
triangulo abajo vpentagrama p
El comando subplot le permite subdividir la ventana de graficacion en una retcula de m filas y ncolumnas, la funcion subplot(m,n,p) separa la figura en una matriz mxn, la variable p identificala parte de la ventana donde se dibujara la siguiente grafica, considere el siguiente ejemplo
>> x=0:0.1:9;
>> subplot(2,2,1);
>> y1=-x.^2;
-
18 CAPITULO 1. INTRODUCCION A MATLAB
>> plot(x,y1);
>> title(y_{1}=-x^{2});
>> subplot(2,2,2);
>> y2=x-sin(x);
>> plot(x,y2);
>> title(y_{2}=x-sen(x));
>>subplot(2,2,3);
>> plot(x,x.*exp(-x));
>> title(y_{3}=xe^{-x});
>> subplot(2,2,4);
>> plot(x,x.*cos(x));
>> xlabel(Eje x);
>> ylabel(Eje y);
>> title(y_{4}=xcos(x));
al graficar lo anterior se tiene
Podemos crear histogramas de como se distribuyen los valores de una variable aleatoria, con-sideremos la distribucion normal, Octave tiene esta distribucion de probabilidad incluida en suslibreras, el siguiente script genera la funcion de densidad, la distribucion de probabilidad acumu-lada y el histograma para una media y desviacion estandar dada
mu = 100; % media
sigma = 15; % la desviacion estandar
xmin = 70; % valor minimo
-
1.2. DESARROLLO. 19
xmax = 130; % valor maximo
n = 100;
k = 10000;
% crea un rango de valores
x = linspace( xmin , xmax , n );
p = normpdf( x , mu , sigma );
c = normcdf( x , mu , sigma );
figure( 1 ); clf; % crea una nueva figura y limpia contenidos
subplot( 2,2,1 );
plot( x , p , k );
ylabel( pdf );
title( Funcion de densidad de probabilidad );
subplot( 2,2,2 );
plot( x , c , k );
xlabel( x ); ylabel( cdf );
title( Funcion de densidad acumulada );
% la funcion normrnd es la distribucion normal
y = normrnd( mu , sigma , k , 1 );
subplot( 2,2,3 );
hist( y , 20 );
xlabel( x );
ylabel( frecuencia );
title( Histograma de numeros aleatorios );
al graficar se tiene
-
20 CAPITULO 1. INTRODUCCION A MATLAB
Consideremos una placa rectangular (a = 5m, b = 4m) que se mantiene a las temperaturas mos-tradas. Grafiquemos la distribucion de temperaturas T (x, y) de la placa.
La distribucion de temperatura en la placa se determina resolviendo la ecuacion de calor endos dimensiones, al hacerlo se tiene
T (x, y) =4T1pi
n=1
sen[(2n 1) pix
a
](2n 1)
senh[(2n 1) piy
a
]senh
[(2n 1) pib
a
]el siguiente script nos grafica la distribucion de temperaturas
a=5; b=4; na=20; nb=16; k=5; T0=80;
clear T
x=linspace(0,a,na);
y=linspace(0,b,nb);
[X,Y]=meshgrid(x,y);
for i=1:nb
for j=1:na
T(i,j)=0;
for n=1:k
ns=2*n-1;
T(i,j)=T(i,j)+sin(ns*pi*X(i,j)/a).*sinh(ns*pi*Y(i,j)/
a)/(sinh(ns*pi*b/a)*ns);
end
T(i,j) = T(i,j)*4*T0/pi;
end
end
mesh(X,Y,T)
xlabel(x (m)); ylabel(y (m)); zlabel(T ( ^oC))
la grafica es
-
1.2. DESARROLLO. 21
Podemos graficar lneas de campo electrico, considere el caso mas simple, el de una carga pun-tual, el campo es
~E =1
4pi0
q~r
r3=
q
4pi0
xx+ yy
(x2 + y2)3/2
el siguiente script nos grafica las lneas de campo, el comando clave es quiver:
[x,y]=meshgrid(-5:1:5);
E=1./(x.^2+y.^2);
% Se definen los vectores unitarios
[unitario_x]=cos(atan2(y,x));
[unitario_y]=sin(atan2(y,x));
% Componentes del campo electrico
Ex=E.*unitario_x;
Ey=E.*unitario_y;
quiver(x,y,Ex,Ey)
text(0,0,0)
xlabel(Eje x)
ylabel(Eje y)
title(Campo electrico de una carga puntual)
al graficar obtenemos
-
22 CAPITULO 1. INTRODUCCION A MATLAB
Ahora grafiquemos las lneas del campo magnetico producidas por un alambre recto e infinito,en este caso sabemos que la ecuacion de campo es
~B =0I
4pir
el siguiente script nos genera las lneas de campo
% Este program grafica las lineas del campo magnetico
% producidas por la corriente I que circula por un alambre
% recto muy largo
[x,y]=meshgrid(-20:2:20);
% componentes de campo magnetico
Bx=-y./(x.^2+y.^2);
By=x./(x.^2+y.^2);
% se obtiene la grafica
quiver(x,y,Bx,By)
text(0,0,0)
xlabel(Eje x)
ylabel(Eje y)
title(Lineas de campo magnetico de un alambre recto)
-
1.2. DESARROLLO. 23
La trayectoria de una partcula en el espacio se puede graficar facilmente con el comando plot3,consideremos que una partcula se mueve en el espacio y su ecuacion de posicion esta en formaparametrica
~r = (1,5cost) x+ (1,5sent) y + 2tz
El script es el siguiente:
t=0:0.1:25;
x=1.5*cos(t);
y=1.5*sin(t);
z=2*t;
plot3(x,y,z);
xlabel(Eje x);
ylabel(Eje y);
zlabel(Eje z);
el grafico respectivo es
-
24 CAPITULO 1. INTRODUCCION A MATLAB
1.3. Aplicaciones en el Analisis Numerico
Matlab dispone de muchas subrutinas numericas con las cuales podemos realizar muchos calcu-los de interes en ciencias e ingeniera, vamos a comenzar realizando ajuste de curvas, tambienllamado analisis de regresion, esto es un proceso de ajustar a una funcion un conjunto de datos. Lafuncion puede ser utilizada como un modelo matematico para los datos. Consideremos el siguienteejemplo donde ajustamos un conjunto de datos utilizando polinomios.
x=[0.9 1.5 3 4 6 8 9.5];
y=[0.9 1.5 2.5 5.1 4.5 4.9 6.3];
p=polyfit(x,y,3)
xp=0.9:0.1:9.5;
yp=polyval(p,xp);
plot(x,y,o,xp,yp)
xlabel(x);
ylabel(y);
En el script anterior los datos se estan ajustando a un polinomio de grado tres, el grafico para eseajuste es el siguiente
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 25
La ecuacion que se obtiene es y = 00220x3 04005x2 + 26138x 14158, de la grafica obser-vamos que el ajuste no es bueno hay muchos puntos que no quedan en la grafica, si aumentamosgradualmente el orden del polinomio nos damos cuenta que con un polinomio de orden seis logra-mos un ajuste perfecto a continuacion la grafica
La ecuacion es:
y = 00055x6 + 01617x5 17906x4 + 93934x3 239489x2 + 284158x 110411En muchas situaciones en donde la funcion que se ajusta a los datos no es un polinomio, tenemosla posibilidad de intentar con otros modelos, veamos algunos
y = bxm
y = bemx
y = m ln (x) + b
y =1
mx+ b
Todas estas funciones pueden ser facilmente ajustadas a un conjunto de datos con la funcion poly-fit. Esto se hace reescribiendo la funcion en una forma que pueda ser ajustada con un polinomio
-
26 CAPITULO 1. INTRODUCCION A MATLAB
lineal (n = 1), lo cual es
y = mx+ b
Las propiedades de los logaritmos, son de mucha ayuda para lograrlo, reescribamos las ecuaciones
ln (y) = m ln (x) + ln (b)
ln (y) = mx+ ln (b)1
y= mx+ b
Estas ecuaciones describen una relacion lineal entre ln (y) y ln (x) para las funciones de potencia,entre ln (y) y x para la funcion exponencial, y entre 1/y y x para la funcion reciproca. Esto significaque polyfit(x, y, 1) puede ser usado para determinar el mejor ajuste de las constantes m y b. Lametodologa en Matlab es la siguiente:
y = bxm
p=polyfit(log(x),log(y),1)
y = bemx
y = b10mx
p=polyfit(x,log(y),1)
p=polyfit(x,log10(y),1)
y = m ln (x) + b
y = mlog (x) + b
p=polyfit(log(x),y,1)
p=polyfit(log10(x),y,1)
y =1
mx+ b
p=polyfit(x,1./y,1)
EjemploDados los siguientes puntos. Determine w = f (t), t es la variable independiente, w es la depen-diente.
t 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5w 6.00 4.83 3.70 3.15 2.41 1.83 1.49 1.21 0.96 0.73 0.64
Solucion
Primero graficamos, estas son las instrucciones en Matlab
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 27
>> t=0.0:0.5:5.0;
>> w=[6.00 4.83 3.70 3.15 2.41 1.83 1.49 1.21 0.96 0.73 0.64];
>> plot(t,w);
>> plot(t,w,o);
Los datos parecen tener un comportamiento exponencial, usemos las siguientes instrucciones enMatlab
>> t=0.0:0.5:5.0;
>> w=[6.00 4.83 3.70 3.15 2.41 1.83 1.49 1.21 0.96 0.73 0.64];
>> p=polyfit(t,log(w),1);
>> m=p(1)
m =
-0.4580
>> b=exp(p(2))
b =
5.9889
>> tm=0:0.1:5;
>> wm=b*exp(m*tm);
>> plot(t,w,o,tm,wm)
La grafica es la siguiente
-
28 CAPITULO 1. INTRODUCCION A MATLAB
El ajuste parece ser bueno.Por otra parte tenemos la interpolacion. La interpolacion es la estimacion de valores entre los datos.Matlab tiene funciones interpoladoras que estan basadas en polinomios. En una dimension cadapunto tiene una variable independiente x y una dependiente y, en dos dimensiones cada punto dosvariables independientes (x, y) y una variable dependiente z. En una dimension Matlab interpolacon la funcion interp1 el ultimo caracter es un uno, y tiene esta forma:
yi=interp1(x,y,xi,metodo)
Donde yi es el valor interpolado, x es un vector ah estan almacenados los datos de la variableindependiente, y es un vector donde estan almacenados los datos de la variable dependiente y laopcion que dice metodo, ah seleccionamos el metodo a utilizar.Matlab dispone de los siguientes metodos:nearest: retorna el valor del punto de los datos mas cerca del punto de interpolacion.
linear: usa splines lineales
spline: usa splines o cerchas cubicas.
pchip: usa secciones cubicas de Hermite, tambien se le puede invocar como cubic
EjemploLos siguientes puntos son generados con la funcion f (x) = 15xcos (2x). Use interpolacion lineal,spline y pchip. Haga una figura para cada metodo de interpolacion, mostrando los puntos interpo-lados y la funcion real.
x 0 1 2 3 4 5y 1.0 -0.6242 -1.4707 3.2406 -0.7366 -6.3717
Solucion
El siguiente script resuelve el problema:
x=0:1.0:5;
y=[1.0 -0.6242 -1.4707 3.2406 -0.7366 -6.3717];
xi=0:0.1:5;
yilin=interp1(x,y,xi,linear);
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 29
yispl=interp1(x,y,xi,spline);
yipch=interp1(x,y,xi,pchip);
yfun=1.5.^xi.*cos(2*xi);
subplot(1,3,1)
plot(x,y,o,xi,yfun,xi,yilin,--);
subplot(1,3,2)
plot(x,y,o,xi,yfun,xi,yispl,--);
subplot(1,3,3)
plot(x,y,o,xi,yfun,xi,yipch,--);
Las graficas son las siguientes:
Matlab tambien nos da la posibilidad de calcular races de polinomios de orden superior, elsiguiente ejemplo lustra como.
Ejemplo
Un cascaron esferico de aluminio es usado como boya de marca. La esfera tiene de 60 cm y unespeso de 12 mm. La densidad del aluminio es al = 2690kg/m
3. La boya es puesta en el oceano,donde la densidad es 1030kg/m3. Determine la altura h entre la parte superior de la boya y lasuperficie del agua.
Solucion
De acuerdo al principio de Arquimides, sabemos que la fuerza de empuje aplicada sobre el cascaronactua directamente hacia arriba y es igual al peso del fluido desalojado. El peso de la esfera esta
-
30 CAPITULO 1. INTRODUCCION A MATLAB
dado por
Wesf = alValg = al4
3pi(r3e r3i
)g
donde Val es el volumen de aluminio; re es el radio externo y ri es el radio interno de la esfera,respectivamente; g es la aceleracion de la gravedad. El peso del agua desplazado es:
FB = aguaVdespg = agua1
3pi (2re h)2 (re + h) g
Igualando las dos ecuaciones y simplificando se llega a:
h3 3reh2 + 4r3e 4alagua
(r3e r3i
)= 0
La solucion en Matlab es la siguiente:
re=0.60;
ri=0.588;
roal=2690;
roagua=1030;
a0=4*re^3-4*roal*(re^3-ri^3)/roagua;
p=[1 -3*re 0 a0];
h=roots(p)
al correr el script anterior se obtiene
h =
1.4542
0.9029
-0.5570
La unica solucion fsicamente posible es 0.9029 m.En Matlab un cero de una funcion puede ser determinado con el comando fzero con la sintaxis
x=fzero(funcion,x0)
Donde x0 es un valor de x cerca de donde la funcion cruza el eje. Veamos un ejemplo
Ejemplo
Determine la solucion de la ecuacion xex = 02.
La ecuacion primero se escribe en la forma: f (x) = xex 02. Podemos graficar para tener unaidea de donde esta la raz, con la siguiente instruccion.
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 31
>> grid on
>> fplot(x*exp(-x)-0.2,[0 8])
La grafica muestra que la funcion corta el eje x ente 0 y 1 y tambien entre 2 y 3, considerandola anterior, con Matlab podemos encontrar los ceros facilmente.
>> x1=fzero(x*exp(-x)-0.2,0.7)
x1 =
0.2592
Para encontrar el otro cero, vamos hacer una variante
>> f=@(x)x*exp(-x)-0.2
f =
@(x)x*exp(-x)-0.2
>> x2=fzero(f,2.8)
x2 =
2.5426
Matlab nos da la posibilidad de calcular maximos o mnimos locales de una funcion de la formay = f (x). Sabemos del calculo que los maximos o mnimos locales se determinan encontrando losceros de la derivada de la funcion. El valor de y se determina sustituyendo el valor de x en lafuncion. La sintaxis en Matlab es la siguiente:
-
32 CAPITULO 1. INTRODUCCION A MATLAB
x=fminbnd(funcion,x1,x2)
donde x, es el mnimo de la funcion, x1 y x2 es el intervalo donde se busca el mnimo local. Lafuncion puede ser ingresada como una expresion cadena o una funcion anonima.El valor de la funcion en el mnimo puede ser agregado a la salida usando la opcion
[x,fval]=fminbnd(funcion,x1,x2)
el valor de la funcion en x es asignado a la variable fval. Consideremos el siguiente ejemplo
Ejemplo
Calcule el mnimo local de la funcion f (x) = x3 12x2 + 4025x 365 en el intervalo 3 x 8.Solucion
>> [x,fval]=fminbnd(x^3-12*x^2+40.25*x-36.5,3,8)
x =
5.6073
fval =
-11.8043
El comando fminbnd tambien puede ser utilizado para encontrar el maximo de una funcion, estose logra multiplicando la funcion por -1 y encontrando el mnimo.
La integracion es una operacion comun en ciencias e ingeniera. El calculo de areas, volumenes,velocidad a partir de la aceleracion, el trabajo realizado por una fuerza variable, son algunos ejem-plos donde surge la integracion.Matlab dispone de los comando quad, quadl y trapz. Los comandos quad y quadl son usadospara integrar una funcion f (x), y trapz es usada cuando la funcion esta dada por puntos.La forma del comando quad, el cual usa el metodo adaptativo de Simpson es:
q=quad(funcion,a,b)
donde q es el valor de la integral, a y b son los limites de integracion. La funcion puede ser ingresadacomo una expresion cadena o una funcion anonima. El usuario debe estar seguro que la funcionno tiene una asintota vertical entre a y b.
El comando quadl (la ultima letra es L minuscula) funciona igual que el comando quad, la di-ferencia entre ambos es que el comando quadl utiliza el metodo adaptativo de Lobato, el cual esmas preciso.
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 33
Ejemplo
Use integracion numerica para calcular la siguiente integral
181
xcos (245x) ex13
Solucion
>> q=quad(x.*cos(2.45*x).*exp(x.^1.3),1,1.8)
q =
-4.3217
>> q=quadl(x.*cos(2.45*x).*exp(x.^1.3),1,1.8)
q =
-4.3217
Ejemplo
Para estimar la cantidad de agua que fluye en un rio durante un ano, una seccion transversal delrio tiene forma rectangular. Al principio de cada mes, la altura h del agua y la rapidez v del aguase miden. El primer da de medicion es tomado como 1, el cual es primero de enero.
La siguiente data fue medida en un ano
Dia 1 32 60 91 121 152 182 213 244 274 305 335 366h(m) 2.0 2.1 2.3 2.4 3.0 2.9 2.7 2.6 2.5 2.3 2.2 2.1 2.0
v(m/s) 2.0 2.2 2.5 2.7 5 4.7 4.1 3.8 3.7 2.8 2.5 2.3 2.0
Use los datos tabulados para calcula el flujo, integre el flujo para obtener un estimado de la can-tidad de agua que fluye en el rio en un ano.
Solucion
El flujo, Q (volumen por unidad de segundo), en cada punto es obtenido multiplicando la rapidezdel agua por el area de la seccion transversal del canal:
-
34 CAPITULO 1. INTRODUCCION A MATLAB
Q = vwh(m3/s
)La cantidad de agua es estimada por la integral
V = (60) (60) (24)
t2t1
Qdt
El siguiente script primero calcula Q y despues realiza la integral usando el comando trapz, elprograma tambien genera un grafico del flujo en funcion del tiempo.
w=8;
d=[1 32 60 91 121 152 182 213 244 274 305 335 366];
h=[2 2.1 2.3 2.4 3.0 2.9 2.7 2.6 2.5 2.3 2.2 2.1 2.0];
v=[2 2.2 2.5 2.7 5 4.7 4.1 3.8 3.7 2.8 2.5 2.3 2];
Q=v.*w.*h;
V=60*60*24*trapz(d,Q);
fprintf(La cantidad estimada de agua que fluye en el rio en un anio es %g metros cubicos.,V)
plot(d,Q)
xlabel(Dia), ylabel(Flujo (m^{3}/s))
Al salvar y ejecutar el script anterior obtenemos:
La cantidad estimada de agua que fluye en el rio en un anio es 2.03095e+009 metros cubicos.
Las ecuaciones diferenciales juegan un rol crucial en ciencias e ingeniera ya que ellas son el funda-mento de virtualmente todo fenomeno fsico que envuelve las aplicaciones en ingeniera. Solo unaspocas ecuaciones diferenciales pueden resolverse analticamente. Los metodos numericos puedenresolver de forma aproximada casi cualquier ecuacion diferencial. Matlab tiene libreras que sepueden utilizar para resolver ecuaciones diferenciales.Una ecuacion diferencial ordinaria (ode) es una ecuacion que contiene una variable independiente,una variable dependiente y derivadas de la variable dependiente. Consideremos la ecuacion
dy
dx= f (x, y)
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 35
donde x y y son la variable independiente y dependiente respectivamente, una solucion es una fun-cion que satisface la ecuacion diferencial. Matlab dispone de los siguientes comando para ecuacionesdiferenciales no rgidas: ode45, ode23 y ode113. Para ecuaciones rgidas tenemos los siguientescomandos: ode15s, ode23s, ode23t y 23tb.La sintaxis es la siguiente:
[t,y]=metodo(funcion-ode,tspan,y0)
Donde metodo es cualquiera de los comandos para resolver las ecuacion diferencial, funcion-ode,es la ecuacion diferencial, tspan es un vector que especifica el intervalo de la solucion, y0 es lacondicion inicial y [t, y] es la salida.
Ejemplo
Resuelva la siguiente ecuacion diferencial:
dy
dt=t3 2y
t1 t 3
con y = 42 en t = 1
Solucion
>> [t,y]=ode45(@ode1,[1:0.5:3],4.2)
t =
1.0000
1.5000
2.0000
2.5000
3.0000
y =
4.2000
2.4528
2.6000
3.7650
5.8444
donde ode1 es una funcion
function ode1=(t,y)
dydt=(t^3-2*y)/t;
end
La funcion puede ser anonima como se mostro en la solucion mostrada. Cuando la funcion es tipocadena, la sintaxis es
-
36 CAPITULO 1. INTRODUCCION A MATLAB
>> [t,y]=ode45(ode1,[1:0.5:3],4.2)
t =
1.0000
1.5000
2.0000
2.5000
3.0000
y =
4.2000
2.4528
2.6000
3.7650
5.8444
Ejemplo
Un parachoques de seguridad se coloca al final de una pista de carreras, para detener carros fuerade control. El parachoques es disenado tal que la fuerza que aplica el parachoques a el carro es unafuncion de la velocidad v y el desplazamiento x de la orilla frontal del parachoques de acuerdo ala ecuacion:
F = Kv3 (x+ 1)3
donde K = 30(s kg)/m5 es una constante. Un carro con masa m de 1500 kg golpea el parachoquesa una rapidez de 90 km/h. Determine y grafique la velocidad del carro en funcion de su posicionpara 0 x 3m.Solucion
La aceleracion del carro una vez que el carro golpea el parachoques se puede calcular a partir dela segunda ley de Newton
ma = Kv3 (1 + x)3
a = Kv3 (x+ 1)3
m
la aceleracion se puede escribir como
a = vdv
dx
lo cual da:
dv
dx= Kv
2 (x+ 1)3
m
-
1.3. APLICACIONES EN EL ANALISIS NUMERICO 37
La ultima ecuacion es una ecuacion diferencial de primer orden que vamos a resolver en el intervalode 0 x 3 con la condicion inicial v=90m/h en x = 0 La solucion en Matlab la obtenemos conel siguiente script
global k m
k=30;
m=1500;
v0=90;
v0mps=v0*1000/3600;
xspan=[0:0.2:3];
[x v]=ode45(@edf2,xspan,v0mps)
plot(x,v)
xlabel(x (m));
ylabel(velocidad (m/s))
La funcion hay que definirla y salvarla:
function dvdx= edf2(x,v)
global k m
dvdx=-(k*v^2*(x+1)^3)/m;
end
La salida es la siguiente:
x = v=
0 25.0000
0.2000 22.0420
0.4000 18.4478
0.6000 14.7561
0.8000 11.4302
1.0000 8.6954
1.2000 6.5733
1.4000 4.9793
1.6000 3.7960
1.8000 2.9220
2.0000 2.2737
2.2000 1.7886
2.4000 1.4226
2.6000 1.1435
2.8000 0.9283
3.0000 0.7807
-
38 CAPITULO 1. INTRODUCCION A MATLAB
La grafica es la siguiente:
1.4. Ejercicios de practica
1. La longitud de arco s del segmento parabolico BOC esta dada por:
s =1
2
b2 + 16a2 +
b2
8aln
(4a+
b2 + 16a2
b
)
Calcule la longitud de arco de una parabola con a = 12 pulgadas y b = 8 pulgadas.
2. La conduccion de calor en estado estable q para un cilindro de solido es determinada por:
q = 2piLkT1 T2ln
(r2r1
)
-
1.4. EJERCICIOS DE PRACTICA 39
donde k es la conductividad termica. Calcule q para el un tubo de cobre (k = 401 W/mC) delongitud L = 300 cm con radio externo r2 = 5 cm y radio interno r1 = 3cm. La temperaturaexterna es T2 = 20
0C y la temperatura interna es T1 = 1000C.
3. Una esfera de aluminio (r = 0,2cm) se deja caer en un cilindro de vidrio lleno con glicerina.La velocidad de la esfera como una funcion del tiempo v (t) se puede modelar por la ecuacion
v (t) =
V (al gl) g
ktanh
(V (al gl) gk
V alt
)
donde V es el volumen de la esfera, g = 9,8m/s2 es la aceleracion de la gravedad, k = 0,0018es una constante, y al = 2700kg/m
3 y al = 1260g/m3 son la densidad del aluminio y
glicerina respectivamente. Determine la velocidad de la esfera para los siguientes tiempos 0,0.05, 0.15, 0.25, 0.3, 0.35. Note que la velocidad crece rapidamente al inicio, pero luego crecemas lento debido a la resistencia de la glicerina. Eventualmente la velocidad se aproxima aun limite esa es la llamada velocidad terminal.
4. Resuelva el siguiente sistema de tres ecuaciones.
3x 2y + 5z = 7545x+ 2y + 3z = 55
5x+ y 25z = 45
-
40 CAPITULO 1. INTRODUCCION A MATLAB
5. Resuelva el siguiente sistema de cinco ecuaciones lineales:
3u+ 15v + w + 05x+ 4y = 11752u+ v + 4w 35x+ 2y = 196u 3v + 2w + 25x+ y = 23u+ 4v 3w + 05x 2y = 153u+ 2v w + 15x 3y = 35
6. Determine el mnimo y maximo de la funcion
f (x) =x 2[
(x 2)4 + 2]187. Calcule las siguientes integrales utilizando Matlab.
61
2x2dx1 + x
21
cos (2x) dx
x
11ex
2
dx
8. La rapidez de un auto de carreras durante los primeros siete segundos de una carrera estandados por:
t(s) 0 1 2 3 4 5 6 7v(mi/h) 0 14 39 69 95 114 129 139
Determine la distancia recorrida durante los primeros seis segundos.
9. La seccion transversal de un rio con mediciones de profundidad en intervalos de 40 pies. Useintegracion numerica para estimar el area de seccion transversal del rio.
10. Un mapa aproximado de una region de Centroamerica se muestra. Las mediciones del anchoestan marcadas a intervalos de 30 millas. Use integracion numerica para estimar el area dela region. Compare el resultado con el area real la cual es de 44825 millas cuadradas.
-
1.4. EJERCICIOS DE PRACTICA 41
11. La longitud L del cable principal de un puente de suspension se puede calcular por
L = 2
a0
(1 +
4h2x2
a4
)1/2dx
12. Una armadura esta hecha por miembros unidos por sus extremos. Para la armadura que semuestra, las fuerzas en los nueve miembros estan determinados por la solucion del siguientesistema de nueve ecuaciones.
cos (450)F1 + F4 = 0F3 sen
(450)F1 = 0
F2 + sen(450)F5 + F6 = 0
cos (48810)F5 + F4 + F8 = 0sen (48810)F5 F7 = 600sen (48810)F9 = 1800F8 cos
(48810
)F9 = 0
F7 + sen(48810
)F9 = 4800
cos(48810
)F9 F6 = 0
Escriba el sistema anterior en forma matricial y use Matlab para determinar las fuerzas enlos miembros. Una fuerza positiva significa fuerza de tension, y una fuerza negativa significafuerzas de compresion.
-
42 CAPITULO 1. INTRODUCCION A MATLAB
13. Una armadura esta hecha de miembros unidos por sus extremos. Para la armadura mostrada,la fuerza en los 11 miembros se determinan resolviendo el siguiente sistema de 11 ecuaciones.
1
2F1 + F2 = 0
3
2F1 = 6
12F1 +
1
2F3 + F4 = 0
3
2F1
3
2F3 = 0
F2 12F3 +
1
2F5 + F6 = 0
3
2F3 +
3
2F5 = 5
F4 12F5 +
1
2F7 + F8 = 0
3
2F5
3
2F7 = 0
F6 12F7 +
1
2F9 + F10 = 0
3
2F7 +
3
2F9 = 8
F8 12F9 +
1
2F11 = 0
Escriba estas ecuaciones en forma matricial y use Matlab para determinar las fuerzas en losmiembros.
14. Una viga simplemente apoyada es sometida a una carga distribuida constante w sobre lamitad de la longitud y el momento M se muestra en la figura. La deflexion y, como unafuncion de x, esta dada por las ecuaciones
Para 0 x L2
y = wx384EI
(16x3 24Lx2 + 9L2)+ Mx
6EIL
(x2 3Lx+ 2L2)
-
1.4. EJERCICIOS DE PRACTICA 43
paraL
2 x L
y = wL384EI
(8x3 24Lx2 + 17L2x L3)+ Mx
6EIL
(x2 3Lx+ 2L2)
donde E es el modulo elastico, I es el momento de inercia y L es la longitud de la viga.Para la viga que se muestra en la figura L = 20m, E = 200 109Pa, I = 348 106m4,w = 54 103N/m, M = 200 103N.m. Haga un grafico de la deflexion de la viga y comofuncion de x.
15. Resuelva la siguiente ecuacion diferencial
dy
dt=x+
x2y
4
para 1 x 5 con y (1) = 1. Grafique la solucion.
16. Resuelva la siguiente ecuacion diferencial
dy
dt=xy 05ye01x
para 0 x 4 con y (0) = 65. Grafique la solucion.
17. Resuelva la siguiente ecuacion diferencial
dy
dt= 80e16tcos (4t) 04y
para 0 x 4 con y (0) = 0. Grafique la solucion.
18. Un tanque de agua tiene la forma de un elipsoide (a = 15m, b = 40m, c = 3m), tiene unhoyo circular en el fondo, como se muestra. De acuerdo a la ley de Torriceli, la rapidez delagua que sale del agujero es:
v =
2gh
-
44 CAPITULO 1. INTRODUCCION A MATLAB
donde h es la altura del agua y g = 981m/s2. La razon a la cual la altura del agua en eltanque cambia esta dada por:
dy
dt=
r2
2gy
ac
[1 + (h c)
2
c2
]
donde r es el radio del agujero. Resuelva la ecuacion diferencial para y. La altura inicialdel agua r = 59m. Resuelva el problema cuando h = 01m. Construya una grafica de y enfuncion de t.
19. La distancia d del punto (x0, y0, z0) a el plano Ax+By + Cz +D = 0 esta dada por:
d =|Ax0 +By0 + Cz0 +D|
A2 +B2 + C2
Determine la distancia del punto (8, 3,10) a el plano 2x+ 23y + 13z 24 = 020. La dependencia del calor especifico con la temperatura para varios gases puede describirse
en terminos de la ecuacion cubica:
Cp = a+ bT + cT2 + dT 3
La siguiente tabla da los coeficientes de la ecuacion cubica para cuatro gases, Cp esta enJ/g.0C
Gas a b c dSO2 38.91 3,904 102 3,105 105 8,606 109SO3 48.50 9,188 102 8,540 105 32,40 109O2 29.10 1,158 102 0,6076 105 1,311 109N2 29.00 0,2199 102 0,5723 105 2,871 109
-
1.4. EJERCICIOS DE PRACTICA 45
Escriba un programa que haga lo siguiente:
Imprima los cuatro gases en la pantalla y pregunte al usuario a cual gas quiere calcularleCp.
Pregunte al usuario por una temperatura.
Pregunte al usuario si es necesaria otra temperatura (si o no), si la respuesta es si, elusuario debe ingresar otra temperatura, este proceso debe continuar hasta que el usua-rio dice no.
Desplegar una tabla que contenga las temperaturas que se ingresaron y las correspon-dientes capacidades calorficas.
21. La serie de Taylor de sen(x) es
sen (x) =k=0
(1)k x2k+1(2k + 1)!
donde x esta en radianes. Escriba un programa que determine sen (x) usando la serie deTaylor. El programa debe preguntarle el angulo en grados al usuario. Si ak es el k terminoen la serie entonces la suma Sk del k termino es
Sn = Sn1 + an
En cada paso estime el error E dado por
E =
Sn Sn1Sn1
El programa se debe detener cuando E 0,000005, programa despliega el valor de sen (x).Use su programa para calcular:
(a) sen(450)
(b) sen(1380)
22. Considere los siguientes datos del famoso experimento de la gota de aceite de Millikan, utilicemnimos cuadrados para trabajar lo siguiente. En 1910 Millikan publico su famoso trabajoexperimental en la revista Science, Millikan concluyo que la carga que tiene un objeto es unmultiplo de la carga fundamental, la carga del electron. En el articulo Millikan extrajo lacarga fundamental tomando un promedio de las mediciones de la carga que tenan todas lasgotas. En este caso usted va ajustar los datos de Millikan a una linea recta. Basado en elajuste, podemos estimar la carga fundamental y la precision de las mediciones de Millikan.Millikan no utilizo el metodo de los mnimos cuadrados. Cada medicion experimental se leasigna un entero, la medicion de la carga qk (en unidades de 10
19) y el correspondiente
-
46 CAPITULO 1. INTRODUCCION A MATLAB
entero se alistan en la tabla.
k 4 5 6 7 8 9 10 11qk 6.558 8.206 9.880 11.50 13.14 14.82 16.40 18.04k 12 13 14 15 16 17 18qk 19.68 21.32 22.96 24.60 26.24 27.88 29.52
Del promedio de las cargas de las gotas de aceite, Millikan concluyo que la carga fun-damental es e = 1,65 1019C, el cual es muy cercano al aceptado actualmente, e =1,60217733(49) 1019C.Podemos tomar la ecuacion lineal
qk = ke+4qkpara aproximar los datos experimentales. Por simplicidad4qk es tomado como una constanteque representa el error total asociado con las mediciones. El siguiente programa puede serutilizado para realizar el ajuste.
function [A,B]=linea(x,y)
% x es el vector de las abscisas
% y es el vector de ordenadas
% A es el coeficiente de x en Ax+B
% B es el termino independiente en Ax+B
xmedia=mean(x);
ymedia=mean(y);
sumax2=(x-xmedia)*(x-xmedia);
sumaxy=(y-ymedia)*(x-xmedia);
A=sumaxy/sumax2
B=ymedia-A*xmedia
23. Muestre que el periodo de un pendulo confinado a un plano vertical es
T = 4
L
2g
00
dcos cos0
donde 0 < pi es el maximo angulo entre el pendulo y la vertical, L es la longitud del penduloy g es la aceleracion de la gravedad. Evalue esta integral numericamente con la funciontrapecio para 0 = pi/128, pi/64, pi/32, pi/16, pi/8, pi/4, pi/2, y compare el resultado numerico
con la aproximacion de angulos pequenos T ' 2piL
g
1.5. Referencias
1. John Eaton, David Bateman, Soren Hauberg, GNU Octave: A high level interactive languagefor numerical computations, Third edition, 2007.
-
1.5. REFERENCIAS 47
2. Amos Gilat, Matlab An introduction with applications, fourth edition, Wiley and Sons, 2011.
3. Tao Pang, An introduction to computational physics, second edition, Cambridge UniversityPress, 2006.
4. S.R. Otto and J.P. Denier, An introduction to programming and numerical methods inMatlab, Springer, 2005.
5. David Baez Lopez, Matlab con aplicaciones a la ingeniera, fsica y finanzas, Alfaomega, 2006
6. Mark Newman, Computational physics, first edition, 2012.
-
48 CAPITULO 1. INTRODUCCION A MATLAB
-
Captulo 2
Fundamentos Matematicos del Metodode Elemento Finito
2.1. Tipos de Ecuaciones Diferenciales
Los problemas de ecuaciones diferenciales ordinarias (EDO) se clasifican en problemas con con-diciones iniciales y problemas con condiciones en la frontera. Muchos problemas con condicionesiniciales dependen del tiempo; en ellos, las condiciones para la solucion estan dadas en el tiempoinicial. Los metodos numericos para los problemas con condiciones iniciales difieren en forma sig-nificativa de los que se utilizan para los problemas con condiciones en la frontera. Un ejemplo deesto es:
d2y
dt2+ p (t)
dy
dt+ q (t) y = R (t) (2.1)
y (a) =
y(a) =
2.1.1. EDO Con Valores En La Frontera
Un problema de condiciones de frontera se puede escribir como:
d2y
dx2+ p (x)
dy
dx+ q (x) y = R (x) (2.2)
y (a) = ya
y (b) = yb
La diferencia entre los problemas en las ecuaciones (2.1) y (2.2) es que en (2.2) las dos condicionesse imponen en dos puntos diferentes a y b con digamos a < b. En (2.2) queremos encontrar unasolucion de la ecuacion diferencial en el intervalo (a, b) que satisfaga las condiciones y (a) = ya yy (a) = ya.Un caso de interes de EDO con valores en la frontera son los problemas de valores propios, si laecuacion diferencial se escribe en la forma
d2y
dx2+ p (x)
dy
dx+ q (x) y = R (x) (2.3)
49
nNoteLos dos metodos para resolver ed con valoress en frontera, elementos finitos y diferencais finitas
-
50CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
y (a) = ya
y (b) = yb
La pregunta que nos hacemos en un problema de valor propio es esta: para que valores reales delparametro existe una solucion no trivial del problema con condiciones en la frontera? Tal valorde se llama valor propio valor o caracterstico del problema.
Ejemplo analtico 1
Determine los valores propios y las funciones propias del problema.
y
+ y = 0; y (0) = 0, y(L) = 0
Tomemos = 2 ( > 0). Entonces la ecuacion diferencial es
y
+ 2y = 0
con solucion general
y (x) = Acosx+Bsenx
La condicion y (0) = 0 de inmediato da A = 0, as que
y (x) = Bsenx y y(x) = B cosx
Ahora, la segunda condicion en la frontera y(L) = 0 produce
y(L) = B cosL = 0
Esto sera cierto con B 6= 0 con tal que L sea un multiplo entero positivo e impar de pi/2:
L =pi
2,
3pi
2, ...,
(2n 1) pi2
es decir, si
=pi2
4L2,
9pi2
4L2, ...
(2n 1)2 pi24L2
De este modo el n-esimo valor propio n y su funcion propia asociada del problema estan dadaspor
n =(2n 1)2 pi2
4L2y yn (x) = sen
(2n 1) pix2L
para n = 1, 2, 3, ...
Ejemplo analtico 2
Determine los valores propios y las funciones propias asociadas para el problema con condicionesen los extremos
y
+ y = 0, y (0) = 0, y (L) = 0
-
2.1. TIPOS DE ECUACIONES DIFERENCIALES 51
debemos considerar todos los posibles valores reales. Si = 0, entonces la ecuacion es simplementey
= y su solucion general es
y (x) = Ax+B
Entonces las condiciones en los extremos y (0) = y (L) = 0 de inmediato implican que A = B = 0,de modo que la unica solucion en este caso es la solucion trivial y (x) = 0. Por tanto = 0 no esun valor propio para nuestro problema.Si = 2 con > 0 para ser especficos. Entonces la ecuacion diferencial toma la forma
y 2y = 0
y su solucion general es
y (x) = c1ex + c2e
x = A cosh (x) +B senh (x)
donde A = c1 + c2 y B = c1 c2. Recuerde que cosh x = (ex + ex) /2 y que senh x =(ex + ex) /2.
Entonces la condicion y (0) = 0 da
y (0) = A cosh (0) +B senh (0) = A = 0
as que y (x) = B (x). Pero ahora la segunda condicion de valor extremo, y (L) = 0, producey (L) = B senh (L) = 0. Esto implica que B = 0, ya que 6= 0. As la unica solucion del pro-blema en el caso de que < 0 es la solucion trivial y = 0, y por lo tanto podemos concluir que elproblema no tiene valores propios negativos.La unica posibilidad restante es que = 2 > 0 con > 0. En este caso la ecuacion diferencial es
y
+ 2y = 0
con solucion general
y (x) = A cos (x) +B sen (x)
La condicion y (0) = 0 implica que A = 0, de modo que y (x) = B sen (x). La condicion y (L) = 0produce
y (L) = B sen (L) = 0
Si B 6= 0, lo anterior se cumple solo si
L = pi, 2pi 3pi, ... npi
nNoteEl segundo e va -
-
52CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
esto es, si
= 2 =pi2
L2,
4pi2
L2,
9pi2
L2, ...
n2pi2
L2
As hemos descubierto que el problema tiene una sucesion infinita de valores propios positivos.
Ejemplo analtico 3
La figura 1, muestra una barra uniforme de longitud L, con goznes en cada extremo, que se ha com-bado a consecuencia de una fuerza axial de compresion P aplicada en un extremo. Supondremosque este curvado es tan ligero que la curva de deflexion y = y (x) de la barra puede considerarsedefinida en el intervalo 0 x L.
En teora de elasticidad se utiliza el problema lineal con condiciones en la frontera.
EI y
+ Py = 0, y (0) = y (L) = 0
para modelar el comportamiento real de la barra, E denota el modulo de Young del material dela viga e I denota el momento de inercia de cada seccion transversal de la viga con respecto a lalinea horizontal que pasa por su centroide.Si escribimos
=P
EI
entonces el problema se convierte en el problema de valor propio
y
+ y = 0; y (0) = y (L) = 0
que ya estudiamos en el ejemplo 2. Encontramos que sus valores propios n estan dados por
=n2pi2
L2, n = 1, 2, 3, ...
con la funcion propia ynsen (npix/L) asociada con n
Para interpretar este resultado en terminos de la barra combada, sabemos que P = EI. Lasfuerzas
Pn = nEI =n2pi2EI
L2, n = 1, 2, 3, ... (2.4)
-
2.1. TIPOS DE ECUACIONES DIFERENCIALES 53
son las fuerzas crticas de combamiento de la barra. Solo cuando la fuerza de compresion P es unade estas fuerzas crticas, la barra de combara dejando su forma recta. La fuerza de compresionmas pequena P1 se denomina fuerza combadora de Euler para la varilla; es la cota superior paraaquellas fuerzas de compresion a las que la barra puede someterse sin que se combe.
2.1.2. EDO Con Valores Iniciales
Para ilustrar como surgen fsicamente este tipo de ecuaciones diferenciales, consideremos elmovimiento de una masa sujeta a un resorte, sirve como un ejemplo sencillo de las vibraciones queocurren en sistemas mecanicos de mayor complejidad. Consideremos un cuerpo de masa m sujeto aun extremo de un resorte comun que resiste compresion y estiramiento; el otro extremo del resorteesta sujeto a una pared fija, como se muestra. Supongase que el cuerpo reposa sobre un plano hori-zontal sin friccion, de modo que solo puede moverse hacia adelante y hacia atras conforme el resortese comprima o se alargue. Denote con x la distancia del cuerpo a su punto de equilibrio, su posicioncuando el resorte no esta estirado. Tomamos x > 0 cuando el resorte esta estirado y por tantox < 0 cuando esta comprimido. De acuerdo con la ley de Hooke, la fuerza de restauracion que el re-sorte ejerce sobre la masa es proporcional a la distancia x de la masa m de su posicion de equilibrio
F = kx (2.5)La constante positiva de proporcionalidad k se denomina constante del resorte. Observe que F yx tienen signos contrarios: F < 0 cuando x > 0, F > 0 cuando x < 0
La figura muestra tambien que la masa esta sujeta a un amortiguador, un dispositivo paraabsorber el impacto, que proporciona una fuerza dirigida en sentido opuesto a la direccion ins-tantanea de movimiento de la masa m. Suponemos que el amortiguador esta disenado de modoque su fuerza es proporcional a la velocidad de la masa; esto es:
Fa = cv = cdxdt
(2.6)
La constante positiva c es la constante de amortiguamiento del amortiguador, con mayor genera-lidad podemos, considerar la ecuacion (6) como fuerzas de friccion especificas en nuestro sistema(incluyendo la resistencia del aire al movimiento de m).Si ademas de las fuerzas F , Fa, la masa esta sujeta a una fuerza externa Fe, entonces la segundaley de Newton se escribe:
F + Fa + Fe = ma
kx cdxdt
+ Fe = md2x
dt2
-
54CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
obtenemos la ecuacion diferencial lineal de segundo orden
mx
+ cx+ kx = F (t) (2.7)
Ejemplo numerico 1
Ahora vamos a resolver numericamente el problema del oscilador forzado amortiguado con lasrutinas numericas de Matlab, vamos a utilizar, la rutina adaptativa de Runge-Kutta de cuartoorden ode45. Consideremos que la masa es de 0.5kg, constante de amortiguamiento de 0.20kg/s,constante de fuerza de 120N/m. La ecuacion diferencial queda as:
05x
+ 020x+ 120x = 030sen (7t)
La ecuacion anterior la podemos escribir como un sistema de dos ecuaciones diferenciales de primerorden, haciendo los siguientes cambios de variables.
x1 = x2
x2 = 060sen (7t) 040x2 240x1El script en Matlab para el sistema anterior es
f=@(t,x)[x(2);0.20*sin(10*t)-0.40*x(2)-240*x(1)];
t_final=20;
x0=[1.2;0];
[t,x]=ode45(f,[0,t_final],x0);
plot(t,x(:,1));
xlabel(Tiempo);
ylabel(Posicion x(t) );
title(Oscilador forzado y amortiguado);
La salida de Matlab es la siguiente:
-
2.1. TIPOS DE ECUACIONES DIFERENCIALES 55
Ejemplo numerico 2
A mediados de la decada de 1950, la prediccion numerica del clima, es decir la prediccion mediantela integracion numerica de aproximaciones a las ecuaciones atmosfericas que pudieran controlarse,estaba muy en boga. Uno de los cientficos interesado en esta metodologa fue Lorentz, el obtuvoel siguiente sistema de ecuaciones diferenciales
dx1dt
= x1 (t) + x2 (t)x3 (t)dx2dt
= x2 (t) + x3 (t)dx3dt
= x1 (t)x2 (t) + x2 (t) x3 (t)
tomemos las constantes con los siguientes valores: = 8/3, = 10, = 28, las condicionesiniciales son x1 (0) = x2 (0) = 0; x3 (0) = . El script en Matlab es el siguiente:
f=@(t,x)[-(8/3)*x(1)+x(2)*x(3);-10*x(2)+10*x(3);...
-x(1)*x(2)+28*x(2)-x(3)];
t_final=100; x0=[0;0;1e-10];
[t,x]=ode45(f,[0,t_final],x0);
plot(t,x)
plot3(x(:,1),x(:,2),x(:,3));
grid
axis([10 42 -20 20 -20 25]);
La salida en Matlab es la siguiente:
Ejemplo numerico 3
La velocidad de una partcula que se mueve sobre el eje x esta dada por la siguiente funcion del
-
56CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
tiempo, grafique x vr t, para esta partcula.
v =dx
dt= 05e03tsen (8t)
Primero definimos una funcion para nuestra ecuacion diferencial
function dx = g1(t,x)
dx=0.5*exp(-0.5*t)*sin(8*t);
end
Desde la ventana de comandos escribimos lo siguiente
>> tiempo=[0,5];
>> [t,x]=ode45(g1,tiempo,0.1);
>> plot(t,x)
con lo cual obtenemos el siguiente grafico de posicion versus tiempo.
2.2. Tecnicas de aproximacion
2.2.1. Metodo de residuales ponderados
El metodo de residuales ponderados es util para obtener soluciones aproximadas de ecuacionesdiferenciales. Para explicar los diferentes metodos vamos a tomar la siguiente ecuacion diferencial.
d2u
dt2 u = x, 0 < x < 1 (2.8)
u (0) = 0, y u (1) = 0
-
2.2. TECNICAS DE APROXIMACION 57
El primer paso en el metodo de residuales ponderados es asumir una funcion de ensayo la cualtiene coeficientes desconocidos que tienen que ser encontrados posteriormente. Por ejemplo unafuncion de ensayo es u = ax (1 x) como solucion de la ecuacion (8). Aqu la tilde indica unasolucion aproximada la cual es usualmente diferente de la solucion exacta. La funcion de ensayose selecciono de tal manera que satisfaga las condiciones de frontera.En general, la precision de una solucion aproximada va depender de la seleccion de la funcion deensayo. Una vez que tenemos la funcion de ensayo, el residual es calculado por sustitucion directaen la ecuacion diferencial. Esto es, el residual R se convierte en
R =d2u
dx2 u+ x = 2a ax (1 x) + x (2.9)
Ya que u es diferente de la solucion exacta, el residual no se anula para todos los valores de xdentro del dominio. El siguiente paso es determinar la constante arbitraria a tal que la funcionescogida aproxime lo mejor posible a la solucion exacta. Para lograr lo anterior se selecciona unafuncion peso y esta se pondera con el residual sobre todo el dominio y se iguala a cero. Esto es
I =
10
wRdx =
10
w
(d2u
dx2 u+ x
) 1
0
w [2a ax (1 x) + x] dx = 0 (2.10)El siguiente paso es seleccionar la funcion de prueba o de peso w. La solucion aproximada resultantedifiere dependiendo de la funcion de prueba w. Los metodos de residuales ponderados pueden serclasificados basados en como se determina la funcion de prueba w. Veamos algunos de los metodosde residuales ponderados.
1. Metodo de colocacion. La funcion delta de Dirac, (x xi) es usada como funcion deprueba, donde los puntos de muestreo xi deben estar dentro del dominio, 0 < x < 1 en otraspalabras
w = (x xi) (2.11)Tomando x = 05 y sustituyendo la funcion de prueba en el residual ponderado, ecuacion(10), encontramos a = 02222Entonces la solucion aproximada se convierte en u = 02222x (1 x)
2. Metodo de mnimos cuadrados. La funcion de prueba es determinada del residual tal que
w =dR
da(2.12)
Aplicando la ecuacion (12) a la ecuacion (9) llegamos a w = 2 x (1 x). Sustituyendo lafuncion de prueba en (10) resulta a = 02305. Entonces u = 02305x (1 x).
3. Metodo de Galerkin. En el metodo de Galerkin, la funcion de prueba se obtiene de lafuncion de ensayo. Esto es
w =du
da(2.13)
-
58CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
Para el presente ejercicio obtenemos w = x (1 x). Aplicando esta funcion de prueba a laecuacion (10) se obtiene a = 02272 as u = 02270x (1 x)
Para mejorar la solucion aproximada, podemos agregar mas terminos a la funcion de ensayo. Porejemplo, otra funcion de ensayo posible es u = a1x (1 x) + a2x2 (1 x). Esta funcion de ensayotiene dos constantes desconocidas que tienen que ser determinadas. El calculo del residual usandola presente funcion de ensayo se tiene
R = a1(2 x+ x2)+ a2 (2 6x x2 + x3)+ x (2.14)
Necesitamos el mismo de funciones de prueba como constantes desconocidas tengamos, dicho loanterior podemos resumir los diferentes metodos as
Metodo DescripcionColocacion wi = (x xi), i = 1, 2, ..., n
Mnimos cuadrados wi = R/ai, i = 1, 2, ..., nGalerkin wi = u/ai, i = 1, 2, ..., n
Aplicando la tabla anterior a la ultima funcion de ensayo, obtenemos las siguientes funciones deprueba
Metodo de colocacion:w1 = (x x1) , w2 = (x x2) (2.15)
Metodo de mnimos cuadrados:
w1 = 2 x+ x2, w2 = 2 6x x2 + x3 (2.16)
Metodo de Galerkin:
w1 = x (1 x) , w2 = x2 (1 x) (2.17)Para el metodo de colocacion, x1 y x2 deben ser seleccionados tal que el residual ponderado, ecua-cion (10), produzca dos ecuaciones independientes para determinar a1 y a2 de forma unica. Elmetodo de mnimos cuadrados produce una matriz simetrica. El metodo de Galerkin no produceuna matriz simetrica cuando se aplica a la ecuacion (8), pero este metodo puede producir unamatriz simetrica bajo ciertas condiciones.
Una ecuacion diferencial se puede escribir como
L (u) = f (2.18)
donde L es un operador diferencial. Una funcion de ensayo se escoge tal que
u =ni=1
aigi (2.19)
donde gi es una funcion conocida en terminos de las coordenadas espaciales del sistema y se asumeque satisfacen las condiciones de frontera. Sustituyendo la ecuacion (19) en la (18) y agrupandolos terminos del mismo coeficiente ai, el residual queda
R =ni=1
aihi + p (2.20)
-
2.2. TECNICAS DE APROXIMACION 59
Aqu, hi y p son funciones en terminos de las coordenadas espaciales. Las funciones de prueba parael metodo de mnimos cuadrados son
wj = hj, j = 1, 2, ..., n (2.21)
El residual ponderado sobre todo el dominio nos lleva a una ecuacion matricial
I =
wj Rd =
ni=1
Ai,jai bj = 0, j = 1, 2, ..., n (2.22)
donde
Ai,j =
hihjd (2.23)
La ecuacion (23) muestra que Ai,j = Aj,i, una matriz simetrica.
2.2.2. Formulacion Debil
Consideremos la ecuacion diferencial (8) otra vez. La formulacion descrita en la seccion anterior
es llamada la formulacion fuerte. La formulacion fuerte requiere evaluar 1
0w(2u/x2)dx, lo cual
incluye derivadas de orden superior en la ecuacion diferencial. La integral debe tener un valor finitodiferente de cero, para que la solucion aproximada tenga sentido. Esto significa que la funcion deensayo debe ser diferenciable doblemente y la segunda derivada debe ser diferente de cero.Para reducir los requerimientos para la funcion de ensayo en terminos del orden de diferenciacion,integramos por partes la formulacion fuerte. Entonces la ecuacion (10) se convierte en
I =
10
w
(d2u
dx2 u+ x
)dx
10
(dwdx
du
dx wu+ xw
)dx+
[wdu
dx
]10
= 0 (2.24)
Como se puede ver en la ecuacion (24), solo se necesita diferenciacion de primer orden en vez deuna segunda derivada. Como resultado, los requerimientos para la funcion de ensayo se reducepara la ecuacion (24). Esta formulacion se le llama formulacion debil.La formulacion debil tienen una ventaja con respecto al metodo de Galerkin donde las funcionesde prueba se obtienen directamente de la funcion de ensayo seleccionada. Si la ecuacion diferenciales descrita por un operador auto-adjunto, el metodo de Galerkin y la formulacion debil resultan enuna matriz simetrica en terminos de los coeficientes desconocidos de la funcion de ensayo. Usandola funcion de ensayo u = ax (1 x) para la formulacion debil se obtiene el mismo resultado queya vimos en la formulacion fuerte. Sin embargo cuando la funcion de ensayo es seccionada, laformulacion debil tiene ventaja sobre la formulacion fuerte.
2.2.3. Funcion de Ensayo Continua por Partes.
Independientemente de la formulacion debil o fuerte, la precision de una solucion aproximadadepende de la seleccion de la funcion de ensayo. Sin embargo, asumir una funcion de ensayo apro-piada no es una tarea facil. Esto es especialmente cierto cuando la solucion exacta tenga grandesvariaciones sobre todo el dominio del problema, el dominio tienen una forma compleja en dos
-
60CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
dimensiones o en un problema de tres dimensiones o tiene condiciones de frontera complicadas.Para superar estos problemas la funcion de ensayo puede ser descrita usando funciones seccionadascontinuas.Consideremos una funcion seccionada lineal en un dominio unidimensional definida as:
i =
{(x xi) /hi para xi1 x xi(xi+1 x) /hi+1 para xi x xi+1
El siguiente ejemplo va ilustrar como trabajar con este tipo de funciones.Ejemplo
Consideremos la misma ecuacion diferencial (8), la funcion de ensayo se escoge como u = a11 (x)+a22 (x) en la cual a1 y a2 son constantes desconocidas a ser determinadas y 1 y 2 se definen acontinuacion.
1 =
3x 0 x 13
2 3x 13 x 2
3
02
3 x 1
2 =
0 0 x 13
3x 1 13 x 2
3
3 3x 23 x 1
Para la presente funcion de ensayo el dominio es dividido en tres subdominios y dos funcionesseccionadas lineales. Por supuesto se pueden usar mas funciones seccionadas y mas subdominiospara mejorar la precision de la solucion aproximada. La funcion de ensayo puede escribirse como
u =
a1 (3x) 0 x 13
a1 (2 3x) + a2 (3x 1) 13 x 2
3
a2 (3 3x) 23 x 1
-
2.2. TECNICAS DE APROXIMACION 61
Usando el metodo de Galerkin, llegamos a las siguientes funciones de prueba
w1 =
3x, 0 x 13
2 3x, 13 x 2
3
0,2
3 x 1
y
w2 =
0, 0 x 13
3x 1, 13 x 2
3
3 3x, 23 x 1
los residuales ponderados son
I1 =
10
(dw1dx
du
dx w1u+ xw1
)dx = 0 (2.25)
I2 =
10
(dw2dx
du
dx w2u+ xw2
)dx = 0 (2.26)
donde
[wdu
dx
]10
se omite porque w1 (0) = w1 (1) = w2 (0) = w2 (1) = 0. Sustituyendo ambas fun-
ciones de ensayo en (25) y (26) respectivamente da
I1 =
13
0
[3 (3a1) 3x (3a1x) + x (3x)] dx+ 2
3
13
[3 (3a1 + 3a2) (2 3x) (2a1 3a1x+ 3a2x a2)
+ x (2 3x)] dx+ 1
23
0dx
I1 = 6222a1 + 29444a2 + 01111 = 0
I2 =
13
0
0dx+
23
13
[3 (3a1 + 3a2) (3x 1) (2a1 3a1x+ 3a2x a2) + x (3x 1)] dx
+
123
[3 (3a2) (3 3x) (3a2 3a2x) + x (3 3x)] dx
I2 = 29444a1 62222a2 + 02222 = 0Resolviendo las ecuaciones anteriores obtenemos a1 = 00488 y a2 = 00569, as la solucion aproxi-mada queda u = 004481 (x)+005692 (x). Si la funcion de ensayo seccionada se hubiera utilizado
con la formulacion fuerte, no dara un resultado razonable, ya qued2u
dx2desaparece completamente
sobre el dominio.
-
62CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
2.2.4. Formulacion de Galerkin: Elementos Finitos.
Como se vio en la seccion previa, usar funciones seccionadas continuas como funcion de ensayotiene sus ventajas. Si incrementamos el numero de subdominios para la funcion seccionada, pode-mos representar funciones complejas usando sumas de funciones lineales simples. Despues a estossubdominios les vamos a llamar elementos finitos. De ahora en adelante vamos a quitar la tildepara denotar la funcion de ensayo, al menos que haya confusion.En esta seccion se va mostrar como calcular los residuales ponderados de una forma sistematicausando elementos finitos y funciones seccionadas continuas. En la seccion previa, la funcion sec-cionada estaba definida en terminos de los coeficientes a1 y a2. Para una formulacion sistematica,la funcion seccionada continua se define en terminos de variables nodales.Consideremos el dominio o elemento finito mostrado en la figura. El elemento tiene dos nodos,uno en cada extremo. En cada nodo, los correspondientes valores de coordenadas (xi o xi+1) y lasvariables nodales (ui o ui+1) estan asignados. Asumamos que la funcion de ensayo es
u = c1x+ c2 (2.27)
Expresemos la ecuacion (2.27) en terminos de las variables nodales. En otras palabras, c1 yc2 necesitan ser reemplazadas por wi y wi+1. Para hacer lo anterior, evaluamos u en x = xi yx = xi+1. Entonces
u (xi) = c1xi + c2 = ui (2.28)
u (xi+1) = c1xi+1 + c2 = ui+1 (2.29)
Resolviendo simultaneamente las ecuaciones (28) y (29) para c1 y c2 da
c1 =ui+1 uixi+1 xi (2.30)
c1 =uixi+1 ui+1xi
xi+1 xi (2.31)
sustituyendo (2.30) y (2.31) en (2.27) y agrupando se tiene
u = H1 (x)ui +H2 (x)ui+1 (2.32)
donde
H1 (x) =xi+1 x
hi(2.33)
H2 (x) =x xihi
(2.34)
hi = xi+1 xi (2.35)
nNotees C2
-
2.2. TECNICAS DE APROXIMACION 63
La ecuacion (2.32) da una expresion para la variable u en terminos de las variables nodales, ylas ecuaciones (2.33) y (2.34) se les llama funciones lineales de forma. Estas funciones tienen lassiguientes propiedades.
1. Las funciones de forma asociadas con el nodo i tiene valor unitario en el nodo i y desapareceen los otros nodos
H1 (xi) = 1, H1 (xi+1) = 0, H2 (xi) = 0, H2 (xi+1) = 1 (2.36)
2. La suma de todas las funciones de forma es 1
2i=1
Hi (x) = 1 (2.37)
Estas son propiedades importantes para las funciones de forma. La primera propiedad ecua-cion (2.36), declara que la variable u debe ser igual a la correspondiente variable nodal encada nodo ui (xi) = ui y u (xi+1) = ui+1. La segunda propiedad, ecuacion (2.37) nos dice quela variable u puede representar una solucion uniforme dentro el elemento.
Ejemplo Vamos a resolver la ecuacion diferencial (2.8), con el metodo descrito arriba.
El residual ponderado puede escribirse como
I =ni=1
xi+1xi
(dwdx
du
dx wu+ xw
)dx+
[uw]1
0= 0 (2.38)
para n elementos. El dominio del problema es discretizado en tres elementos de igual tamanola figura muestra los tres elementos.
En este caso tenemos los elementos i = 1, 2, 3. La integral para estos elementos es xi+1xi
(dwdx
du
dx wu+ xw
)dx (2.39)
La funcion de ensayo es
u = H1 (x)ui +H2 (x)ui+1 (2.40)
y las funciones de prueba para el metodo de Galerkin son w1 = H1 (x) y w2 = H2 (x) Po-niendo esto en la ecuacion (38) da
xi+1xi
({H1
H2
}[H1 H
2
]+
{H1H2
}[H1 H2
])dx
{uiui+1
}+
xi+1xi
x
{H1H2
}dx
(2.41)
donde Hi denota
dHi (x)
dxdonde Hi esta dado por la ecuacion (2.33) y (2.34).
-
64CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
Calculando estas integrales se obtiene
1
hi+hi3 1hi
+hi6
1hi
+hi6
1
hi+hi3
{ uiui+1}
+
hi6
(xi+1 + 2xi)
hi6
(2xi+1 + xi)
(2.42)Para cada elemento, la ecuacion (2.42) puede escribirse comoElemento 1: [ 3111 29444
29444 3111]{
u1u2
}+
{0018500370
}(2.43)
Elemento 2: [ 3111 2944429444 3111
]{u2u3
}+
{0074100926
}(2.44)
Elemento 3: [ 3111 2944429444 3111
]{u3u4
}+
{0129601481
}(2.45)
Como muestra la ecuacion (2.38), necesitamos sumar de la ecuacion (2.43) a la (2.45). Cadaelemento tiene diferentes nodos asociados con el. Como resultado expandimos cada ecuaciontal que cada ecuacion tiene una matriz y un vector de tamano m el cual es el numero degrados de libertad en el sistema. Para el presente problema, m = 4. El numero de grados delibertad es el mismo numero de nodos porque cada nodo tiene un grado de libertad para elpresente ejemplo.
Escribamos la ecuacion (2.43) expandiendo la matriz y el vector3111 29444 0 029444 3111 0 0
0 0 0 00 0 0 0
u1u2u3u4
+
0018500370
00
(2.46)Similarmente la ecuacion (2.44) y (2.45) se escriben
0 0 0 00 3111 29444 00 29444 31111 00 0 0 0
u1u2u3u4
+
00074100926
0
(2.47)0 0 0 00 0 0 00 0 31111 294440 0 29444 31111
u1u2u3u4
+
00
0129601481
(2.48)Sumando de la ecuacion (46) a la (48) resulta en
31111 29444 0 029444 62222 29444 0
0 29444 62222 294440 0 29444 31111
u1u2u3u4
+
00185 u (0)0111102222
01481 + u(1)
= 0 (2.49)
-
2.2. TECNICAS DE APROXIMACION 65
Las condiciones de frontera de Neuman se agregaron en el vector del lado derecho de la ecuacion(38). Para el presente problema, las condiciones de frontera de Dirichlet son en ambos extremosu1 = 0 y u4 = 0. Las condiciones de frontera de Neuman u
(0) y u
(1) no estan dadas en este
ejemplo. La ecuacion (2.49) puede resolverse con las condiciones de frontera, u1 = 0 y u4 = 0, paraencontrar el resto de las variables nodales. Agregando las condiciones de frontera conocidas a laecuacion (2.49) se tiene
1 0 0 029444 62222 29444 0
0 29444 62222 294440 0 0 1
u1u2u3u4
+
00111102222
0
(2.50)Resolviendo la ecuacion (2.50) se obtiene, u1 = 0, u2 = 00448, u3 = 00569 y u4 = 0. Estas solu-ciones nodales pueden sustituirse en la ecuacion (2.49) para encontrar u
(0) y u
(1). Una vez que
las variables nodales son determinadas, la solucion dentro de cada elemento puede ser obtenida delas correspondientes variables nodales y funciones de forma. Por ejemplo, la solucion dentro delprimer elemento:
0 x 13
es
u = H1 (x)u1 +H2 (x)u2 = 01344x
2.2.5. Metodo Variacional
El metodo variacional es muy utilizado tambien para derivar la ecuacion matricial de elementofinito. Necesitamos derivar el funcional de la ecuacion (2.8), para nuestro problema modelo.
d2u
dt2 u = x, 0 < x < 1
u (0) = 0, y u (1) = 0
La expresion variacional de la ecuacion anterior es:
J =
10
(d
2u
dx2+ u x
)udx+
[du
dxu
]10
(2.51)
donde es el operador operacional. El primer termino de la ecuacion (2.51) es la ecuacion dife-rencial y el segundo termino son las condiciones de frontera de Neuman desconocidas. Aplicandointegracion por partes al primer termino de la ecuacion (2.51) se obtiene
J =
10
(du
dx
d (u)
dx+ uu xu
)dx (2.52)
Ya que el operador variacional es conmutativo con respecto a los operadores de integracion y de-rivacion
d (u)
dx=
(du
dx
)
-
66CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
y
udx =
udx
La ecuacion (2.52) la podemos escribir como
J =
10
{1
2
(du
dx
)2+
1
2u2 xu
}dx (2.53)
El funcional se obtiene de la ecuacion (2.53) y queda as
J =
10
{1
2
(du
dx
)2+
1
2u2 xu
}dx (2.54)
Tomando la variacion de la ecuacion (2.54) obtenemos la ecuacion (2.8). El funcional representa laenerga en muchos problemas de fsica e ingeniera, por ejemplo la energa potencial en un solidomecanico es un funcional. La solucion de las ecuaciones que gobiernan se obtienen minimizando elfuncional.
2.2.6. El metodo de Rayleigh-Ritz
El metodo de Rayleigh-Ritz obtiene una solucion aproximada a la ecuacion diferencial concondiciones de frontera dada usando el funcional de la ecuacion diferencial. El procedimiento paraesta tecnica puede resumirse en dos paso dados a continuacion:
1. Asumir una solucion admisible la cual satisface las condiciones de frontera de Dirichlet ycontiene coeficientes desconocidos.
2. Sustituir la solucion asumida en el funcional y encontrar los coeficientes desconocidos queminimizan el funcional.
Ejemplo
Resolvamos la ecuacion diferencial (2.8) usando el metodo de Rayleigh-Ritz. Asumamos la siguien-te funcion como una solucion aproximada.
u = ax (1 x) (2.55)donde a es un coeficiente desconocido. Esta funcion satisface las condiciones de frontera esenciales.Substituyendo (2.55) en el funcional, ecuacion (2.54), se llega a
J =1
2a2 1
0
[(1 2x)2 + x2 (1 x)2] dx a 1
0
x2 (1 x) dx (2.56)
Minimizando el funcional respecto a el coeficiente desconocido a,dJ
da= 0, se obtiene a = 02272.
De aqu que la solucion aproximada es u = 02272x (1 x) la cual es la misma solucion obtenidacon el metodo de Galerkin. Se puede mejorar la solucion agregando mas terminos. Por ejemplo
u = a1x (1 x) + a2x2 (1 x) (2.57)
-
2.2. TECNICAS DE APROXIMACION 67
donde a1 y a2 son dos coeficientes desconocidos. Substituyamos la expresion anterior en el funcionaly tomemos las derivadas respecto a a1 y a2 para minimizar el funcional.
J
a1= 0,
J
a2= 0 (2.58)
Esta operacion nos da la solucion de los coeficientes desconocidos a1 y a2.
2.2.7. Metodo de Elementos Finitos con Rayleigh-Ritz
El metodo de Rayleigh-Ritz puede ser aplicado a un problema de dominio usando funcionesseccionadas continuas. Como resultado, el dominio es dividido en subdominios de elementos finitos.Para elementos con dos nodos de una pieza, las funciones lineales de forma como las ecuaciones(2.33) y (2.34) pueden ser utilizadas para el metodo de Rayleigh-Ritz. El siguiente ejemplo explicael procedimiento de elemento finito usando el metodo de Rayleigh-Ritz.
Ejemplo
Vamos a resolver la ecuacion diferencial (2.8) usando el metodo de Rayleigh-Ritz, nuevamente eldominio lo vamos a subdividir en tres elementos. El funcional puede ser expresado para el dominiodiscretizado como
J =ni=1
xi+1xi
{1
2
(du
dx
)2+
1
2u2 xu
}dx (2.59)
donde n = 3, x1 = 0, x2 = 1/3, x3 = 2/3 y x4 = 1, como en la figura. Usando funciones lineales deforma, la solucion u para el i elemento es expresada como
u = H1 (x)ui +H2ui+1 = [H]{ui}
(2.60)
donde
[H] = [H1 H2] (2.61){ui}
= {ui ui+1}T (2.62)y H1 y H2 estan dadas por las ecuaciones (2.33) y (2.34). Substituyendo la ecuacion (2.60) en elfuncional llegamos a
xi+1xi
{1
2
(du
dx
)2+
1
2 xu
}dx =
xi+1xi
{1
2
{ui}T [dH
dx
]T [dH
dx
]{ui}
+1
2
{ui}T
[H]T [H]{ui}
{ui}T [H]T x} dxdonde [
dH
dx
]=
[dH1dx
dH2dx
](2.63)
-
68CAPITULO 2. FUNDAMENTOS MATEMATICOS DEL METODO DE ELEMENTO FINITO
evaluando las integrales se obtiene
1
2{ui ui+1}
1
hi+hi3 1hi
+hi6
1hi
+hi6
1
hi+hi3
{
ui
ui+1
} {ui ui+1}
hi6
(xi+1 + 2xi)
hi6
(2xi+1 + xi)
(2.64)La matriz de 2x2 en la ecuacion (2.64) viene del segundo y tercer termino del lado derecho de laintegral, mientras que la expresion vectorial viene del ultimo termino. Sumando sobre e numerototal de elementos y substituyendo los valores apropiados el funcional da
1
2{u1 u2 u3 u4}
31111 29444 0 029444 62222 29444 0
0 29444 62222 294440 0 29444 31111
u1u2u3u4
{u1 u2 u3 u4
}00185011110222201581
Necesitamos minimizar el funcional respecto vector nodal desconocido {u} = {u1 u2 u3 u4}T . In-vocando
dJ
dx= 0 resulta en
31111 29444 0 029444 62222 29444 0
0 29444 62222 294440 0 29444 31111
u1u2u3u4
=
00185011110222201481
(2.65)aplicando las condiciones de frontera u1 = 0 y u4 = 0 y resolviendo se llega a u2 = 00448,u3 = 00569
2.3. Ejercicios
Los valores propios de cada uno de los problemas 1 al 5 son no negativos. Determine primerosi = 0 es un valor propio; despues, encuentre los valores propios positivos y las funciones propiasasociadas.
1. y
+ y = 0; y(0) = 0, y (1) = 0
2. y
+ y = 0; y(0) = 0, y (pi) = 0
3. y
+ y = 0; y (pi) = 0, y (pi) = 0
4. y
+ y = 0; y(pi) = 0, y (pi) = 0
5. y
+ y = 0; y (2) = 0, y (2) = 0
-
2.3. EJERCICIOS 69
6. (a) Una viga voladiza esta fija en x = 0 y libre en x = L (el otro extremo). Demuestre quesu forma esta dada por
y (x) =w
24EI
(x4 4Lx3 + 6L2x2)
(b) Demuestre que y(x) = 0 solamente en x = 0 y que de esto se sigue que la maxima
deflexion de la viga voladiza es ymin = y (L) = wL4/8EI
7. Suponga que una pelota es lanzada directamente hacia arriba