Python(解非线性方程和线性方程)求水力学法向深度-浪涌高度速度及互连反应器中的浓度和流体分布

news/2024/11/20 0:35:48/

非线性方程

在水力学领域遇到的非线性方程的一个例子是通过长梯形通道寻找流动的法向深度 yny_nyn。 这样的流动深度出现在均匀流动区域,远离任何不均匀原因的影响,例如堰的上游。

法向深度 yny_nyn 可以通过求解以下方程获得:

Q=1nAR2/3S01/2Q=\frac{1}{n} A R^{2 / 3} S_{0}^{1 / 2} Q=n1AR2/3S01/2

浪涌高度和速度

非线性方程的另一种情况,也来自水利工程领域,是计算由于在其一端的流量突然增加或减少而在一维通道中发生的冲击波的高度。

图示了两种这样的情况,一种是由于下游端的流量减少,另一种是由于上游端的流量增加。 两幅图都描绘了所谓的正涌浪,即行波后面的水深大于其前面的水深。 第一种情况可能发生在水电运河中,其中控制进入涡轮机的水的下游闸门突然运行以减少排放。 另一个可能在水力发电机组的出口通道中,由于涡轮转轮的启动,排放量突然增加。 另一种类型的浪涌可能发生在带有闸门的通道中,该通道阻止了储备的水,而储备的水突然被撤回。 然后产生一个负浪涌,其中波浪向上传播的水流深度小于其前面的水深。

狭窄和凸起通道部分的水流深度

线性方程

在求解联立方程时通常会出现一组包含 n 个未知变量的 n 个方程。 下面介绍了这种“方程组”的一些代表性示例,这些示例取自水利工程和水文学领域,需要同时求解方程。

反应堆稳态分析系统

管网流量的稳态分布

单位水文的推导

Python求解上述方程

import numpy as np
import matplotlib.pylab as plt
b0 = 20.0
s = 2.0
s0 = 0.001
mn = 0.020
Q = 40
yinitial = 1.0
errorallow = 0.0001
def area(y):area=y*(b0+s*y)return area
def wetperi(depth):wetperi = b0+2*depth*np.sqrt(1+s*s)return wetperi
def hyrad(depth):hyrad = (b0+depth*s)*depth/(b0+2*depth*np.sqrt(1+s*s))return hyrad
def topwidth(depth):topwidth=b0+2*s*depthreturn topwidth
iter = 0
max_error = 1.0
yn = yinitial
while (max_error > errorallow):iter = iter+1Fyn = area(yn)**1.6667/wetperi(yn)**0.6667-mn*Q/
np.sqrt(s0)

源代码

参阅 - 亚图跨际

http://www.ppmy.cn/news/40938.html

相关文章

第十四届蓝桥杯大赛软件赛省赛-试题 B---01 串的熵 解题思路+完整代码

欢迎访问个人网站来查看此文章:http://www.ghost-him.com/posts/db23c395/ 问题描述 对于一个长度为 n 的 01 串 Sx1x2x3...xnS x_{1} x_{2} x_{3} ... x_{n}Sx1​x2​x3​...xn​,香农信息熵的定义为 H(S)−∑1np(xi)log2(p(xi))H(S ) − {\textstyl…

web自动化测试入门篇06 —— 元素定位进阶技巧

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

场景联动设备触发消息设计思考

场景联动设备触发消息设计思考 一:数据丢失。 消息是否会发生丢失,在于以下 3 个环节: 1、生产者会不会丢消息? 2、消费者会不会丢消息? 3、队列中间件会不会丢消息? 生产者会不会丢消息?…

什么是事务,了解事务的隔离级别和传播行为

一、什么是事务? 事务(Transaction)是访问并可能更新数据库中各项数据项的一个程序执行单元(unit)。 事务由事务开始(begin transaction)和事务结束(end transaction)之间…

行为型模式-责任链模式

行为型模式-责任链模式 责任链模式(Chain of Responsibility)解决请求处理问题描述适用环境优点:缺点:违反原则:代码实现责任链模式(Chain of Responsibility) 解决请求处理问题 描述 通过将多个对象组成一条处理链来依次处理请求,从而使得请求能够被动态地转发和处…

头歌(Linux之进程管理一):第2关:进程创建操作-fork

任务描述 在上一关我们学习如何获取进程的pid信息,本关我们将介绍如何编程创建一个新的进程。 本关任务:学会使用C语言在Linux系统中使用fork系统调用创建一个新的进程。 相关知识 在Linux系统中创建进程有很多函数可以使用,其中包括了系…

银行数字化转型导师坚鹏:城商行数字化转型案例研究

城商行数字化转型案例研究课程背景: 很多银行存在以下问题:不清楚城商行数字化转型能否成功?不知道其它城商行数字化转型的成功做法?不知道其它标杆城商行的数字化转型战略? 课程特色:用实战案例解…

个人练习-Leetcode-1588. Sum of All Odd Length Subarrays

题目链接:https://leetcode.cn/problems/sum-of-all-odd-length-subarrays/ 题目大意:给出一个数组,求其中所有长度为奇数的子列的所有元素和。 思路:虽然写着是简单题(暴力做可以通过),但一看…