Sie sind auf Seite 1von 10

“AÑO DE LA LUCHA CONTRA LA CORRUPCION Y LA IMPUNIDAD”

FACULTAD DE CIENCIAS

CURSO:

CALCULO NUMÉRICO II

PROYECTO:

SOLUCIÓN DE ECUACIONES DIFERENCIALES PARCIALES HIPERBÓLICAS

PROFESOR:

SOLANO JAVIER

INTEGRANTES:

BURGOS ORELLANA GERARDO DIEGO 20160769E

PARADO SOSA DANIEL ELMER 20164536E

SANTOS CARDENAS BRIAN 20101382K

CICLO:

2019-II
ECUACIONES DIFERENCIALES PARCIALES HIPERBÓLICAS

Se resolverá la ecuación diferencial de la forma:

𝜕 2𝑢 2
𝜕 2𝑢
(𝑥, 𝑡) − 𝛼 (𝑥, 𝑡) = 0, 0 < 𝑥 < 𝑙, 𝑡 > 0
𝜕𝑡 2 𝜕𝑥 2
Sujeta a las condiciones

𝑢(0, 𝑡) = 𝑢(𝑙, 𝑡) = 0, 𝑝𝑎𝑟𝑎 𝑡 > 0


𝜕𝑢
𝑢(𝑥, 0) = 𝑓(𝑥) , (𝑥, 0) = 𝑔(𝑥), 𝑝𝑎𝑟𝑎 0 ≤ 𝑥 ≤ 𝑙
𝜕𝑥

Para establecer el método de diferencias finitas, se selecciona un entero 𝑚 > 0 y


el tamaño de paso de tiempo 𝑘 > 0. Con ℎ = 𝑙/𝑚 los puntos de red son (𝑥𝑖 , 𝑡𝑗 )

𝑥𝑖 = 𝑖ℎ, 𝑡𝑗 = 𝑗𝑘

Para cada 𝑖 = 0,1, … , 𝑚 y 𝑗 = 0,1, …. En cualquier punto de red interior (𝑥𝑖 , 𝑡𝑗 ) la


ecuación se transforma en:

𝜕 2𝑢 2
𝜕 2𝑢
(𝑥 , 𝑡 ) − 𝛼 (𝑥 , 𝑡 ) = 0
𝜕𝑡 2 𝑖 𝑗 𝜕𝑥 2 𝑖 𝑗
El método de diferencias se obtiene usando el cociente de diferencias centradas
en las segundas derivadas parciales dadas por

𝜕 2𝑢 𝑢(𝑥𝑖 , 𝑡𝑗+1 ) − 2𝑢(𝑥𝑖 , 𝑡𝑗 ) + 𝑢(𝑥𝑖 , 𝑡𝑗−1 ) 𝑘 2 𝜕 4 𝑢


(𝑥 , 𝑡 ) = − (𝑥𝑖 , 𝜇𝑗 ) … (𝑖)
𝜕𝑡 2 𝑖 𝑗 𝑘2 12 𝜕
Donde 𝜇𝑗 ∈ (𝑡𝑗−1 , 𝑡𝑗+1 ) y

𝜕 2𝑢 𝑢(𝑥𝑖+1 , 𝑡𝑗 ) − 2𝑢(𝑥𝑖 , 𝑡𝑗 ) + 𝑢(𝑥𝑖−1 , 𝑡𝑗 ) ℎ2 𝜕 2 𝑢


(𝑥 , 𝑡 ) = − (𝜉 , 𝑡 ) … (𝑖𝑖)
𝜕𝑥 2 𝑖 𝑗 ℎ2 12 𝜕𝑥 4 𝑖 𝑗
Donde 𝜉𝑖 ∈ (𝑥𝑖−1 , 𝑥𝑖+1 ). Luego sustituimos (i) y (ii) en la ecuación parcial

𝑢(𝑥𝑖 , 𝑡𝑗+1 ) − 2𝑢(𝑥𝑖 , 𝑡𝑗 ) + 𝑢(𝑥𝑖 , 𝑡𝑗−1 ) 𝑢(𝑥𝑖+1 , 𝑡𝑗 ) − 2𝑢(𝑥𝑖 , 𝑡𝑗 ) + 𝑢(𝑥𝑖−1 , 𝑡𝑗 )


2
− 𝛼2
𝑘 ℎ2
4 4
1 2𝜕 𝑢 2 2
𝜕 𝑢
= [𝑘 (𝑥 𝑖 , 𝜇 𝑗 ) − 𝛼 ℎ (𝜉 , 𝑡 )]
12 𝜕𝑡 4 𝜕𝑥 4 𝑖 𝑗

Si ignoramos el término de error, obtenemos la ecuación de diferencias

𝑤𝑖,𝑗+1 − 2𝑤𝑖𝑗 + 𝑤𝑖,𝑗−1 𝑤𝑖+1,𝑗 − 2𝑤𝑖𝑗 + 𝑤𝑖−1,𝑗


2
− 𝛼2 =0
𝑘 ℎ2
Si 𝜆 = 𝛼𝑘/ℎ, podemos escribir la ecuación de diferencias como

𝑤𝑖,𝑗+1 − 2𝑤𝑖𝑗 + 𝑤𝑖,𝑗−1 − 𝜆2 𝑤𝑖+1,𝑗 + 2𝜆2 𝑤𝑖𝑗 − 𝜆2 𝑤𝑖−1,𝑗 = 0

Y resolviendo para 𝑤𝑖,𝑗+1

𝑤𝑖,𝑗+1 = 2(1 − 𝜆2 )𝑤𝑖𝑗 + 𝜆2 (𝑤𝑖+1,𝑗 + 𝑤𝑖−1,𝑗 ) − 𝑤𝑖,𝑗−1

Esta ecuación es aplicable para toda 𝑖 = 1,2, … , 𝑚 − 1 y 𝑗 = 1,2, …. Las condiciones


de frontera nos dan

𝑤0,𝑗 = 𝑤𝑚,𝑗 = 0, 𝑝𝑎𝑟𝑎 𝑐𝑎𝑑𝑎 𝑗 = 1,2,3, …

Y la condición inicial implica que

𝑤𝑖,0 = 𝑓(𝑥𝑖 ), 𝑝𝑎𝑟𝑎 𝑐𝑎𝑑𝑎 𝑖 = 1,2, … , 𝑚 − 1

Al escribir este conjunto de ecuaciones en forma matricial, obtenemos

Resolviendo nos queda la ecuación en diferencias

𝜆2 𝜆2
𝑤𝑖,1 = (1 − 𝜆2 )𝑓(𝑥𝑖 ) + 𝑓(𝑥𝑖+1 ) + 𝑓(𝑥𝑖−1 ) + 𝑘𝑔(𝑥𝑖 )
2 2
Para cada 𝑖 = 1,2, … , 𝑚 − 1

Usaremos un algoritmo para aproximar los valores de 𝑤𝑖,1 :

ENTRADA: extremo l; tiempo máximo T; constante 𝛼; enteros 𝑚 ≥ 2, 𝑁 ≥ 2.

SALIDA: aproximaciones 𝑤𝑖,𝑗 a 𝑢(𝑥𝑖 , 𝑡𝑗 ) para toda 𝑖 = 0, … , 𝑚 y 𝑗 = 0, … , 𝑁

Paso1: tome ℎ = 𝑙/𝑚

𝑘 = 𝑇/𝑁
𝜆 = 𝑘𝛼/ℎ

Paso2: para 𝑗 = 1, … , 𝑁, 𝑡𝑜𝑚𝑒 𝑤0,𝑗 = 0

𝑤𝑚,𝑗 = 0

Paso3: tome 𝑤0,0 = 𝑓(0)

𝑤𝑚,0 = 𝑓(𝑙)

Paso 4: para 𝑖 = 1, … , 𝑚 − 1 (𝑖𝑛𝑖𝑐𝑖𝑎𝑙𝑖𝑐𝑒 𝑝𝑎𝑟𝑎 𝑡 = 0 𝑦 𝑡 = 𝑘)

Tome 𝑤𝑖,0 = 𝑓(𝑖ℎ);

𝜆2
𝑤𝑖,1 = (1 − 𝜆2 )𝑓(𝑖ℎ) + [𝑓((𝑖 + 1)ℎ) + 𝑓((𝑖 − 1)ℎ)] + 𝑘𝑔(𝑖ℎ)
2

Paso 5: para 𝑗 = 1, … , 𝑁 − 1 (𝑟𝑒𝑎𝑙𝑖𝑧𝑒 𝑢𝑛𝑎 𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑐𝑎𝑐𝑖ó𝑛 𝑑𝑒 𝑚𝑎𝑡𝑟𝑖𝑐𝑒𝑠)

Para 𝑖 = 1, … , 𝑚 − 1

Tome 𝑤𝑖,𝑗+1 = 2(1 − 𝜆2 )𝑤𝑖,𝑗 + 𝜆2 (𝑤𝑖+1,𝑗 + 𝑤𝑖−1,𝑗 ) + 𝑤𝑖,𝑗−1

Paso 6: para 𝑗 = 0, … , 𝑁

Tome 𝑡 = 𝑗𝑘;

Para 𝑖 = 0, … , 𝑚

Tome 𝑥 = 𝑖ℎ

SALIDA (𝑥, 𝑡, 𝑤𝑖,𝑗 )

Paso 7: PARAR

Desarrollamos el seudocódigo en el programa MATLAB, el código es el siguiente:

function U = onda (f,g,a,b,c,n,m)


%’sin(pi*x)+sin(2*pi*x)’,’0’,1,0.5,2,11,21
%Datos
% - f=u(x,0) se entra como una cadena de carcteres.
% - g=ut(x,0) se ingresa como una cadena de caracteres.
% - a y b son los extremos superiores de los intervalos [0,a] y [0,b]
% - c es la constante de la ecuacion de onda.
% - n y m es el numero de nodos en [0,a] y [0,b]
%Resultado
% - U es la matriz con los respectivos resultados.
format long g;
close all;
h=a/(n-1);
k=b/(m-1);
alfa=c*k/h;
alfa2=alfa^2;
alfa22=(alfa2)/2;
s1=1-alfa2;
s2=2*s1;
U=zeros(n,m);
%se calculan las primeras filas (j-esimo y (j-1)-esimo paso)
for i=2:n-1
x=h*(i-1);
U(i,1)=eval(f); %f esta en funcion de x
x=h*i;
evaluar1=eval(f);
x=h*(i-2);
evaluar2=eval(f);
x=h*(i-1);
U(i,2)=s1*eval(f)+k*eval(g)+alfa22*(evaluar1+evaluar2);
end
%Calculos de las otras filas
for j=3:m
for i=2:(n-1)
U(i,j)=s2*U(i,j-1)+alfa2*(U(i-1,j-1)+U(i+1,j-1))-U(i,j-2);
end
end
U=U';
figure(2),surf(U),title('Grafica de U=f(x,t)'),xlabel('x'),ylabel('t'),zlabel('u')

PLANTEAMIENTO DEL PROBLEMA:

En una línea de transmisión eléctrica de longitud 𝑙, que conduce una corriente


alterna de alta frecuencia (llamada línea sin perdidas), el voltaje V y la corriente i
se describen por medio de

𝜕 2𝑉 𝜕 2𝑉
= 𝐿𝐶 , 0 < 𝑥 < 𝑙, 0 < 𝑡
𝜕𝑥 2 𝜕𝑡 2
𝜕 2𝑖 𝜕 2𝑖
= 𝐿𝐶 , 0 < 𝑥 < 𝑙, 0 < 𝑡
𝜕𝑥 2 𝜕𝑡 2
Donde L es la inductancia por longitud unitaria y C es la capacitancia por longitud
unitaria. Suponga que la línea tiene 200 metros de largo y las constantes C y L
están dados por

𝐶 = 0.1 𝑓𝑎𝑟𝑎𝑑𝑠/𝑚𝑒𝑡𝑟𝑜 y 𝐿 = 0.3 ℎ𝑒𝑛𝑟𝑖𝑒𝑠/𝑚𝑒𝑡𝑟𝑜

Suponga además, que el voltaje y la corriente también satisfacen

𝑉(0, 𝑡) = 𝑉(200, 𝑡) = 0, 0<𝑡


𝜋𝑥
𝑉(𝑥, 0) = 110 sin ( ) , 0 ≤ 𝑥 ≤ 200
200
𝜕𝑉
(𝑥, 0) = 0, 0 ≤ 𝑥 ≤ 200
𝜕𝑡
𝑖(0, 𝑡) = 𝑖(200, 𝑡) = 0, 0 < 𝑡
𝜋𝑥
𝑖(𝑥, 0) = 5.5 cos ( ), 0 ≤ 𝑥 ≤ 200
200
𝜕𝑖
(𝑥, 0) = 0, 0 ≤ 𝑥 ≤ 200
𝜕𝑡

SOLUCION:

Usando el código en MATLAB resolvemos para cada ecuación parcial

i. Aproximamos los valores del voltaje, ingresamos el siguiente código en la


consola de MATLAB

𝑜𝑛𝑑𝑎(′110 ∗ 𝑠𝑖𝑛((𝑝𝑖 ∗ 𝑥)/200)′, ′0′, 200,10,0.1732,21,11)

Con esto ingresamos las condiciones iniciales y las condiciones de frontera,


partimos el intervalo de la coordenada x en 20 segmentos, y el intervalo del
tiempo en 10 segmentos.
En el siguiente cuadro mostramos los valores de 𝑤1𝑖 para el tiempo 0

𝑥𝑖 𝑤1𝑖 𝑢(𝑥, 0) 𝑒𝑟𝑟𝑜𝑟


0 0 0 0
10 17.2077912 17.20779125 0.0000001
20 33.9918694 33.99186938 0.00000002
30 49.9389550 49.93895497 0.00000003
40 64.6563778 64.65637775 0.00000005
50 77.7817459 77.78174593 0.00000003
60 88.9918694 88.99186938 0.00000002
70 98.0107177 98.01071766 0.00000004
80 104.616217 104.6162168 0.0000002
90 108.645717 108.6457175 0.0000005
100 110.000000 110 0
110 108.645717 108.6457175 0.0000005
120 104.616217 104.6162168 0.0000002
130 98.0107177 98.01071766 0.00000004
140 88.9918694 88.99186938 0.00000002
150 77.7817459 77.78174593 0.00000003
160 64.6563778 64.65637775 0.00000005
170 49.9389550 49.93895497 0.00000003
180 33.9918694 33.99186938 0.00000002
190 17.2077912 17.20779115 0.00000001
200 0 0 0

El programa realiza el siguiente grafico

La solución analítica la ecuación del voltaje es:

𝜋𝑥 √𝐿𝐶𝜋𝑡
𝑉(𝑥, 𝑡) = 110 sin ( ) cos( )
200 200
ii. Aproximamos los valores de la corriente, ingresamos el siguiente código en
la consola de MATLAB

𝑜𝑛𝑑𝑎(′5.5.∗ 𝑐𝑜𝑠((𝑝𝑖 ∗ 𝑥)/200)′, ′0′, 200,0.2,0.1732,21,11)

Con esto ingresamos las condiciones iniciales y las condiciones de frontera,


partimos el intervalo de la coordenada x en 20 segmentos, y el intervalo del
tiempo en 10 segmentos.

En el siguiente cuadro mostramos los valores de 𝑤1𝑖 para el tiempo 0

xi wi20
0 0
10 5.43228587
20 5.23081084
30 4.90053588
40 4.44959347
50 3.8890873
60 3.23281889
70 2.49694775
80 1.69959347
90 0.86038956
100 3.37E-16
110 -0.86038956
120 -1.69959347
130 -2.49694775
140 -3.23281889
150 -3.8890873
160 -4.44959347
170 -4.90053588
180 -5.23081084
190 -5.43228587
200 0

La grafica es

La solución analítica del problema de la corriente es aproximadamente


𝑛𝑐𝜋𝑡
𝑢(𝑥, 𝑡) = −7 cos ( ) sin(𝑛𝑥)
𝑙

Graficamos la ecuación anterior en matlab, usamos la siguiente línea de codigo

[x,y]=meshgrid(0:5:25,0:1:15);

z=-7*cos(0.1732*y*pi/200).*sin(x);

mesh(x,y,z)

Este grafico tiene una cierta similitud con la gráfica numérica. La diferencia se debe a que no se
calculó los coeficientes exactos para la solución debido a la complejidad matemática del problema

Das könnte Ihnen auch gefallen