什麼是響應面(RSM)分析
一、為什麼進行響應面分析
假設我們要發射一顆子彈,目標在200m處,我們發射子彈時應該注意什麼?

解決這個問題其實只需要高中物理知識,假設發射的初速度是 ,發射角是 ,目標距離為
,子彈執行時間為 ,則很容易得到如下關係:
在水平方向上:
在豎直方向:
整理一下就可以得到:
可見初始發射速度不同時,發射角也不一樣,必須保持兩者匹配才能擊中目標,而子彈的初始速度基本是已知的,主要就是要確定發射角,有了這個知識,我們就可以買一套裝備參加射擊比賽了!

很遺憾的是,只具備這些知識,還是很難打的準,為什麼?——我們忽略了環境條件(atmospheric conditions),比如當前風速、氣壓以及溫度等。這種情況下事情就變得複雜了。首先由於風的影響,發射角就不僅僅在豎直方向了( ),在水平方向( )也要有,否則子彈到目標位置時在水平方向就會有偏離。

問題是風到底會怎樣影響子彈?這就要用到空氣動力學了,這在本質上和飛行器在空氣中執行時受力是一致的——什麼?我一個射擊運動員讓我去學習空氣動力學?當然,影響不僅僅是風速,貌似當前氣壓和溫度也有那麼一丁點影響,這怎麼搞?有簡單一點的方法嗎?——不妨試試 響應面分析法(response surface methodology ,記為 RSM )!
二、響應面分析的數學基礎
大家都學過泰勒分析,其思想就是用多項式來擬合任意函式,比方說自然指數函式,我們可以進行如下展開:
如果要求不是很嚴格,我們其實可以只用前幾項來表達,如下圖所示:

可見,對於指數函式而言,在[0 1]範圍內,多項式取到三次的時候就和真值比較接近了,也就說說我們可以用更容易處理的多項式來擬合函式。
但是,泰勒展開有一個限制條件,那就是 變數只有一個 ,對於有好幾個變數的該如何處理呢?一個很顯然的結論是:我們也可以採用和泰勒展開類似的策略,比如我們可以只考慮常數項和一次項:
其中 為試驗輸出量, 為係數, 為輸入變數, 為觀測誤差。分析發現,最大到一次項太粗略,往往和實際值差別較大。實踐證明,最大到二次項一般情況下可以給出較為滿意的答案,即
這種通過一系列多個變數、確定性的“試驗”,來模擬真實極限狀態曲面的方法稱為響應面法,最早是由數學家Box和Wilson於1951年提出來的。為簡單期間,我們將兩個變數的乘積合併,用一個變數來代替:
寫成更緊湊的形式:
多次觀測後寫成矩陣的形式為:
其中
,
,
,
最小方差為:
當最小方差最小時,顯然擬合曲面和實際值最接近。當 對
的偏導數為零時,最小方差取極小值。
可得:
可以獲得擬合的響應面為:
三、回到射擊的例子
前面我們分析了響應面分析的數學基礎,下面我們來看一個具體的例子,還是子彈發射,不過增加了難度,現在是移動射擊。假設我們做了多次試驗,分別記錄了當地氣壓(air pressure)、空氣溫度( air_temp)、水平發射角(alpha)、豎直髮射角(beta)、與目標之間的距離(d),初始速度(v0)以及當地風速(wind),輸出量是子彈在目標附近的座標。現在要建立這幾個因素(變數)的響應面模型。
先用統計學分析一下,看看各個因素的影響。很明顯,氣壓和溫度的影響因子都比較小,因此不是主要影響因素,,後續可以忽略;發射角、初速度影響因子比較高,影響比較大;風速有負向影響,也別是y方向。

也可以通過矩陣圖來看:

當然了,我們最關心的還是輸入輸出的響應面模型,也就是我們要建立一個模型,數學表達為:
下圖是以水平發射角(alpha)、豎直髮射角(beta)為橫縱座標,觀察子彈落點(x,y)。當然我們可以觀察任意變數對輸出的影響。


也就是說,如果試驗太貴,模擬太耗時,我們還有一種選擇,就是通過有限次的試驗,再通過響應面分析來確定近似的模型,來指導後續的設計或者試驗。