【Python\Matlab】计算风管摩擦阻力系数
在设计V型滤池的过程中,有一步是计算鼓风机的风管摩擦阻力系数,由于这个方程是一个超越方程,故手按计算器还是有点麻烦,直接上代码计算可以一步到位,在此留作记录。
计算公式
其中,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求解器是按梯度下降法进行求解的,所以求出的解不一定是全局最优解,故在计算前应该对答案有一个大致的估计。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程