%Wesley Donald
%C.E. Analysis
%Project
%Bisection
clear
clc
Q=5;
S=2/10000;
B=20; %ft.
xl(1)=.5;
xu(1)=10;
n=.03;
xr(1)=5.5;
err(1)=100;
fprintf('xr
error\n')
while err>.01
for i= 1:20
fxl(i)=((S^(1/2))/n)*(((B*xl(i))^(5/3))/((B+(2*xl(i)))^(2/3)))-Q;
fxu(i)=((S^(1/2))/n)*(((B*xu(i))^(5/3))/((B+(2*xu(i)))^(2/3)))-Q;
fxr(i)=((S^(1/2))/n)*(((B*xr(i))^(5/3))/((B+(2*xr(i)))^(2/3)))-Q;
if fxl(i)*fxr(i)<0
xu(i+1)=xr(i);
xl(i+1)=xl(i);
elseif fxl(i)*fxr(i)>0
xl(i+1)=xr(i);
xu(i+1)=xu(i);
end
xr(i+1)=(xl(i+1)+xu(i+1))/2;
err(i+1)=abs(((xr(i+1)-xr(i))/xr(i+1))*100);
end
[xr' err']
end
xr error
ans =
5.5000 100.0000
3.0000 83.3333
1.7500 71.4286
1.1250 55.5556
0.8125 38.4615
0.6563 23.8095
0.7344 10.6383
0.6953 5.6180
0.7148 2.7322
0.7051 1.3850
0.7002 0.6974
0.7026 0.3475
0.7014 0.1740
0.7020 0.0869
0.7023 0.0435
0.7022 0.0217
0.7023 0.0109
0.7023 0.0054
0.7023 0.0027
0.7023 0.0014
0.7023 0.0007
%Wesley Donald
%C.E. Analysis
%Project
%fzero
clear
clc
[H,fH]=fzero(inline('(.0002^.5/.03)*((20*H)^(5/3))/((20+2*H)^(2/3))-5'),1)
H =
0.7023
fH =
0
%Wesley Donald
%C.E. Analysis
%Project
%
clear
clc
x=1;
for i=1:7
f(i)=.471405*(((20*x(i))^1.66666667)/((20+(2*x(i)))^.666666667))-5;
fprm(i)=((43.76467)*x(i)^(2/3))*(x(i)+16.6667)/((x(i)+10)^1.66666667);
x(i+1)=x(i)-(f(i)/fprm(i));
err(i+1)=abs(((x(i+1)-x(i))/x(i+1))*100);
end
x=[x']
f=[f']
fprime=[fprm']
error=[err']
x =
1.0000
0.7292
0.7026
0.7023
0.7023
0.7023
0.7023
0.7023
f =
3.8477
0.3150
0.0035
0.0000
0.0000
0.0000
0
fprime =
14.2110
11.8179
11.5583
11.5553
11.5553
11.5553
11.5553
error =
0
37.1278
3.7936
0.0428
0.0000
0.0000
0.0000
0
%Wesley Donald
%C.E. Analysis
%Project
%Secant Method
function OCSecant(hi, dh)
iter=0;
disp('iteration h
Error%')
while (1)
hnew=hi-(
err = abs((hnew-hi)/hnew)*100;
iter=iter+1;
if
err<=0.01
break
end
hi=hnew;
fprintf('%4d %7.4f
%3.5f\n',iter,hnew,err)
end
River_Depth=hi
%Wesley Donald
%C.E. Analysis
%Project
%Divergent Point Iteration
clear
clc
hi=0;
B=20;
Q=5;
n=.03;
S=.0002;
disp('Iteration H
Error')
disp(' 1
0 N.A.')
iter=1;
hplus1=hi;
while(1);
hinit=hplus1;
hplus1=(.5)*(((S^3*(B*hinit)^(5/2))/(Q*(n^(3/2))))-B);
err=abs((hplus1-hinit)/(hplus1)*100);
iter=iter+1;
if
err<=0.0001;
break
end
fprintf('%4d %3.5f %3.5f\n',iter,hplus1,err)
end
Iteration
H Error
1 0 N.A.
2 -10.00000 100.00000
3 -10.00000 0.00087
%Wesley Donald
%C.E. Analysis
%Project
%Working Point Iteration
clear
clc
hi=0;
B=20;
Q=5;
n=.03;
S=.0002;
disp('Iteration H
Error')
disp(' 1
0 N.A.')
iter=1;
hplus1=hi;
while(1);
hinit=hplus1;
hplus1=((Q*n)^(3/5))*((B+2*hinit)^(2/5)/(B*S^.3));
err=abs((hplus1-hinit)/(hplus1)*100);
iter=iter+1;
if
err<=0.0001;
break
end
fprintf('%4d %3.5f %3.5f\n',iter,hplus1,err)
end
Iteration
H Error
1 0 N.A.
2 0.68348 100.00000
3 0.70180 2.60989
4 0.70228 0.06850
5 0.70229 0.00180