庫(kù)實(shí)戰(zhàn)指南:從入門(mén)到避坑的系統(tǒng)動(dòng)力學(xué)建模要點(diǎn))
簡(jiǎn)介面向系統(tǒng)動(dòng)力學(xué)建模者與 Vensim 軟件初學(xué)者這份 PDF 是一份關(guān)于 Vensim 內(nèi)置函數(shù)庫(kù)的說(shuō)明文檔。內(nèi)容聚焦 Vensim_PLE 版本中全部 25 個(gè)函數(shù)按數(shù)學(xué)函數(shù)、邏輯函數(shù)、隨機(jī)函數(shù)、測(cè)試函數(shù)和延遲函數(shù)進(jìn)行分類(lèi)系統(tǒng)梳理了每個(gè)函數(shù)的基本形式、功能含義及在方程編輯器中的調(diào)用方式。其中涵蓋 SIN、EXP、LN、SQRT、ABS、INTEGER、MODULO 等基礎(chǔ)數(shù)學(xué)函數(shù)MAX、MIN、IF THEN ELSE 等邏輯判斷函數(shù)RANDOM UNIFORM、RANDOM NORMAL 等隨機(jī)函數(shù)以及 STEP、RAMP、PULSE、PULSE TRAIN 等測(cè)試函數(shù)每種函數(shù)都配有使用步驟部分還給出典型應(yīng)用示例可幫助讀者快速理解變量關(guān)系并完成模型構(gòu)建。資源為單文件 PDF大小僅 123KB內(nèi)容精煉適合隨用隨查。目前已有 414 人瀏覽學(xué)習(xí)可作為系統(tǒng)動(dòng)力學(xué)課程學(xué)習(xí)、Vensim 入門(mén)練習(xí)及模型調(diào)試時(shí)的函數(shù)速查手冊(cè)。 接手過(guò)不少系統(tǒng)動(dòng)力學(xué)模型也幫人調(diào)過(guò)無(wú)數(shù)報(bào)錯(cuò)我發(fā)現(xiàn)一個(gè)規(guī)律模型跑出離譜結(jié)果的案例里至少一半問(wèn)題出在函數(shù)上而不是結(jié)構(gòu)上。同樣的存量流量圖換一個(gè)函數(shù)寫(xiě)法仿真曲線(xiàn)可能完全是兩回事。今天就把我這些年用Vensim函數(shù)庫(kù)的經(jīng)驗(yàn)一次性梳理清楚——Vensim函數(shù)庫(kù)是系統(tǒng)動(dòng)力學(xué)建模中最基礎(chǔ)也最容易被低估的一環(huán)它直接決定了你的模型能把現(xiàn)實(shí)世界模擬到什么程度。這篇文章適合三類(lèi)人剛接觸Vensim、對(duì)著函數(shù)列表一臉茫然的初學(xué)者已經(jīng)能搭出模型結(jié)構(gòu)、但總覺(jué)得仿真結(jié)果差點(diǎn)意思的進(jìn)階用戶(hù)以及被困在某個(gè)報(bào)錯(cuò)或離譜曲線(xiàn)里、想找排查思路的實(shí)戰(zhàn)派。1. 函數(shù)庫(kù)是什么建模時(shí)它卡在你流程的哪一環(huán)1.1 從一次模型崩了的經(jīng)歷說(shuō)起早幾年我?guī)腿藢徱粋€(gè)庫(kù)存模型存量、流量、輔助變量畫(huà)得清清楚楚方程也寫(xiě)得規(guī)規(guī)矩矩。但一跑仿真庫(kù)存直接變成負(fù)數(shù)整個(gè)系統(tǒng)像瘋了一樣震蕩。排查了半天最后問(wèn)題出在一行不起眼的IF THEN ELSE上——條件分支里的某個(gè)中間變量在特殊條件下算出除零把整個(gè)鏈條帶崩了。這件事給我的教訓(xùn)很深系統(tǒng)動(dòng)力學(xué)的模型骨架很重要但函數(shù)就是骨架關(guān)節(jié)里的軟骨軟骨壞了模型一步都走不動(dòng)。Vensim函數(shù)庫(kù)里幾十個(gè)函數(shù)每一個(gè)都對(duì)應(yīng)一類(lèi)常見(jiàn)數(shù)學(xué)邏輯或時(shí)間行為的封裝。你用不用得對(duì)直接決定模型的穩(wěn)定性與可信度。1.2 函數(shù)庫(kù)的分類(lèi)全景圖Vensim自帶的幫助文檔會(huì)把函數(shù)分成十幾類(lèi)但按照我實(shí)際建模的習(xí)慣真正常用的是這五個(gè)大類(lèi)類(lèi)別代表函數(shù)核心用途數(shù)學(xué)與邏輯ABS、SQRT、LN、EXP、INTEGER、MODULO、IF THEN ELSE、MAX、MIN基礎(chǔ)運(yùn)算與條件判斷時(shí)間控制TIME、STEP、PULSE、RAMP描述某時(shí)刻發(fā)生的輸入變化平滑與延遲SMOOTH、SMOOTH3、DELAY1、DELAY3刻畫(huà)感知滯后與物理輸送滯后隨機(jī)函數(shù)RANDOM UNIFORM、RANDOM NORMAL引入環(huán)境不確定性與擾動(dòng)表函數(shù)WITH LOOKUP描述非線(xiàn)性關(guān)系對(duì)接實(shí)測(cè)數(shù)據(jù)我見(jiàn)過(guò)不少建模者只靠前兩類(lèi)函數(shù)打天下線(xiàn)段性關(guān)系全用常量結(jié)果模型跑出來(lái)像玩具。實(shí)際情況是平滑、延遲和表函數(shù)才是系統(tǒng)動(dòng)力學(xué)區(qū)別于普通Excel模型的靈魂。后面我會(huì)逐個(gè)講清楚這些函數(shù)怎么用、什么時(shí)候用。2. 核心函數(shù)實(shí)操我把最常用的這批函數(shù)逐個(gè)捋了一遍2.1 數(shù)學(xué)與邏輯類(lèi)先解決算得對(duì)不對(duì)數(shù)學(xué)函數(shù)沒(méi)什么玄機(jī)用法和常見(jiàn)編程語(yǔ)言幾乎一樣。重點(diǎn)說(shuō)說(shuō)IF THEN ELSE它可能是整個(gè)函數(shù)庫(kù)里使用頻率最高、也最容易寫(xiě)錯(cuò)的函數(shù)。實(shí)際庫(kù)存調(diào)整量 IF THEN ELSE(庫(kù)存 安全庫(kù)存, 緊急補(bǔ)貨量, 正常補(bǔ)貨量)基本邏輯不復(fù)雜但有一個(gè)隱藏特性很多人不知道Vensim的IF THEN ELSE會(huì)對(duì)兩個(gè)分支都進(jìn)行求值。這在絕大多數(shù)情況下沒(méi)有影響但如果那個(gè)沒(méi)被走到的分支里有除零、開(kāi)根號(hào)為負(fù)數(shù)這類(lèi)非法運(yùn)算模型直接給你報(bào)錯(cuò)或者算出NAN。另一個(gè)高頻函數(shù)是MODULO它不只是一個(gè)數(shù)學(xué)玩具。我在做周期性生產(chǎn)計(jì)劃模型時(shí)經(jīng)常用MODULO(時(shí)間, 周期)來(lái)判斷當(dāng)前時(shí)刻是否處于某個(gè)周期階段比一個(gè)個(gè)寫(xiě)STEP要省事得多。2.2 時(shí)間控制類(lèi)模型里什么時(shí)候發(fā)生什么STEP、PULSE和RAMP是我說(shuō)的時(shí)間控制三兄弟。它們都是以時(shí)間為自變量的特殊輸入函數(shù)專(zhuān)門(mén)用來(lái)描述外部沖擊。廣告投入 基準(zhǔn)投入 STEP(50, 第12周) PULSE(20, 第30周, 8)STEP(高度, 起始時(shí)間)表示從某時(shí)刻開(kāi)始值永久增加一個(gè)固定量PULSE(起始時(shí)間, 持續(xù)時(shí)間)表示從某時(shí)刻開(kāi)始持續(xù)多個(gè)時(shí)間步長(zhǎng)的脈沖RAMP(斜率, 起始時(shí)間)表示從某時(shí)刻開(kāi)始線(xiàn)性增長(zhǎng)。這三個(gè)函數(shù)放在一起非常靈活能把現(xiàn)實(shí)中突然的政策變化一次性的促銷(xiāo)活動(dòng)漸進(jìn)的產(chǎn)能擴(kuò)張等沖擊都描述出來(lái)。關(guān)鍵是時(shí)間參數(shù)要和模型的時(shí)間單位保持一致——模型時(shí)間單位是月就別寫(xiě)第12周這種不匹配后期查起來(lái)非常痛苦。2.3 平滑與延遲類(lèi)系統(tǒng)動(dòng)力學(xué)的靈魂函數(shù)如果說(shuō)只能選一類(lèi)函數(shù)深入掌握我會(huì)毫不猶豫選平滑和延遲。這類(lèi)函數(shù)的建模思想非常樸素現(xiàn)實(shí)世界中的感知和信息傳遞永遠(yuǎn)存在滯后不會(huì)瞬間完成。SMOOTH(input, 延遲時(shí)長(zhǎng))描述的是感知平滑的滯后。舉個(gè)例子實(shí)際需求每小時(shí)都在變但銷(xiāo)售團(tuán)隊(duì)感知到的近期需求水平并不會(huì)立刻跳變而是逐漸趨近——這就是一階指數(shù)平滑。Vensim里還有SMOOTH3對(duì)應(yīng)三階平滑響應(yīng)更慢、過(guò)渡更平滑。DELAY1和DELAY3描述的是實(shí)物延遲。進(jìn)入一個(gè)管道的東西不是立刻全部從另一端出來(lái)而是經(jīng)過(guò)一段時(shí)間陸續(xù)出來(lái)。DELAY1相當(dāng)于一個(gè)混合良好的緩沖池DELAY3相當(dāng)于三個(gè)串聯(lián)的緩沖池出流更接近真實(shí)的先入先出形態(tài)。我在供應(yīng)鏈模型里最常用的搭配是用SMOOTH3構(gòu)造預(yù)期需求用DELAY3構(gòu)造在途庫(kù)存。這樣跑出來(lái)的庫(kù)存波動(dòng)曲線(xiàn)和現(xiàn)實(shí)企業(yè)里看到的形狀幾乎一模一樣。2.4 表函數(shù)和隨機(jī)函數(shù)給模型接入現(xiàn)實(shí)數(shù)據(jù)WITH LOOKUP是整個(gè)函數(shù)庫(kù)里最有建模感的函數(shù)。它允許你直接把兩個(gè)變量之間的非線(xiàn)性關(guān)系定義成一張折線(xiàn)表Vensim在仿真時(shí)自動(dòng)做線(xiàn)性插值。需求量 WITH LOOKUP(價(jià)格, ([(0,0)-(100,1000)],(0,800),(20,600),(50,350),(100,100)))這就是給模型喂現(xiàn)實(shí)數(shù)據(jù)的最直接方式。價(jià)格和需求之間的關(guān)系很少是線(xiàn)性的實(shí)測(cè)數(shù)據(jù)顯示什么形狀就把折線(xiàn)打成什么樣。注意方括號(hào)里是插值范圍后面才是真正的數(shù)據(jù)點(diǎn)——很多人第一次寫(xiě)這里會(huì)漏掉范圍定義直接報(bào)語(yǔ)法錯(cuò)誤。隨機(jī)函數(shù)用來(lái)給模型注入不確定性。RANDOM UNIFORM(下限, 上限, 種子)生成區(qū)間內(nèi)均勻分布隨機(jī)數(shù)RANDOM NORMAL(均值, 標(biāo)準(zhǔn)差, 種子)生成正態(tài)分布隨機(jī)數(shù)。做蒙特卡洛模擬或者敏感性分析時(shí)這些函數(shù)是標(biāo)配。種子參數(shù)有個(gè)小竅門(mén)同一組參數(shù)下種子固定則每次仿真結(jié)果一致種子設(shè)為0則每次運(yùn)行結(jié)果不同。想復(fù)現(xiàn)實(shí)驗(yàn)結(jié)果就固定種子想模擬真實(shí)世界的不可預(yù)測(cè)性就設(shè)0。3. 實(shí)戰(zhàn)選函數(shù)同一個(gè)場(chǎng)景我為什么這么選3.1 庫(kù)存補(bǔ)貨模型SMOOTH與DELAY怎么搭配假設(shè)要建一個(gè)零售商的庫(kù)存模型。很多新手會(huì)直接把顧客需求當(dāng)作補(bǔ)貨依據(jù)——這在實(shí)際業(yè)務(wù)中是不可能的因?yàn)閺男枨蟀l(fā)生到數(shù)據(jù)匯總再到?jīng)Q策中間存在感知延遲從下單到貨物上架又存在物流延遲。我當(dāng)時(shí)的處理方式是顧客需求經(jīng)過(guò)SMOOTH3形成感知需求感知需求驅(qū)動(dòng)補(bǔ)貨決策補(bǔ)貨量進(jìn)入DELAY3形成在途庫(kù)存最后抵達(dá)可用庫(kù)存。這個(gè)模型跑出來(lái)后你能清楚看到需求突變時(shí)庫(kù)存的過(guò)度反應(yīng)和回調(diào)——這就是供應(yīng)鏈里著名的牛鞭效應(yīng)的內(nèi)生來(lái)源。這里的選型邏輯是感知類(lèi)滯后用SMOOTH系列物質(zhì)類(lèi)滯后用DELAY系列。兩者不能互換混用了整個(gè)系統(tǒng)的時(shí)間特性就亂了。3.2 人口增長(zhǎng)模型隨機(jī)擾動(dòng)與一次性沖擊的表達(dá)在一個(gè)區(qū)域人口模型中出生率會(huì)受到經(jīng)濟(jì)環(huán)境、偶發(fā)事件的影響而波動(dòng)。給出生率加一個(gè)RANDOM NORMAL擾動(dòng)能比固定常量更真實(shí)地反映這種環(huán)境不確定性。年出生人口 育齡人口 * 基準(zhǔn)出生率 * RANDOM NORMAL(0.8, 1.2, 0.05, 42)如果想進(jìn)一步模擬某一年發(fā)生了一次外部沖擊導(dǎo)致出生率短期下降就再疊加一個(gè)負(fù)的PULSE。這種寫(xiě)法把一個(gè)靜態(tài)模型變成了能夠回答如果發(fā)生X結(jié)果會(huì)怎樣的動(dòng)態(tài)決策工具——這正是系統(tǒng)動(dòng)力學(xué)建模的核心價(jià)值。3.3 市場(chǎng)擴(kuò)散模型非線(xiàn)性的表函數(shù)怎么打點(diǎn)Bass擴(kuò)散模型里有一個(gè)關(guān)鍵輔助變量潛在采納者接觸到已采納者的概率。這個(gè)概率通常用常數(shù)表示但真實(shí)市場(chǎng)中社交強(qiáng)度會(huì)隨著傳播階段變化。這時(shí)候我會(huì)用WITH LOOKUP定義一張基于時(shí)間的折線(xiàn)前期平穩(wěn)、中期上升、后期回落。表函數(shù)打點(diǎn)有個(gè)實(shí)操技巧先用5到7個(gè)關(guān)鍵點(diǎn)把大體形狀勾出來(lái)跑一次模型看曲線(xiàn)再根據(jù)結(jié)果在拐點(diǎn)附近加密數(shù)據(jù)點(diǎn)。別一上來(lái)就猛打二十個(gè)點(diǎn)調(diào)起來(lái)會(huì)非常費(fèi)勁。數(shù)據(jù)點(diǎn)的疏密度本質(zhì)上是你在用多少信息量描述這段非線(xiàn)性關(guān)系之間做權(quán)衡。4. 實(shí)測(cè)排坑記錄函數(shù)用得越多這些坑越要避開(kāi)4.1 IF THEN ELSE的分支陷阱兩個(gè)分支都會(huì)執(zhí)行前面提到了Vensim的IF THEN ELSE會(huì)對(duì)兩個(gè)分支都做求值。這個(gè)坑我踩得非常慘模型跑出來(lái)的曲線(xiàn)在某段時(shí)間突然跳成NAN找了兩天最后發(fā)現(xiàn)問(wèn)題出在一個(gè)輔助變量在條件為假的分支里做了除零運(yùn)算。排查建議如果在仿真中途某一步突然出現(xiàn)NAN或者無(wú)窮值優(yōu)先檢查所有IF THEN ELSE的分支把可能產(chǎn)生非法運(yùn)算的詞句單獨(dú)抽出來(lái)測(cè)試。另一種更穩(wěn)妥的寫(xiě)法是把有風(fēng)險(xiǎn)的計(jì)算拆成一個(gè)單獨(dú)變量再用ZIDZ零除保護(hù)函數(shù)包裝——ZIDZ(a, b)在b為0時(shí)返回0能直接從根上斷掉除零問(wèn)題。4.2 SMOOTH系列的秘密初值行為不是你想的那樣SMOOTH函數(shù)的第三個(gè)初值參數(shù)是可選參數(shù)。如果省略Vensim會(huì)用仿真開(kāi)始時(shí)刻的輸入值作為平滑初值。這意味著如果你的輸入在第0天就是一個(gè)異常值模型前期的平滑曲線(xiàn)會(huì)被這個(gè)異常值污染可能要到幾個(gè)延遲時(shí)長(zhǎng)之后才恢復(fù)正常。我在處理真實(shí)數(shù)據(jù)時(shí)遇到過(guò)一次某個(gè)月的實(shí)際需求因?yàn)榻y(tǒng)計(jì)口徑調(diào)整突然翻了三倍結(jié)果用SMOOTH做預(yù)期需求時(shí)前幾個(gè)月模型都在跟這個(gè)異常值做斗爭(zhēng)。解決方法是顯式傳入初值參數(shù)預(yù)期需求 SMOOTH(實(shí)際需求, 8, 歷史平均需求)經(jīng)驗(yàn)是任何含延遲或平滑的函數(shù)只要數(shù)據(jù)起點(diǎn)有異常務(wù)必顯式指定初值。這個(gè)初值最好用歷史數(shù)據(jù)的均值或中位數(shù)而不是默認(rèn)值。4.3 DELAY3的內(nèi)部串聯(lián)結(jié)構(gòu)與穩(wěn)態(tài)收斂DELAY3本質(zhì)上是在內(nèi)部串聯(lián)了三個(gè)一階延遲。它比DELAY1的沖擊響應(yīng)更平滑但也帶來(lái)了一個(gè)坑它的內(nèi)部狀態(tài)需要一定時(shí)間才能達(dá)到穩(wěn)態(tài)。如果從非穩(wěn)態(tài)開(kāi)始仿真DELAY3輸出的初始段會(huì)出現(xiàn)明顯波動(dòng)。尤其在把模型從舊參數(shù)切換到新參數(shù)時(shí)延遲鏈里遺留下來(lái)的舊庫(kù)存會(huì)讓新曲線(xiàn)的初期失真。做法是在模型里給所有DELAY3和SMOOTH3接上合適的初值或者在切換參數(shù)的場(chǎng)景下先讓模型跑到穩(wěn)態(tài)再開(kāi)始記錄結(jié)果。4.4 表函數(shù)超出定義域默認(rèn)外推可能帶歪整個(gè)模型WITH LOOKUP默認(rèn)對(duì)定義域外的輸入做線(xiàn)性外推。這聽(tīng)起來(lái)合理但在實(shí)際場(chǎng)景里非常危險(xiǎn)。價(jià)格降到定義域下限之下時(shí)外推出來(lái)的需求可能是一個(gè)荒謬的巨量當(dāng)輸入落在定義域之外時(shí)模型會(huì)順著最后兩個(gè)點(diǎn)的斜率無(wú)限延伸。我見(jiàn)過(guò)一個(gè)廣告預(yù)算模型因?yàn)轭A(yù)算輸入跑出了表函數(shù)定義域模擬出的市場(chǎng)反應(yīng)直接變成了天文數(shù)字。對(duì)策有兩個(gè)一是把定義域范圍設(shè)得足夠?qū)捔糇阌嗔慷窃诒砗瘮?shù)外面套一層IF THEN ELSE或MAX/MIN限幅強(qiáng)行把輸入拉回定義域內(nèi)。我更推薦后者——模型里的不可能輸入值本身就說(shuō)明前面的邏輯可能存在邊界問(wèn)題及早暴露是好事。4.5 隨機(jī)種子與可復(fù)現(xiàn)性仿真結(jié)果能不能穩(wěn)定重現(xiàn)隨機(jī)函數(shù)的種子參數(shù)是我在高強(qiáng)度使用后發(fā)現(xiàn)的重要問(wèn)題。做實(shí)驗(yàn)要對(duì)比不同方案時(shí)如果每次仿真隨機(jī)數(shù)都重新生成那么結(jié)果差異可能來(lái)自隨機(jī)擾動(dòng)而不是方案本身的差異。建議做法跑基準(zhǔn)實(shí)驗(yàn)時(shí)固定種子確保結(jié)果可復(fù)現(xiàn)做敏感性分析或蒙特卡洛模擬時(shí)再放開(kāi)種子通過(guò)大批次運(yùn)行來(lái)統(tǒng)計(jì)結(jié)果分布。這兩種模式下模型本身一個(gè)字都不用改只需要換掉種子的寫(xiě)法。另外一個(gè)容易忽視的點(diǎn)時(shí)間步長(zhǎng)TIME STEP也會(huì)影響隨機(jī)函數(shù)和延遲函數(shù)的數(shù)值表現(xiàn)。時(shí)間步長(zhǎng)取0.5和0.25同一個(gè)延遲參數(shù)在新結(jié)果上可能差出好幾個(gè)百分點(diǎn)。正式實(shí)驗(yàn)前先做一次時(shí)間步長(zhǎng)收斂性測(cè)試能避免很多爭(zhēng)論。5. 從會(huì)用到用好函數(shù)庫(kù)背后的建模思維5.1 怎么讀Vensim自帶的函數(shù)手冊(cè)Vensim的Help菜單里有完整的函數(shù)手冊(cè)但很多人沒(méi)看進(jìn)去因?yàn)樗前凑兆帜疙樞蚺诺?。我的建議是反過(guò)來(lái)看先打開(kāi)任意一個(gè)自帶的示例模型看里面用了哪些函數(shù)然后逐個(gè)跳轉(zhuǎn)到手冊(cè)里查意思。示例模型里每個(gè)函數(shù)都有上下文比干看定義好理解十倍。另一個(gè)技巧是用模型中的Take a look at this function按鈕——Vensim編輯器里函數(shù)輸入框旁邊有個(gè)小圖標(biāo)點(diǎn)一下直接跳到對(duì)應(yīng)手冊(cè)條目邊寫(xiě)邊查最有效率。5.2 一個(gè)模型從初稿到定稿函數(shù)選型復(fù)盤(pán)我做一個(gè)產(chǎn)能規(guī)劃模型時(shí)初稿只用了STEP和IF THEN ELSE結(jié)果仿真曲線(xiàn)非常生硬產(chǎn)能擴(kuò)建像開(kāi)關(guān)一樣瞬間完成庫(kù)存變化全是直角彎。審模型的老前輩看完只說(shuō)了一句你這生產(chǎn)線(xiàn)是瞬間轉(zhuǎn)移的傳送門(mén)啊。改版時(shí)把所有STEP換成了RAMP產(chǎn)能爬坡變成漸進(jìn)式增長(zhǎng)把瞬時(shí)到貨的庫(kù)存流入改成DELAY3對(duì)應(yīng)真實(shí)的設(shè)備調(diào)試和產(chǎn)能爬坡周期預(yù)期需求從直接取實(shí)際需求改成SMOOTH3體現(xiàn)出市場(chǎng)感知的滯后。整個(gè)模型的曲線(xiàn)形狀發(fā)生了質(zhì)變從機(jī)械感變成了真實(shí)感決策參考價(jià)值也完全不同。這次復(fù)盤(pán)讓我認(rèn)識(shí)到選擇哪個(gè)函數(shù)本質(zhì)上是你在對(duì)現(xiàn)實(shí)世界的哪種行為機(jī)理做假設(shè)。RAMP表示漸進(jìn)過(guò)程STEP表示突變DELAY表示存在實(shí)物滯后SMOOTH表示存在感知滯后——這些選擇背后都是對(duì)真實(shí)系統(tǒng)的判斷。根據(jù)我個(gè)人經(jīng)驗(yàn)真正高效的做法是先搭一個(gè)能跑通的粗模型只求結(jié)構(gòu)完整然后逐段審視每個(gè)輔助變量問(wèn)自己這個(gè)變量和它的輸入之間是瞬時(shí)關(guān)系、平滑關(guān)系還是延遲關(guān)系答案直接決定你該用哪個(gè)函數(shù)。Vensim的函數(shù)庫(kù)看起來(lái)只是幾十個(gè)命令背后卻是一整套關(guān)于時(shí)間、滯后、非線(xiàn)性和不確定性的建模哲學(xué)。最后再分享一個(gè)小技巧寫(xiě)完整個(gè)模型后把每個(gè)方程點(diǎn)開(kāi)檢查一遍凡是看到只有常量和加減乘除的輔助變量就多問(wèn)一句——這個(gè)變量真的瞬時(shí)就能算出來(lái)嗎如果在現(xiàn)實(shí)里它有滯后、有波動(dòng)、有非線(xiàn)性函數(shù)庫(kù)里多半已經(jīng)有對(duì)應(yīng)的工具等著你了。本文還有配套的精品資源點(diǎn)擊獲取