数学建模高手过来

2025-12-17 17:05:21
推荐回答(1个)
回答1:

1、拟合第1时段的水位,并导出流量

设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第1时段各时刻的流量可如下得:
1) c1=polyfit(t(1:10),h(1:10),3);
%用3次多项式拟合第1时段水位,c1输出3次多项式的系数

2)a1=polyder(c1);
% a1输出多项式(系数为c1)导数的系数

3)tp1=0:0.1:9;
x1=-polyval(a1,tp1) % x1输出多项式(系数为a1)在 tp1点的函数值(取负后边为正值),即tp1时刻的流量

2、拟合第2时段的水位,并导出流量

设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第2时段各时刻的流量可如下得:
1) c2=polyfit(t(10.9:21),h(10.9:21),3);
%用3次多项式拟合第2时段水位,c2输出3次多项式的系数
2) a2=polyder(c2);
% a2输出多项式(系数为c2)导数的系数
3)tp2=10.9:0.1:21;
x2=-polyval(a2,tp2); % x2输出多项式(系数为a2)在tp2点
的函数值(取负后边为正值),即tp2时刻的流量
拟合供水时段的流量
在第1供水时段(t=9~11)之前(即第1时段)和之后(即第 2时段)各取几点,其流量已经得到,用它们拟合第1供水时段的流量.为使流量函数在t=9和t=11连续,我们简单地只取4个点,拟合3次多项式(即曲线必过这4个点),实现如下:
xx1=-polyval(a1,[8 9]); %取第1时段在t=8,9的流量
xx2=-polyval(a2,[11 12]); %取第2时段在t=11,12的流量
xx12=[xx1 xx2];
c12=polyfit([8 9 11 12],xx12,3); %拟合3次多项式
tp12=9:0.1:11;
x12=polyval(c12,tp12); % x12输出第1供水时段
各时刻的流量

在第2供水时段之前取t=20,20.8两点的流水量,在该时刻之后(第3时段)仅有3个水位记录,我们用差分得到流量,然后用这4个数值拟合第2供水时段的流量如下:
dt3=diff(t(22:24)); %最后3个时刻的两两之差
dh3=diff(h(22:24)); %最后3个水位的两两之差
dht3=-dh3./dt3; %t(22)和t(23)的流量
t3=[20 20.8 t(22) t(23)];
xx3=[-polyval(a2,t3(1:2),dht3)]; %取t3各时刻的流量
c3=polyfit(t3,xx3,3); %拟合3次多项式
t3=20.8:0.1:24;
x3=polyval(c3,tp3);% x3输出第2供水时段
(外推至t=24)各时刻的流量
一天总用水量的估计

第1、2时段和第1、2供水时段流量的积分之和,就是一天总用水量.虽然诸时段的流量已表为多项式函数,积分可以解析地算出,这里仍用数值积分计算如下:
y1=0.1*trapz(x1); %第1时段用水量(仍按高
度计),0.1为积分步长
y2=0.1*trapz(x2); %第2时段用水量
y12=0.1*trapz(x12); %第1供水时段用水量
y3=0.1*trapz(x3); %第2供水时段用水量
y=(y1+y2+y12+y3)*237.8*0.01; %一天总用水量( )
计算结果:y1=146.2, y2=266.8, y12=47.4, y3=77.3,y=1250.4
流量及总用水量的检验

计算出的各时刻的流量可用水位记录的数值微分来检验.用水量y1可用第1时段水位测量记录中下降高度968-822=146来检验,类似地,y2用1082-822=260检验.
供水时段流量的一种检验方法如下:供水时段的用水量加上水位上升值260是该时段泵入的水量,除以时段长度得到水泵的功率(单位时间泵入的水量),而两个供水时段水泵的功率应大致相等.第1、2时段水泵的功率可计算如下:
p1=(y12+260)/2; %第1供水时段水泵的功率
(水量仍以高度计)
tp4=20.8:0.1:23;
xp2=polyval(c3,tp4); % xp2输出第2供水时段
各时刻的流量
p2=(0.1*trapz(xp2)+260)/2.2; %第2供水时段水泵的功率
(水量仍以高度计)
计算结果:p1=154.5 ,p2=140.1