Está en la página 1de 32

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE QUÍMICA E INGENIERÍA QUÍMICA


E.P. INGENIERÍA AGROINDUSTRIAL

Universidad del Perú, Decana de América

MÉTODOS NUMÉRICOS PARA LA INGENIERÍA


PRÁCTICA Nº 2

Horario:
Viernes 8-11am

Profesora:
Ing. Juana Sandívar Rosas

Fecha de realización:
21 de setiembre del 2022

Fecha de entrega:
16 de Octubre del 2022

Integrantes:

Jose Enrique Mateo Alatta

Lima– Perú
2022-II
5.14 Use bisección para determinar el coeficiente de resistencia necesario para que un
paracaidista de 82 kg tenga una velocidad de 36 m/s después de 4 s de caída libre. Nota:
La aceleración de la gravedad es 9.81 m/s2. Comience con valores iniciales de xl = 3 y xu =
5. Itere hasta que el error relativo aproximado caiga por debajo de 2%. Realice también una
detección de errores sustituyendo su respuesta final en la ecuación original.

Fórmula de la velocidad V de un paracaidista que cae está dada por:

𝑚*𝑔 −𝑐*𝑡/𝑚
𝑉= 𝑐
(1 − 𝑒 )

donde:

m = masa
c = coeficiente de resistencia
t = tiempo
V = velocidad

9.8*82 −3*4/82 3+5


Xi = 3 𝑓(3) = 3
(1 − 𝑒 ) − 36 = 0.467 ; Xr = 2
=4

9.8*82 −5*4/82
Xu = 5 𝑓(5) = 5
(1 − 𝑒 ) − 36 = -1.214

𝑓(3) * 𝑓(5)< 0 ; Xu = Xr

9.8*82 −3*4/82 3 +4
Xi = 3 𝑓(3) = 3
(1 − 𝑒 ) − 36 = 0.467 ; Xr = 2
= 3. 5

9.8*82 −4*4/82
Xu = 4 𝑓(4) = 4
(1 − 𝑒 ) − 36 = -0.387

𝑓(3) * 𝑓(4)< 0 ; Xu = Xr

3.5 −4
ξa = 3.5
* 100% = -14.286% Error relativo porcentual verdadero

9.8*82 −3*4/82 3 + 3.5


Xi = 3 𝑓(3) = 3
(1 − 𝑒 ) − 36 = 0.467 ; Xr = 2
= 3. 25

9.8*82 −3.5*4/82
Xu = 3.5 𝑓(3. 5) = 3.5
(1 − 𝑒 ) − 36 = 0.03624

𝑓(3) * 𝑓(3. 5)> 0 ; Xi = Xr

3.25 −3.5
ξa = 3.25
* 100% = 7.6923% Error relativo porcentual verdadero
9.8*82 −3.25*4/82
Xi = 3.25 𝑓(3. 25) = 3.25
(1 − 𝑒 ) − 36 = 0.2505835

9.8*82 −3.5*4/82 3.25 + 3.5


Xu = 3.5 𝑓(3. 5) = 3.5
(1 − 𝑒 ) − 36 = 0.03624 ;Xr = 2
= 3. 375

𝑓(3. 25) * 𝑓(3. 5)> 0 ; Xi = Xr

3.735 −3.25
ξa = 3.735
* 100% = 3.704% Error relativo porcentual verdadero

9.8*82 −3.375*4/82
Xi = 3.375 𝑓(3. 375) = 3.375
(1 − 𝑒 ) − 36 = 0.1431979

9.8*82 −3.5*4/82
Xu = 3.5 𝑓(3. 5) = 3.5
(1 − 𝑒 ) − 36 = 0.03624

3.375 + 3.5
Xr = 2
= 3. 4375

𝑓(3. 25) * 𝑓(3. 5)> 0 ; Xi = Xr

3.4375 −3.375
ξa = 3.4375
* 100% = 1.818% Error relativo porcentual verdadero

|1. 818| < 2% por lo tanto el coeficiente de resistencia es 3.4375

function y=funcion(x)
y=(((9.8*82/x)*(1-%e^(-x*4/82)))-36);
endfunction
x=2:0.1:2;
plot2d(x,funcion(x));
xgrid(5);//gradilla
i=1 //numero de iteraciones
clc()
a=input("ingrese el limite inferior del intervalo para esta funcion: ");
b=input("ingrese el limite superior del intervalo para esta funcion: ");
Es=input("ingrese el porcentaje de error preestablecido ");
fa=feval(a,funcion);
fb=feval(b,funcion);
xr=(a+b)/2;
Ea=100
printf('%s\t\t\t\t%s\t\t\t\t%s\t\t\t\t%s\t\t\t\t\n','i','xr','Ea','Es')
while (Ea>=Es)
fxr=feval(xr,funcion);
caso1=fa*fxr;
caso2=fb*fxr;
if(caso1<0)//a no va a cambiar solo b
b=xr;//xr pasa a ser b
fb=fxr;
valoranterior=xr;
xr=(a+b)/2 //nuevo valor de xr
valoractual=xr;
end
if(caso2<0)//b no va a cambiar solo a
a=xr;//xr pasa a ser a
fa=fxr;
valoranterior=xr;
xr=(a+b)/2; //nuevo valor xr
valoractual=xr;
end
i=i+1
Ea=abs((valoractual-valoranterior)/valoractual)*100;

printf('%5d\t\t\t%12.6f\t\t\t%8.6f\%%\t\t\t%8.6f\%%\n',i,xr,Ea,Es);//valor
es
end//fin del while
printf("\n Raiz=%12.6f\n",valoractual);
printf("Con un error del %f porciento \n",Ea);
printf("tras %d iteraciones",i);
6.5 Emplee el método de Newton-Raphson para determinar una raíz real de f(x) =
–1 + 5.5x – 4x^2 + 0.5x^3 con el uso de valores iniciales de a) 4.52 y b) 4.54.
Estudie y use métodos gráficos y analíticos para explicar cualquier peculiaridad en
sus resultados.

3 2
𝑓(𝑥) = 0. 5𝑥 − 4𝑥 + 5. 5𝑥 − 1

2
𝑓'(𝑥) = 1. 5𝑥 − 8𝑥 + 5. 5

a) 4.52

3 2
𝑓(𝑥) = 0. 5(4. 52) − 4(4. 52) + 5. 5(4. 52) − 1 = -11.69

2
𝑓'(𝑥) = 1. 5(4. 52) − 8(4. 52) + 5. 5 = -0.0144

−11.69
X1 = 4.52 − −0.0144
= -807.20889 raíz real 𝑓(4. 52)

b) 4.54

3 2
𝑓(𝑥) = 0. 5(4. 54) − 4(4. 54) + 5. 5(4. 54) − 1 = -11.68807

2
𝑓'(𝑥) = 1. 5(4. 54) − 8(4. 54) + 5. 5 = 0.0974

−11.68807
X1 = 4.54 − 0.0974
= 124.5407 raíz real 𝑓(4. 54)

respl='s'
while respl=='s'
clc
clear
fun=input('ingresar su funcion: ','s')
deff('y=f(x)','y='+fun)
a=input('ingrese el limite inferior de la grafica: ')
b=input('ingrese el limite superior de la grafica: ')
x =a:0.1:b
clf()
plot (x,f(x))
resp2= 's'
while resp2 == 's'
x0=input('ingrese el punto de partida ')
it = input('ingrese el numero de iteraciones ')
n=1
while n<it
de = numderivative(f,x0)
xi = x0-f(x0)/de
n=n+1
x0=xi
end
printf('el valor de la raiz es de x = % 6f',xi)
end
end
5.4
a) Determine gráficamente las raíces de f(x) = −12 − 21x + 18x2
− 2.75x3. Además, determine la primera raíz de la función con b)
bisección y c) posición falsa. Para b) y c), utilice valores iniciales
para xl = −1 y xu = 0, y un criterio de detención de 1%.
function y=ejercicio54(x)
y =-12-21*x+18*x^2-2.75*x^3
endfunction
i=0
clc() //clc permite pedir datos al usurario
a=input("\n Ingrese el intervalo menor");
b=input("\n Ingrese el intervalo mayor");
Es=input("\n Ingrese el porcentaje de error");
fa=feval(a,funcion); //feval permite realizar multiples operaciones
fb=feval(b,funcion);
xr=b-(fb*(a-b))/(fa-fb);
Ea=100
printf('%s\t\t\t\t%s\t\t\t\t%s\t\t\t\t%s\t\t\t\t\n','i','xr','Ea','Es') //encabezados
while(Ea>=Es)
fxr=feval(xr,funcion);
caso1=fa*fxr;
caso2=fb*fxr;
if(caso1<0) // intervalo inferior, a no cambia solo b
b=xr; // xr pasa a ser b, intervalo superior
fb=fxr;
valoranterior=xr;
xr=b-(fb*(a-b))/(fa-fb) //nuevo xr
valoractual=xr;
end
if(caso2<0)
a=xr;
fa=fxr
valoranterior=xr;
xr=b-(fb*(a-b))/(fa-fb);
valoractual=xr;
end
i=i+1
Ea=abs((valoractual-valoranterior)/valoractual)*100
printf('%5d\t\t\t%12.5f\t\t\t%8.2f\%%\t\t\t%8.2f\%%\n',i,xr,Ea,Es); //valores
end
printf("\n Raiz=%12.5f\n",valoractual);
printf("Con un error del %f porciento \n",Ea);
printf("tras %d númerodeinteraciones",i);
5.18 La concentración de saturación de oxígeno disuelto en agua dulce se calcula con la
ecuación (APHA, 1992)

donde Osf = concentración de saturación de oxígeno disuelto en agua dulce a 1 atm (mg/L)
y Ta = temperatura absoluta (K). Recuerde el lector que Ta = T + 273.15, donde T =
temperatura (ºC). De acuerdo con esta ecuación, la saturación disminuye con el incremento
de la temperatura. Para aguas naturales comunes en climas templados, la ecuación se usa
para determinar que la concentración de oxígeno varía de 14.621 mg/L a 0ºC a 6.413 mg/L
a 40ºC. Dado un valor de concentración de oxígeno, puede emplearse esta fórmula y el
método de bisección para resolver para la temperatura en ºC.

a) Si los valores iniciales son de 0 y 40ºC, con el método de la bisección, ¿cuántas


iteraciones se requerirían para determinar la temperatura con un error absoluto de 0.05ºC.

b) Desarrolle y pruebe un programa para el método de bisección a fin de determinar T como


función de una concentración dada de oxígeno, con un error absoluto pre especificado
como en el inciso a). Dadas elecciones iniciales de 0 y 40ºC, pruebe su programa para un
error absoluto de 0.05ºC para los casos siguientes: Osf = 8, 10 y 12 mg/L. Compruebe sus
resultados.

function y=ejercicio 5.18()


endfunction
TempEval(osf)
xl = 0 + 273.15;
xu = 40 + 273.15;
if fTa(xl,osf)*fTa(xu, osf)>0 error ('no bracket')
end
xr = xl;
for i = 1:10
xrold = xr;
xr = (xl + xu)/2;
if xr ~= 0, ea = abs((xr - xrold)/xr) * 100;
end
test = fTa(xl,osf)*fTa(xr,osf);
if test < 0
xu = xr;
elseif test > 0
xl = xr;
end
end

6.11 Utilice el método de Newton-Raphson para encontrar la raíz de.


f (x) = (e^−0.5x)(4 − x) − 2
Utilice conjeturas iniciales de a) 2, b) 6 y c) 8.
Explique sus resultados.

f (x) = (e^−0.5x)(4 − x) − 2

f’(x) = (-0.5e^-0.5x)(4-x)-e^-0.5x

a).2

f (x) = (e^−0.5(2))(4 − 2) − 2 = -1.2642

f’(x) = (-0.5e^-0.5(2))(4-2)-e^-0.5(2) = 0.7356

−1.2642
X1 = 2 − 0.7356
= 3.7186 raíz real 𝑓(2)

a).6

f (x) = (e^−0.5(6))(4 − 6) − 2 = -2.0996


f’(x) = (-0.5e^-0.5(6))(4-6)-e^-0.5(6) = 0

−2.0996
X2 = 6 − 0
= 6 raíz real 𝑓(6)

a).8

f (x) = (e^−0.5(8))(4 − 8) − 2 = -2.0733

f’(x) = (-0.5e^-0.5(8))(4-8)-e^-0.5(8) =0.0183

−2.0733
X3 = 8 − 0.0183
= 121.2951 raíz real 𝑓(8)

respl='s'
while respl=='s'
fun=input('ingresar su funcion: ','s')
deff('y=f(x)','y='+fun)
a=input('ingrese el limite inferior de la grafica: ')
b=input('ingrese el limite superior de la grafica: ')
x =a:0.1:b
clf()
plot (x,f(x))
resp2= 's'
while resp2 == 's'
x0=input('ingrese el punto de partida ')
it = input('ingrese el numero de iteraciones ')
n=1
while n<it
de = numderivative(f,x0)
xi = x0-f(x0)/de
n=n+1
x0=xi
end
printf('el valor de la raiz es de x = % 6f',xi)
end
end
6.3 Utilice los métodos de a) iteración de punto fijo y b) Newton-Raphson, para determinar
una raíz de f(x) = –0.9x2+ 1.7x + 2.5 con el uso de x0 = 5. Haga el cálculo hasta que Ea sea
menor que Es = 0.01%. Asimismo, realice una comprobación del error de su respuesta final.
6.25

6 3
V= 1 * 10 𝑚
6
Q=1 * 10 𝑔/𝑎ñ𝑜
6
W=1 * 10 𝑔/𝑎ñ𝑜
0.25 0.25
k= 0. 25 𝑚 /𝑔 /𝑎ñ𝑜

c = X0 = 4

reemplazando

6 6
y = 1 * 10 - (1 * 10 * 𝑥) − 0. 25 * 𝑥

6 6
X0= 4 𝑓(4) = 1 * 10 - (1 * 10 * 4) − 0. 25 * 4 = 599999.5

6 6
X0-1= 3 𝑓(3) = 1 * 10 - (1 * 10 * 3) − 0. 25 * 3 = 699999.5

4−599999.5 * (3−4)
x1 = 699999.5 − 599999.5
= 6.000035

6 6
x0= 4 𝑓(4) = 1 * 10 - (1 * 10 * 4) − 0. 25 * 4 = 599999.5

6 6
x1= 6.000035 𝑓(6) = 1 * 10 - (1 * 10 * 6) − 0. 25 * 6 = 399995.9

6.000035−399995.9 * (4−6.000035)
x2 = 599999.5 − 399995.9
= 3.99998

3.999998 −6.000035
ξa = 3.999998
* 100% = -0.5000095% Error relativo porcentual
verdadero
6 6
x1= 6.000035 𝑓(6) = 1 * 10 - (1 * 10 * 6) − 0. 25 * 6 = 399995.9

6 6
x2= 3.999998 𝑓(3. 9) = 1 * 10 - (1 * 10 * 3. 9) − 0. 25 * 3. 9 = 599999.7

3.999998−599999.7 * (3.999998−6.000035)
x3 = 399995.9 − 599999.7
= -6.00001

−6.00001 −3.99998
ξa = −6.00001
* 100% = 166.6 Error relativo porcentual verdadero

6 6
x2= 3.999998 𝑓(3. 9) = 1 * 10 - (1 * 10 * 3. 9) − 0. 25 * 3. 9 = 599999.7

6 6
x3=-6.00001 𝑓(6) = 1 * 10 - (1 * 10 * 3. 9) − 0. 25 * 6 = 399998.4

−6.00001−399998.4 * (−6.00001−3.999998)
x4 = 599999.7 − 399998.4
= 19.9

19.9−(−6.00001)
ξa = 19.9
* 100% = 130.2 Error relativo porcentual verdadero

clear
clc
function [y]=f(x)
y=1*10^6-(1*10^6*x)-0.25*sqrt(x);
endfunction
function secantes1(a, b, e2, n, cp)//declaracion de variable
//a=x0, b=x1, e2=tolerancia
//n=numero de iteraciones

a=input('ingresar el valor de x0 ');


b=input('ingresar el valor de x1 ');
e2=input('ingresar el valor de e2 ');
cp=input('numero de iteraciones' );
while (abs(b-a)>e2)
for k=0:1
x=(a*f(b)-b*f(a))/(f(b)-f(a));

cp=(x)-(b);
printf('\n\nx0 = %g, x1=%g e x2 = %g',a,b,x);
if (f(a)*f(x)<e2) then
a=b;
b=x;
printf('\n(Novo x0)a = %g, (Nova x1)b = %g',a,b);
end
if abs(b-a)<e2 then

printf('\n\nApós %g iteraciones nRaiz = %f \nCP = %f


',k+1,x,cp);
break;
return;
end
end
end
endfunction
function y=ecuacion(x)
y=x^(2)(abs(cos*sqrt(x)))-5
endfunction
function falsaposicion()
xl=0
xu=3.5
printf('\n\t%s\t\t%s\t\t%s\t\t%s\t\t%s\n','iteracion','xl','xu','xr','Ea')
xr=0;
es=1
itera=0
while 1
xrold=xr;
fl=ecuacion(xl);
fu=ecuacion(xu);
xr=xu-(fu*((xl-xu)/(fl-fu)));
ea=abs((xr-xrold)/xr)*100;
printf('\n\t\%d\t\t % 5f\t % 5f \t % 5f \t % 5f \n',itera+1,xl,xu,xr,ea)
fr=ecuacion(xr);
if(fr==0) then
break
else
if(fl*fr<0) then
xu=xr
else
xl=xr
end
end
if(ea<es)then
break
end
itera=itera+1
end
clf
x=-5:0.01:-1.3794
y=0*x
plot2d(x,[y],style=[color("black")])
xgrid()
endfunction

6.20 La ecuación de Manning se puede escribir para un flujo en un


canal abierto rectangular como

Q= 5
S = 0.0002
B = 20
n = 0.03

Pruebe que su esquema converge para todos los valores iniciales mayores
que cero o iguales a cero.
Ordenando la fórmula para que H sea una variable, reemplazamos con los
valores asignados del problema

5/3
0.0002 * (20 * 𝐻)
2/3 −5
0.03*(20 + 2*𝐻)

Como el ejercicio nos piden valores iniciales mayores a cero o iguales a cero
Empezaremos dando un valor de 1 a la ecuación.

5/3
0.0002 * (20 * 1)
H=1 2/3 − 5 = 3.85
0.03*(20 + 2*1)

5/3
0.0002 * (20 * 𝐻)
H=0 2/3 − 5 = -5
0.03*(20 + 2*𝐻)

Entonces si aplicamos el método de newton raphson la raíz se encuentra en el


intervalo [ 0, 1 ]

Empezamos el proceso iterativo aplicando la siguiente ecuación:

𝑓(𝑥𝑖)
xi + 1 = xi -
𝑓'(𝑥𝑖)

2/3 5/3 2/3


20 * 20 *𝑥 *(3𝑥+50)
donde la derivada de la ecuación es 5/3
9*(2𝑥 + 20)

asumiremos que el xi es igual a 1

3.85
x1 = 1 - 37.02 = 0.10

−4.8
x2 = 0.10 - 8.73 = -0.55

−0.55 −0.10
ξa = −0.55
* 100% = 81.2 Error relativo porcentual verdadero
.
.
.
respl='s'
while respl=='s'
clc
clear
fun=input('ingresar su funcion: ','s')
deff('y=f(x)','y='+fun)
a=input('ingrese el limite inferior de la grafica: ')
b=input('ingrese el limite superior de la grafica: ')
x =a:0.1:b
clf()
plot (x,f(x))
resp2= 's'
while resp2 == 's'
x0=input('ingrese el punto de partida ')
it = input('ingrese el numero de interaciones ')
n=1
while n<it
de = numderivative(f,x0)
xi = x0-f(x0)/de
n=n+1
x0=xi
end
printf('el valor de la raiz es de x = %6.4f',xi)
end
end

También podría gustarte