Вы находитесь на странице: 1из 8

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA QUÍMICA


CARRERA DE INGENIERÍA QUÍMICA
ANÁLISIS NUMÉRICO
Estudiante: Diana Ñacato Peralta
Paralelo: 1
Prueba Ecuaciones en Derivadas Parciales
Ejercicio 6. Pág. 599

 Ejercicio 599.6.a

Malla de orden 5 x 5 para calcular nueve ecuaciones con 9 incógnitas.


Se presenta la solución mediante la aplicación de AP=B

De donde se obtienen los valores de P

P= [55,7143 43,2143 27,1429 79,6429 70,0000 45,3571


112,857 111,786 84,2857]

 Ejercicio 599.6.b

%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María

%Tema: Ecuaciones en Derivadas Parciales


%Programa 9.11

function X=trisys(A,D,C,B)
% Datos
% - A es la subdiagonal de la matriz de los coeficientes
% - D es la diagonal principal de la matriz de
% los coeficientes
% - C es la superdiagonal de la matriz de
% los coeficientes
% - B es el vector de los términos independientes
% del sistema lineal
% Resultado
% - X es el vector solución

A=[1,2,3]
B=[1,2,3]
C=[1,2,3]
D=[1,2,3]

N=length(B);
for k=2:N
mult=A(k-1)/D(k-1);
D(k)=D(k)-mult*C(k-1);
B(k)=B(k)-mult*B(k-1);
end
X(N)=B(N)/D(N);
for k= N-1:-1:1
X(k)=(B(k)-C(k)*X(k+1))/D(k);
end

Mediante la aplicación del programa se obtienen los siguientes valores

P= [55,72 43,2152 27,156 79,753 71,533 45,478 112,9115 111,867


84,365]

 Ejercicio 599.6.c

%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María

%Tema: Ecuaciones en Derivadas Parciales


%Programa 10.4

function U=dirich(f1,f2,f3,f4,a,b,h,tol,max1)
% Datos
% - f1,f2,f3,f4
% - a y b son los extremos derechos de [0,a] y [0,b]
% - h es el incremento
% - n y m es el número de nodos en [0,a] y [0,b]
%Resultado
% - U es la matriz analoga a la tabla 10.6
% en la que se almacena la solucion numerica
a=1.5;
b=a;
h=0.5;
tol=0.1;max1=10;
n=fix(a/h)+1
m=fix(b/h)+1
ave=(a*(feval('f1',0)+feval('f2',0))+b*(feval('f3',0)+feval('f4',0))/(
2*a+(2*b)));
U=ave*ones(n,m);

U(1,1:m)=feval('f3',0:h:(m-1)*h)';
U(n,1:m)=feval('f4',0:h:(m-1)*h)';
U(1:n,1)=feval('f1',0:h:(n-1)*h);
U(1:n,m)=feval('f2',0:h:(n-1)*h);
U(1,1)=(U(1,2)+U(2,1))/2;
U(1,m)=(U(1,m-1)+U(2,m))/2;
U(n,1)=(U(n-1,1)+U(n,2))/2;
U(n,m)=(U(n-1,m)+U(n,m-1))/2;

w=4/(2+sqrt(4-(cos(pi/(n-1))+cos(pi/(m-1)))^2));

err=1;
cnt=0;
while((err>tol)&(cnt<=max1))
err=0;
for j=2:m-1
for i=2:n-1
relx=w*(U(i,j+1)+U(i,j-1)+U(i+1,j)+U(i-1,j)-4*U(i,j))/4;
U(i,j)=U(i,j)+relx;
if(err<=abs(relx))
err=abs(relx);
end
end
end
cnt=cnt+1;
end
U=flipud(U');

surf (U)

Mediante la aplicación del programa se obtienen los siguientes valores

P= [55,7143 43,2143 27,1429 79,6429 70,0000 45,3571


112,857 111,786 84,2857]

NO VARÍAN EN NADA CON LOS PRIMEROS CALCULADOS

 Ejercicio 599.6.d

Con malla de orden 9 x 9

Se obtienen los valores de P

P= [55,72 43,2152 27,156 79,753 71,533 45,478 112,9115 111,867


84,365]

Iguales que encontrados con el método de la codificación del Programa 9.11


Aplicando la codificación del Programa 10.4

Tabla: Solución aproximada con condiciones de Dirichlet

 Programas Fuente

Programa 9.11

%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María

%Tema: Ecuaciones en Derivadas Parciales


%Programa 9.11

function X=trisys(A,D,C,B)
% Datos
% - A es la subdiagonal de la matriz de los coeficientes
% - D es la diagonal principal de la matriz de
% los coeficientes
% - C es la superdiagonal de la matriz de
% los coeficientes
% - B es el vector de los términos independientes
% del sistema lineal
% Resultado
% - X es el vector solución

A=[1,2,3]
B=[1,2,3]
C=[1,2,3]
D=[1,2,3]

N=length(B);
for k=2:N
mult=A(k-1)/D(k-1);
D(k)=D(k)-mult*C(k-1);
B(k)=B(k)-mult*B(k-1);
end
X(N)=B(N)/D(N);
for k= N-1:-1:1
X(k)=(B(k)-C(k)*X(k+1))/D(k);
end
Programa 10.4

%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María

%Tema: Ecuaciones en Derivadas Parciales


%Programa 10.4

function U=dirich(f1,f2,f3,f4,a,b,h,tol,max1)
% Datos
% - f1,f2,f3,f4
% - a y b son los extremos derechos de [0,a] y [0,b]
% - h es el incremento
% - n y m es el número de nodos en [0,a] y [0,b]
%Resultado
% - U es la matriz analoga a la tabla 10.6
% en la que se almacena la solucion numerica
a=1.5;
b=a;
h=0.5;
tol=0.1;max1=10;
n=fix(a/h)+1
m=fix(b/h)+1
ave=(a*(feval('f1',0)+feval('f2',0))+b*(feval('f3',0)+feval('f4',0))/(
2*a+(2*b)));
U=ave*ones(n,m);

U(1,1:m)=feval('f3',0:h:(m-1)*h)';
U(n,1:m)=feval('f4',0:h:(m-1)*h)';
U(1:n,1)=feval('f1',0:h:(n-1)*h);
U(1:n,m)=feval('f2',0:h:(n-1)*h);
U(1,1)=(U(1,2)+U(2,1))/2;
U(1,m)=(U(1,m-1)+U(2,m))/2;
U(n,1)=(U(n-1,1)+U(n,2))/2;
U(n,m)=(U(n-1,m)+U(n,m-1))/2;

w=4/(2+sqrt(4-(cos(pi/(n-1))+cos(pi/(m-1)))^2));

err=1;
cnt=0;
while((err>tol)&(cnt<=max1))
err=0;
for j=2:m-1
for i=2:n-1
relx=w*(U(i,j+1)+U(i,j-1)+U(i+1,j)+U(i-1,j)-4*U(i,j))/4;
U(i,j)=U(i,j)+relx;
if(err<=abs(relx))
err=abs(relx);
end
end
end
cnt=cnt+1;
end
U=flipud(U');
surf (U)
Cálculo modelo del error para un ejercicio
While error>0.0000001
Xant=Xa
Er=abs(X-Xa)*100
El valor aproximado calculado es: 1.228597424096703
Análisis de la solución

P= [55,7143 43,2143 27,1429 79,6429 70,0000 45,3571


112,857 111,786 84,2857]

P= [55,72 43,2152 27,156 79,753 71,533 45,478 112,9115 111,867


84,365]

Al presentar ambos vectores de la solución se puede ver claramente que para cada malla
siendo la primera de orden 5 x 5 y la segunda de 9 x 9, los valores son ligeramente
variados, esto es porque cuando se utiliza la malla de 9 x 9 toma por sí la diagonal análoga,
debido a esto los valores tienden a variar, pero no más que en décimas. Estos se pueden
observar en la Tabla de abajo, observando que no varían mucho o casi nada.

Tabla: Solución aproximada con condiciones de Dirichlet

Cálculo del error

𝑬𝑷 = |𝒑 − 𝒑
̂|

𝑹𝑷 = |𝒑 − 𝒑
̂|/|𝒑|

̂ | = 𝟎, 𝟎𝟎𝟏𝟒𝟓𝟐
𝐸𝑥 = |𝑥 − 𝑥̂| = |3.141592 − 3.14

Y el error relativo es
|𝑥 − 𝑥̂| 0.001592
𝑅𝑥 = = = 𝟎, 𝟎𝟎𝟓𝟎𝟗𝟔
|𝑥| 3.141592

Análisis de la solución

La gráfica que nos proporciona el problema se encuentra dentro de los parámetros


adecuados, es decir que por medio de la ecuación de Poisson se puede calcular las
aproximaciones que están dentro del rango establecido con respecto a una malla 5x5 y
una malla 9x9. Además que el valor de error es aceptable de 𝟎, 𝟎𝟎𝟏𝟒𝟓𝟐 un error relativo
de 𝟎, 𝟎𝟎𝟓𝟎𝟗𝟔. Siendo estos valores muy pequeños, esto se debe a la exactitud que
presenta el programa quizá el error no sea de 0 porque esto va a depender de los decimales
que utilicemos.

Вам также может понравиться