/* タンクモデルの計算 tank2.c */ #include void main(void) { double u; /* 水位(mm) */ double v; /* 漏れの速さ(mm3/sec) */ double dv; /* dt秒間の流出水量(mm3) */ double du; /* dt秒間の水位低下量(mm) */ double c1; /* 底面流出孔の水の漏れやすさ係数 */ double c2; /* 側面の流出孔の水の漏れやすさ係数 */ double t; /* 時間 */ double h2; /* 側面流出孔の高さ */ double dt; /* 時間の刻み幅 */ int tm; u=100.0; /* 水位の初期値 */ t=0.0; /* 時間(秒)*/ dt=1.0; /* 時間の刻み幅 */ c1=0.1; /* 底面流出孔の水の漏れやすさ係数初期値 */ c2=0.1; /* 側面流出孔の水の漏れやすさ係数初期値 */ h2=50.0; /* 側面流出孔の底面からの高さ */ for(tm=0;tm<60;tm++){ printf("%6.3lf %6.3lf\n",t,u); u=u-c1*u*dt; /* このif文に注意 */ if(u>h2){ u=u-c2*(u-h2)*dt; } t+=dt; } }