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} ρ(?t?v?+v??v)=??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?(?t?T?+v??T)=??(k?T)+ρ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 ?x?u?+?y?v?+?z?w?=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 ρ(u?x?u?+v?y?u?+w?z?u?)=??x?p?+μ?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?(u?x?T?+v?y?T?+w?z?T?)=k?2T+ρ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} ρ(?t?v?+v??v)=??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?(?t?T?+v??T)=??(k?T)+ρ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.pswp.cn/news/161945.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161945.shtml
英文地址,請注明出處:http://en.pswp.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盤 文…