Você está na página 1de 12

Curso: Introduccin a la Dinmica de Fluidos

Computacional.
Tarea del Tema: Solucin Numrica de PDEs
Ejercicio 1 Utilice el mtodo de diferencias finitas (aproximacin por diferencia
central) para aproximar la solucin del problema de valores en la frontera

Utilice como tamao de la malla h = 1/4.

Con los parmetros y condiciones de frontera especificados


anteriormente se procedi a realizar la discretizacin de la ecuacin de
Laplace mediante el mtodo de diferencia central. Tomando en cuenta
que:
f ' ( x )=
''

f ( x )=

1
[ f ( x +h ) f ( x )] .. (1)
h

1
[ f ( x+ h )2 f ( x ) +f ( xh) ] ..... (2)
h2

f ( x )=u(x , t)

... (3)

x= y=h

La ecuacin en diferencias resulta:


2 u 2 u 1
1
+ 2 = 2 [ u(x +h , t)2 u( x ,t )+ u( xh , t) ] + 2 [ u(x , t +h)2u( x , t)+u( x ,th) ] =0
2
x y h
h
Simplificando:
u ( x+ h ,t ) +u ( xh , t ) +u ( x ,t +h ) +u ( x , th )4 u ( x , t ) =0 .(5)

Resolviendo para
u ( x , t )=

u( x ,t ) :

1
[ u ( x +h , t )+ u ( xh ,t ) +u ( x , t+ h ) +u ( x , th ) ] .(6)
4

La ecuacin 3 es aplicable para todos los nodos interiores con las


condiciones de frontera especificadas anteriormente. De acuerdo con el
tamao de malla de 0.25, se obtienen 25 nodos en total, de los cuales 9
son nodos interiores.
Las ecuaciones resultantes para los nodos interiores son las siguientes:
Nodo 7:

u ( 7 )=

1
[ u ( 8 ) +u ( 6 ) +u ( 12 ) +u ( 2 ) ]=0
4

Simplificando:
u ( 2 )+ u ( 6 )4 u ( 7 ) +u ( 8 ) +u ( 12 )=0 .. (7)
Nodo 8:
u ( 3 ) +u ( 7 )4 u ( 8 ) +u ( 9 ) +u ( 13 )=0 ...... (8)
Nodo 9:
u ( 4 )+ u ( 8 )4 u ( 9 ) +u ( 10 ) +u ( 14 )=0 ....... (9)
Nodo 12:
u ( 7 ) +u ( 11 )4 u ( 12 ) +u (13 )+ u (17 )=0 ..... (10)
Nodo 13:
u ( 8 ) +u ( 12 )4 u (13 )+ u ( 14 ) +u ( 18 )=0 ........ (11)
Nodo 14:
u ( 9 ) +u ( 13 )4 u ( 14 ) +u ( 15 ) +u ( 19 )=0 ........ (12)
Nodo 17:
u ( 12 )+u ( 16 )4 u (17 )+ u (18 )+ u ( 22 ) =0 ...... (13)
Nodo 18:
u ( 13 ) +u (17 )4 u ( 18 ) +u ( 19 )+ u (23 )=0 ... (14)

Nodo 19:
u ( 14 ) +u ( 18 )4 u ( 19 ) +u ( 20 ) +u ( 24 ) =0 ... (15)
A continuacin se muestra el cdigo de Matlab para resolver el sistema
de ecuaciones:
%Ejercicio 1 tarea PDE
LX=1; %longitud en el
LY=1; %longitud en el
hx=1/4; %tamao de la
hy=1/4; %tamao de la
NX=(LX/hx)+1; %numero
NY=(LY/hy)+1; %numero

eje X
eje Y
discretizacin en X
discretizacin en Y
de modos en X
de modos en Y

%Condiciones de frontera
%
%
%
%

u(0,y)=0;
u(1,y)=100y; %0<y<1
u(x,0)=0;
u(x,1)=100x; %0<x<1

%Matriz A
A=[1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 3
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 6
-4 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 7
1 -4 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 8
0 1 -4 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0;%nodo 9
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 10
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%nodo 11
1 0 0 0 0 -4 1 0 0 0 1 0 0 0 0 0 0 0 0;%nodo 12
0 1 0 0 0 1 -4 1 0 0 0 1 0 0 0 0 0 0 0;%nodo 13
0 0 1 0 0 0 1 -4 0 0 0 0 1 0 0 0 0 0 0;%nodo 14
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0;%nodo 15
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0;%nodo 16
0 0 0 0 0 1 0 0 0 0 -4 1 0 0 0 0 0 0 0;%nodo 17
0 0 0 0 0 0 1 0 0 0 1 -4 1 0 0 0 0 0 0;%nodo 18
0 0 0 0 0 0 0 1 0 0 0 1 -4 0 0 0 0 0 0;%nodo 19
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0;%nodo 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0;%nodo 21
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;%nodo 22
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0;%nodo 23
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0;%nodo 24
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1];%nodo 25

%Matriz B
b=[0 0 0 0 0 0 0 0 -100*hy 100*hy 0 0 0 -100*2*hy 100*2*hy 0 -100*hx
-100*2*hx -100*3*hy-100*3*hx 100*3*hy 0 100*hx 100*2*hx 100*3*hx
100*4*hy]';

%resuelve la matriz
x=inv(A)*b;
%ordena los valores en forma matricial
U=[x(1) x(2) x(3) x(4) x(5);
x(6) x(7) x(8) x(9) x(10);
x(11) x(12) x(13) x(14) x(15);
x(16) x(17) x(18) x(19) x(20);
x(21) x(22) x(23) x(24) x(25)];
%grafica la solucin
[X,Y]=meshgrid(0:hx:LX,0:hy:LY);
surf(X,Y,U);shading interp
colorbar

Los valores de

u(x ,t )

son los siguientes:

U=
0 25.0000 50.0000 75.0000 100.0000
0 18.7500 37.5000 56.2500 75.0000
0 12.5000 25.0000 37.5000 50.0000
0 6.2500 12.5000 18.7500 25.0000
0
0
0
0
0
Y la grfica resultante es la siguiente:

Ejercicio 2 Utilice el mtodo explcito de diferencia finita para aproximar la


solucin del problema de valores en la frontera

Use n = 8 (segmentos en x) y m = 40 (segmentos en t).


Al aplicar la solucin por serie de Fourier a este problema, podemos sumar los
20 primeros trminos para calcular los valores de u(x,t) en u(0.25,0:1), u(1,0.5)
y u(1.5,0.8); los valores que se obtienen son u(0.25,0.1) = 0.3794, u(1,0.5) =
0.1854 y u(1.5,0.8) = 0.0623. Suponga que estos resultados son precisos para
todos los dgitos proporcionados. Compare tales valores con las
aproximaciones obtenidas. En cada caso, determine los errores absolutos.

De acuerdo con las ecuaciones 1 a 3, la ecuacin en diferencias para los


nodos interiores es la siguiente:
2 u u
1
1
= 2 [ u( x+ h ,t )2u ( x , t)+u( x h , t) ] = [ u ( x ,t +k ) u ( x , t ) ] (16)
2

t
k
x
h
Donde h es el tamao de la discretizacin en el espacio y k es el tamao
de la discretizacin en el tiempo.
Despejando
u ( x , t+ k )=

u ( x , t+ k ) :

k
[ u( x+h ,t)2u ( x , t)+u(x h ,t )] +u ( x , t ) (17)
h2

Estableciendo

k
h2

y simplificando:

u ( x , t+ k )=u ( x +h , t )+ (12 ) u ( x ,t ) +u ( xh , t ) ...(18)


Cabe sealar que para este mtodo explcito es necesario establecer un
1 2
k

h
criterio de convergencia
2

Ahora se procede a programar la ecuacin con las condiciones iniciales


establecidas anteriormente y se calculan los errores absolutos en el
programa. El cdigo resultante es el siguiente:
%ejercicio 2
L=2; %longitud del elemento
Tsim=1; %tiempo simulado
n=8; %16; 24; %segmentos en X (deben ser multiplos de 8)
m=40; %130; 290; %segmentos en t
N=n+1; %numero de nodos en X
M=m+1; %nmero de nodos en t
h=L/n; %tamao de la discretizacin en el espacio
k=Tsim/m; %tamao de la discretizacin en el tiempo
sma=k/(h^2);
U=zeros(M,N); %reserva espacio para la memoria
U0=0; %condicin de frontera en el inicio
U2=0; %condicin de frontera en el final
%nodos interiores al inicio
U(1,1)=U0;
U(1,N)=U2;
for j=2:(n/2)+1;
for i=(n/2)+2;
U(1,j)=1;
U(1,i)=0;
end
end
%nodos interiores diferencias centrales
for j=2:M;
for i=2:n;
U(j,i)=sma*U(j-1,i+1)+(1-2*sma)*U(j-1,i)+sma*U(j-1,i-1);
end
end
%nodos para comparacin
%U(0.25,0.1)
x1=(0.25/(L/n))+1;
t1=(m*0.1)+1;
U_025_01=U(t1,x1)
%error absoluto
Error_Absoluto=abs(U_025_01-0.3794)/0.3794
%U(1,0.5)
x2=(1/(L/n))+1;
t2=(m*0.5)+1;
U_1_05=U(t2,x2)
%error absoluto
Error_Absoluto2=abs(U_1_05-0.1854)/0.1854
%U(1.5,0.8)
x3=(1.5/(L/n))+1;
t3=(m*0.8)+1;
U_15_08=U(t3,x3)
%error absoluto
Error_Absoluto3=abs(U_15_08-0.0623)/0.0623

%grafica la funcin
surf(0:h:L,0:k:Tsim,U);shading interp
colorbar

Los valores resultantes de la matriz U son los siguientes:


U=

1.0000

1.0000

1.0000

1.0000

0.6000

0.4000

0.5200

0.8400

0.8400

0.6800

0.3200

0.1600

0.4400

0.7120

0.7760

0.6000

0.4000

0.1600

0.0640

0.3728

0.6288

0.6800

0.5904

0.3840

0.2176

0.0768

0.3261

0.5469

0.6237

0.5437

0.4000

0.2278

0.1024

0.2840

0.4893

0.5610

0.5182

0.3886

0.2465

0.1116

0.2525

0.4358

0.5152

0.4835

0.3836

0.2494

0.1209

0.2248

0.3942

0.4708

0.4562

0.3699

0.2517

0.1239

0.2027

0.3571

0.4343

0.4275

0.3571

0.2479

0.1255

0.1834

0.3262

0.4007

0.4021

0.3416

0.2426

0.1242

0.1672

0.2989

0.3715

0.3773

0.3262

0.2348

0.1219

0.1530

0.2752

0.3448

0.3545

0.3101

0.2262

0.1183

0.1407

0.2541

0.3209

0.3329

0.2943

0.2166

0.1141

0.1298

0.2354

0.2990

0.3126

0.2787

0.2067

0.1095

0.1201

0.2186

0.2790

0.2936

0.2635

0.1966

0.1046

0.1115

0.2034

0.2607

0.2757

0.2488

0.1865

0.0996

0.1036

0.1895

0.2438

0.2589

0.2347

0.1766

0.0945

0.0965

0.1769

0.2281

0.2432

0.2211

0.1670

0.0896

0.0901

0.1652

0.2136

0.2283

0.2083

0.1577

0.0847

0.0841

0.1545

0.2002

0.2144

0.1961

0.1487

0.0800

0.0786

0.1446

0.1876

0.2014

0.1845

0.1402

0.0755

0
1.0000

1.0000

0.6000

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0.0736

0.1354

0.1759

0.1891

0.1735

0.1320

0.0712

0.0689

0.1269

0.1650

0.1776

0.1632

0.1243

0.0670

0.0645

0.1189

0.1548

0.1668

0.1534

0.1169

0.0631

0.0605

0.1115

0.1452

0.1566

0.1442

0.1100

0.0594

0.0567

0.1046

0.1363

0.1471

0.1355

0.1034

0.0559

0.0532

0.0981

0.1279

0.1381

0.1273

0.0972

0.0525

0.0499

0.0921

0.1201

0.1297

0.1196

0.0914

0.0494

0.0468

0.0864

0.1127

0.1218

0.1124

0.0859

0.0464

0.0439

0.0811

0.1058

0.1144

0.1056

0.0807

0.0436

0.0412

0.0761

0.0994

0.1074

0.0992

0.0758

0.0410

0.0387

0.0715

0.0933

0.1009

0.0931

0.0712

0.0385

0.0363

0.0671

0.0876

0.0948

0.0875

0.0669

0.0362

0.0341

0.0630

0.0823

0.0890

0.0822

0.0628

0.0340

0.0320

0.0591

0.0772

0.0836

0.0772

0.0590

0.0319

0.0301

0.0555

0.0725

0.0785

0.0725

0.0554

0.0300

0.0282

0.0521

0.0681

0.0737

0.0681

0.0521

0.0282

0.0265

0.0490

0.0640

0.0692

0.0639

0.0489

0.0265

0.0249

0.0460

0.0601

0.0650

0.0600

0.0459

0.0249

0.0234

0.0432

0.0564

0.0610

0.0564

0.0431

0.0233

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

Y la grfica resultante es:

Aplicando la interpolacin de colores de Matlab:

Finalmente los errores absolutos de los valores calculados son los


siguientes:
u(0.25,0.1) = 0.3728
u(1,0.5) = 0.2144
u(1.5,0.8) = 0.0712

Error absoluto = 0.0174


Error absoluto = 0.1566
Error absoluto = 0.1433

Ejercicio 3 Resuelva el ejercicio 2 mediante el mtodo de Crank-Nicholson con


n=8 y m=40. Utilice los valores de u(0.25,0.1) = 0.3794, u(1,0.5) = 0.1854 y
u(1.5,0.8) = 0.0623 para calcular los errores absolutos.

Para este mtodo de tipo implcito se obtiene la ecuacin en diferencias:


2 u u
1
1
= 2 [ u( x+ h ,t )2u ( x , t)+u( x h , t) ] = [ u ( x ,t +k ) u ( x , t ) ] (16)
2
k
x t
h

Ejercicio 4 Repita el ejercicio 2 con n = 8 y m = 20, utilice el mtodo explcito


de diferencia finita. Utilice los valores de u(0:25;0:1) = 0:3794, u(1;0:5) =
0:1854 y u(1:5;0:8) = 0:0623 para calcular los errores absolutos. Por qu son
tan imprecisas las aproximaciones en este caso?

Realizando el cambio de valores de m=20 y n=8 se obtienen los


siguientes valores de la matriz u:
U=

1.0e+05 *
0
0
0

0.0000

0.0000

0.0000

0.0000

0
0
0.0000
0.0000
0.0000
0.0000
0.0000
0
0 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000

0
0
0

0
0
0.0000
0
-0.0000
0
0.0000
0
-0.0000
0
0.0001
0
-0.0002
0
0.0004
0
-0.0007
0
0.0015
0
-0.0030
0
0.0061
0
-0.0123
0
0.0250
0
-0.0511
0
0.1046
0
-0.2146
0
0.4411
0
-0.9082

-0.0000
0
0.0000
0
0.0000
0
-0.0000
0
0.0000
0
-0.0001
0
0.0002
0
-0.0004
0
0.0009
0
-0.0019
0
0.0042
0
-0.0091
0
0.0195
0
-0.0416
0
0.0881
0
-0.1860
0
0.3916
0
-0.8224
0

0.0000

0.0000

-0.0000

0.0000

-0.0000

0.0000

-0.0000

0.0000

-0.0000

0.0000

-0.0000

0.0000

-0.0000

0.0001

-0.0000

0.0000

-0.0001

0.0001

-0.0001

0.0001

-0.0001

0.0001

-0.0002

0.0002

-0.0002

0.0002

-0.0003

0.0004

-0.0004

0.0003

-0.0004

0.0006

-0.0007

0.0008

-0.0006

0.0008

-0.0012

0.0015

-0.0016

0.0013

-0.0018

0.0026

-0.0031

0.0032

-0.0026

0.0038

-0.0055

0.0065

-0.0065

0.0053

-0.0082

0.0116

-0.0135

0.0134

-0.0108

0.0176

-0.0244

0.0281

-0.0275

0.0221

-0.0373

0.0512

-0.0584

0.0567

-0.0451

0.0789

-0.1072

0.1213

-0.1168

0.0924

-0.1664

0.2245

-0.2520

0.2411

-0.1898

0.3499

-0.4694

0.5237

-0.4981

0.3904

-0.7343

0.9805

-1.0882

1.0301

-0.8044

1.5383

-2.0463

2.2614

-2.1321

1.6596

Y el grfico resultante es el siguiente:

Puede observarse que el mtodo no lleg a la convergencia, esto debido


1 2
a que el criterio de estabilidad k 2 h no se cumple, puesto que:
1 2
k h k 0.0312
2
Y como

k=

Tiempo de simulacin 1
1
= =0.05 k > h2
m
20
2

Por lo tanto la solucin no converge y los errores absolutos aumentan


como se muestra a continuacin:
u(0.25,0.1) = 0.6800
Error absoluto = 0.7923
u(1,0.5) = 152.1152
Error absoluto = 819.4702
u(1.5,0.8) = 9.2443e+03
Error absoluto = 1.4838e+05

Você também pode gostar