Está en la página 1de 12

UNIVERSIDAD DE CUENCA

FACULTAD DE CIENCIAS QUÍMICAS


CARRERA DE INGENIERÍA INDUSTRIAL

PERIODO LECTIVO
MARZO 2018 – AGOSTO 2018

MÉTODOS NUMÉRICOS
CUARTO NIVEL

“PROGRAMAS DE FIN DE CICLO”

ESTUDIANTES
JORGE ALVEAR
PEDRO CHALÁN
WILMER GALARZA

DOCENTE

ING. PAÚL ÁLVAREZ

FECHA DE ENTREGA

05 – 0 – 2018
REGLA DEL TRAPECIO
SCRIP:
function [f,k1]= trapecio(a,b,n)
disp('MÉTODO DEL TRAPECIO')
a=input('Ingrese el límite inferior:');
b=input('Ingrese el límite superior:');
n=input('Ingrese el número de trapecios:');
f=input('Ingrese la función:','s');
h=(b-a)/n;
disp('El valor de h es:')
disp(h)
f=inline(f);
k1=f(a)+f(b);
for i=1:n-1
k=a+i*h;
k1=k1+2*f(k);
end
k1=(h/2)*k1;
disp('El valor de la intregración con el método es:')
disp(k1)

COMPROBACIÓN:
MÉTODO DEL TRAPECIO
Ingrese el límite inferior: 0
Ingrese el límite superior: pi/2
Ingrese el número de trapecios:2
Ingrese la función: sin(x)
El valor de h es:
0.7854

El valor de la integración con el método es:


0.9481

REGLA 1/3 DE SIMPSON


SCRIP:
function [f,k1]= unterciosimpson(a,b,n)
disp('MÉTODO 1/3 DE SIMPSON')
a=input('Ingrese el límite inferior: ');
b=input('Ingrese el límite superior:');
n=input('Ingrese el número de divisiones: ');
f=input('Ingrese la función: ','s');
h=(b-a)/n;
f=inline(f);
k1=f(a)+f(b);
for i=1:n-1
k=a+i*h;
if mod(i,2)==0
k1=k1;
else
k1=k1+4*f(k);
end
end
k=0;
for i=2:n-2
k=a+i*h;
if mod(i,2)==0
k1=k1+2*f(k);
else
k1=k1;
end
end
k1=(h/3)*k1;
disp('El valor de la integración con el método es:')
disp(k1)

COMPROBACIÓN:
MÉTODO 1/3 DE SIMPSON
Ingrese el límite inferior: 0
Ingrese el límite superior: pi/2
Ingrese el número de divisiones: 2
Ingrese la función: sin(x)
El valor de la integración con el método es:
1.0023
REGLA 3/8 DE SIMPSON
SCRIP:
COMPROBACIÓN:
FORMULAS DE DIFERENCIACIÓN NUMÉRICA
SCRIP:
COMPROBACIÓN:
MÉTODO DE GAUSS - JORDAN
SCRIP:
clear all ;
clc;
disp('METED GAUUS-JORDAN')
fprintf('Ingrese la matriz la matriz aumentada\n\n');
disp('Para ingresar las filas y columnas tener en cuenta la columna del
termino independiente')
disp('Ejemplo: Una matriz de 3x3 tendrá 3x4 donde la última columna es el
termino independiente')
f=input('Filas tiene la matriz: ');
c=input('Columnas tiene la matriz: ');
for k=1:c
for j=1:f
fprintf('Fila : %x\n',j);fprintf('Columna :%x\n',k)
r=input('Termino numérico de esta fila y columna: ');
a(j,k)=r;
j=j+1;
end
k=k+1;
end
disp('La matriz aumentada es:')
disp(a)
pause
for k=1:c-1
a(k,:)=a(k,:)/a(k,k);
for j=k+1:f
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j+1;
a
pause
end
k=k+1;
a
pause

end
for k=f:-1:2
for j=k-1:-1:1
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j-1;
a
pause
end
k=k-1;
pause
end
disp('El resultado de la matriz es:');
disp(a)
COMPROBACIÓN:
MÉTODO GAUUS-JORDAN
Ingrese la matriz la matriz aumentada
Para ingresar las filas y columnas tener en cuenta la columna del termino independiente
Ejemplo: Una matriz de 3x3 tendrá 3x4 donde la última columna es el termino
independiente
Filas tiene la matriz: 3
Columnas tiene la matriz: 4
La matriz aumentada es:
2 1 -3 -1
-1 3 2 12
3 1 -3 0
El resultado de la matriz es:
1 0 0 1
0 1 0 3
0 0 1 2

METIDO DE LA INVERSA DE LA MATRIZ


SCRIP:
clear all ;
clc;
disp('MÉTODO DE LA MATRIZ INVERSA')
n=input('Ingrese el grado de la matriz: ');
m=n*2;
for i=1:n
for j=1:n
fprintf('Ingrese el valor de A(%d,%d):',i,j)
A(i,j)=input(' ');
end
end
for i=1:n
c=0;
for j=(n+1):m
c=c+1;
if c==i
A(i,j)=1;
else
A(i,j)=0;
end
end
end
disp('La matriz aumentada e identidad se expresa a continuación:')
disp(A)
for k=1:n
for j=1:m
B(1,j)=A(1,j)/A(1,k);
end
for i=2:n
for j=1:m
B(i,j)=B(1,j)*A(i,k);
end
end
for i=1:(n-1)
for j=1:m
A(i,j)=A((i+1),j)-B((i+1),j);
end
end
for j=1:m
A(n,j)=B(1,j);
end
end
C=zeros(n);
a=0;
for i=1:n
a=a+1;
b=0;
for j=(n+1):m
b=b+1;
C(a,b)=A(i,j);
end
end
fprintf('La inversa de la matriz es: \n')
disp(C)

for i=1:n
for j=1
fprintf('Ingrese los términos independientes de la fila (%d):',i)
Z(i,j)=input(' ');
end
end
a=C*Z;
disp('El resultado de la matriz es:');
disp(a)

COMPROBACIÓN:
MÉTODO DE LA MATRIZ INVERSA
Ingrese el grado de la matriz: 3
La matriz aumentada e identidad se expresa a continuación:
2 1 -3 1 0 0
-1 3 2 0 1 0
3 1 -3 0 0 1
La inversa de la matriz es:
-1.0000 0 1.0000
0.2727 0.2727 -0.0909
-0.9091 0.0909 0.6364
Ingrese los términos independientes de la fila (1): -1
Ingrese los términos independientes de la fila (2): 12
Ingrese los términos independientes de la fila (3): 0
El resultado de la matriz es:
1
3
2
MÉTODO DE LA DESCOMPOSICIÓN LU
SCRIP:
clc;
clear;
fprintf('DESCOMPOSICIÓN LU \n');
n=input('Ingrese el grado de la matriz: ');
m=n*2;
for i=1:n
for j=1:n
fprintf('Ingrese el valor de A(%d,%d):',i,j)
A(i,j)=input(' ');
end
end
for i=1:n
for j=1
fprintf('Ingrese los términos independientes de la fila (%d):',i)
Z(i,j)=input(' ');
end
end
[n,m]=size(A);
fprintf ('\n Su matriz aumentada es: \n');
C=[A,Z];
disp(C)
format short
if n==m
for k=1:n
L(k,k)=1;
suma=0;
for p=1:k-1
suma=suma+L(k,p)*u(p,k);
end
u(k,k)=(A(k,k)-suma);
for i=k+1:n
suma=0;
for r=1:k-1
suma=suma+L(i,r)*u(r,k);
end
L(i,k)=(A(i,k)-suma)/u(k,k);
end
for j=k+1:n
suma=0;
for s=1:k-1
suma=suma+L(k,s)*u(s,j);
end
u(k,j)=(A(k,j)-suma);
end
end
memoriau=1;
memoriaL=1;
for i=1:n
memoriau=memoriau*u(i,i);
end
producto=memoriaL*memoriau;

if producto~=0
for i=1:n
suma=0;
for p=1:i-1
suma=suma+L(i,p)*z(p);
end
z(i)=(Z(i)-suma)/L(i,i);
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);
end
else
fprintf('\n El determinante es igual a cero, por lo tanto el
sistema tiene infinita o ninguna solución\n')
end
end
format short
fprintf('\n La Matriz "L" es: \n')
disp(L)
fprintf('\n La matriz "U" es: \n')
disp(u)
fprintf('\n La matriz "Z" es: \n')
disp(z)
fprintf('\n \n El resultado de la matriz es:\n');
format short
for i=1:n
xi=x(1,i);
fprintf('X%f=',i)
disp(xi);
end

COMPROBACIÓN:
DESCOMPOSICIÓN LU
Ingrese el grado de la matriz: 3
Su matriz aumentada es:
2 1 -3 -1
-1 3 2 12
3 1 -3 0

La Matriz "L" es:


1.0000 0 0
-0.5000 1.0000 0
1.5000 -0.1429 1.0000

La matriz "U" es:


2.0000 1.0000 -3.0000
0 3.5000 0.5000
0 0 1.5714

La matriz "Z" es:


-1.0000 11.5000 3.1429

El resultado de la matriz es:


X1= 1.0000

X2= 3

X3= 2.0000

REGRESIÓN LINEAL
SCRIP:
clc
clear variables
close all
fprintf('REGRESSION LINEAL\n\n')
disp('Para ingresar los valores de XI y Yi hacerlo entre corchetes y
separados con un espacio')
fprintf('Ejemplo: [a b c d e f]\n\n')
x=input('Ingrese los valores correspondientes de Xi: ');
y=input('Ingrese los valores correspondientes de Yi: ');
A=zeros(2);
Z=zeros(2,1);
format short
for i=1:length(x)
A(1,1)=A(1,1)+(x(i))^2;
A(1,2)=A(1,2)+(x(i));
A(2,1)=A(2,1)+(x(i));
A(2,2)=length(x);
Z(1,1)=Z(1,1)+(x(i)*y(i));
Z(2,1)=Z(2,1)+y(i);
end
format short
B=inv(A)*Z;
disp('El polinomio ajustado a los puntos dados es:')
fprintf('g(x)= %f*x+%f \n',B(1),B(2))

COMPROBACIÓN:
REGRESIÓN LINEAL

Para ingresar los valores de XI y Yi hacerlo entre corchetes y separados con un espacio
Ejemplo: [a b c d e f]
Ingrese los valores correspondientes de Xi: [0.1 0.4 0.5 0.7 0.7 0.9]
Ingrese los valores correspondientes de Yi: [0.61 0.92 0.99 1.52 1.47 2.03]
El polinomio ajustado a los puntos dados es:
g(x)= 1.764557*x+0.286160

MÉTODO EULER HACIA ADELANTE


SCRIP:
clear
clc
fprintf('MÉTODO DE EULER HACIA ADELANTE\n\n')
f=input('Ingrese la ecuación diferencia: dy/dx=f(x,y):','s');
x0=input('Ingrese el valor inicial del rango de tiempo (ti):');
x1=input('Ingrese valor final del rango del tiempo a calcular punto
(tf):');
y0=input('Ingrese la condición inicial y(0):');
h=input('Ingrese el valor de h:');
n=input('Ingrese el número de iteraciones que desea hacer:');
xs=x0:h:100;
y1=y0;
fprintf('\n''it x0 x1 y1');
for i=1:n
it=i-1;
x0=xs(i);
x=x0;
x1=xs(i+1);
y=y0;
y1=y0+h*eval(f);
fprintf('\n%2.0f%10.6f%10.6f%10.6f\n',it,x0,x1,y1);
y0=y1;
end
fprintf('\n El valor aproximado del cálculo es: %10.6f\n',y1);

COMPROBACIÓN:
MÉTODO DE EULER HACIA ADELANTE

Ingrese la ecuación diferencia: dy/dx=f(x,y):-20*y+7*exp(-0.5*x)


Ingrese el valor inicial del rango de tiempo (ti):0
Ingrese valor final del rango del tiempo a calcular punto (tf):0.02
Ingrese la condición inicial y(0):5
Ingrese el valor de h:0.01
Ingrese el número de iteraciones que desea hacer:2

'it x0 x1 y1
0 0.000000 0.010000 4.070000

1 0.010000 0.020000 3.325651

El valor aproximado del cálculo es: 3.325651


MÉTODO DE RUNGE - KKUTA
SCRIP:
COMPROBACIÓN:

También podría gustarte