Matlab - Duda con Ecuaciones diferenciales

 
Vista:

Duda con Ecuaciones diferenciales

Publicado por Carol89 (5 intervenciones) el 29/03/2012 12:03:36
Hola tengo que hacer un ejercicio que trata de determinar el perfil de velocidades de un fluido que desciende por un plano inclinado.Para realizarlo tengo que aplicar el método de las diferencial finitas siendo para nodoo 1 :

dV1/dt=(VISCOSIDAD/DENSIDAD)*(V2-V1/(2*Dx^2))+gcos(B)
donde Dx es el espesor de los nodos 1 y n y por tanto la mitad de espesor entre nodos y la mitad que para el resto.

para los nodos de 2:n-1
dV(i)/dt=(VISCOSIDAD/DENSIDAD)*(V(i+1)-2V(i)+V(i-1)/(4*Dx^2))+gcos(B)

y para n:
dV(n)/dt=0

Tengo que determinar la influencia del angulo en la velocidad para una capa de espesor 2mm.

El problema que tengo es que el perfil no se me ajusta totalmente a lo esperado y creo que el error esta al definir Dx en las ecuaciones pero no consigo arreglarlo.Por otro lado al realizar las graficas quisiera poner como titulo el angulo que en ese momento estos usando pero no se como ponerlo .Si alguien me puede ayudar se lo agradezco;)

1
2
3
4
5
6
7
8
9
10
11
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
//
xdel
clc
funcprot(0)
 
ro=1000;//Densidad del agua
u=0.001;//Viscosidad del agua
esp=0.002;//espesor de la capa de agua
g=9.81;
 
n=20
Dx=esp/(n)//diferencial de espesor
 
b=linspace(0,67.5,4)//Vector que comprende los angulos
 
function dVdt=bcmicro_cm(t,V)
    //nodo1
    dVdt(1)=u/ro*(V(2)-V(1))/(2*(Dx/2)^2)+g*cos(B)
 
    //nodos (2:n-1))
    for i=2:n-1
        dVdt(i)=u/ro*(V(i+1)-2*V(i)+V(i-1))/(4*(Dx)^2)+g*cos(B)
    end
    //nodo n
 
    dVdt(n)=0
endfunction
 
x=linspace(0.002,0,n)
Vinic=zeros(n,1)
 
for j=1:length(b)
    g=b(j)
    B=(b(j)*%pi/180)
    V=ode(Vinic,0,10,bcmicro_cm)
    plot(V,x)
    xtitle("%f","Velocidad(m/s))","Espesor(m)",b(j))
    scf;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Duda con Ecuaciones diferenciales

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 29/03/2012 15:41:00
Hola Carol89.
Este es un foro de matlab, tu haces en otro programa. Para poder ayudarte con mas eficas hazlo en matlab, ya despues despues lo puedes convertir a scilab.
No programo mucho en scilab, por eso no entiendo mucho tu codigo. Pero me gustaria ayudarte.
Pero te pongo una avance. De como seria en matlab, pero no se ejecuta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function dVdt=bcmicro_cm(t,V)
ro=1000; %Densidad del agua
u=0.001; %Viscosidad del agua
esp=0.002;%espesor de la capa de agua
g=9.81;
n=20;
Dx=esp/n; %diferencial de espesor
b=linspace(0,67.5,4);  %//Vector que comprende los angulos
x=linspace(0,0.002,n);
Vinic=zeros(n,1);
for j=1:length(b)
    g=b(j);
    B=b(j);
    V=ode(Vinic,0,10,bcmicro_cm);
    plot(V,x)
    title(['Espesor(m)',num2str(B)])
end
 
dVdt(1)=u/ro*(V(2)-V(1))/(2*(Dx/2)^2)+g*cos(B); %//nodo1
for i=2:n-1
    dVdt(i)=u/ro*(V(i+1)-2*V(i)+V(i-1))/(4*(Dx)^2)+g*cos(B); % //nodos (2:n-1))
end
dVdt(n)=0; %//nodo n




Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion matlab
[email protected]

http://matlabcaballero.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con Ecuaciones diferenciales

Publicado por Carol89 (5 intervenciones) el 29/03/2012 20:58:01
Consulte mi duda en este foro porque Scilab es muy semejante a Matlab pero yo no empleo ese programa,aparte de que es de pago, por tanto no sabría realizarlo en ese programa.De todas formas muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar