水塔流量問題_第1頁
水塔流量問題_第2頁
水塔流量問題_第3頁
水塔流量問題_第4頁
水塔流量問題_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、本科生課程設(shè)計報告實習(xí)課程數(shù)值分析學(xué)院名稱管理科學(xué)學(xué)院專業(yè)名稱學(xué)生姓名學(xué)生學(xué)號指導(dǎo)教師實驗地點實驗成績 二 一 六 年 六 月 二 一 六 年 六 月估計水塔的水流量摘要水塔流量的估計是一個較為經(jīng)典的數(shù)學(xué)建模問題,本問題最大的困難在于不知泵啟動時水位的變化和向外水流的速度.解決該問題,先確定近似流速,利用中點數(shù)值求導(dǎo)公式計算出每個時間點出的流速,再利用插值與擬合計算出流速與時間的函數(shù),對0到24小時積分可得總用水量,這是第一種方法.第二種方法,水泵沒有開動時利用高度差計算用水量,水泵開動時利用積分,這樣計算出的結(jié)果較為準(zhǔn)確,2種方法比較,可得出誤差.關(guān)鍵詞:中點數(shù)值求導(dǎo);插值與擬合;積分目錄第

2、1章 前言11.1 內(nèi)容及要求11.2 研究思路及結(jié)構(gòu)安排2第2章 模型建立與求解32.1模型假設(shè)32.2確定近似流速32.3 確定水泵啟動時的流量及總流量曲線42.4確定總用水量4第3章 算法步驟63.1 中點數(shù)值求導(dǎo)函數(shù)步驟及流程圖63.2 三次樣條插值函數(shù)步驟及流程圖7第4章 算法實現(xiàn)74.1 程序總體結(jié)構(gòu)74.2 源程序清單84.3 程序運行12第5章 誤差分析14第6章 模型的評價和改進156.1 優(yōu)點156.2 缺點156.3 模型的改進方向15參考文獻1516第1章 前言1.1 內(nèi)容及要求某地的用水管理機構(gòu)要求各社區(qū)提供各個時刻的用水率以及每天所用的總用水量。但許多社區(qū)并沒有測量

3、流入或流出當(dāng)?shù)厮乃康脑O(shè)備,他們只能代之以每小時測量水塔中的水位,其誤差不超過0.5%。更為重要的是,無論什么時候,只要水塔中的水位下降到最低水位L時,水泵就自動啟動向水塔重新充水直到最高水位H時水泵自動停止,但也無法得到水泵的供水量的測量數(shù)據(jù)。因此,在水泵正在工作時,人們不容易建立水塔中水位與水泵工作時的用水量之間的關(guān)系。水泵每天向水塔充水一次或兩次,每次約二小時。下表為某地一天中的真實的數(shù)據(jù)。表1某天水塔水位測量記錄時刻t(秒)03316663510619139371792121240水位(0.01英尺)3175311030542994294728922850時刻t(秒)2522328

4、5433228435932393323943543318水位(0.01英尺)279527522697水泵啟動水泵啟動35503445時刻t(秒)46636499535393657254605746455468535水位(0.01英尺)3350326031673087301229272842時刻t(秒)71854750217925482649859688995393270水位(0.01英尺)27672697水泵啟動水泵啟動347533973340水塔是一個高40英尺、直徑57英尺的圓柱。按照設(shè)計,水塔水位降至約L=27英尺時,水泵自動啟動加水;當(dāng)水位升高到約H=35.5英尺米時,水泵自動停止工作

5、。試估計在任何時刻(包括水泵正在供水時)水從水塔流出的流量f(t),并估計一天的總用水量。1.2 研究思路及結(jié)構(gòu)安排本問題最大的困難在于不知道水泵啟動時水位的變化和向外水流的速度。用水量等于向外水流速度乘以時間。因此,如何確定流速是解決該問題的關(guān)鍵。第2章 模型建立與求解2.1模型假設(shè)(1)除了問題中特別說明的數(shù)據(jù)以外,其他給定的數(shù)據(jù)其測量誤差不超過0.5%;(2)一天之中,任意從一個開始時刻,如從t=0起到t=24小時結(jié)束,一天開始時刻的不同不影響一天總水量;(3)管理部門不考慮水流速度的瞬間值,感興趣的是整個一天中的用水總趨勢;(4)水泵抽水的速度是均勻的;(5)假設(shè)水流的速度是連續(xù)變化的

6、,流速可以用一條光滑的曲線近似表示,即在給定的數(shù)據(jù)點上有連續(xù)的二階導(dǎo)數(shù)。2.2確定近似流速水泵不供水時,水流速度不難用數(shù)值方法描述,但如何描述清楚水泵向水塔供水期間的流速?我們首先估計水泵不啟動時,每個已知數(shù)據(jù)點上的流速。流速等于水量的變化除以時間的變化。假設(shè)為時刻水塔中水的容量,表示時刻水塔中水的容量為。使用中點數(shù)值求導(dǎo)公式,求處的導(dǎo)數(shù)的近似值。水泵不啟動時段共有3段,對于每段的前兩個點對于每段的后兩個點 對于每段的其余點如此,可得各時刻點上的流速。 (負號保證流速為正數(shù))2.3 確定水泵啟動時的流量及總流量曲線在2.3.1中已經(jīng)得到了已知數(shù)據(jù)點(水泵不啟動時)上的近似流速,根據(jù)假設(shè)(5),

7、水流的速度可以表示為一條光滑的曲線。因此考慮使用已經(jīng)求出的水泵未啟動時的流速來近似模擬水泵啟動時的流速,這種模擬有兩種方式:插值和擬合。由于假設(shè)流速具有連續(xù)的二階導(dǎo)數(shù),因此采用三次樣條插值多項式來模擬任意時刻的流速。用表示時刻 的流速。2.4確定總用水量前面已經(jīng)求出水流的流速曲線,如何求總用水量呢? 如果畫出流速曲線,就可以從流速曲線圖看出,流速在0時刻和24時的流速近似相等,因此流速是近似地以一天為周期的??梢钥紤]以下兩種方式:1)一種方式是使用流速在時刻0至24小時上積分 2)直接根據(jù)高度的變化求出水泵不啟動時的用水量用積分求出水泵啟動時的用水量近似值,然后相加。選擇024小時內(nèi)的范圍,0

8、8.9678小時內(nèi),高度從31.75下降至26.97英尺,用水量為在10.954220.8392小時內(nèi),高度從35.50降至2697英尺,用水量為 然后用數(shù)值積分求出兩次水泵啟動期間的用水量 總用水量為第3章 算法步驟3.1 中點數(shù)值求導(dǎo)函數(shù)步驟及流程圖圖 1 中點數(shù)值求導(dǎo)函數(shù)流程圖3.2 三次樣條插值函數(shù)步驟及流程圖圖2 三次樣條插值函數(shù)流程圖第4章 算法實現(xiàn)4.1 程序總體結(jié)構(gòu)圖 3 程序函數(shù)調(diào)用關(guān)系4.2 源程序清單#include<stdio.h>#include<math.h>#define N 24double Q1=0,Q2=0,q1=0,q2=0,nN=

9、0,mN=0;/依次為法一積分、法二積分、兩次啟動水泵期間用水量、每次積分void zhuigan2(double a,double b,double c,double d,double m) /第二類邊界追趕法求解方程組的解double eN,fN;e0=c1/b1;f0=d1/b1;for(int i=1;i<N-3;i+)ei=ci+1/(bi+1-ai+1*ei-1);for(i=1;i<N-2;i+)fi=(di+1-ai+1*fi-1)/(bi+1-ai+1*ei-1);mN-2=fN-3;for(i=N-3;i>0;i-)mi=fi-1-ei-1*mi+1;vo

10、id chazhi2(double x,double y,double s) /第二類邊界條件及自然插值double hN,aN,bN,cN,dN,mN; for(int i=0;i<N;i+)bi=2;for(i=0;i<N-1;i+) /計算hNhi=xi+1-xi;for(i=1;i<N-1;i+) /計算aN,cNai=hi-1/(hi+hi-1);ci=1-ai;for(i=1;i<N-1;i+) /計算dNdi=(6/(hi+hi-1)*(yi+1-yi)/hi)-(yi-yi-1)/hi-1);d1=d1-a1*s0;dN-2=dN-2-cN-2*s1;m

11、0=s0;mN-1=s1;zhuigan2(a,b,c,d,m); /追趕法求mNprintf("n追趕法求出m:n");for(i=0;i<N;i+) /輸出mNprintf("m%d=%.2fn",i,mi);/printfcz(h,x,y,m);void median(double *t,double *f,double *v)v0=1/(t2-t0)*(-3*f0+4*f1-f2);/第一段數(shù)據(jù)中值求導(dǎo)v1=1/(t2-t0)*(f2-f0);v8=1/(t9-t7)*(f9-f7);v9=1/(t9-t7)*(3*f9-4*f8+f7);

12、for(int i=2;i<8;i+)vi=1/(3*(ti+2-ti-2)*(fi-2-8*fi-1+8*fi+1-fi+2);v10=1/(t12-t10)*(-3*f10+4*f11-f12);/第二段數(shù)據(jù)中值求導(dǎo)v11=1/(t12-t10)*(f12-f10);v19=1/(t20-t18)*(f20-f18);v20=1/(t20-t18)*(3*f20-4*f19+f18);for(i=12;i<19;i+)vi=1/(3*(ti+2-ti-2)*(fi-2-8*fi-1+8*fi+1-fi+2);v21=1/(t23-t21)*(-3*f21+4*f22-f23);

13、/第三段數(shù)據(jù)中值求導(dǎo)v22=1/(t23-t21)*(f23-f21);v23=1/(t23-t21)*(3*f23-4*f22+f21);void Integral(double h,double x,double y) /積分法int i;double k3,c,d; /k數(shù)組為三次樣條插值函數(shù)各項系數(shù)printf("*n");printf("計算一天總水量:n");printf("tt方法1:024小時函數(shù)直接積分計算總用水量n");printf("積分結(jié)果為:n");for(i=0;i<N-1;i+)

14、 /計算每段函數(shù)的積分 k0=(mi+1-mi)/(6*hi);k1=mi/2;k2=(yi+1-yi)/hi-hi*(2*mi+mi+1)/6;if(i<21)c=pow(xi+1-xi,4)*k0/4+pow(xi+1-xi,3)*k1/3+pow(xi+1-xi,2)*k2/2+yi*xi+1; /代上限d=yi*xi; /代下限ni=c-d; elsec=pow(24-xi,4)*k0/4+pow(24-xi,3)*k1/3+pow(24-xi,2)*k2/2+yi*24; /代上限d=yi*xi; /代下限ni=c-d; for(i=0;i<N-1;i+)Q1+=ni;

15、/每段積分求和,即0到24小時用水量printf("%fn",Q1);printf("*n");void way2(double t,double f) /高度變化結(jié)合積分求水量double PI=3.14159265,DIA=57;q1=fabs(PI*(DIA/2.0)*(DIA/2.0)*(f9-f0)*0.01;q2=fabs(PI*(DIA/2.0)*(DIA/2.0)*(f19-f10)*0.01;Q2+=q1+q2+n9+n20+n21;printf("tt方法2:積分與高度變化結(jié)合求用水量");printf("

16、;n第1次水泵啟動時用水量為:%fn",n9);printf("第2次水泵啟動時用水量為:%fn",n20);printf("n%f%f用水量為:%fn",t0,t9,q1);printf("%f%f用水量為:%fn",t10,t20,q2);printf("總用水量為:%fn",Q2);printf("*n");void CountError() /計算誤差double w;w=(Q1-n9-n20-n21)-(Q2-n9-n20-n21)/(Q2-n9-n20-n21);print

17、f("用水量誤差為:%f%n",w*100);void main()double tN=0,0.9211,1.8431,2.9497,3.8714,4.9781,5.9000,7.0064,7.9286,8.9678,10.9256,12.0328,12.9544,13.8758,14.9822,15.9039,16.8261,17.9317,19.0375,19.9594,22.9581,23.8800,24.9869,25.9083;double fN=3175,3110,3054,2994,2947,2892,2850,2795,2752,2697,3550,3445

18、,3350,3260,3167,3087,3012,2927,2842,2767,2697,3475,3397,3340;double vN=0;double S=3.1415*28.5*28.5;for(int i=0;i<N;i+)fi=fi*S*0.01;printf("數(shù)據(jù)已錄入,現(xiàn)在計算n");median(t,f,v);/計算導(dǎo)數(shù)for(i=0;i<N;i+)vi=-vi;printf("中值求導(dǎo)計算完畢,各時間點流量導(dǎo)數(shù)為:n");for(i=0;i<N;i+)printf("%10.2f",vi);p

19、rintf("現(xiàn)在開始三次樣條插值近似出導(dǎo)數(shù)函數(shù)n");double s2=0;chazhi2(t,v,s);/計算擬合函數(shù)for(i=0;i<N;i+)fi=fi/S/0.01;Integral(f,t,v);way2(t,f); /方法2計算總水量CountError(); /計算誤差4.3 程序運行圖4 水塔流量程序運行結(jié)果圖5 水塔流量程序運行結(jié)果運行結(jié)果說明:通過積分的方法算出的用水量為37879,通過綜合計算的方法計算出的用水量為36363,兩次結(jié)果都與實驗說明相差8000,原因應(yīng)該是計算過程中,曲線的擬合處出現(xiàn)了較大誤差;而兩次計算的相對誤差為4.7%,結(jié)果相對比較接近實驗說明的要求。所以,此次編程雖然有些許誤差,但是實驗結(jié)果仍然表明整個方法沒有根本性錯誤。 第5章 誤差分析考慮前面兩種求總用水量的結(jié)果,由數(shù)值積分求出,結(jié)合高度和數(shù)值積分求出。根據(jù)高度求出的水泵未啟動時的用水量可以認為是精確的。由數(shù)值積分求出的水泵未啟動時的用水量。根據(jù)高度求出的水

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論