0% encontró este documento útil (0 votos)
388 vistas9 páginas

Solución de Ecuaciones con Matlab

Este documento presenta la solución de dos ecuaciones diferenciales mediante métodos numéricos en Matlab. La primera ecuación modela el flujo en una tubería y se resuelve usando diferencias finitas y el método del disparo. La segunda ecuación describe un flujo radial y se resuelve usando la función bvp4c de Matlab para condiciones de frontera.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
388 vistas9 páginas

Solución de Ecuaciones con Matlab

Este documento presenta la solución de dos ecuaciones diferenciales mediante métodos numéricos en Matlab. La primera ecuación modela el flujo en una tubería y se resuelve usando diferencias finitas y el método del disparo. La segunda ecuación describe un flujo radial y se resuelve usando la función bvp4c de Matlab para condiciones de frontera.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TALLER Nº 3

Profesor Francisco Muñoz Paba M.Sc


Estudiante: Maria Paulina Martinez Arroyave
Grupo: 1

SOLUCIÓN DE ECUACIONES DIFERENCIALES CON VALORES EN LA FRONTERA

1. Considere el flujo de un fluido newtoniano en una tubería, expresado por la


ecuación diferencial de segundo grado:
SOLUCION

Solución para A. Método de diferencia finita:


En el editor de Matlab se ingresaron los comandos:
%Diferencias finitas ¿JD?:)
clear all clc Dp=2.8e5;
u=0.492; L=4.88;
R=0.0025;
VR=0; a=linspace(0,0.0025,6);
alfa=-2*(a(2)^2)*Dp/(u*L);
A=[-440000;1-43000;01-4300;001-430;0001-43;000
0 1 -4];
B=alfa*[1;1;1;1;1;(13*VR)];
C=A\B

Los resultados se muestran a continuación:

Solución para B. Método del disparo

Se reescribe la ecuación diferencial

Si y = y1

A través de Matlab se realiza el primer disparo:

function dy = Eq(z,y) P =
2800000; u = 0.492; L = 4.88;
R = 0.0025; dy = [y(2);(-
P/u*L)-(y(2)^2)/R];
end

Posteriormente y para finalizar suponemos dos valores de S (S1 y S2), a los que se les
halla su respectivo valor de R (R1 y R2) a partir de la función ode45 de MATLAB.

Se escribe un nuevo script el siguiente programa:


%Ecuaciones diferenciales con valores en la frontera
¿JD?:) clear all clc global Dp u L CI=0;
Dp=2.8e5;
u=0.492;
L=4.88;
R=0.0025;
S1=R/2;
[r,x]=ode45(@metodo_disparo,[R:-0.00025:0],[R S1])
R1=x(11,1)
S2=R/4;
[r,x]=ode45(@metodo_disparo,[R:-0.00025:0],[R S2])
R2=x(11,1)
S3=S2+(CI-R1)*(S1-S2)/(R1-R2);
[r,x]=ode45(@metodo_disparo,[R:-0.00025:0],[R S3])

Los resultados del disparo se muestran a continuación:


2. Considere un flujo radial en el dominio r 0 < r < 4r0 dentro del cual hay una
distribución asimétrica de fuentes cuya fuerza se incrementa linealmente con r.
Para este problema la ecuación adecuada sería :

𝑑2 1 𝑑 𝑟
(𝑑𝑟 2 + 𝑟 𝑑𝑟 ) ∅ = 𝑞0 𝑟 (1)
0

𝐷onde: q0 es la fuerza de la fuente en r = r0 . La velocidad radial se calcula de la


siguiente ecuación:
𝑑∅
𝑢𝑟 = 𝑑𝑟 (2)

Es conveniente trabajar en estos casos con variables adimensionales, así:


𝑟 ∅ 𝑢
𝑅=𝑟 𝜑=𝑟 𝑈 = 𝑢𝑟 (3)
0 0 𝑢0 0

Remplazando estas variables adimensionales en la ecuación (1), obtenemos

𝑑2 1 𝑑
(𝑑𝑅2 + 𝑅 𝑑𝑅 ) 𝜑 = 𝛼𝑅 (4)

La ecuación (4) se puede escribir también de la siguiente forma:

𝑑2 𝜑 1 𝑑𝜑 𝑞0 𝑟0
(𝑑𝑅2 + 𝑅 𝑑𝑅 ) = 9𝑅 Aquí 𝛼= =9 (5)
𝑢0

Las condiciones de frontera son:

Para R=1 𝜑= 1 es decir, 𝜑(1) = 1


Para R=4 𝜑= 29 es decir, 𝜑(4) = 29

La solución exacta de la ecuación diferencial es: 𝜑 = R3 - 24ln(R) (6)

Resuelva la ecuación diferencial con valores en la frontera, usando la función


bvp4c de Matlab.
SOLUCION

Reescribimos la ecuación como:

𝑑 2 𝜑 1 𝑑𝜑
+ − 9𝑅 = 0
𝑑𝑅2 𝑅 𝑑𝑅
O también:

1 ′
𝜑′′ + 𝜑 − 9𝑅 = 0
𝑅
Sea 𝑦1 = 𝜑

𝑦2 = 𝜑′

𝑦1′ = 𝑦2

1
𝑦2′ = 9𝑅 − 𝑦
𝑅 2
Esto lo convierte en un sistema de ecuaciones de primer orden, que resolverán usando la
función bvp4c de Matlab.

Creamos una función que evalue el sistema obtenido:

function [ dxdy] = bvpfcn(x,y)


dxdy=[y(2)
9*x-(1/x)*y(2)];
End

Luego creamos una función que nos permita evaluar los valores los valores inciales, los
cuales deben estar evaluados a cero:

Para R=1 𝜑= 1 es decir, 𝑉𝐴 : = 𝜑(1) − 1 = 0


Para R=4 𝜑= 29 es decir, 𝑉𝐵 = 𝜑(4) − 29 = 0

function res = bcfcn(ya,yb) % boundary conditions


res=[ya(1)-1 yb(1)-29];
end

Creamos una función que nos permita evaluar valores iniciales para la función, un buen
estimado puede incluir funciones trigonométricas, desde que hay una relación entre las
variables y’’ y y’.
function g = guess(x)
g = [sin(x)
cos(x)];
end
clc
clear
close all

Finalmente se resuelve la ecuación diferencial usando la función indicada.

xmesh = linspace(1,4,100); %generacion de valores R para valores


iniciales
solinit = bvpinit(xmesh, @guess); %generacion de valores
iniciales figure (1) %Solución numérica
solution = bvp4c(@bvpfcn, @bcfcn, solinit);
ysim=solution.y;
plot(solution.x, ysim(1,:), '-','linewidth',1.2)
hold on

%Cálculo de la solución exacta


R=linspace(1,4,100);
phi=zeros(1,numel(R));
for i=1:numel(phi)
phi(i)=(R(i)^3)-24*log(R(i));
end
plot(R,phi,'linewidth',1.2)
grid on
xlabel('R (adimensional)')
ylabel('\Phi (adimensional)')
legend('Solución numérica', 'Solución exacta')
Los resultados obtenidos son:
Bibliografía

1. Herald y Wheatley Análisis numérico con Aplicaciones, 7ª edición, 2004

2. Chapra S. Applied Numerical methods with Matlab for Engineers and


Scientists, 3ª edition, 2012.

3. Muñoz F, Notas de clases sobre Matemáticas Aplicadas a la Ingeniería


Quìmica, 2020

También podría gustarte