Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Taller Numérico DIANA ÑACATO
Taller Numérico DIANA ÑACATO
Ejercicio 599.6.a
Ejercicio 599.6.b
%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María
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
Ejercicio 599.6.c
%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María
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)
Ejercicio 599.6.d
Programas Fuente
Programa 9.11
%ANÁLISIS NUMÉRICO
%MSc. Araque Fernando
%Albán María
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
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
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.
𝑬𝑷 = |𝒑 − 𝒑
̂|
𝑹𝑷 = |𝒑 − 𝒑
̂|/|𝒑|
̂ | = 𝟎, 𝟎𝟎𝟏𝟒𝟓𝟐
𝐸𝑥 = |𝑥 − 𝑥̂| = |3.141592 − 3.14
Y el error relativo es
|𝑥 − 𝑥̂| 0.001592
𝑅𝑥 = = = 𝟎, 𝟎𝟎𝟓𝟎𝟗𝟔
|𝑥| 3.141592
Análisis de la solución