肖帥帥
(上海海事大學(xué)商船學(xué)院,中國上海201306)
船舶航行的軌跡是船東監(jiān)測船舶營運的重要指標(biāo)。船舶偏離計劃軌跡可能給船舶航行帶來危險,然而船舶在海上航行受海浪、海風(fēng)及海流等環(huán)境擾動的影響力作用較大,所以如何對給定的一段航行軌跡有所偏差,在不能及時發(fā)覺時,可能會使船舶偏離船舶航行的軌跡。
插值法是一種古老的數(shù)學(xué)方法,它來自于生產(chǎn)實踐。 早在一千多年前,我國數(shù)學(xué)家在研究歷法上就應(yīng)用了線性插值與二次插值,但它的基本理論和結(jié)果卻是在微積分產(chǎn)生之后才逐步完善的,其應(yīng)用也日益增多,特別是在電子計算機廣泛使用以后,由于航空、造船、航海等實際問題的需要,使插值法在實踐上或理論上顯得更為重要,并得到進一步發(fā)展,更獲得了廣泛的應(yīng)用[1]。船舶AIS 數(shù)據(jù)大量且長時間保存AIS 信息需要很大的儲存空間,這使實時監(jiān)測航行的軌跡帶來很大不便。當(dāng)只知道船舶航行的幾個點后,用插值法推算航行的航跡,船東可以隨時觀察船舶是否按規(guī)定的軌跡航行。監(jiān)測船舶航跡目的是了解和掌握某個水域內(nèi)的船舶交通狀況和船舶行為規(guī)律,通過返回的若干離散的船舶航行軌跡點來繪制船舶航行曲線。 針對此,通過數(shù)值分析方法來處理船舶航行返回的離散數(shù)據(jù)。
針對船舶航行情況,本文在數(shù)值分析的基礎(chǔ)上,提出一種基于拉格朗日和牛頓差值推算船舶航行的軌跡,仿真實驗證明該方法能有效地推算船舶航行中的軌跡。
圖1 水域中船舶航行軌跡點
AIS 的信息包括靜態(tài)信息、動態(tài)信息、與航次有關(guān)的信息、與安全有關(guān)的短電文、AIS 船舶報告。主要使用靜態(tài)信息和動態(tài)信息。動態(tài)信息包括船位及其精度標(biāo)示和完好性狀態(tài);協(xié)調(diào)世界時UTC 標(biāo)記的定位時間、船舶的對地航向(COG)、對地航速、航行狀態(tài)和旋回速率。 其中包括交通流量、速度和占有率。 主要包括海上移動通信業(yè)務(wù)標(biāo)識(mmsi)、航速(speed,單位“kn”)、經(jīng)度(lon,單位“′”)、緯度(lat,單位“′”)、艏向(heading,單位“(°)”)、船長(length,單位“m”)、船寬(width,單位“m”)[7]。
顯然,船舶的航行曲線是一條連續(xù)不間斷的航線。 因此在給定的一個區(qū)域內(nèi)船舶航跡雖只給出一些離散點(如圖1 所示),我們?nèi)钥赏ㄟ^數(shù)值分析中的插值法來推算完整的航跡。
圖1 為船舶在水域返回的若干航行軌跡點,對此數(shù)據(jù)下面我們引入拉格朗日插值法來處理。
設(shè)函數(shù)y=f(x)在區(qū)間[a,b]上有定義,且已知在點a≤x0<x1<… 成立,就稱P(xi)為f(x)的插值函數(shù),點x0,x1,…,xn稱為插值節(jié)點,求插值函數(shù)P(xi)的方法稱為插值法。 若P(xi)是次數(shù)不超過n 的代數(shù)多項式,即 就稱P(xi)為插值多項式。 圖2 水域中船舶航行軌跡線 從幾何上看,插值法就是求曲線y=P(xi)使其通過給定的n+1 個點(xi,yi),i=0,1,…,n,并用它近似已知曲線y=f(x)。 下面給出拉格朗日插值公式: 其中 ωn+1(x)=(x-x0)(x-x1)…(x-xn) 利用已知的船舶航行數(shù)據(jù)節(jié)點,根據(jù)拉格朗日插值法可繪制出如圖2 曲線[5]。 考慮在一個固定的區(qū)域內(nèi)插值去逼近船舶的航行路線,顯然拉格朗日插值中使用的點越多,插值多項式的次數(shù)就越高。 而并不是因此繪制出的航跡就越準確,同時隨著插值節(jié)點的增多,需要記錄存儲的船舶航跡點就越多。 下面是Runge 給出的一個例子。 考慮在區(qū)間-1≤x≤1 上的函數(shù): 構(gòu)造等距節(jié)點上的拉格朗日插值多項式。當(dāng)插值節(jié)點的個數(shù)增加時,插值多項式的次數(shù)隨之而增加。 在Matlab 上運行程序可發(fā)現(xiàn)當(dāng)插值節(jié)點增多時,實驗結(jié)果并非越來越好,這一現(xiàn)象如今已得到越來越多人的關(guān)注。 值得提出的是,隨著船舶返回的節(jié)點的增加,又得重新進行拉格朗日插值工作,計算量可想增大。 因此在拉格朗日插值的基礎(chǔ)上引入牛頓插值來解決這一缺憾。 利用插值基函數(shù)很容易得到拉格朗日插值多項式,擔(dān)當(dāng)插值節(jié)點增加時全部插值基函數(shù)均要隨之變化,整個公式也將發(fā)生變化,這在實際計算中很不方便,為了克服這一點,可把插值多項式表示如下便于計算的形式: 其中a0,a1,…,an為待定系數(shù),可有插值條件確定。 表1 均差表 根據(jù)均差定義,把x 看成[a,b]上的一點,可推得牛頓均差公式為[4]: Nn(x)=f(x0)+f[x0,x1](x-x0)+…f[x0,…,xn](x-x0)…(x-xn-1) 圖3 水域中船舶航行軌跡線 它比拉格朗日差值計算量省,且便于程序設(shè)計。 對于船舶航行提供的若干點可以方便的繪制出船舶航行曲線, 同時當(dāng)節(jié)點增加時,前面的工作可以為后面的計算提供幫助,大大節(jié)省了計算量。 而對于插值結(jié)果,它們兩個所得到的船舶航行軌跡線是是相同的,如圖3 所示。 檢測精度的計算公式:中誤差按下列公式計算。 式中:M檢——中誤差 n——檢測點數(shù) △——平面較差 選取實際部分點與插值生成后的點數(shù)據(jù)誤差比較如表2: 表2 誤差統(tǒng)計表 由此可以看出牛頓插值可以用來較好的推算船舶運行航跡。 實際船舶航行的曲線與經(jīng)過牛頓插值推算后的曲線比較如圖4。 圖4 航行軌跡與推算航跡 本文對船舶航跡推算所涉及到的數(shù)值分析方法進行了分析和論證,設(shè)計了基于插值法對船舶航行軌跡推算算法。 理論分析了插值法解決這一問題的關(guān)鍵點及誤差分析,并給出了相關(guān)公式,對相關(guān)理論進行了Matlab 仿真,通過分析得到以下結(jié)論:拉格朗日插值法在處理船舶航行節(jié)點時有簡單之處,但隨著節(jié)點數(shù)的增加,計算量也大大增加。 運用牛頓插值推算船舶航跡相比拉格朗日差值計算量大大減小,而且有較高的精度,得出了數(shù)值分析推算船舶航行軌跡的可行性。 可以推算船舶航行過的航跡,船東可以根據(jù)少量的數(shù)據(jù)點,清晰地了解船舶在海上運動的連續(xù)軌跡,并且也可以根據(jù)它推算出船舶在繼續(xù)航行的前方是否存在危險,對事故的鑒定與預(yù)防有很重大的意義。 用此方法推算船舶航行軌跡有重大的參考意義。 [1]李慶揚,王能超,易大義.數(shù)值分析[M].北京:清華大學(xué)出版社,2007. [2]吳兆麟.海上交通工程[M].大連:大連海事大學(xué)出版社,2004. [3]白峰杉.數(shù)值計算引論[M].北京:高等教育出版社,2004. [4]李慶揚,關(guān)治,白峰杉.數(shù)值計算原理[M].北京:清華大學(xué)出版社,2000. [5]劉衛(wèi)國.MATLAB 程序設(shè)計與應(yīng)用[M].北京:高等教育出版社,2006. [6]李慶揚,關(guān)治,白峰杉.數(shù)值計算原理[M].北京:清華大學(xué)出版社,2000. [7]林袆珣.數(shù)據(jù)挖掘技術(shù)在海上交通特征分析中的應(yīng)用研究[D].集美大學(xué),2011,6.1.3 誤差估計
2 牛頓插值
2.1 均差
2.2 牛頓插值公式
2.3 精度檢驗
3 結(jié)論