Documentos de Académico
Documentos de Profesional
Documentos de Cultura
16) para
almacenar agua para contener se calcula con
[ 3 R−h ]
V =π h2
3
donde V = volumen [m3], h = profundidad del agua en el tanque [ m ], y R=radio del tanque
[m]
Si R = 3m, ¿a qué profundidad debe llenarse método que contenga 30m3 ? Haga tres
iteraciones con el método de la falsa posición a fin de obtener la respuesta. Determine el
error relativo aproximado después de cada iteración.
Planteamiento del problema
[ 3 R−h ]
V =π h2
3
RESOLUCION
Datos
R=3m
V=30m3
30=π h 2
[3 ( 3 )−h ]
3
f ( h )=πh2
[ 3 ( 3 )−h ] −30
3
Despejando
90
h3 −9 h2 fi
π
H F(h)
9 28.647f(b)
Primera iteración
i=0(8.5, 9)
h f (a )(b−a ) (−7.477)(9−805)
0 =¿ a fi =8.5 + ¿
f ( a ) −f (b) (−7.477−( 28.647 ) )
h0 =¿ 8.603 m ¿
h1=¿ 8.613m ¿
e rel = |8.613−8.603
8.613 |∗100 %=0.1161 %
Tercera iteración i=2(8.613,9)
h f (a )(b−a) (−0.06123)(9−8.613)
2=¿ a fi =8.613+ ¿
f ( a) −f (b) (−0.06123− ( 28.647 ) )
h2=¿ 8.6138m¿
e rel = |8.6138−8.613
8.6138 |∗100 %=0.0092874 %
En esta tercera iteración podemos observar que el error relativo se va acercando cada vez
mas al cero para el valor de h2 =8.6138 m, por lo que podemos considerar este resultado
como solución al problema de profundidad del tanque.
Graficando para obtener los intervalos:
x f(x)
-3 83,0976
-2 16,0768
-1 -19,528
0 -30
1 -21,6224
2 -0,6784
3 26,5488
4 53,776
5 74,72
6 83,0976
7 72,6256
8 37,0208
9 -30
10 -134,72
Recuerde el lector que T a=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 oxigeno varia 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
preespecifico 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: o=8,10 y
12mg/L. Compruebe sus resultados
a)
∆ x0 40
log 2 ( )
E ( )
=log 2
0.05
=9.6439
b)
function TC = 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
xl=xr;
else
ea=0;
end
TC=xr-273.15;
function f=fTa(Ta,osf)
f=-139.34411+1.575701e4/Ta-6.642308e7/Taexp2;
f=f++1.2438e10/Taexpo3-8.621949e11/Taexp4;
f=f-log(osf);
Resultados
>> TempEval(8)
ans =
26.7578
<< TempEval(10)
ans =
15.3516
<< TempEval(12)
ans =
7.4609
5.18) Integre el algo que se bosquejo en la figura 5.10 en forma de subprograma completo
para el método de bisección amigable para el usuario. Entre otras cosas:
a) Construya enunciados de documentación en el subprograma a fin de identificar lo
que se pretende que realice cada sección
b) Etiquete la entrada y la salida
c) Agregue una comprobación de la respuesta, en la que se sustituya la estimación de
la raíz en la función original para verificar si el resultado final se acerca a cero
d) Pruebe el subprograma por medio de repetir los cálculos de los ejemplos 5.3 y 5.4
Option Explicit
Sub TestBisct()
Dim imax As Integer, iter As Integer
Dim x As Double, xl As Double, xu As Double
Dim es As double, ea As Double, xr As Double
Dim ROOT As Double
'input information forn the user
Sheets(''Sheetl'').Select
Ranger(''b4'').Select
xl=ActiveCell.Value
ActiveCell.Offset(1,0).Select
xu=ActiveCell.Value
ActiveCell.Offset(1,0).Select
es=ActiveCell.Value
ActiveCell.Offset(1,0).Select
imax=ActiveCell.Value
Range((''b4'').Select
IF F(X=* F(xu)< 0 then
'If the initial guesses are valid, implementr bisection
'and display results;
root=bisect(xl,xu,es,imax,imax,xr.iter,ea)
MsgBox''The root is: '' root
MsgBox''Iteratio is: '' iter
MsgBox''Estimated is: '' ea
MsgBox''f(xr) is: '' f(xr)
else
'If the initial guesses are valid, implementr
bisection
'and display results;
Function Bisect(xl,xu,es,imax,xr,iter,ea)
Dim x rold As Double, teste As Double
ite=0
do
xrold=xr
'determine new root estimate
xr=(xl+xu)/2
iter?iter+1
'determine aprproximate error
It xr <> 0 Then
ea=Abs ((xr-xrold)/xr)*100
End If
'determine new bracket
teste =f(x)*f(xr)
Tf teste <0 Then
xu=xr
Tf teste >0 Then
xl=xr
Else
ea=0
End If
Loop
Bisect : xr
End Function
Fuction f(c)
F=9.8*68.1/c*(1-Exo(-(c/68.1)*10)-40
End Function
x=0:0.01:5;
y= x.^4-8*x.^3-35*x.^2+450*x-1001';
plot(x,y)
grid on
z=0.*x;
plot(x,y,'b',x,z,'r')
grid on
xlabel('EJE X')
ylabel('EJE Y')
legend ('y= x.*^4-8*x.^3-35*x.^2+450*x-1001');
x T =5.5486702; reemplazando en la funció n f ( x ) :
f ( 5.5486702 )=−0.42
Este valor se acerca ¿−0.4,lo cual se aproxima al cero
Xl 12
Xu 16
Es 0.01
imax 25
Xl 0
Xu 1.3
Es 0.01
imax 25
5.20) Desarrolle un programa amigable para el usuario para el método de la falsa posición.
La estructura del programa debe ser similar al logaritmo de la bisección que se bosquejo
en la figura.
Con el método de la falsa posición determine la raíz de la misma ecuación analizada en:
Utilice el método gráfico para determinar el coeficiente de arrastre c necesario para que un
paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s después de una caída
libre de t = 10 s. Nota: La aceleración de la gravedad es 9.8 m/s2
667,38
f ( c) = . ( 1−e−0.141684 c ) −40
c
a) GRÁFICAMENTE, los valores iniciales 𝒙𝒊 = 14 y 𝒙𝒖 = 16, y ejecuta iteraciones
hasta que el error 𝜺𝒔= 0,1% o el número de iteraciones es 5.
Grafica
x=8:0.01:20;
y=((666.38)./(x)).*(1-exp(-0.141684.*x))-40;
grid on
z=0.*x;
plot(x,y,x,z,'r')
grid on
xlabel('eje x')
ylabel('eje y')
title('((666.38)/(x)) (1-ℯ^(-0.141684 x))-40')
ylim([-10 10])
b) Programar un código amigable al usuario para el método de la falsa posición. La
estructura del programa debe ser similar al algoritmo de la bisección
FALSA POSICION
function [fp,x,incr,iter]= chaprafposicion(f,xi,xu,es,imax)
%ejemplo. [fp,x,incr,iter]= chaprafposicion('funcionesnolineales',1,2,0.005,25)
fxi=feval(f,xi);
fxu=feval(f,xu);
if fxi*fxu>0
disp('cambiar el intervalo, no existen raices en esos puntos') return
end
iter=0;
x=[];
incr=(xu-xi)/xu;
Función
function [f]=funcionesnolineales(x)
%f=log(x.^2+1)-exp(x/2).*cos(pi.*x);
f=((666.38)./(x)).*(1-exp(-0.141684.*x))-40;
end
Excel Falsa Posición
Criterio
MÉTODO DE REGLA Valor
de
FALSA Real
parad
a
Error Error
i xi xu xr f(xi) f(xu) f(xr) MENSAJ 0,0000 14,5347
retaliv Aproxim
E 05% 95
o% ado
1 14 16 14,5649 1,05013 - - 0,21%
859 211 2,66724 0,05800
27 54
2 14 14,56498 14,5354 1,05013 - - 0,00% 0,002034 CONTI
59 117 211 0,05800 0,00118 63 NUA
54 48
3 14 14,53541 14,5348 1,05013 - -2,417E- 0,00% 4,1514E- CONTI
17 083 211 0,00118 05 05 NUA
48
4 14 14,53480 14,5347 1,05013 -2,417E- -4,93E- 0,00% 8,4682E- CONTI
83 96 211 05 07 07 NUA
5 14 14,5347 14,5347 1,05013 -4,93E- -1,006E- 0,00% 1,7274E- TERMIN
96 957 211 07 08 08 ADO
Matlab Falsa Posición
[fp,x,incr,iter]= chaprafposicion('funcionesnolineales',14,16,0.005,5)
fp =
14.5348
x=
14.5650 14.5354 14.5348 14.5348 14.5348
incr =
0.5348
Iter=
5