Sunteți pe pagina 1din 8

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA MECANICA-ENERGIA


METODOS NUMERICOS
Segunda Prctica de laboratorio
Semestre 2016-B
1. Hacer un programa en Matlab que resuelva el siguiente
sistema
8 0 5 2
1 3 1 =1
3 1 6 1

][]

mediante el mtodo iterativo de:


a) Jacobi, considere X 0 =( 0,0,0 )
b) Gauss Seidel, considere
iteraciones.

y muestre 5 iteraciones.

X 0 =(0,0,0)

y muetre 5

A) Programa en Matlab del mtodo de Jacobi:


function z=jacobi(A,b,x0,tol,nmi)
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
Tj=inv(D)*(L+U);
cj=inv(D)*b;
z=[x0'];
for k=1:nmi
x1=Tj*x0+cj;
error=norm(x1-x0);
z=[z;x1'];
x0=x1;
if error<=tol
break
end
end
error

En la ventana de comandos:
A=[8 0 -5 ; 1 3 1 ; 3 1 -6];
b=[2 ; 1 ; 1];
x0=[0; 0 ; 0];
tol=1e-4;
nmi=20;
jacobi(A,b,x0,tol,nmi)

Se obtiene la respuesta
error =
6.7622e-05
ans =
0
0
0.2500 0.3333
0.1458 0.3056
0.2587 0.2801
0.2232 0.2614
0.2558 0.2558
0.2428 0.2519
0.2524 0.2511
0.2480 0.2503
0.2509 0.2502
0.2494 0.2500
0.2503 0.2500
0.2498 0.2500
0.2501 0.2500
0.2499 0.2500
0.2500 0.2500
0.2500 0.2500

0
-0.1667
0.0139
-0.0428
0.0094
-0.0115
0.0039
-0.0033
0.0014
-0.0010
0.0005
-0.0003
0.0002
-0.0001
0.0001
-0.0000
0.0000

Es decir:
x = 0.2500
y= 0.2500
z = 0.0000

B) Programa en Matlab del mtodo de Gauss Seidel:

function z=gausseidel(A,b,x0,tol,nmi)
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
Tg=inv(D-L)*(U);
cj=inv(D-L)*b;
z=[x0'];
for k=1:nmi
x1=Tg*x0+cj;
error=norm(x1-x0);
z=[z;x1'];
x0=x1;
if error<=tol
break
end
end
error

En la ventana de comandos:
A=[8 0 -5 ; 1 3 1 ; 3 1 -6];
b=[2 ; 1 ; 1];
x0=[0; 0 ; 0];
tol=1e-4;
nmi=20;
gausseidel(A,b,x0,tol,nmi)

Se obtiene la respuesta
error =
0
ans =
0
0
0
0.2500 0.2500
0
0.2500 0.2500
0
Es decir:
x = 0.2500
y= 0.2500
z = 0.0000

2. Se tiene la siguiente informacin de las presiones de vapor


2
en lb/ plg

PUNTOS
T F
P lb/

a diferentes temperaturas para el 1-3 butadieno


0
50
24.94

1
60
30.11

2
70
36.05

3
80
42.84

4
90
50.57

plg

presentar un programa en Matlab que aproxime la presin a


la temperatura de 64F, utilice el polinomio de interpolacin
de Lagrange.
editor en Matlab
function [F F1]=naitken(x1)
format long
%x=[8 9 9.5 11];
%y=[2.079442 2.197225 2.251292 2.397895];
%x=[1 1.3 1.6 1.9 2.2];
%y=[0.7651977 0.6200860 0.4554022 0.2818186 0.1103623];
x=[50 60 70 80 90 100];
y=[24.94 30.11 36.05 42.84 50.57 59.3];
n=length(x)-1;
x=x(:);y=y(:);
F=y(1:n+1);F1=y(1:n+1);
for j=2:n+1
for k=2:j
F(j,k)=-(F(j,k-1)*(x(j-k+1)-x1)-(x(j)-x1)*F(j-1,k-1))/(x(j)x(j-k+1));
F1(j-(k-1),k)=F(j,k);
end
end
F;
F1

Ventana de Comando
naitken(64)

Se obtienen los coeficientes del polinomio de interpolacin de grado 5


y tambin la interpolacin polinomial para una temperatura de 64F.
Respuesta:
f(64) ~ 32.39

5
100
59.30

3. Presentar un programa en Matlab que utilice el mtodo de


Simpson y resuelva la integral
v
m
t=
dv
R
(v )
v
f

donde

R ( v )=v v +0.0001 ,

m/s, aproxime

t .

m=10 kg y

v 0 =10

m/s,

v f =5

Programa en Matlab de integracin numrica con el mtodo


de Sipmpson 1/3:
function simpson13
fprintf('\n');
f=input('Ingrese la funcin f(x) = ','s');
a=input('Ingrese limite izquierdo : ');
b=input('Ingrese limite derecho : ');
n=input('Ingrese nmero de intervalos (par): ');
fprintf('\n');
m=n/2;
h=(b-a)/n;
s1=0;
s2=0;
x=a; fa=eval(f);
x=b; fb=eval(f);
for k=1:m
x=a+h*(2*k-1);
s1=s1+eval(f);
end
for k=1:(m-1)
x=a+h*2*k;
s2=s2+eval(f);
end
s=h/3*(fa+4*s1+2*s2+fb)

En la ventana de comandos:
>> simpson13
Ingrese la funcin f(x) = 10/(x*sqrt(x+0.0001))
Ingrese limite izquierdo : 5
Ingrese limite derecho : 10
Ingrese nmero de intervalos (par): 10
s=
2.6197

El valor de la integral (valor de t) es igual a 2.6197.

4. Hacer un programa en Matlab que utilice e mtodo de Runge


Kutta de cuarto orden y resuelva el siguiente problema:
Un tanque cilndrico de 5m de dimetro y 11m de largo,
aislado con asbesto, se carga con un lquido que est a
220F , el cual se deja reposar durante cinco das. A partir de
los datos de diseo del tanque, las propiedades trmicas y
fsicas del lquido, y el valor de la temperatura ambiente, se
encuentra la ecuacin
dT
t
=0.615+ 0.175 cos
0.0114 T
dt
12

( )

que relaciona la temperatura

del lquido (en C) con el

tiempo t en horas Cul es la temperatura final del lquido?.

Programa en Matlab del mtodo de Runge-Kutta de cuarto


orden para resolver ecuaciones diferenciales ordinarias de
primer orden.
Editor matlab
function rungekutta(a,b,y0,h)
format long
%h=(b-a)/n;
x=a:h:b;
n=length(x);
y=zeros(n,1);
y(1)=y0;
for k=1:n-1
k1=h*fe(x(k),y(k))
k2=h*fe(x(k)+0.5*h,y(k)+0.5*k1)
k3=h*fe(x(k)+0.5*h,y(k)+0.5*k2)
k4=h*fe(x(k)+h,y(k)+k3)
y(k+1)=y(k)+(1/6)*(k1+2*k2+2*k3+k4)
end
y;
plot(x,y)
%ye=exp(-x)+x+1
%plot(x,y,x,ye,'*')
%for i=1:1:length(x)
% y(i)
%fprintf('%i
',i-1);fprintf('%4.2f
',x(i));
%fprintf('%12.16i
',y(i));fprintf('%12.16i\n',ye(i));
%end
Funcion Y1(editor matlab)
function y1=fe(x,y)
y1=0.615+0.175*cos((pi*x)./12)-0.0114*y;

En la ventana de comandos:

>> rungekutta(0,b,104.44,24)
w=
78.247
T=78.247 C

S-ar putea să vă placă și