额,首先,我是北化19级的老学长,你如果是环工,那你寻找的就是这份代码了。

鄙人才疏学浅,C语言不是很懂,而且听说440行,我是直接放弃了。

矩阵模型自然是MATLAB最适合了,MATLAB的翻译就是:矩阵实验室(Matrix Laboratory)

所以我下载了MATLAB,学习了3天。(是我的舍友一直不断的教我)

假设没有MATLAB,那就只能是去机房了,机房有MATLAB。(能用,就是很慢,是2014版本)

废话不多说,上代码。(最好带自己的电脑过去)

第一部分的代码是设计运算的,使用《环境系统分析教程》第二版程声通。第82-84页。按照逻辑和运算顺序输入算法(没学过的可以去菜鸟教程学习一下基础语法,看懂每行作用,老师会问)

代码如下:calculate模块

%%%%%%%%%% 以下是“多河段 BOD-DO 耦合矩阵模型”的程序代码%%%%%%%%%%
function F=calculate(N,Q1,Q,L,O,kd,ka,t,Q3,T,L20,O20)
% Q-在断面i处注入河流的流量,m3/s
% L,O-由断面i注入河流的污水的污染物(例如BOD)浓度与溶解氧(DO)浓度,mg/L
% kd-BOD的降解速度常数,/d
% ka-大气复氧速度,/d
% t-由断面i到断面i+1经过时间,d
% Q3-在断面i处引出的流水流量,m3/s
% L20,O20-河流背景的BOD和DO浓度,mg/L
% 输入题目中变量值Os=468/(31.6+T);%饱和氧算法
for i=1:1:NQ2(i,1)=Q1(i,1)-Q3(i,1)+Q(i,1); %河流Q和BOD的平衡关系,连续性原理Q1(i+1,1)=Q2(i,1);
end
Q1; % Q1i-由上一个河段流到断面i的河水流量,mg/L
Q2; % Q2i-由断面i向下游河段流出的河水流量,mg/L
Q3;
for i=1:1:Na(i,1)=exp(-kd(i,1)*t(i,1));%S-P模型中BOD的变化规律,阿尔法α改为了a
end
a;
for j=1:Nfor i=1:Nif j==iA(i,j)=1;%中间一个穿孔全是1else if j==i-1%穿孔朝下是正常运算的值A(i,j)=-a(i,1)*(Q1(i,1)-Q3(i,1))/Q2(i,1);%A矩阵有效值的计算else A(i,j)=0;endendend
end
for i=1:Nfor j=1:Nif i==jB(i,j)=Q(i,1)/Q2(i,1);%B矩阵有效值的计算else B(i,j)=0;endend
end
A;
B;
g=zeros(N,1);
g(1,1)=a(1,1)*(Q1(1,1)-Q3(1,1))/Q2(1,1)*L20;% 零维矩阵的建立,书上公式
g;
for i=1:N
y(i,1)=exp(-ka(i,1)*t(i,1));
end
y;
for j=1:Nfor i=1:Nif j==iC(i,j)=1;else if j==i-1C(i,j)=(Q1(i,1)-Q3(i,1))/Q2(i,1)*-y(i,1);else C(i,j)=0;endendend
end
for j=1:Nfor i=1:Nif j==i-1D(i,j)=(Q1(i,1)-Q3(i,1))/Q2(i,1)*kd(i,1)/(ka(i,1)-kd(i,1))*(a(i,1)-y(i,1));else D(i,j)=0;endend
end
C;
D;
for i=1:Nf(i,1)=(Q1(i,1)-Q3(i,1))/Q2(i,1)*Os*(1-y(i,1));
end
f;
h=zeros(N,1);
h(1,1)=(Q1(1,1)-Q3(1,1))/Q2(1,1)*y(1,1)*O20-(Q1(1,1)-Q3(1,1))/Q2(1,1)*kd(1,1)/(ka(1,1)-kd(1,1))*(a(1,1)-y(1,1))*L20;
h;
U=A^-1*B; %U是BOD对BOD响应矩阵
U;
V=-C^-1*D*A^-1*B; %V是溶解氧对BOD的响应矩阵
V;
m=A^-1*g;
m;
n=C^-1*B*O+C^-1*(f+h)-C^-1*D*A^-1*g;
n;
L2=U*L+m;
L2;
O2=V*L+n;
O2;
res=cell(1,6);
res{1}=U;
res{2}=V;
res{3}=m;
res{4}=n;
res{5}=L2;
res{6}=O2;
F=res;

第二部分就是交互阶段,MATLAB已经有了一套完整的算法了,现在需要你输入一些实际的工程值进行模拟运算。此时,加入能够输入数值的窗口。

代码如下:interact模块

N=input('请输入河流断面个数n ');
Q1(1,1)=input('请输入背景河水流量Q0(m3/s) ');
Q=input('请输入在断面i处注入河流的污水流量Q(m3/s) ');
L=input('请输入由断面i注入河流的污水的污染物(例如BOD)浓度L(mg/L) ');
O=input('请输入由断面i注入河流的污水溶解氧(DO)浓度O(mg/L) ');
kd=input('请输入BOD的降解速度常数kd(/d) ');
ka=input('请输入大气复氧速度ka(/d) ');
t=input('请输入由断面i到断面i+1经过时间t(d) ');
Q3=input('请输入在断面i处引出的流水流量Q3(m3/s) ');
T=input('请输入河水水温/℃ ');
L20=input('请输入河流背景的BOD浓度L20(mg/L) ');
O20=input('请输入河流背景的DO浓度O20(mg/L) ');
res=calculate(N,Q1,Q,L,O,kd,ka,t,Q3,T,L20,O20);
fprintf('U响应矩阵:\n');
disp(res{1});
fprintf('V相应矩阵:\n');
disp(res{2});
fprintf('m向量:\n');
disp(res{3});
fprintf('n向量:\n');
disp(res{4});
fprintf('各断面BOD浓度:\n');
disp(res{5});
fprintf('各断面DO浓度:\n');
disp(res{6});

那我们看看实际的输入情况吧,毕竟输入的格式也是非常的有要求,这也是MATLAB门槛所在。

上图:

文件最好放置在桌面,这样也非常方便找到。基本上完成这个操作就完成了40%了,继续加油!

没有也简单,打开MATLAB,新建两个文件,复制进去,然后命名保存到桌面,效果一模一样。

调整到,交互页面。全选交互页面所有的代码,右击鼠标,选择第一个(evaluate selection)到这步已经完成了60%了,继续加油!(上图中红字请阅读)

MATLAB是无法识别中文的,这就是不能改文件名的缘由。

那可不可以自己起一个英文名?

理论上可以,但是我觉得你没学MATLAB看不懂报错,你改不回来,我不建议你改。

(程序猿的公理:代码能跑,就别轻易去动,否则你会哭的)

现在,MATLAB已经蓄势待发了,就等待你提供数据,那么我们开始吧!

数据输入如下:(注意看我输入的多个数据,用英文中括号包裹,数据中间用英文分号间隔开)

请输入河流断面个数n 5

请输入背景河水流量Q0(m3/s) 20

请输入在断面i处注入河流的污水流量Q(m3/s) [0.3;0.5;0.8;0.5;1]

请输入由断面i注入河流的污水的污染物(例如BOD)浓度L(mg/L) [150;150;200;200;150]

请输入由断面i注入河流的污水溶解氧(DO)浓度O(mg/L) [1;1;0;0;1]

请输入BOD的降解速度常数kd(/d) [0.1;0.12;0.15;0.18;0.15]

请输入大气复氧速度ka(/d) [0.16;0.2;0.28;0.25;0.3]

请输入由断面i到断面i+1经过时间t(d) [0.5;0.8;0.6;0.5;0.5]

请输入在断面i处引出的流水流量Q3(m3/s) [0.5;1;0.3;0;0.4]

请输入河水水温/℃ 25

请输入河流背景的BOD浓度L20(mg/L) 2

请输入河流背景的DO浓度O20(mg/L) 6

回车键之后我们看看输出的六个矩阵是怎么样的?

输出如下:

剩下的时间就是老师询问了,你得回答出其中某一部分代码的含义,或者某个矩阵的运算方法。

加油,祝你满绩咯!

-----------2021.11.23晚

菩提树下

北化环工多河段BOD—DO耦合矩阵模型相关推荐

  1. 环评3c语言编写多河段bod-do耦合矩阵模型源程序,《环境质量评价学》PPT课件.ppt...

    <<环境质量评价学>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<环境质量评价学>PPT课件.ppt(38页珍藏版)>请在人人文库网上搜索. ...

  2. 软件测试专业院校研究生,北化信息科学与技术学院导师赵瑞莲【计算机考研软件测试与软件可靠性方向】...

    主要研究领域: 主要进行软件测试与软件可靠性相关技术的研究.主持的科研项目有: ①国家自然科学基金项目<含复杂数据和过程调用的EFSM模型测试生成研究及生成效率关键因素分析> ②国家自然科 ...

  3. 大学计算机实验图灵机模型与计算机硬件,北理大学计算机实验基础 实验一_图灵机模型与计算机硬件系统虚拟拆装-实验报告...

    1.1实验一实验一 图灵机模型与计算机硬件系统虚拟拆装图灵机模型与计算机硬件系统虚拟拆装五.实验报告五.实验报告2222实验名称:学号 姓名 班级: 实验时间:年 月 日 实验报告表 1-1 图灵机模 ...

  4. 北邮软工硕士复试笔试科目

    北京邮电大学计算机科学与技术专业硕士研究生复试参考书目: <编译原理与技术>.<计算机系统结构>.<数据库系统原理>.<软件工程>.<通信原理&g ...

  5. 2021-05-08北岛李工阅读笔记+廖常初

    I/O符号表.中间变量m0.0符号表.S区顺序继电器表,定时器及压力值符号表T. ?先做好符号表的定义??YES,在写程序时,已定义的符号,地址,注释会自动列表. 主程序中main调用几处S,Step ...

  6. 不用GPU,稀疏化也能加速你的YOLOv3深度学习模型

    水木番 发自 凹非寺 来自|量子位 你还在为神经网络模型里的冗余信息烦恼吗? 或者手上只有CPU,对一些只能用昂贵的GPU建立的深度学习模型"望眼欲穿"吗? 最近,创业公司Neur ...

  7. 北邮智能车仿真培训(六)—— 修改模型参数

    前言 上一节:北邮智能车仿真培训(五)-- 数据可视化工具的使用 前面的博客基本讲解了怎么将车模部署到你们的电脑上,有些同学可能会有一定的修改模型的需求,比如调整摄像头的角度什么的,这里讲解下如何修改 ...

  8. 线程间定制化调用通信—— 1 高内聚低耦合的前提下,线程操作资源类 2 判断/干活/通知 3 多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if)

    生产者与消费者模式 一个生产者与一个消费者 题目:现在有两个线程,可以操作初始值为0的一个变量,实现一个线程对该变量加1,另一个线程对该变量减1,这两个线程的操作加一.减一交替,进行10轮,变量的初始 ...

  9. 大学计算机实验图灵机模型与计算机硬件,北理大学计算机实验基础 实验一_图灵机模型与计算机硬件系统虚拟拆装-实验报告.doc...

    PAGE 1 实验一 图灵机模型与计算机硬件系统虚拟拆装 2x2x2 实验名称: 学号 姓名 班级: 实验时间:年 月 日 实验报告表1-1图灵机模型中的主要组成部分及作用 主要组成部分名称 作用 无 ...

  10. python容器开发_python学习之容器化管理docker

    Docker简介 1.1 什么是虚拟化 在计算机中,虚拟化(英文: Virtualization)是一种资源管理技术,是将计算机的各种实体资源(如: 服 务器.网络.内存及存储等)予以抽象.转化后呈现 ...

最新文章

  1. 一个流畅的iOS图表框架PNChart
  2. dede DedeTag Engine Create File False
  3. 一日千里 云计算普及势不可挡
  4. 台达b2伺服说明书_三菱Q系列定位模块及伺服参数不会设置?看这一篇就够了!...
  5. nodejs即时聊天
  6. Springmvc架构详解
  7. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...
  8. NHibernate学习之基础配置
  9. 开源 免费 java CMS - FreeCMS1.3-信息管理
  10. python读取cad_SmartSoft中用C#.Net实现AutoCAD块属性提取|python基础教程|python入门|python教程...
  11. JAVA+Appium 自动化实现手机屏幕滑动点击操作
  12. 006 window7或虚拟机上不了网或DNS出问题
  13. Android开发经验
  14. c语言编程TLC2543AD采集,TLC2543单片机程序 带Proteus仿真 电路原理图 AD转换实验
  15. 2021-08-16 WPF控件专题 WrapPanel 控件详解
  16. 2020年煤矿安全监测监控新版试题及煤矿安全监测监控试题及答案
  17. linux教程for语句,Bash 中的 For 循环详解
  18. 土地调查图斑编号_“三调”图斑标注方法
  19. 企业信息安全危机新花招——以疫苗为诱饵
  20. 计算机毕业设计Java疫情期间的物资分派管理系统(系统+源码+mysql数据库+Lw文档)

热门文章

  1. asp问题之ActiveX部件不能创建对象 (2006.7.28)
  2. 吸烟识别 行人检测 香烟检测yolo
  3. 嫦娥四号使用了SPARC抗辐射处理器
  4. CSS中行内元素与块级元素-FF浏览器dt中的h2,h3溢出
  5. 【1day】复现泛微e-cology SQL注入漏洞weaver.file.FileDownloadForOutDoc(QVD-2023-15672)
  6. Html5惯性小鸟游戏制作与分享(经典游戏)
  7. 7大类主流的3D打印技术(转载)
  8. 小薛读论文02:带第二阶段收益不确定性的两阶段多二进制背包问题(L-shaped cut 和 benders cut)
  9. Java 实现 蓝桥杯 等额本金
  10. 解决Class 'swoole_server' not found