白東玉 趙康 張杰 楊文



摘? 要:目前的微積分總體說來都是利用函數求微分和積分而來,最近幾年發展起來的線性回歸也需要先把數據訓練成一個模型后才能對數據進行預測。文章介紹一種脫離數據到模型的方式,提出一種數據即模型的理論,這種模式僅采用最簡單的數學計算得出導數斜率,從而獲得離散數據中的導數,這種導數將突破微積分導數的概念,但這種導數具有和微積分導數同樣的作用,即線性的變化趨勢。相信這種方式在大數據的今天能得到廣泛實踐。
關鍵詞:離散曲線;切線;數據科學;微分
中圖分類號:O241.82? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)05-0035-03
Derivative Algorithm for Discrete Points
BAI Dongyu,ZHAO Kang,ZHANG Jie,YANG Wen
(Power China Kunming Engineering Corporation Limited,Kunming? 650000,China)
Abstract:In general,the current calculus is the use of functions to differentiate and integrate,the development of linear regression in recent years also needs to train the data into a model before the data can be predicted. This paper introduces a way of breaking away from data to model,and puts forward a theory of data as model. This model only uses the simplest mathematical calculation to get derivative slope,so as to obtain derivative in discrete data. This derivative will break through the concept of calculus derivative,but this derivative has the same function as calculus derivative,that is,linear change trend. I believe that this way can be widely practiced in todays big data.
Keywords:discrete curve;tangent;data science;differential
0? 引? 言
一直以來,對于離散數據點曲線都存在一種認知,從總體上看,離散數據點可以構成一條直觀的曲線,也認為它應該能夠有類似導數的意義來確定某個位置的發展變化,但從微觀上看,離散數據點是不連續的,且無法構成真正的線條,因此無法使用導數來研究其中的變化趨勢。
目前對微積分的研究,大部分是利用函數作為研究對象,對具體的函數進行微分或積分處理,雖然這樣的理論體系與函數的理論體系完美契合,但是對于那些不知道函數,只有一堆數據集合的情景卻無法處理,特別是在當前大數據的時代里,沒有像導數、積分等的數學術語來描述一個離散數據曲線的變化狀態。而對于離散數據的研究更多的是以概率論與數理統計這樣的方式來得出一個結論。
對離散數據的導數理論注定要打破傳統導數理論的定義。如微積分中的導數定理為:設函數y=f(x)在點x0的某個鄰域內有定義,當自變量x在x0處取得增量Δx(點x0+Δx仍在該鄰域內)時,相應地,因變量取得增量Δy=f(x0+Δx)-f(x0);如果Δy與Δx之比當Δx->0時的極限存在,那么稱函數y=f(x)在點x0處可導,并稱這個極限為函數y=f(x)在點x0處的導數,記為f ′(x)。而離散數據中的導數不僅不會利用極限定理,并且要將數據擴大到更大的鄰域,用更多的鄰域點參與計算得出切線。
1? 概念理論
1.1? 導數的意義
導數的幾何意義在于表示函數曲線在點P0(x0,f(x0))處的切線的斜率(導數的幾何意義是該函數曲線在這一點上的切線斜率),另外導數也表示曲線在某一點上的變化速率。本文主要探索導數的切線性質和表示變化速率的特征。
1.2? 猜想
由于是離散數據,因此只能利用已有數據進行探索。無論從曲線的直觀感受來看,還是以導數在函數中的定義來看,某一點x0的導數是由其位置及左區間、右區間決定的,但是如果在離散數據中僅以一兩個點來做導數分析,相當于導數僅由少數幾個點決定,必定會有巨大的波動。因此我們選取固定x區間的所有點位進行運算,至少要達到用肉眼能夠判斷得出的切線是否正確。
做此實驗需要有一個相對正確的方法來確認這個方法的正確性,這里筆者使用sin函數+隨機數的方法產生離散數據集。利用sin′(x)=cos(x)的導數公式來確認某一點的導數值。
由于本方法與之前函數求導的方法完全不同,因此也需要一個不同的計算方法。假設兩個點a(x1,y1)和b(x2,y2),直線ab的斜率k1為(y2-y1)/(x2-x1),另外兩個點c(x3,y3)和d(x4,y4),直線cd的斜率k2為(y4-y3)/(x4-x3),兩條直線的平均斜率k3=tan((arctan(k1)+arctan(k2))/2),當有n個斜率時,平均斜率為tan(1/n*arctan(ki)),也就是先求出n條線角度的平均值,再求這個平均角度的正切值。這個公式雖然從三角公式轉化很難轉化,但是我們使用到計算機程序實現時會變得十分方便。
制定好基本方法后,接下來就是具體操作。主要有以下步驟:
(1)生成規范數據樣本。
(2)生成噪音數據,并將噪音數據融入規范數據樣本。
(3)從噪音數據的頭到尾依次選取切線計算點,針對每個計算點選取對應三種數據樣本:切點位置區域樣本;前置區域數據樣本;后置區域數據樣本。
(4)利用步驟(3)選取的三種數據樣本,在求切線的時候,分別使用前置區域數據樣本和切點位置區域樣本、后置區域數據樣本和切點位置區域樣本計算斜率。關系點對應關系為[ai,bi]。
(5)利用兩組斜率kn1和kn2。再利用kn1和kn2綜合求出平均角度及其斜率。
(6)用圖形化工具pyplot生成圖形。
本文使用的x區間為[0,2π],其中一共有10 000個點平均分布在x區間,設置一個波動值surge來確認隨機波動數的波動幅度。每次選取的三個數據樣本分別是100個,相當于x長度為2π/100。在樣本生成結束后,從第150個點開始到9 850結束,選取這樣的范圍是為了滿足前置、中置、后置的數據樣本數量一致。
2? 效果、調整與結論
2.1? 初步嘗試
通過生成的結果發現,生成的切線趨勢與原函數的切線趨勢基本相同,但受波動值的影響較大,圖1~圖4分別展示了波動值為0.20、0.04、0.02的效果圖,其中數據樣本為數據點,理論切線值為sin函數的切線斜率,數據生成切線值為利用本論文的方法得出的斜率值,其中數據生成切線值線條兩端的0點值為空缺占位值。
以下四幅圖中,數據樣本曲線是原函數值+噪音數據的結果曲線,當數據樣本曲線較粗時,表示噪音數據的波動區間較大,如圖1和圖4所示;當數據樣本曲線較細時,表示噪音數據的波動區間較小,如圖2和圖3所示。
理論切線值表示由原函數導數生成的切線值,圖1、圖2和圖3的理論切線值由sin(x)的導數也就是cos(x)生成。數據生成切線值是由樣本曲線中的數據利用1.2節所述方法生成的曲線。數據生成切線曲線和理論切線值差異越大,說明利用本方法計算的切線越不正確,如圖1和圖4所示,當數據生成切線值與理論切線值保持一致甚至看起來融合成一條線時,說明利用本方法計算的切線越正確,如圖2和圖3所示。
由上述方法,可能存在兩個區域間的點間直線交叉的問題,假設前置區域有兩點[a(1,2),b(2,3)],切線區域有兩點[c(3,1),d(4,5)],斜率k(ad)和斜率k(bc)的平均斜率為0.333 00,斜率k(ac)和斜率k(bd)的平均斜率為0.162 27,因此筆者猜測,減少交叉直線可以減少切線波動。
2.2? 新的猜想
為解決2.1節的猜測,在1.2節的步驟(3)和步驟(4)之間增加一個步驟,將步驟(3)選取的三個區域按照y值進行排序,且稱為步驟(3.5)。這樣步驟(4)用于計算的直線將不會存在交叉的關系。生成的效果圖如圖5所示。
由圖5所示,可以看出增加步驟(3.5)后,數據生成切線比圖1所示的數據生成切線能更好地與理論切線值融為一體,這說明改進后的方法能更好地計算切線值。
2.3? 總結
由圖1、圖2、圖3可見,波動值越小,切線斜率預測值與原函數的切線值越相近,兩條線也越接近。由圖4利用cos函數驗證此方法的普遍性,說明此方法并非僅針對正弦函數適用。
由圖5可見,計算前將區間數據按照y值排序后進行計算能夠大幅提升切線的準確度。
3? 結? 論
本文依托Python進行具體實驗,并得出圖示,依托這些實驗,也提出一種新的觀點:數據集即函數。在這種概念下,尋找離散數據集導數的首要任務將不再是總結出原函數f(x),而是找到求導點位x0的當前區間、左區間及右區間,僅利用這些區間就求出點位x0的導數。此種方法也還有其他實驗空間,如將三個數據集進行排序后再進行計算、其他數據集等。
本方法在如今的大數據時代,將離散的數據變得像函數一樣處理具有重要意義,很多函數相關理論可以通過另一種形式來指導實踐中的發展方向,可以幫助眾多企業透過數據看趨勢。由于本方法的數據取樣僅是附近區間的數據而不是全部數據集,因此可以加快實時處理速度,對前置區間、當前區間、后置區間的區間長度的設置,能夠針對自己的數據集設置不同區間,從而降低區間過大或過小帶來的數據影響。
本方法能應用的領域很多,在計算機領域能夠用于服務器網絡速度的變化趨勢、硬盤空間的增長趨勢以及顯卡性能分析等等,在基礎建設工程中能夠分析水位線的變化趨勢、邊樁沉降趨勢、地質板塊變動趨勢等,在金融領域可以分析股票的變化趨勢、全球經濟變動趨勢、消費者微觀消費趨勢等,在人體方面能夠用于分析一個人的體能變化趨勢、飲食對體力的影響趨勢、心跳趨勢等。
參考文獻:
[1] 同濟大學數學系.高等數學:第7版 [M].北京:高等教育出版社,2014.
[2] 盛驟,謝式千,潘承毅.概率論與數理統計:浙大·第4版 [M].北京:高等教育出版社,2012.
[3] 唐亙.精通數據科學:從線性回歸到深度學習 [M].北京:人民郵電出版社,2018.
作者簡介:白東玉(1989.08-),男,漢族,云南文山人,助理工程師,本科,研究方向:數據分析。