[MATLAB]河道水流量的估算问题

本试验取材于中南大学《科学计算与MATLAB语言》。
下面进行题目描述与题目分析和解答:
根据实际测量,得到河流某处宽600m,其横截面不同位置某一时刻的水深如下表所示:
在这里插入图片描述
①若此刻水流的流速为0.6m/s,试估计该河流此刻的流量。
②已知x方向[50,60]区间为坡式护岸的下部护脚部分,根据相关堤防设计规范,抛石护岸坡度应缓于1:1.5(正切值),请估计水流冲刷是否已破坏该区域的护脚.

看到题目的时候,看见两者相对应,先画出散点图,然后

  • 拟合出河床曲线
  • 定积分计算,求得河流横截面也就是可估计流量
  • 根据河床曲线,计算导数,

便可判断导数函数值是否大于1:1.15,如果大于,那太陡,可能水流冲刷破坏该区域的护脚.
第(1)问代码:

>> xi=0:50:600;
>> yi=[4.4,4.5,4.6,4.8,4.9,5.1,5.4,5.2,5.5,5.2,4.9,4.8,4.7];
>> p=polyfit(xi,yi,3);
>> plot(xi,yi,'o',xi,polyval(p,xi),'r');
>> syms y x;
>> y=poly2sym(p,x);
>> s=int(y,x,0,600);%%计算横截面积
>> v=s*0.6;
>> eval(v)

ans =

  1.7874e+003

>> 

在这里插入图片描述
曲线倒着的可以求面积,但无法求函数斜率,也就是需要把函数再倒一下
第(2)问代码:

>> xi=0:50:600;
>> yi=[4.4,4.5,4.6,4.8,4.9,5.1,5.4,5.2,5.5,5.2,4.9,4.8,4.7];
>> yn=-yi;
>> p=polyfit(xi,yn,3);
>> plot(xi,yn,'o',xi,polyval(p,xi));
>> syms y x yii;
>> y=poly2sym(p,x);
>> yii=diff(y,x);
>> x=50:60;
>> y=polyval(p,x);
>> k=diff(y)/1;
>> all(abs(k)<1/1.5)

ans =

     1

>> 

总结:河流不会冲毁护脚!
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值