2023 年 亚太赛 APMCM (B题)国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。

在这里插入图片描述

问题一:

建立没有作物的玻璃温室内的温度和风速分布数学模型,我们可以采用流体力学和热传导的基本方程。假设温室内的流体是不可压缩、稳定、定常的,并考虑热传导和对流。

  1. 质量守恒方程:
    ∇ ⋅ v = 0 \nabla \cdot \mathbf{v} = 0 v=0
    这里, v \mathbf{v} v 是速度场矢量。

  2. 动量守恒方程:
    ρ ( ∂ v ∂ t + v ⋅ ∇ v ) = − ∇ p + μ ∇ 2 v + ρ g \rho \left(\frac{\partial \mathbf{v}}{\partial t} + \mathbf{v} \cdot \nabla \mathbf{v}\right) = -\nabla p + \mu \nabla^2 \mathbf{v} + \rho \mathbf{g} ρ(tv+vv)=p+μ2v+ρg
    其中, ρ \rho ρ 是流体密度, p p p 是压力, μ \mu μ 是动力粘度, g \mathbf{g} g 是重力矢量。

  3. 能量守恒方程:
    ρ C p ( ∂ T ∂ t + v ⋅ ∇ T ) = ∇ ⋅ ( k ∇ T ) + ρ H \rho C_p \left(\frac{\partial T}{\partial t} + \mathbf{v} \cdot \nabla T\right) = \nabla \cdot (k \nabla T) + \rho H ρCp(tT+vT)=(kT)+ρH
    其中, C p C_p Cp 是比热容, T T T 是温度场, k k k 是热导率, H H H 是热源(考虑加热风的影响)。

  4. 边界条件:

    • 温室的外玻璃和底部土壤被设置为壁条件,即流体不能穿过它们。
    • 温室风扇一侧的边界条件被设置为速度入口条件,水平方向以平均速度吹出暖空气。
      温室外表面:速度和温度的法向梯度等于零,即流体不能穿过温室外表面。
      温室风扇一侧:速度边界条件,水平方向以平均速度吹出暖空气(具体参数可根据实际情况调整)。
      温室内部:作物的多孔介质边界条件,考虑作物的冠层阻力。
  5. 初始条件:

    • 温室内的初始温度设定为20°C。

通过数值解这组方程,可以获得在温室高度为0.5米的横截面上的风速和温度的分布。

  1. 速度场方程:
    ∂ u ∂ x + ∂ v ∂ y + ∂ w ∂ z = 0 \frac{\partial u}{\partial x} + \frac{\partial v}{\partial y} + \frac{\partial w}{\partial z} = 0 xu+yv+zw=0
    这里, u u u, v v v, 和 w w w 分别是速度场在 x、y 和 z 方向上的分量。

  2. Navier-Stokes 动量守恒方程(在稳态、不可压缩的情况下):
    ρ ( u ∂ u ∂ x + v ∂ u ∂ y + w ∂ u ∂ z ) = − ∂ p ∂ x + μ ∇ 2 u + ρ g x \rho \left(u \frac{\partial u}{\partial x} + v \frac{\partial u}{\partial y} + w \frac{\partial u}{\partial z}\right) = -\frac{\partial p}{\partial x} + \mu \nabla^2 u + \rho g_x ρ(uxu+vyu+wzu)=xp+μ2u+ρgx
    同样的方程适用于 v v v w w w 分量,其中 g x g_x gx 是重力场在 x 方向上的分量。

  3. 热传导方程:
    ρ C p ( u ∂ T ∂ x + v ∂ T ∂ y + w ∂ T ∂ z ) = k ∇ 2 T + ρ H \rho C_p \left(u \frac{\partial T}{\partial x} + v \frac{\partial T}{\partial y} + w \frac{\partial T}{\partial z}\right) = k \nabla^2 T + \rho H ρCp(uxT+vyT+wzT)=k2T+ρH
    这里, T T T 是温度场。

  4. 初始条件:

    • 温室内初始时刻的速度和温度分布。
  5. 附加约束:

    • 适宜的风速范围为0.3-1m/s。
    • 适宜的温度范围为23-26°C。
    • 考虑温室结构,包括玻璃的导热性、风扇的特性等。

数学模型的求解可以使用数值方法,如有限体积法或有限元法,通过在计算网格上离散化方程组,迭代求解以获得温室内温度和风速的分布。

问题二

为了建立种植了作物的玻璃温室内的温度和风速分布的数学模型,我们需要考虑作物的冠层阻力以及温室内的空气流动。以下是数学模型的一般描述:

流体动力学方程:

质量守恒方程:

∇ ⋅ v = 0 \nabla \cdot \mathbf{v} = 0 v=0

Navier-Stokes 动量守恒方程:

ρ ( ∂ v ∂ t + v ⋅ ∇ v ) = − ∇ p + μ ∇ 2 v + ρ g \rho \left(\frac{\partial \mathbf{v}}{\partial t} + \mathbf{v} \cdot \nabla \mathbf{v}\right) = -\nabla p + \mu \nabla^2 \mathbf{v} + \rho \mathbf{g} ρ(tv+vv)=p+μ2v+ρg

其中, v = ( u , v , w ) \mathbf{v} = (u, v, w) v=(u,v,w) 是速度场矢量, p p p 是压力, μ \mu μ 是动力粘度, ρ \rho ρ 是流体密度, g = ( 0 , 0 , − g ) \mathbf{g} = (0, 0, -g) g=(0,0,g) 是重力矢量。

热传导方程:

能量守恒方程:

ρ C p ( ∂ T ∂ t + v ⋅ ∇ T ) = ∇ ⋅ ( k ∇ T ) + ρ H \rho C_p \left(\frac{\partial T}{\partial t} + \mathbf{v} \cdot \nabla T\right) = \nabla \cdot (k \nabla T) + \rho H ρCp(tT+vT)=(kT)+ρH

其中, T T T 是温度场, C p C_p Cp 是比热容, k k k 是热导率, H H H 是热源(可能包括作物的代谢产生的热)。

作物模型:

作物的冠层阻力可以通过适当的参数化来考虑,例如引入一个与作物生长状态相关的阻力项。

边界条件:

  1. 速度边界条件:

    • 温室风扇一侧设置为速度入口条件,水平方向以平均速度吹出暖空气。
    • 温室内其余表面设定为壁条件,防止空气穿过温室表面。
  2. 温度边界条件:

    • 温室风扇一侧设置为温度入口条件,以40°C的温暖空气吹出。
    • 温室内其余表面设定为壁条件。

初始条件:

  • 温室内的初始温度设定为20°C。

两个横截面分布:

  1. 高度为0.5米的位置(作物冠层水平):

    • 分析在作物冠层水平位置的风速和温度分布,以评估是否符合作物的生长要求。
  2. 高度为0.1米的位置(作物冠层内部):

    • 分析在作物冠层内部的风速和温度分布,以更详细地考虑作物生长的影响。

分析条件是否适宜作物生长:

通过模拟结果,比较温室内两个不同高度的横截面上的温度和风速分布与作物生长的要求,评估条件是否适宜。关注作物所需的温度范围和适宜的风速,以模拟结果在这些方面满足作物生长的基本条件。

用python进行数值模拟:

import numpy as npimport matplotlib.pyplot as plt# 模拟参数
length = 10.0  # 温室长度
width = 3.0    # 温室宽度
height = 2.0   # 温室高度dx = 0.1       # 空间步长
dt = 0.01      # 时间步长
time_steps = 100# 空间网格
x = np.arange(0, length, dx)
y = np.arange(0, width, dx)
z = np.arange(0, height, dx)# 初始化温度场和速度场
T = np.ones((len(x), len(y), len(z))) * 20.0  # 初始温度
U = np.zeros((len(x), len(y), len(z)))         # 初始速度# 模拟时间步进
for t in range(time_steps):# 在这里添加 Navier-Stokes 和能量守恒的数值解法# 更新速度场
# 更新速度场 - Navier-Stokes方程
for i in range(1, len(x) - 1):for j in range(1, len(y) - 1):for k in range(1, len(z) - 1):# Navier-Stokes 方程的简化数值解法dUx_dt = -((U[i+1, j, k, 0] - U[i-1, j, k, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i, j+1, k, 1] - U[i, j-1, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i, j, k+1, 2] - U[i, j, k-1, 2]) / (2*dx)) * U[i, j, k, 2]dUy_dt = -((U[i, j+1, k, 0] - U[i, j-1, k, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i+1, j, k, 1] - U[i-1, j, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i, j, k+1, 2] - U[i, j, k-1, 2]) / (2*dx)) * U[i, j, k, 2]dUz_dt = -((U[i, j, k+1, 0] - U[i, j, k-1, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i, j+1, k, 1] - U[i, j-1, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i+1, j, k, 2] - U[i-1, j, k, 2]) / (2*dx)) * U[i, j, k, 2]U[i, j, k] += np.array([dUx_dt, dUy_dt, dUz_dt]) * dt# 更新温度场 - 热传导方程
alpha = 0.1  # 热扩散系数for i in range(1, len(x) - 1):for j in range(1, len(y) - 1):for k in range(1, len(z) - 1):# 热传导方程的简化数值解法dT_dt = alpha * ( (T[i+1, j, k] - 2*T[i, j, k] + T[i-1, j, k]) / (dx**2) +(T[i, j+1, k] - 2*T[i, j, k] + T[i, j-1, k]) / (dy**2) +(T[i, j, k+1] - 2*T[i, j, k] + T[i, j, k-1]) / (dz**2) )T[i, j, k] += dT_dt * dt# 绘制结果
plt.imshow(T[:, :, int(len(z)/2)], cmap='hot', extent=[0, length, 0, width])
plt.colorbar(label='Temperature (°C)')
plt.quiver(x, y, U[:, :, int(len(z)/2)], np.zeros_like(y), scale=20, scale_units='xy', color='white')
plt.title('Temperature and Airflow in the Greenhouse')
plt.xlabel('Length (m)')
plt.ylabel('Width (m)')
plt.show()

问题三:

在给定的两个情景中,我们要考虑温室内的空气流动和温度分布的理论影响。为了理解这些影响,我们依照 Navier-Stokes 方程和能量守恒方程进行分析。

情景1:将暖空气出口的速度从2 m/s增加到3 m/s

加强空气对流,高速的暖空气流动可能增加温室内的空气对流,从而影响整体温度分布。

更有效的温室加热,提高暖空气速度可能会提高空气与温室结构之间的热交换效率,可能导致温室内的温度升高。

空气流动的不均匀性,更高的速度可能引入空气流动的不均匀性,导致一些区域温度升高,而另一些区域温度较低。

情景2:通过将温室风扇从1.3m降至1m的位置进行调整:

改变空气流动路径,调整风扇位置可能会改变温室内的空气流动路径,影响空气对流和温度分布。

作物冠层的影响,风扇位置的变化可能会直接影响作物冠层的温度和空气流动,对作物生长产生重要影响。

温室底部温度变化,调整风扇位置可能影响温室底部的温度分布,进而影响底部作物的生长环境。

具体的微调代码为:

第一种情景 - 增加暖空气出口速度

warm_air_speed = 3  # 将暖空气出口速度从2 m/s#增加到3 m/s# 更新速度场
for i in range(1, len(x) - 1):for j in range(1, len(y) - 1):for k in range(1, len(z) - 1):# Navier-Stokes方程的简化数值解法dUx_dt = -((U[i+1, j, k, 0] - U[i-1, j, k, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i, j+1, k, 1] - U[i, j-1, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i, j, k+1, 2] - U[i, j, k-1, 2]) / (2*dx)) * U[i, j, k, 2]dUy_dt = -((U[i, j+1, k, 0] - U[i, j-1, k, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i+1, j, k, 1] - U[i-1, j, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i, j, k+1, 2] - U[i, j, k-1, 2]) / (2*dx)) * U[i, j, k, 2]dUz_dt = -((U[i, j, k+1, 0] - U[i, j, k-1, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i, j+1, k, 1] - U[i, j-1, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i+1, j, k, 2] - U[i-1, j, k, 2]) / (2*dx)) * U[i, j, k, 2]U[i, j, k] += np.array([dUx_dt, dUy_dt, dUz_dt]) * dt * warm_air_speed / 2  # 调整速度# 更新温度场 - 热传导方程
alpha = 0.1  # 热扩散系数for i in range(1, len(x) - 1):for j in range(1, len(y) - 1):for k in range(1, len(z) - 1):# 热传导方程的简化数值解法dT_dt = alpha * ( (T[i+1, j, k] - 2*T[i, j, k] + T[i-1, j, k]) / (dx**2) +(T[i, j+1, k] - 2*T[i, j, k] + T[i, j-1, k]) / (dy**2) +(T[i, j, k+1] - 2*T[i, j, k] + T[i, j, k-1]) / (dz**2) )T[i, j, k] += dT_dt * dt# 第二种情景 - 调整温室风扇位置
fan_height = 1  # 将温室风扇位置从1.3m降至1m# 更新速度场
for i in range(1, len(x) - 1):for j in range(1, len(y) - 1):for k in range(1, len(z) - 1):# Navier-Stokes方程的简化数值解法dUx_dt = -((U[i+1, j, k, 0] - U[i-1, j, k, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i, j+1, k, 1] - U[i, j-1, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i, j, k+1, 2] - U[i, j, k-1, 2]) / (2*dx)) * U[i, j, k, 2]dUy_dt = -((U[i, j+1, k, 0] - U[i, j-1, k, 0]) / (2*dx)) * U[i, j, k, 0] - ((U[i+1, j, k, 1] - U[i-1, j, k, 1]) / (2*dx)) * U[i, j, k, 1] - ((U[i, j, k+1, 2] - U[i, j, k-1, 2]) / (2*dx)) * U[i, j, k, 2]dUz_dt = -((U[i, j, k+1, 0] - U[i, j, k-1, 0]) / (2*dx)) * U[i, j, k, 0] -

我们期望温室内的温度分布更加均匀,同时适宜的风速和温度范围将有助于提供良好的生长条件。

更多内容具体可以看看我的下方名片!里面包含有亚太赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析亚太赛APMCM的一些方向
关注 CS数模 团队,数模不迷路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/161945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言二十四弹--喝汽水问题

C语言解决喝汽水问题 题目:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水? 方法一、逐瓶购买法 思路:一瓶瓶的买 当空瓶有两个时,汽水数加1即可。 #include &…

MacOS 成为恶意软件活动的目标

Malwarebytes 警告称,一个针对 Mac 操作系统 (OS) 的数据窃取程序正在通过虚假的网络浏览器更新分发给毫无戒心的目标。 Atomic Stealer,也称为 AMOS,是 Mac OS 上流行的窃取程序。 Atomic Stealer (AMOS) 恶意软件最近被发现使用“ClearFa…

ImportError: cannot import name ‘contextfilter‘ from ‘jinja2‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

汇编-pop出栈指令

32位汇编 执行动作分为两步: 第一步:读出数据 第二步:改变栈地址 如果操作数是16位, 则ESP加2; 如果操作数是32位, 则ESP加4 espesp2 或 espesp4 格式:

九、sdl显示bmp图片

前言 SDL中内置加载BMP的API,使用起来会更加简单,便于初学者学习使用SDL 如果需要加载JPG、PNG等其他格式的图片,可以使用第三方库:SDL_image 测试环境: ffmpeg的4.3.2自行编译版本windows环境qt5.12sdl2.0.22&…

力扣第462题 最小操作次数使数组元素相等 II C++ 排序基础 附Java代码

题目 462. 最小操作次数使数组元素相等 II 中等 相关标签 数组 数学 排序 给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最小操作数。 在一次操作中,你可以使数组中的一个元素加 1 或者减 1 。 示例 1: 输入&a…

Python深入分享之闭包

闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的根本目的是以某种…

substr()与substring()的区别

在 JavaScript 编程语言中,substr() 和 substring() 都是字符串函数,用于截取指定位置的子字符串。虽然这两个函数都可以用于截取字符串,但它们之间存在一些区别。 substr() 语法:string.substr(start,length) 参数值&#xff1a…

IDEA中 java: 警告: 源发行版 11 需要目标发行版 11 如何解决

步骤1找到项目结构,下面有两种方式 步骤2找到 模块中对应的项目,修改对应的源的语言级别和依赖的模块SDK(M) 步骤3,启动一下,看有无问题, 步骤4,去文件-->设置-->构建、执行、部署-->编译器-->…

中职组网络安全B模块-渗透提权2

任务五:渗透提权2 任务环境说明: 仅能获取xxx的IP地址 用户名:test,密码:123456 访问服务器主机,找到主机中管理员名称,将管理员名称作为Flag值提交; Flag:doyoudoyoudo 访问服…

C语言二十三弹---求第N项斐波那契数列的值

C语言求第N项斐波那契数列的值 定义:斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89…自然中的斐波那契数列&#xff0…

感恩三十载 再创新辉煌——中国音乐著作权协会成立30周年暨著作权集体管理制度实施30周年纪念大会在京召开

感恩三十载 再创新辉煌 2023年11月19日,中国音乐著作权协会成立30周年暨著作权集体管理制度实施30周年纪念大会在北京举行。中宣部副部长张建春,国际作者和作曲者协会联合会(CISAC)总干事甘迪奥龙(Gadi Oron&#xff0…

深入了解批处理文件:从基础到实例

1. 什么是批处理文件? 批处理文件是一种包含一系列命令的文本文件,通常用于自动化执行一系列任务。在不同操作系统中,批处理也有不同的名称,如在Windows中被称为批处理文件(.bat),而在Linux中则…

【MISRA C 2012】Rule 5.1 外部标识符应该是不同的

1. 规则1.1 原文1.2 分类 2. 关键描述3. 代码实例 1. 规则 1.1 原文 Rule 5.1 External identifiers shall be distinct Category Required Analysis Decidable, System Applies to C90, C99 1.2 分类 规则5.1:外部标识符应该是不同的 Required必须类规范。 2.…

1、基础入门——操作系统文件下载反弹SHELL防火墙绕过

名词解释 POC:验证漏洞存在的代码; EXP:利用漏洞的代码; payload:漏洞利用载荷, shellcode:漏洞代码, webshell:特指网站后门; 木马:强调控制…

【STL】set, map, multiset, multimap的介绍及使用

TOC 目录 关联式容器 树形结构与哈希结构 键值对 set set的定义方式 set的使用 multiset map map的介绍 map的定义方式 map的插入 insert函数的参数 insert函数的返回值 map的查找 map的删除 map的[ ]运算符重载 map的迭代器遍历 map的其他成员函数 multim…

Day40:139.单词拆分、背包问题总结

文章目录 139.单词拆分思路代码实现 背包问题总结背包类型递推公式 139.单词拆分 题目链接 思路 确定dp数组以及下标的含义 dp[i] : 从0开始长度为i的字符串是否可以拆分为一个或多个在字典中出现的单词确定递推公式 如果确定dp[j] 是true,且 [j, i] 这个区间的子…

【bug】uniapp的image组件渲染gif图,只有第一次点击的时候有动效,需要每次点击都有gif效果,已解决

前两天遇到的问题,暂时没有解决,就搁置了。 不解决又难受,还好今天解决了,记录下 需求: 两个gif图,分别代表点击之后的男生和女生,并且有两个静态的男生和女生图片 当男生静态图被点击的时候切…

关于ElectronVue3中集成讯飞星火AI

前言:我的最终目的是为了在QQ上集成一个AI机器人,因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的,我在调用websock获取回复内容的基础上另外集成了一个事件总线,让我们在调用获取消息的时候能够更加方便快捷 工具代…

联想拯救者Lenovo Legion R9000K 2021H(82N6)原装出厂Windows10/Win11系统ISO镜像

链接:https://pan.baidu.com/s/13NkeCXNdV0Ib5eeRnZUeAQ?pwdnlr7 提取码:nlr7 拯救者笔记本电脑原厂WIN系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文…