Está en la página 1de 5

UNIVERSIDAD JOSÉ CARLOS MARIÁTEGUI

FACULTAD DE INGENIERIA

TERCERA PRÁCTICA CALIFICADA DE METODOS NUMERICOS - 09

Alumno: Juan Carlos Chambi Choque

Resolución por Octave

Pregunta 33

Se va fabricar un reservorio circular con un presupuesto de S/.1000000. Si el fondo cuesta


S/.15 por pie cuadrado, y el de los laterales cuesta S/.20.00 por pie cuadrado, determine las
dimensiones y el volumen del reservorio de mayor volumen que se puede hacer.

Creamos el siguiente código en Octave:

clear; close all; clc;


% Dada la función
V = @(x,y,z) x.*y.*z;
% Dadas las derivadas parciales
fx = @(x,y,z,w) y.*z+15*y.*w+40*z.*w;
fy = @(x,y,z,w) x.*z+15*x.*w+40*z.*w;
fz = @(x,y,z,w) x.*y+180*x.*w+40*y.*w;
fw = @(x,y,z,w) 15*x.*y+40*x.*z+40*y.*z-1000000;
% Condiciones iniciales
i = 0;
xo = 1000; yo = 1000; zo = 1000; wo = 1;
fprintf(' i xi yi zi wi error\n')
fprintf('%2d %12.7f %12.7f %12.7f %12.7f\n',i,xo,yo,zo,wo)
% Método Newton Raphson Multivariable
while (i < 100)
df1dx = 0; df1dy = zo+15*wo; df1dz = yo+40*wo; df1dw = 15*yo+40*zo;
df2dx = zo+15*wo; df2dy = 0; df2dz = xo+40*wo; df2dw = 15*xo+40*zo;
df3dx = yo+40*wo; df3dy = xo+40*wo; df3dz = 0; df3dw = 180*xo+40*yo;
df4dx = 15*yo+40*zo; df4dy = 15*xo+40*zo; df4dz = 40*xo+40*yo; df4dw = 0;
X = [xo;yo;zo;wo];
F = [fx(xo,yo,zo,wo);fy(xo,yo,zo,wo);fz(xo,yo,zo,wo);fw(xo,yo,zo,wo)];
J = [df1dx df1dy df1dz df1dw;
df2dx df2dy df2dz df2dw;
df3dx df3dy df3dz df3dw;
df4dx df4dy df4dz df4dw];
X = X - J\F;
err = norm(X-[xo;yo;zo;wo]);
xo = X(1);
yo = X(2);
zo = X(3);
wo = X(4);
i = i+1;
fprintf('%2d %12.7f %12.7f %12.7f %12.7f %12.7f\n',i,xo,yo,zo,wo,err)
if(err < 1e-6)
break;
end
end

fprintf('Volumen(%f,%f,%f) = %f\n',xo,yo,zo,V(xo,yo,zo));

Obteniendo como resultado lo siguiente:

i xi yi zi wi error
0 1000.0000000 1000.0000000 1000.0000000 1.0000000
1 495.1871658 495.1871658 519.1176471 0.2273213 860.7673493
2 271.0256177 271.0256177 251.4503765 -0.1755989 414.9008668
3 194.3958157 194.3958157 95.1350708 -0.5533542 190.2074410
4 202.6959395 202.6959395 20.6780488 -0.9504815 75.3776489
5 213.8143000 213.8143000 18.3596096 -1.0034626 15.8938304
6 214.7296876 214.7296876 17.9498924 -0.9786427 1.3580697
7 214.8233040 214.8233040 17.9079756 -0.9767399 0.1388837
8 214.8332702 214.8332702 17.9034181 -0.9765437 0.0148142
9 214.8343348 214.8343348 17.9029302 -0.9765228 0.0015828
10 214.8344486 214.8344486 17.9028781 -0.9765205 0.0001692
11 214.8344608 214.8344608 17.9028725 -0.9765203 0.0000181
12 214.8344621 214.8344621 17.9028719 -0.9765203 0.0000019
13 214.8344622 214.8344622 17.9028719 -0.9765203 0.0000002

Volumen (214.834462,214.834462,17.902872) = 826286.393346


Pregunta 34

Evaluar por el método de Simpson 3/8 la integral de la función x/(x+sin( x)) en el intervalo
[0;2]

Creamos el siguiente código en Octave:

clear; close all; clc;


f = @(x) x./(x+sin(x));
a=0.00001; b=2; n=1000;
h = (b-a)/n; x = a:h:b;
%termina ejemplo
% Pesos de la regla de Boole
A = ones([1,n+1]);
A(2:3:n)=3;
A(3:3:n)=3;
A(4:3:n)=2;
I = dot(A,f(x))*3*h/8;
disp(I)

Obteniendo como resultado lo siguiente: 1.1193

Pregunta 35

Encontrar y(3) para la E. Diferencial, por el método de Runge-Kutta y’ = 3x² - 4y², y(2)=0

Creamos el siguiente código en Octave:

clear; close all; clc;


f=@(x,y) 3*x.^2-4*y.^2;
a=2; b=3; ya=0;
h = 0.1; n = (b-a)/h;
x = a:h:b;
y = zeros(size(x)); y(1)=ya;
for i=1:length(y)-1
F1 = f(x(i),y(i));
F2 = f(x(i)+0.5*h,y(i)+0.5*h*F1);
F3 = f(x(i)+0.5*h,y(i)+0.5*h*F2);
F4 = f(x(i)+h,y(i)+h*F3);
y(i+1) = y(i)+(1/6)*h*(F1+2*F2+2*F3+F4);
end
plot(x,y);
grid on
xlabel('x')
ylabel('y')
disp(y(end))

Obteniendo como resultado: 2.5553


Pregunta 36

Se considera el cable coaxial. La distribución del potencial V (x, y) en el interior del cable Ω
verifica el problema de Dirichlet
Vxx + Vyy = 0, (x, y) ∈ Ω
V (x, 0) = 300; V(x,3)=100
V (0, y) = 50; ; V(4,y)=20
1. Utilizar una aproximación de 5 puntos de la ecuación de Laplace en la malla para
aproximar el problema (P) por el método de diferencias finitas.
2. Escribir el sistema de ecuaciones asociado al esquema en diferencias y resolverlo.

Creamos el siguiente código en Octave:

clear; close all; clc;


Lx = 4; Ly = 3;
n = 6; hx = 4/n; hy = 3/n;
U = zeros(n+1,n+1);
U(1,:) = 300;
U(end,:) = 100;
U(:,1) = 50;
U(:,end) = 20;
% Matriz A
A=zeros(n-1,n-1);
for i=1:(n-1)*(n-1)
for j=1:(n-1)*(n-1)
A(i,i)=-4;
if(i>1)
A(i-1,i)=1;
A(i,i-1)=1;
end
end
if i>=n && i<=(n-1)*(n-1)
A(i,i-n+1)=1;
A(i-n+1,i)=1;
end
end
for i=1:(n-1)*(n-1)
if mod(i,n-1)==0 && i<(n-1)*(n-1)
A(i+1,i)=0;
A(i,i+1)=0;
end
end
% Vector b
B=zeros(n-1,n-1);
k=1;
for i=2:n
for j=2:n
B(i-1,j-1) = U(i-1,j)+U(i+1,j)+U(i,j-1)+U(i,j+1);
k=k+1;
end
end
b=zeros((n-1)*(n-1),1);
k=1;
for i=1:n-1
for j=1:n-1
b(k) = -B(i,j);
k=k+1;
end
end
P=A\b;
% solucion U(j,k)
k=1;
for i=2:n
for j=2:n
U(i,j) = P(k);
k=k+1;
end
end
disp(U)
% grafique la solucion
x = 0:hx:Lx; y = 0:hy:Ly;
[xx,yy] = meshgrid(x,y);
surfc(xx,yy,U)
xlabel('Eje x')
ylabel('Eje y')
title('Ecuacion de Laplace')
colorbar;

Obteniendo como resultado lo siguiente:

 50.000 300.000 300.000 300.000 300.000 300.000 20.000


50.000 169.753 208.505 215.464 199.489 151.307 20.000
50.000 120.508 148.803 153.862 131.186 99.628 20.000
50.000 90.145 112.336 119.997 103.556 71.492 20.000
50.000 80.791 101.596 110.234 91.549 62.786 20.000
50.000 81.424 95.462 98.829 89.620 68.101 20.000
50.000 100.000 100.000 100.000 100.000 100.000 20.000

También podría gustarte