Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
INTRODUCCION A LA PROGRAMACION Y ESTRUCTURAS DE CONTROL Pseudocódigo
MATLAB
IF/THE: IF condición THEN Bloque verdadero END IF
if b if b ~ = 0 r1=-c/b; end
If b If b <> 0 Then r1 = -c / b End If
IF/THE/ELSE: IF condición THEN Bloque verdadero ELSE Bloque falso END IF
if a if a < 0 b = sqrt(abs(a)); else b = sqrt(a); end
If a If a < 0 Then b = sqrt(abs(a)) Else b = sqr(a) End If If class If class = 1 Then x = x + 8 ElseIf class ElseIf class < 1 Then x = x - 8 ElseIf class ElseIf class < 10 Then x = x - 32 Else x = x - 64 End If
IF/THE/ELSEIF: IF condición1 THEN Bloque 1 ELSEIF Bloque 2 ELSEIF Bloque 3 ELSE Bloque 4 END IF
if class if class == 1 x = x + 8; elseif class elseif class < 1 x = x – 8; elseif class<10 elseif class<10 x = x -32; else x = x – 64; end
CASE: SELECT CASE Expresión de prueba CASE Valor 1 Bloque 1 CASE Valor 2 Bloque 2 CASE Valor 3 Bloque 3 CASE ELSE Bloque 4 END SELECT
switch a + b switch a case 1 case 1 x = -5; case 2 case 2 x = -5-(a+b)/10; case 3 case 3 x = (a+b)/10; otherwise x = 5; end
DOEXIT: DO Bloque1 IF condicIón EXIT Bloque2 END DO
while 1 while 1 i = i + 1; if i if i > = 10, break break, , end j = i * x; end
LOOP CONTROLADO POR CONTADOR: DO FOR i=inicio, incremento, fin. Bloque END FOR
for i = 1:2:10 for i x = x + i; end
VISUAL BASIC
Select Case a Case a + b Case Is < Is < -50 x = -5 Case Is < Is < 0 x = -5 - (a + b) / 10 Case Is < Is < 50 x = (a + b) / 10 Case Else x = 5 End Select Do i = i + 1 If i If i >= 10 Then Exit Do j = i * x Loop For i For i = 1 To To 10 10 Step 2 Step 2 x = x + i Next i Next i
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica Hidráulica de Canales. Canales.
1
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
clear; disp('Ejemplo Codigo IF/THEN'); b=input('Ingrese valor de b : ' ); c=input('Ingrese valor de c : ' ); if b ~= 0 r1=-c/b end Ejecutando el código en ventana de comandos de MatLab >> ifthen Ejemplo Codigo IF/THEN Ingrese valor de b : 5 Ingrese valor de c : 6 r1 = -1.2000
clear; disp('Ejemplo Codigo IF/THEN/ELSE' ); a=input('Ingrese valor de a : ' ); if a < 0 b=sqrt(abs(a)) else b=sqrt(a) end Ejecutando el código en ventana de comandos de MatLab >> ifthenelse Ejemplo Codigo IF/THEN/ELSE Ingrese valor de a : -6 b = 2.4495
clear; disp('Ejemplo Codigo IF/THEN/ELSEIF' ); class=input('Ingrese valor de class : ' ); x=input('Ingrese valor de x : ' ); if class == 1 x=x+8; elseif class < 1 x=x-8; elseif class <10 x=x-32; else
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
2
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
x=x-64; end x Ejecutando el código en ventana de comandos de MatLab >> ifthenelseif Ejemplo Codigo IF/THEN/ELSEIF Ingrese valor de class : 15 Ingrese valor de x : 80 x = 16
clear; disp('Ejemplo Codigo CASE'); a=input('Ingrese valor de a : ' ); b=input('Ingrese valor de b : ' ); switch a+b case 1 x=-5; case 2 x=-5-(a+b)/10; case 3 x=(a+b)/10; otherwise x=5; end x Ejecutando el código en ventana de comandos de MatLab >> ejemplocase Ejemplo Codigo CASE Ingrese valor de a : 1 Ingrese valor de b : 2 x = 0.3000
clear; disp('Ejemplo Codigo DOEXIT'); x=input('Ingrese valor de x : ' ); i=input('Ingrese valor de i : ' ); while 1 i=i+1; if i>=10,break,end j=i*x; end j
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
3
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
Ejecutando el código en ventana de comandos de MatLab >> doexit Ejemplo Codigo DOEXIT Ingrese valor de x : 20 Ingrese valor de i : 2 j = 180
clear; disp('Ejemplo Codigo LOOP j=input('Ingrese valor de n=input('Ingrese valor de s=input('Ingrese valor de x=input('Ingrese valor de for i=j:s:n x=x+i; end x
FOR' ); inicio : ' ); final : ' ); incremento : ' ); x : ' );
Ejecutando el código en ventana de comandos de MatLab >> loopfor Ejemplo Codigo LOOP FOR Ingrese valor de inicio : 5 Ingrese valor de final : 60 Ingrese valor de incremento : 2 Ingrese valor de x : 3 x = 899
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
4
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
SOLUCIÓN DE ECUACIONES NO LINEALES CALCULO DE TIRANTE NORMAL - SECCION TRAPEZOIDAL METODO DE NEWTON - RAPHSON Q= B= Z= N= S= C= L= ITERA
1 2 3 4
20 5 1.5 0.015 0.00035 4123.46 1.80
3
m /seg m m s/u m/m
y n 1 y n
f ( y n ) f ' ( y n )
s/u
Y
A
1.75 13.34375 1.82703016 14.1422096 1.8201231 14.0698876 1.82006028 14.0692305
A (b z y ) y P b 2 y
1 z
T b 2 zy
P
T
F
D
11.31 11.59 11.56 11.56
10.25 10.4810905 10.4603693 10.4601808
-816.06 89.73 0.80
10594.0749 12990.4531 12758.9332 12756.8432
F 2
D
A
5
2
P
A
0.00
Q n S
3
1
2
4
(5 PT 4 A 1 Z 2 ) 3
P
VERIFICACION CON HCANALES
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
5
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
DIAGRAMA DE FLUJO PARA EL CÁLCULO DEL TIRANTE NORMAL, SECCION TRAPEZOIDAL, POR EL MÉTODO DE NEWTON RAPHSON INICIO
Tirante Normal Sección Trapezoidal
Leer: Q,B,Z,Y,N,S,Err
C=(Q*N/sqrt(S))^3 L=sqrt(1+Z^2)
A=(B+Z*Y)*Y P=B+2*Y*L T=B+2*Z*Y F=A^5/P^2-C
abs(F)>=Err
V D=(A^4*(5*P*T-4*A*L))/P^3 Y1=Y-F/D Y=Y1
F V=Q/A DH=A/T NF=V/sqrt(9.81*DH) EN=Y+V^2/(9.81*2)
Escriba: Y,V,NF,EN A=(B+Z*Y)*Y P=B+2*Y*L T=B+2*Z*Y F=A^5/P^2-C
FIN
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
6
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
Q=20; B=5; Z=1.5; N=0.015; S=0.00035; C=(Q*N/S^0.5)^3; L=sqrt(1+Z^2); Y=1.75; Err=0.001; A=(B+Z*Y)*Y; P=B+2*Y*L; T=B+2*Z*Y; F=A^5/P^2-C; while abs(F)>=Err D=(A^4*(5*P*T-4*A*L))/(P^3); Y=Y-F/D; A=(B+Z*Y)*Y; P=B+2*Y*L; T=B+2*Z*Y; F=A^5/P^2-C; end V=Q/A; DH=A/T; NF=V/sqrt(9.81*DH); EN=Y+V^2/(2*9.81); Y,V,NF,EN
Ejecutando el código en ventana de comandos de MatLab >> tiranteyn Y = 1.8201 V = 1.4215 NF = 0.3913 EN = 1.9231
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
7
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
CALCULO DE TIRANTE NORMAL - SECCION TRAPEZOIDAL METODO DE LA SECANTE Q=
20 B= 5 Z = 1.5 N = 0 .015 S = 0.00035 C = 4123.459 L = 1 .803
ITERA
Y0
1 2 3 4 5
1.75 1.7501 1.82702 1.819402 1.820054
3
m /seg m m s/u m/m
yi 1 yi
f ( yi )( yi 1 yi ) f ( yi 1 ) f ( yi )
s/u Y1
A0
1.7501 13.34375 1.82702 13.34478 1.819402 14.1421 1.820054 14.06234 1.82006 14.06917
P0
A1
P1
F0
F1
11.31 11.31 11.59 11.56 11.56
13.34478 14.1421 14.06234 14.06917 14.06923
11.31 11.59 11.56 11.56 11.56
-816.06 -815.00 89.59 -8.39 -0.08
-815.00 89.59 -8.39 -0.08 0.00
A (b z y ) y P b 2 y
1 z 2
F
A
5
2
P
T b 2 zy
Q n S
3
1
2
VERIFICACION CON HCANALES
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
8
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
clc;clear Q=20; B=5; Z=1.5; N=0.015; S=0.00035; C=(Q*N/S^0.5)^3; L=sqrt(1+Z^2); Y=1.75;Y2=1.7501; Err=0.001; A=(B+Z*Y)*Y;A2=(B+Z*Y2)*Y2; P=B+2*Y*L;P2=B+2*Y2*L; F=A^5/P^2-C;F2=A2^5/P2^2-C; while abs(F)>=Err Y3=Y2-(F2*(Y-Y2))/(F-F2); Y=Y2;Y2=Y3; A=(B+Z*Y)*Y;A2=(B+Z*Y2)*Y2; P=B+2*Y*L;P2=B+2*Y2*L; F=A^5/P^2-C;F2=A2^5/P2^2-C; end T=B+2*Y*Z; V=Q/A; DH=A/T; NF=V/sqrt(9.81*DH); EN=Y+V^2/(2*9.81); Y,V,NF,EN Ejecutando el código en ventana de comandos de MatLab >> ynsecante Y = 1.8201 V = 1.4215 NF = 0.3913 EN = 1.9231
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
9
Universidad Nacional Agraria La Molina Maestría en Recursos Hídricos Facultad de Ingeniería Agrícola Departamento de Recursos Hídricos
METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS
PROBLEMAS COMPLEMENTARIOS DE APLCACION
1. Elaborar y probar un programa en MATLAB utilizando el algoritmo de la secante, para el cálculo del tirante normal “yn” en canales de sección circular. Para comprobar la correcta elaboración y ejecución del mismo, utilizar los datos, cálculos preliminares y resultados mostrados a continuación en la tabla realiza en Hoja de Cálculo Excel y en programa Hcanales. CALCULO DE TIRANTE NORMAL - SECCION CIRCULAR METODO DE LA SECANTE
D=
2 2 N = 0 .0 14 S = 0.0004 C= 1.4
Q=
m m3/seg s/ u m/m
y i 1 yi
ITERA
Y0
Y1
A0
1 2 3 4 5 6
0.700000 0.700100 1.327657 1.240328 1.241703 1.241682
0.700100 1.327657 1.240328 1.241703 1.241682
0.9799219 0.9801127 2.2141882 2.0467848 2.049454 1.241682 2.0494128
x 2 Arc Cos 1
A P
T
1 8
x Sen ( x) 1 2
x D
D Sen
(
x
2
)
2 y
D
f ( yi )( yi 1 yi ) f ( yi 1 ) f ( yi )
P0
A1
2.5322073 2.532417 3.8092378 3.6270005 3.6298342 3.6297906
0.9801127 2.2141882 2.0467848 2.049454 2.0494128 2.0494128
y
P1 2.532417 3.8092378 3.6270005 3.6298342 3.6297906 3.6297906
F0 -0.879621 -0.879481 0.1421696 -0.002274 3.56E-05 6.853E-09
F1 -0.879481 0.1421696 -0.002274 3.56E-05 6.853E-09 -2.09E-14
D x 1 Cos ( ) 2 2 5
1 2 ( x Sen ( x )) 8 Qn 1 F x 2 1 3 S 2 2 x D
VERIFICACION CON HCANALES
Solución de ecuaciones No Lineales por los métodos de Newton Raphson y Secante Aplicado a la Hidráulica de Canales.
10