Está en la página 1de 10

Universidad Nacional Agraria La Molina

Maestra en Recursos Hdricos


Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

INTRODUCCION A LA PROGRAMACION Y ESTRUCTURAS DE


CONTROL
Pseudocdigo
IF/THE:
IF condicin THEN
Bloque verdadero
END IF
IF/THE/ELSE:
IF condicin THEN
Bloque verdadero
ELSE
Bloque falso
END IF
IF/THE/ELSEIF:
IF condicin1 THEN
Bloque1
ELSEIF
Bloque2
ELSEIF
Bloque3
ELSE
Bloque4
END IF

MATLAB
if b ~ = 0
r1=-c/b;
end

VISUAL BASIC
If b <> 0 Then
r1 = -c / b
End If

if a < 0
b = sqrt(abs(a));
else
b = sqrt(a);
end

If a < 0 Then
b =
sqrt(abs(a))
Else
b = sqr(a)
End If
If class = 1 Then
x = x + 8
ElseIf class < 1
Then
x = x - 8
ElseIf class < 10
Then
x = x - 32
Else
x = x - 64
End If

if class == 1
x = x + 8;
elseif class < 1
x = x 8;
elseif class<10
x = x -32;
else
x = x 64;
end

CASE:
SELECT CASE Expresin
de prueba
CASE Valor1
Bloque1
CASE Valor2
Bloque2
CASE Valor3
Bloque3
CASE ELSE
Bloque4
END SELECT

switch a + b
case 1
x = -5;
case 2
x = -5-(a+b)/10;
case 3
x = (a+b)/10;
otherwise
x = 5;
end

DOEXIT:
DO
Bloque1
IF condicIn EXIT
Bloque2
END DO

while 1
i = i + 1;
if i > = 10, break,
end
j = i * x;
end

LOOP CONTROLADO
POR CONTADOR:
DO FOR i=inicio,
incremento, fin.
Bloque
END FOR

for i = 1:2:10
x = x + i;
end

Select Case a + b
Case Is < -50
x = -5
Case Is < 0
x = -5 - (a +
b) / 10
Case Is < 50
x = (a + b) /
10
Case Else
x = 5
End Select
Do
i = i + 1
If i >= 10
Then Exit Do
j = i * x
Loop
For i = 1 To 10
Step 2
x = x + i
Next i

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

Ejemplos de aplicacin de estructuras de control en MatLab


Cdigo IF/THE
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 cdigo en ventana de comandos de MatLab
>> ifthen
Ejemplo Codigo IF/THEN
Ingrese valor de b : 5
Ingrese valor de c : 6
r1 =
-1.2000
Codigo IF/THE/ELSE
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 cdigo en ventana de comandos de MatLab
>> ifthenelse
Ejemplo Codigo IF/THEN/ELSE
Ingrese valor de a : -6
b =
2.4495
Cdigo IF/THE/ELSEIF:
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

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

x=x-64;
end
x
Ejecutando el cdigo en ventana de comandos de MatLab
>> ifthenelseif
Ejemplo Codigo IF/THEN/ELSEIF
Ingrese valor de class : 15
Ingrese valor de x : 80
x =
16
Cdigo CASE
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 cdigo en ventana de comandos de MatLab
>> ejemplocase
Ejemplo Codigo CASE
Ingrese valor de a : 1
Ingrese valor de b : 2
x =
0.3000
Cdigo DOEXIT:
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

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

Ejecutando el cdigo en ventana de comandos de MatLab


>> doexit
Ejemplo Codigo DOEXIT
Ingrese valor de x : 20
Ingrese valor de i : 2
j =
180
Cdigo LOOP CONTROLADO POR CONTADOR:
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 cdigo 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

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

SOLUCIN 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

m /seg
m
m
s/u
m/m

y n 1 y n

f ( yn )
f ' ( yn )

s/u

Y
A
1.75
13.34375
1.82703016 14.1422096
1.8201231 14.0698876
1.82006028 14.0692305

P
11.31
11.59
11.56
11.56

T
10.25
10.4810905
10.4603693
10.4601808

A (b z y ) y

P b 2 y

1 z

T b 2 zy

A
P2

F
-816.06
89.73
0.80
0.00

Qn

S2

D
10594.0749
12990.4531
12758.9332
12756.8432

A 4(5PT4A 1 Z2 )
D
P3

VERIFICACION CON HCANALES

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

DIAGRAMA DE FLUJO PARA EL CLCULO DEL TIRANTE NORMAL,


SECCION TRAPEZOIDAL, POR EL MTODO DE NEWTON RAPHSON
INICIO

Tirante Normal
Seccin 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

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

Cdigo en MATLAB del Algoritmo de Newton Raphson


Para el clculo de tirante normal yn en canales de seccin trapezoidal
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 cdigo en ventana de comandos de MatLab


>> tiranteyn
Y =
1.8201
V =
1.4215
NF =
0.3913
EN =
1.9231

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

CALCULO DE TIRANTE NORMAL - SECCION TRAPEZOIDAL


METODO DE LA SECANTE
3

m /seg
Q=
20
B=
5
m
Z=
1.5
m
N=
0.015
s/u
S = 0.00035 m/m
C = 4123.459
L=
1.803
s/u
ITERA
1
2
3
4
5

Y0
1.75
1.7501
1.82702
1.819402
1.820054

Y1
1.7501
1.82702
1.819402
1.820054
1.82006

yi 1 yi

A0
13.34375
13.34478
14.1421
14.06234
14.06917

P0
11.31
11.31
11.59
11.56
11.56

f ( yi )( yi 1 yi )
f ( yi 1 ) f ( yi )

A1
13.34478
14.1421
14.06234
14.06917
14.06923

P1
11.31
11.59
11.56
11.56
11.56

F0
-816.06
-815.00
89.59
-8.39
-0.08

F1
-815.00
89.59
-8.39
-0.08
0.00

A (b z y ) y
P b 2 y

1 z

T b 2 zy

Qn
A5

P2
S2

VERIFICACION CON HCANALES

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

METODOS NUMERICOS EN INGENIERIA DE RECURSOS HIDRICOS

Cdigo en MATLAB del Algoritmo de la Secante


Para el clculo de tirante normal yn en canales de seccin trapezoidal
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 cdigo en ventana de comandos de MatLab
>> ynsecante
Y =
1.8201
V =
1.4215
NF =
0.3913
EN =
1.9231

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

Universidad Nacional Agraria La Molina


Maestra en Recursos Hdricos
Facultad de Ingeniera Agrcola
Departamento de Recursos Hdricos

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 clculo del tirante normal yn en canales de seccin circular. Para
comprobar la correcta elaboracin y ejecucin del mismo, utilizar los datos,
clculos preliminares y resultados mostrados a continuacin en la tabla realiza en
Hoja de Clculo Excel y en programa Hcanales.
CALCULO DE TIRANTE NORMAL - SECCION CIRCULAR
METODO DE LA SECANTE
D=
Q=
N=
S=
C=
ITERA
1
2
3
4
5
6

2
2
0.014
0.0004
1.4

m
m3/seg
s/u
m/m

y i 1 yi

f ( yi )( yi 1 y i )
f ( yi 1 ) f ( yi )

Y0

Y1

A0

P0

A1

P1

F0

F1

0.700000
0.700100
1.327657
1.240328
1.241703
1.241682

0.700100
1.327657
1.240328
1.241703
1.241682
1.241682

0.9799219
0.9801127
2.2141882
2.0467848
2.049454
2.0494128

2.5322073
2.532417
3.8092378
3.6270005
3.6298342
3.6297906

0.9801127
2.2141882
2.0467848
2.049454
2.0494128
2.0494128

2.532417
3.8092378
3.6270005
3.6298342
3.6297906
3.6297906

-0.879621
-0.879481
0.1421696
-0.002274
3.56E-05
6.853E-09

-0.879481
0.1421696
-0.002274
3.56E-05
6.853E-09
-2.09E-14

2y

x 2 Arc Cos 1

A
P

1
x Sen ( x)
8

1
2

x D

T D Sen (

x
)
2

D
x
1 Cos ( )
2
2
5

1
2
8 ( x Sen( x ))
Qn
Fx
1
2
1
3
S2
2 x D

VERIFICACION CON HCANALES

Solucin de ecuaciones No Lineales por los mtodos de Newton Raphson y Secante


Aplicado a la Hidrulica de Canales.

10