999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Julia和R軟件在多介質動力學模型建模中的比較

2021-08-19 02:01:26莫俊超吳孝槐舒耀皋
化工環保 2021年4期
關鍵詞:程序模型

莫俊超,吳孝槐,舒耀皋

(1. 上?;ぱ芯吭河邢薰?檢測中心,上海 200062;2. 上海化學品公共安全工程技術研究中心,上海 200062;3. 中國合格評定國家認可委員會,北京 100062)

當前,我國環境管理政策逐漸從末端治理轉向風險管理[1-2]。多介質模型是評估化學物質環境風險的常用方法,按照模型的結構可分為一級、二級、三級和四級模型[3-4]。在實際環境系統中,化學物質的含量受人類活動排放、降解和遷移等過程的影響,常隨時間發生改變,因此,能描述化學物質含量變化的多介質動力學模型(即四級模型)正得到越來越多的研究和應用。

多介質動力學模型的求解方法可分為數值解法[5]和解析解法。當多介質動力學模型中微分方程數量超過3個,或者模型中化學物質的排放速率、相體積、相流速和溫度不恒定時,模型的解析解很難求出[6],這時求解模型的數值解便成為了唯一的求解方法。

求解多介質動力學模型的數值解需要使用科學計算軟件,目前使用較多的軟件包括Matlab[7-10]、Mathematica[11]、C++[12]、Anylogic[13]、VB[14-15]、Python[16]和R[17]等。其中,Matlab、Mathematica、Anylogic和VB,以及部分C++編譯器屬于商業軟件,價格昂貴,更新較慢,且對版權要求較多,限制了其應用范圍。近年來,免費、開源且更新迅速的科學計算軟件發展很快,其豐富的包和庫等功能讓用戶可使用前人已有的成果,不必從零開始編寫計算程序,從而大大減少了編程的工作量。該類軟件以Python和R為代表,但目前未見系統討論其在多介質動力學模型建模方面應用的研究報道。

Julia是近10年內開發的一種主要面向科學計算的軟件,首個版本發布于2013年。同Python和R一樣,Julia也是一款自由軟件,并且結合了已有科學計算軟件的優點。目前未見應用Julia進行多介質動力學模型建模的報道。

考慮到Python中算法的劣勢[18],本研究選擇Julia和R,通過構建3個不同復雜程度的多介質動力學模型,對Julia和R在程序編寫、運行時間、算法選擇、敏感性分析和便捷性等方面進行比較,得出針對不同的多介質動力學模型適用的軟件,以期拓展Julia和R在多介質動力學模型建模中的應用。

1 材料與方法

1.1 軟件和包

使用R 4.0.2和Julia 1.5.2進行模型構建。R的下載地址為https://cran.r-project.org/,使用的包有deSolve(版本1.28)、ODEsensitivity(版本1.1.2)和diffeqr(版本1.0.0);Julia的下載地址為https://julialang.org/,使用的包有DifferentialEquations.jl[19](版本6.15.0)、LSODA.jl(版本0.6.2)、Sundials.jl(版本4.3.0)和DiffEqSensitivity.jl(版本6.31.6)。

1.2 EQC模型簡介

選擇一個通用模型EQC(equilibrium criterion,平衡判據)和EQC模型中的標準環境進行討論。EQC模型于1996年被首次提出[20],現已廣泛應用于化學物質的風險篩查和評估中[21-25]。EQC模型中包括水、大氣、土壤和沉積物4個環境介質,EQC動力學模型即對每個環境介質中化學物質的物質的量編寫微分平衡方程:dM/dt=v輸入-v輸出,式中M為化學物質的物質的量,t為時間,v輸入和v輸出分別為輸入速率和輸出速率。其構建過程詳見參考文獻[26]。

1.3 不同復雜程度動力學模型的構建

為了構建不同復雜程度的動力學模型,選擇不同函數作為EQC動力學模型中的排放速率函數,同時將模型的結束時間延長,具體參數見表1。一般來說,化學物質不會直接排放進入沉積物中,因此將沉積物中的排放速率設為0。所有模型中步長均設為0.1 h。

表1 不同復雜程度的模型參數

1.4 物質選擇

為了對比不同性質的物質在模型中的運行情況,選擇4種性質相差較大的物質進行模擬,其參數詳見表2[26-27],表中PCB-209為十氯聯苯,KOW為正辛醇-水分配系數。

1.5 函數、算法和計算機配置

R中,使用deSolve包中的ode函數進行模型計算,計算方法選擇ode函數中的lsoda(即ode函數的默認算法)、bdf和radau,使用system.time函數獲取程序的運行時間。Julia中,使用DifferentialEquations.jl包中的solve函數進行模型計算,計算方法選擇lsoda()(即對應R中ode函數默認算法lsoda的Julia算法)、AutoTsit5(Rosenbrock23())和CVODE_BDF(),其中lsoda()算法需要加載LSODA.jl包,CVODE_BDF()算法需要加載Sundials.jl包。Julia中使用@time命令獲取程序的運行時間。計算所用的計算機處理器為Intel?Core i7-8565U,內存為8 GB,操作系統為Microsoft?Windows 10專業版。

2 結果與討論

2.1 程序編寫

由于所編寫的程序較復雜,不再列出。R的主體程序(即不包括參數賦值計算的語句)為14行,Julia的主體程序為16行,R較Julia程序更簡潔。R程序只經過修改一些基本語法便可在Julia上運行,反之亦然,兩者語法非常類似,可移植性較強。

2.2 模型運行時間

對于每個程序,運行5次,計算得出運行時間的平均值,詳見表3。

表3 R和Julia中EQC動力學模型的運行時間

2.3 模型敏感性分析方法和運行時間

模型的敏感性分析方法主要分為全局敏感性分析和局部敏感性分析兩個方面,具體可參考陳衛平等[28]的總結。在R和Julia中,全局敏感性分析方法均有已發布的包可使用,用戶不必自行編寫敏感性分析程序,使用非常方便。R中模型全局敏感性分析包ODEsensitivity,提供了Morris法和Sobol法兩種敏感性分析方法;Julia中DiffEqSensitivity.jl包可用來進行全局敏感性分析,包含了Morris、Sobol、eFAST和Regression 4種方法。另外,Julia中還提供了局部敏感性分析的函數,而R中暫未見相關功能。使用R和Julia中Morris和Sobol方法對表2中4個半衰期的敏感性進行分析,每個參數的值浮動±10%并設為均勻分布,計算模型敏感性分析的運行時間。求解算法均選擇lsoda,Sobol法中模擬次數選擇1 000次,結果見表4。

表2 所選4種物質的性質參數

表4 R和Julia中EQC動力學模型敏感性分析的運行時間

2.4 軟件的比較

2.4.1 運行時間

由表3可見,對于相同的模型,Julia的運行時間至多為R的約1/10,尤其在復雜模型的lsoda算法中運行時間約為R的1/100,計算效率非常高。R的主要應用領域為數據統計,在科學計算方面的計算效率并沒有進行很好的優化;Julia主要的應用領域為科學計算,從本研究的結果可見,其在多介質動力學模型計算中的計算效率是R的至少10倍。在敏感性分析方面,由表4可見,敏感性分析比模型求解需要更長的運行時間,Julia的運行效率同樣是R的至少10倍。另外,不同物質在同一模型中的運行時間差別很小,這表明,化學物質性質不影響模型的運行時間。

2.4.2 算法

目前R中ode函數提供了包括lsoda、bdf和radau等算法在內的17種算法,可計算剛性和非剛性模型,默認算法lsoda可自動選擇剛性或非剛性求解器。多介質動力學模型中不同介質間化學物質含量往往相差很大,大多數情況下模型為剛性模型,這時不能使用rk、rk4或euler等求解非剛性模型的算法進行計算,故R中適合多介質動力學模型求解的算法不多。本研究中選擇了效率最高的3種算法,對比來看,lsoda和bdf算法的運行時間最短,計算效率最高,是R中求解多介質動力學模型的首選算法,但兩者求解復雜模型的運行時間均很長。

Julia中求解微分方程模型的算法非常多,可用來進行多介質動力學模型求解的算法超過10種,為用戶提供了豐富的選擇。除了本研究中使用的lsoda()、AutoTsit5(Rosenbrock23())和CVODE_BDF() 3種算法外,還可以嘗試QNDF()、TRBDF2()和RadauIIA()等多種算法。由表3可見,lsoda()算法的運行時間最少,均不超過5 s,是Julia中是求解多介質動力學模型的首選算法。在敏感性分析方法中,Julia同樣提供了豐富的選擇,而R中目前僅提供了兩種方法。

2.4.3 便捷性

由以上討論可知,從運行時間和算法方面比較,Julia相對R有很大優勢。然而,Julia發展時間較短,很多軟件暫未提供Julia的接口,其應用生態暫沒有R完善;Julia的中文資料仍然較少,中文社區也相對較小;目前國內Julia服務器很少,連接不穩定,Julia的安裝相對R更繁瑣。綜上,Julia的應用暫不如R便捷。

為了結合R的便捷性和Julia的計算優勢,RACKAUCKAS[29]在2020年8月首次發布了R中的diffeqr包,可令用戶在R中直接調用Julia的微分方程計算函數,R中的JuliaCall包也可直接調用Julia中的其他函數。但目前diffeqr和JuliaCall包暫不完善,在針對復雜模型進行快速高效的模型計算和分析時,Julia仍然是較好的選擇。

2.4.4 與其他軟件的比較

結合以上結果和參考文獻[18],對多介質動力學模型求解中常用的軟件R、Julia、Matlab、SciPy、Mathematica、C++、Anylogic和VB,從是否免費、算法選擇、計算效率、模型分析工具、便捷性等方面進行比較,詳見表5。綜合來看,Julia在多介質動力學模型求解中優勢較大,對于復雜的模型,建議首先選用Julia;但由于Julia的便捷性不如R,對于簡單的多介質動力學模型,R也是可以滿足需求的,這時使用R更方便。

表5 多介質動力學模型求解中的常用軟件比較

3 結論

a)分別使用R和Julia,編寫了4種化學物質在EQC動力學模型中的求解程序和半衰期的敏感性分析程序,得到模型求解程序和敏感性分析程序的運行時間。結果表明,Julia的計算效率是R的至少10倍,在一些情況下Julia的計算效率甚至是R的近100倍?;瘜W物質性質不影響模型的運行時間。lsoda是Julia中求解多介質動力學模型的首選算法,而lsoda和bdf是R中的首選算法。

b)對多介質動力學模型求解中常用的軟件,從是否免費、算法選擇、計算效率、模型分析工具、便捷性等方面進行了比較。對于簡單模型,建議使用R來建模、求解和分析;對于復雜模型,則建議使用Julia。

c)目前我國對多介質動力學模型的研發投入較少,缺乏適用于我國本土環境的多介質動力學模型,結合本研究的結果,建議考慮使用開源軟件Julia和R來進行我國多介質動力學模型的研發和應用工作。

猜你喜歡
程序模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
3D打印中的模型分割與打包
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 中国丰满人妻无码束缚啪啪| 97人人做人人爽香蕉精品 | 欧洲免费精品视频在线| 国产福利小视频高清在线观看| 亚洲成人在线网| 亚洲二区视频| 97se亚洲综合不卡| 亚洲日韩高清在线亚洲专区| 婷婷六月激情综合一区| 亚洲国产高清精品线久久| 亚洲激情99| 无码视频国产精品一区二区| 国产超碰一区二区三区| 久久人人爽人人爽人人片aV东京热| 五月激激激综合网色播免费| 国产精品福利尤物youwu| 亚洲一道AV无码午夜福利| 成人国产小视频| 欧美一区精品| 黑色丝袜高跟国产在线91| 一级黄色片网| 国产精欧美一区二区三区| a色毛片免费视频| 国产高清又黄又嫩的免费视频网站| 久久精品亚洲专区| 嫩草在线视频| 亚洲综合欧美在线一区在线播放| 国产视频欧美| 久久久久人妻一区精品| 另类欧美日韩| 91成人在线免费观看| 欧美亚洲欧美| 欧美成人精品在线| 久久黄色视频影| 婷婷亚洲最大| 亚洲AⅤ永久无码精品毛片| 色有码无码视频| 成人国产免费| 91网址在线播放| 无码啪啪精品天堂浪潮av| 亚洲色图欧美视频| 丁香亚洲综合五月天婷婷| 香蕉eeww99国产精选播放| 香蕉伊思人视频| 久久免费视频播放| 久久精品娱乐亚洲领先| 亚洲一区二区三区国产精品 | 欧美一级高清免费a| 老司机精品一区在线视频| 亚洲日韩AV无码一区二区三区人| 亚洲美女操| 久青草免费视频| 人人艹人人爽| 青青国产在线| 人妻无码中文字幕第一区| 国产精品性| 成人国产精品一级毛片天堂| 在线观看免费AV网| a亚洲视频| 亚洲第一精品福利| 一区二区自拍| 日韩一级毛一欧美一国产| 国产乱子伦视频三区| 99偷拍视频精品一区二区| 国产精品手机视频| 欧美不卡二区| 久久久久久久久18禁秘| 国产中文一区a级毛片视频| 亚洲AV无码乱码在线观看代蜜桃 | 91久久国产热精品免费| 日韩欧美一区在线观看| 国产精品极品美女自在线看免费一区二区| 69免费在线视频| 少妇精品在线| 亚洲成人网在线播放| 99久久精品免费看国产电影| 亚洲福利网址| 国产香蕉一区二区在线网站| 自拍欧美亚洲| 毛片卡一卡二| 日韩性网站| 国产日韩精品一区在线不卡|