路世偉,劉洪宇,杜國鋒,曾 磊,張繼承
(長江大學(xué) 城市建設(shè)學(xué)院,湖北 荊州 434023)
橋涵水文課是一門實踐性很強的土木工程專業(yè)課程,對學(xué)生了解并進(jìn)行橋梁和涵洞勘察、水文計算以及基礎(chǔ)設(shè)計,甚至將來從事相關(guān)行業(yè)的設(shè)計、施工具有重要的作用。但在目前的教學(xué)過程中,教學(xué)方法乃至教學(xué)效果均存在較大的問題[1]。教學(xué)方法以教師簡要介紹相關(guān)的知識、原理為主,學(xué)生被動學(xué)習(xí),積極性不高,教學(xué)效果并不理想。大部分學(xué)生只是知道大概知識、原理,而并未從這個教學(xué)過程中完全掌握相關(guān)的計算如何操作,這對于培養(yǎng)土木工程專業(yè)學(xué)生的動手能力是非常不利的[2-3]。因此,必須對橋涵水文課程的教學(xué)方法進(jìn)行改進(jìn),提高學(xué)生的參與程度,培養(yǎng)其動手能力,響應(yīng)國家建設(shè)雙一流高校的戰(zhàn)略規(guī)劃[4-5]。
隨著計算機技術(shù)突飛猛進(jìn)的發(fā)展和大型復(fù)雜工程的建設(shè),傳統(tǒng)手工計算顯得越來越捉襟見肘,如何讓學(xué)生充分利用計算機的優(yōu)勢來鞏固知識結(jié)構(gòu)、提升計算效率是我們必須要思考的問題[6]。MATLAB軟件充分利用了計算機硬件發(fā)展的優(yōu)勢,給高等教育提供了一個額外的選擇。如能將MATLAB軟件融入專業(yè)課的教學(xué)過程,而學(xué)生在編制相關(guān)計算程序的過程中又可以對所學(xué)知識進(jìn)行充分掌握,對推動現(xiàn)代高等教育改革將發(fā)揮著不可估量的作用。
1)語法規(guī)則簡單?;緮?shù)據(jù)單位是矩陣,指令表達(dá)式與數(shù)學(xué)、工程中常用的形式相似,初學(xué)者非常容易上手。
2)MATLAB基本的語言環(huán)境提供了數(shù)以千計的計算函數(shù),極大地提高了用戶的編程效率。
3)MATLAB是一種腳本式的解釋型語言,同時也支持對C,F(xiàn)ORTRAN,C++,JAVA等語言直接進(jìn)行編譯。
4)程序和數(shù)據(jù)文件可移植性較強,與平臺無關(guān)。MATLAB軟件可以運行在很多不同的計算機系統(tǒng)平臺上,如Windows Me/NT/2000/XP、很多不同版本的UNIX以及Linux。
適線法是將隨機變量樣本值及相應(yīng)經(jīng)驗頻率在幾率紙上點繪出適當(dāng)頻率曲線以求得參數(shù)的一種方法,對于推算一定重現(xiàn)期的年徑流洪峰流量非常重要。但是如果手工計算的話,適線法就會顯得計算量特別大,在教學(xué)過程中學(xué)生往往會陷入巨大的計算量而不利于學(xué)生掌握該方法的核心內(nèi)容。本文以洪峰流量計算為例,展示MATLAB在橋涵水文課程教學(xué)中的應(yīng)用。
某流域有17年實測洪水資料,如表1所示。另調(diào)查到1936年曾發(fā)生一次大洪水,根據(jù)洪痕推算洪峰流量為10 000 m3/s。若取1936年和1998年的洪水為特大洪水,試用矩法計算二百年一遇的設(shè)計洪峰流量。
表1 洪水資料表
解:
總的特大洪水個數(shù)a=2,連續(xù)觀測序列中特大洪水個數(shù)l=1,最大觀測年限N=2000-1936+1=65,連續(xù)觀測年限n=2000-1984+1=17。
偏態(tài)系數(shù)計算:
第一次配線,取Cs=2CvN=0.6702,φ(0.5%,0.6702)=3.1959,
第二次配線,取Cs=3CvN=1.0053,φ(0.5%,1.0053)=3.4934,
第三次配線,取Cs=4CvN=1.3404,φ(0.5%,1.3404)=3.7787,
經(jīng)過三次配線以后發(fā)現(xiàn),第三次配線結(jié)果最符合要求,故選擇二百年一遇的設(shè)計洪峰流量為11 370 m3/s。
頻率與最大洪峰流量關(guān)系見圖1。
圖1 頻率與年最大洪峰流量關(guān)系圖
MATLAB計算程序如下:
clear; close; clc
x_0=[10000;8670;7700;6940;6830;6700;5320;5260;5180;5140;4510;4470;3900;3890;3490;3390;2840;520];
a=2;l=1;
N=65;
for n=1:a
p0(n,1)=n/N;
end
for n=a+1:length(x_0)
p0(n,1)=(n-a+1)/(length(x_0)-a+1);
end
p1=norminv(p0)-norminv(0.0001);
BB=[p1 x_0];
p=[0.1;0.5;1;5;10;15;20;25;30;35;40;45;50;55;60;65;70;75;80;85;90;95;99];
pp=norminv(0.01*p)-norminv(0.0001);
x_av=5017;
cv=[0.3351 0.3351 0.3351];
cs=[2*0.3351 3*0.3351 4*0.3351];
AA(:,1)=pp;
AA(:,2)=((cs(1)/2*gaminv(1-p*0.01,4/cs(1)^2,1)-2/cs(1))*cv(1)+1)*x_av;
AA(:,3)=((cs(2)/2*gaminv(1-p*0.01,4/cs(2)^2,1)-2/cs(2))*cv(2)+1)*x_av;
AA(:,4)=((cs(3)/2*gaminv(1-p*0.01,4/cs(3)^2,1)-2/cs(3))*cv(3)+1)*x_av;
plot(BB(:,1),BB(:,2),'ko','linewidth',1)
hold on
plot(AA(:,1),AA(:,2),'r','linewidth',1)
plot(AA(:,1),AA(:,3),'b--','linewidth',1)
plot(AA(:,1),AA(:,4),'m','linewidth',1)
hold off
h=findobj('type','axes'); set(h,'xtick',[]);
xx=[0.1 1 5 10 20 30 40 50 60 70 90 95 99];
yy=norminv(xx/100,0,1)-norminv(0.0001,0,1);
for i=1:size(yy,2)
line([yy(i),yy(i)],[0 12000],'color','k');
end
for i=1:12000/1000
line([0 yy(end)],[1000*i 1000*i],'color','k');
end
for i=1:size(xx,2)
text('string',num2str(xx(i)),'HorizontalAlignment','center','pos',[yy(i),-500]);
end
set(h,'xlim',[norminv(0.001,0,1)-norminv(0.01/100,0,1), norminv(0.99,0,1)-norminv(0.0001,0,1)],'ylim',[0,12000]);
legend('原始數(shù)據(jù)','第一次配線','第二次配線','第三次配線')
ylabel('年最大洪峰流量(m^3/s)')
xlabel('頻率P(%)','pos', [-norminv(0.0001,0,1)+norminv(0.30,0,1),-200])
1)MATLAB軟件的功能強大,對于一些運算有著提高運算效率的現(xiàn)實意義。
2)對于橋涵水文課程中的一些相關(guān)計算,也具有高效性、精確性的優(yōu)點。
3)在橋涵水文課程的教學(xué)中,教師通過軟件演示的教學(xué)方式,在教授知識的同時引入軟件的應(yīng)用,學(xué)生在編制相關(guān)計算程序的過程中可以將所學(xué)知識融會貫通,對推動現(xiàn)代高等教育改革將發(fā)揮著較好的作用。
[ID:010174]