【Python\Matlab】计算风管摩擦阻力系数

在设计V型滤池的过程中,有一步是计算鼓风机的风管摩擦阻力系数,由于这个方程是一个超越方程,故手按计算器还是有点麻烦,直接上代码计算可以一步到位,在此留作记录。

计算公式

\frac{1}{\sqrt{\lambda }}=-2lg(\frac{K}{3.71d}+\frac{2.51}{Re\sqrt{\lambda}})

其中,K、Re、d都是常数,具体含义水er应该都明白,主要是计算lambda。

代码

python版本

from scipy.optimize import fsolve
from math import sqrt,log10
import numpy as np

Re,K,d=316178,0.15e-3,0.4
sol = fsolve(lambda x:
             1/sqrt(x)+2*log10(K/(3.71*d)+2.51/(Re*sqrt(x)))
             , np.array([0.001]))
print(sol)

Matlab版本

Re=291975;K=0.15e-3;d=0.4;
func=@(x) (1/sqrt(x)+2*log10(K/(3.71*d)+2.51/(Re*sqrt(x))));
fsolve(func,0.0001)

解释

以Python版本为例,主要是使用fsolve这个函数,里面涉及两个参数,第一个参数我使用lambda x匿名函数来写的,即带求解的方程,第二个参数我是用np.array来写的,即从0.001开始迭代计算。

fsolve求解器是按梯度下降法进行求解的,所以求出的解不一定是全局最优解,故在计算前应该对答案有一个大致的估计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值