Ambrosio Huanay Brayan Hector I.Q.A.

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 12

UNIVERSIDAD NACIONAL DEL CENTRO DEL PERÚ

FACULTAD DE INGENIERÍA QUÍMICA


ESCUCELA PROFESIONAL DE INGENIERÍA QUÍMICA AMBIENTAL
CATEDRÁTICO: Msc. ING. OCHOA LEON, Henrry Raul
ESTUDIANTE: AMBROSIO HUANAY BRAYAN HECTOR I.Q.A.
TAREA DE MÉTODOS NUMÉRICOS

Algoritmo Matlab

clc,clear
disp(' 2.81 ')
disp('------------------------------')
format long
A=[10 7 8 7; 7 5 6 5; 8 8 10 9; 7 5 9 10];
b=[32 23 33 31];
B=[A b'];G=4;I=2;
for l=1:G-1;
I=l+1;
while I<=G
B(I,l:G+1)=B(I,l:G+1)-(B(I,l)/B(l,l))*B(l,l:G+1);
I=I+1;
end
end
b=B(1:G,G+1);x(G)=b(G)/B(G,G);I=G-1;
while I>=1
x(I)=b(I);
J=1+I;
while J<=G
x(I)=x(I)-B(I,J)*x(J);
J=J+1;
end
x(I)=x(I)/B(I,I);
I=I-1;
end
for l=1:length(x);
fprintf(' El valor x%d es: %f \n',l,x(1,l))
end

Ejecución del algoritmo

2.81
------------------------------
El valor x1 es: 1.606061
El valor x2 es: -0.030303
El valor x3 es: 1.303030
El valor x4 es: 0.818182
0.3%

------------------------------

El valor x1 es: 1.807939

El valor x2 es: -1.378097

El valor x3 es: 3.625270

El valor x4 es: -0.642482

0.03%

------------------------------

El valor x1 es: 1.626255

El valor x2 es: -0.164973

El valor x3 es: 1.535027

El valor x4 es: 0.672264


Algoritmo Matlab
clc,clear
n=input('Ingrese el número de ecuaciones: ')
disp('Ingrese los coeficientes de las ecuaciones: ')
for i=1:n
for j=1:n
fprintf('A (%d,%d): ',i,j)
A(i,j)=input('');
end
end
disp('Ingrese los términos independientes de las ecuaciones: ')
for k=1:n
fprintf('A (%d,%d): ',k,n+1)
A(k,n+1)=input('');
end
disp('La matriz ampliada que se formó es la siguiente: ')
A=A

disp('A continuación de realizará la eliminacion hacia adelante. ')


x=1;
while(x<n)
for s=1:n-1
for l=x:n-1
A(l+1,:)=A(s,:)*(-A(l+1,s)/A(s,s))+A(l+1,:);
end
x=x+1;
end
end
disp('La matriz trinagular superior que se formó fue la siguiente: ')
A=A
X(n)=A(n,n+1)/A(n,n);
for h=n-1:-1:1
S=A(h,n+1);
for f=n:-1:1
S=S-A(h,f)*X(f);
end
S=S/A(h,h);
X(h)=S;
end
disp('Resultado:')
disp('----------')
for r=1:n
fprintf('X%d = %f ',r,X(r))
end

Ejecución del algoritmo

Ingrese el número de ecuaciones: 4


n=

Ingrese los coeficientes de las ecuaciones:

A (1,1): 2

A (1,2): 1

A (1,3): 1

A (1,4): -1

A (2,1): 1

A (2,2): 9

A (2,3): 8

A (2,4): 4

A (3,1): 1

A (3,2): 3

A (3,3): 5

A (3,4): 2

A (4,1): 0

A (4,2): 1

A (4,3): 0

A (4,4): 1

Ingrese los términos independientes de las ecuaciones:

A (1,5): -3

A (2,5): 15

A (3,5): 10

A (4,5): 2

La matriz ampliada que se formó es la siguiente:

A=
2 1 1 -1 -3

1 9 8 4 15

1 3 5 2 10

0 1 0 1 2

A continuación de realizará la eliminacion hacia adelante.

La matriz trinagular superior que se formó fue la siguiente:

A=

2.000000000000000 1.000000000000000 1.000000000000000 -1.000000000000000 -


3.000000000000000

0 8.500000000000000 7.500000000000000 4.500000000000000


16.500000000000000

0 0 2.294117647058823 1.176470588235294 6.647058823529411

0 0 0 0.923076923076923 2.615384615384615

Resultado:

----------

X1 = -0.388889 X2 = -0.833333 X3 = 1.444444 X4 = 2.833333 >>


Etanol = x
Metanol = y
Completamos las matrices para programar
0.83 x+ 0 y+ 0 z=0.58
0+ 0.61 y +0 z=0.21
0.24 x +0.55 y +0 z=0

Algoritmo Matlab
clc,clear
n=input('Ingrese el número de ecuaciones: ')
disp('Ingrese los coeficientes de las ecuaciones: ')
for i=1:n
for j=1:n
fprintf('A (%d,%d): ',i,j)
A(i,j)=input('');
end
end
disp('Ingrese los términos independientes de las ecuaciones: ')
for k=1:n
fprintf('A (%d,%d): ',k,n+1)
A(k,n+1)=input('');
end
disp('La matriz ampliada que se formó es la siguiente: ')
A=A

disp('A continuación de realizará la eliminacion hacia adelante. ')


x=1;
while(x<n)
for s=1:n-1
for l=x:n-1
A(l+1,:)=A(s,:)*(-A(l+1,s)/A(s,s))+A(l+1,:);
end
x=x+1;
end
end
disp('La matriz trinagular superior que se formó fue la siguiente: ')
A=A
X(n)=A(n,n+1)/A(n,n);
for h=n-1:-1:1
S=A(h,n+1);
for f=n:-1:1
S=S-A(h,f)*X(f);
end
S=S/A(h,h);
X(h)=S;
end
disp('Resultado:')
disp('----------')
for r=1:n
fprintf('X%d = %f ',r,X(r))
end

Ejecución del algoritmo


Ingrese el número de ecuaciones: 3

n=

Ingrese los coeficientes de las ecuaciones:


A (1,1): 0.83
A (1,2): 0
A (1,3): 0
A (2,1): 0
A (2,2): 0.61
A (2,3): 0
A (3,1): 0.24
A (3,2): 0.55
A (3,3): 0
Ingrese los términos independientes de las ecuaciones:
A (1,4): 0.58
A (2,4): 0.21
A (3,4): 0
La matriz ampliada que se formó es la siguiente:

A=

0.830000000000000 0 0 0.580000000000000
0 0.610000000000000 0 0.210000000000000
0.240000000000000 0.550000000000000 0 0

A continuación de realizará la eliminacion hacia adelante.


La matriz trinagular superior que se formó fue la siguiente:

A=

0.830000000000000 0 0 0.580000000000000
0 0.610000000000000 0 0.210000000000000
0 0 0 -0.357055105668576

Resultado:
----------
X1 = 0.698795 X2 = 0.344262 X3 = -Inf >>
Algoritmo Matlab
clear
clc
n = input('Número de ecuaciones (n): ');
A = input('La matriz A: ');
b = input('El vector b: ');
m = input('Total de iteraciones: ');
E = input('Error permitido: ');

X0 = zeros(1,n);
X = X0;
K = 0;
Norma = 1;

while Norma > E


K = K+1;
fprintf('%d', K);
for i = 1:n
suma = 0;
for j = 1:n
if i ~= j
suma = suma + A(i,j) * X(j);
end
end
X(i) = (b(i) - suma) / A(i,i);
fprintf('%10.6f', X(i));
end
Norma = norm(X0 - X);
fprintf('%10.6f\n', Norma);
X0 = X;
if K >= m
break
end
end

Ejecución del algoritmo


Número de ecuaciones (n): 5
La matriz A: [98 9 2 1 0.5;11 118 9 4 0.88;27 27 85 8 2;1 3 17 142 25;2 4 7 17 118]
El vector b: [0.1100 0.2235 0.2800 0.3000 0.1400]
Total de iteraciones: 20
Error permitido: 0.0001
1 0.001122 0.001789 0.002369 0.001783 0.000709 0.003709
2 0.000888 0.001565 0.002330 0.001669 0.000740 0.000348
3 0.000910 0.001569 0.002332 0.001664 0.000740 0.000024
>>

MÉTODO JACOBY

function jacobimetodo(A,b,x,tol,m)
n=length(x);
for k=1:m
w=x;
for i=1:n
s=A(i,1:i-1)*w(1:i-1)+A(i,i+1:n)*w(i+1:n);
x(i)=(b(i)-s)/A(i,i);
end
if norm(w-x,inf)<tol
return
end
fprintf('\n la solucion del sistema en la
iteracion %4.0f\n',k)
for i=1:n
fprintf(' x(%1.0f)=%6.8f\n',i,x(i))
end
end

MÉTODO Cholesky

%FACTORIZACION lU CHOLESKY

[n,m]=size(A);
C=[A,b];
% la matriz C, representa la forma de la matriz aumentada [Ab]
disp(C)
if n==m
for k=1:n
%La instrucción iterativa for permite repetir estamentos a un
%numero específico de veces
suma1=0;
for p=1:k-1
suma1=suma1+L(k,p)*u(p,k);
end
L(k,k)=sqrt(A(k,k)-suma1);
u(k,k)=L(k,k); %princio del metodo
for i=k+1:n
suma2=0;
for q=1:k-1
suma2=suma2+L(i,q)*u(q,k);
end
L(i,k)=(A(i,k)-suma2)/L(k,k); %obtencion de la matriz L
end
for j=k+1:n
suma3=0;
for r=1:k-1
suma3=suma3+L(k,r)*u(r,j);
end
u(k,j)=(A(k,j)-suma3)/L(k,k); %obtencion de la matriz U
end
end
producto=det(L)*det(u) %calculo del determinante
if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(b(i)-suma)/L(i,i); %obtencion del vector Z
end
for i=n:-1:1
suma=0;
for p=i+1:n
suma = suma+u(i,p)*x(p);
end
x(i)=(z(i)-suma)/u(i,i); % solcion, calculos de las variables
end
else
fprintf('\nEl determinante es igual a cero, por lo tanto el
sistema tiene infinita o ninguna solucion\n')
end
end
fprintf('\n Matriz Ab:\n')
disp(C)
fprintf('\n Matriz L:\n')
disp(L)
fprintf('\n Matriz U:\n')
disp(u)
fprintf('\n El vector Z:\n')
disp(z)

fprintf('\n\nLa solucion de X1 hasta Xn es:\n');


%a continuacion de utiliza una instruccion for, para mostrar el usuario,
%los resultados de una manera mas ordenada
for i=1:n
xi=x(1,i);
fprintf('\nX%g=',i)
disp(xi);
end

También podría gustarte