白東玉 趙康 張杰 楊文
摘? 要:目前的微積分總體說來都是利用函數(shù)求微分和積分而來,最近幾年發(fā)展起來的線性回歸也需要先把數(shù)據(jù)訓(xùn)練成一個模型后才能對數(shù)據(jù)進(jìn)行預(yù)測。文章介紹一種脫離數(shù)據(jù)到模型的方式,提出一種數(shù)據(jù)即模型的理論,這種模式僅采用最簡單的數(shù)學(xué)計(jì)算得出導(dǎo)數(shù)斜率,從而獲得離散數(shù)據(jù)中的導(dǎo)數(shù),這種導(dǎo)數(shù)將突破微積分導(dǎo)數(shù)的概念,但這種導(dǎo)數(shù)具有和微積分導(dǎo)數(shù)同樣的作用,即線性的變化趨勢。相信這種方式在大數(shù)據(jù)的今天能得到廣泛實(shí)踐。
關(guān)鍵詞:離散曲線;切線;數(shù)據(jù)科學(xué);微分
中圖分類號:O241.82? ? ? 文獻(xiàn)標(biāo)識碼: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? 引? 言
一直以來,對于離散數(shù)據(jù)點(diǎn)曲線都存在一種認(rèn)知,從總體上看,離散數(shù)據(jù)點(diǎn)可以構(gòu)成一條直觀的曲線,也認(rèn)為它應(yīng)該能夠有類似導(dǎo)數(shù)的意義來確定某個位置的發(fā)展變化,但從微觀上看,離散數(shù)據(jù)點(diǎn)是不連續(xù)的,且無法構(gòu)成真正的線條,因此無法使用導(dǎo)數(shù)來研究其中的變化趨勢。
目前對微積分的研究,大部分是利用函數(shù)作為研究對象,對具體的函數(shù)進(jìn)行微分或積分處理,雖然這樣的理論體系與函數(shù)的理論體系完美契合,但是對于那些不知道函數(shù),只有一堆數(shù)據(jù)集合的情景卻無法處理,特別是在當(dāng)前大數(shù)據(jù)的時代里,沒有像導(dǎo)數(shù)、積分等的數(shù)學(xué)術(shù)語來描述一個離散數(shù)據(jù)曲線的變化狀態(tài)。而對于離散數(shù)據(jù)的研究更多的是以概率論與數(shù)理統(tǒng)計(jì)這樣的方式來得出一個結(jié)論。
對離散數(shù)據(jù)的導(dǎo)數(shù)理論注定要打破傳統(tǒng)導(dǎo)數(shù)理論的定義。如微積分中的導(dǎo)數(shù)定理為:設(shè)函數(shù)y=f(x)在點(diǎn)x0的某個鄰域內(nèi)有定義,當(dāng)自變量x在x0處取得增量Δx(點(diǎn)x0+Δx仍在該鄰域內(nèi))時,相應(yīng)地,因變量取得增量Δy=f(x0+Δx)-f(x0);如果Δy與Δx之比當(dāng)Δx->0時的極限存在,那么稱函數(shù)y=f(x)在點(diǎn)x0處可導(dǎo),并稱這個極限為函數(shù)y=f(x)在點(diǎn)x0處的導(dǎo)數(shù),記為f ′(x)。而離散數(shù)據(jù)中的導(dǎo)數(shù)不僅不會利用極限定理,并且要將數(shù)據(jù)擴(kuò)大到更大的鄰域,用更多的鄰域點(diǎn)參與計(jì)算得出切線。
1? 概念理論
1.1? 導(dǎo)數(shù)的意義
導(dǎo)數(shù)的幾何意義在于表示函數(shù)曲線在點(diǎn)P0(x0,f(x0))處的切線的斜率(導(dǎo)數(shù)的幾何意義是該函數(shù)曲線在這一點(diǎn)上的切線斜率),另外導(dǎo)數(shù)也表示曲線在某一點(diǎn)上的變化速率。本文主要探索導(dǎo)數(shù)的切線性質(zhì)和表示變化速率的特征。
1.2? 猜想
由于是離散數(shù)據(jù),因此只能利用已有數(shù)據(jù)進(jìn)行探索。無論從曲線的直觀感受來看,還是以導(dǎo)數(shù)在函數(shù)中的定義來看,某一點(diǎn)x0的導(dǎo)數(shù)是由其位置及左區(qū)間、右區(qū)間決定的,但是如果在離散數(shù)據(jù)中僅以一兩個點(diǎn)來做導(dǎo)數(shù)分析,相當(dāng)于導(dǎo)數(shù)僅由少數(shù)幾個點(diǎn)決定,必定會有巨大的波動。因此我們選取固定x區(qū)間的所有點(diǎn)位進(jìn)行運(yùn)算,至少要達(dá)到用肉眼能夠判斷得出的切線是否正確。
做此實(shí)驗(yàn)需要有一個相對正確的方法來確認(rèn)這個方法的正確性,這里筆者使用sin函數(shù)+隨機(jī)數(shù)的方法產(chǎn)生離散數(shù)據(jù)集。利用sin′(x)=cos(x)的導(dǎo)數(shù)公式來確認(rèn)某一點(diǎn)的導(dǎo)數(shù)值。
由于本方法與之前函數(shù)求導(dǎo)的方法完全不同,因此也需要一個不同的計(jì)算方法。假設(shè)兩個點(diǎn)a(x1,y1)和b(x2,y2),直線ab的斜率k1為(y2-y1)/(x2-x1),另外兩個點(diǎn)c(x3,y3)和d(x4,y4),直線cd的斜率k2為(y4-y3)/(x4-x3),兩條直線的平均斜率k3=tan((arctan(k1)+arctan(k2))/2),當(dāng)有n個斜率時,平均斜率為tan(1/n*arctan(ki)),也就是先求出n條線角度的平均值,再求這個平均角度的正切值。這個公式雖然從三角公式轉(zhuǎn)化很難轉(zhuǎn)化,但是我們使用到計(jì)算機(jī)程序?qū)崿F(xiàn)時會變得十分方便。
制定好基本方法后,接下來就是具體操作。主要有以下步驟:
(1)生成規(guī)范數(shù)據(jù)樣本。
(2)生成噪音數(shù)據(jù),并將噪音數(shù)據(jù)融入規(guī)范數(shù)據(jù)樣本。
(3)從噪音數(shù)據(jù)的頭到尾依次選取切線計(jì)算點(diǎn),針對每個計(jì)算點(diǎn)選取對應(yīng)三種數(shù)據(jù)樣本:切點(diǎn)位置區(qū)域樣本;前置區(qū)域數(shù)據(jù)樣本;后置區(qū)域數(shù)據(jù)樣本。
(4)利用步驟(3)選取的三種數(shù)據(jù)樣本,在求切線的時候,分別使用前置區(qū)域數(shù)據(jù)樣本和切點(diǎn)位置區(qū)域樣本、后置區(qū)域數(shù)據(jù)樣本和切點(diǎn)位置區(qū)域樣本計(jì)算斜率。關(guān)系點(diǎn)對應(yīng)關(guān)系為[ai,bi]。
(5)利用兩組斜率kn1和kn2。再利用kn1和kn2綜合求出平均角度及其斜率。
(6)用圖形化工具pyplot生成圖形。
本文使用的x區(qū)間為[0,2π],其中一共有10 000個點(diǎn)平均分布在x區(qū)間,設(shè)置一個波動值surge來確認(rèn)隨機(jī)波動數(shù)的波動幅度。每次選取的三個數(shù)據(jù)樣本分別是100個,相當(dāng)于x長度為2π/100。在樣本生成結(jié)束后,從第150個點(diǎn)開始到9 850結(jié)束,選取這樣的范圍是為了滿足前置、中置、后置的數(shù)據(jù)樣本數(shù)量一致。
2? 效果、調(diào)整與結(jié)論
2.1? 初步嘗試
通過生成的結(jié)果發(fā)現(xiàn),生成的切線趨勢與原函數(shù)的切線趨勢基本相同,但受波動值的影響較大,圖1~圖4分別展示了波動值為0.20、0.04、0.02的效果圖,其中數(shù)據(jù)樣本為數(shù)據(jù)點(diǎn),理論切線值為sin函數(shù)的切線斜率,數(shù)據(jù)生成切線值為利用本論文的方法得出的斜率值,其中數(shù)據(jù)生成切線值線條兩端的0點(diǎn)值為空缺占位值。
以下四幅圖中,數(shù)據(jù)樣本曲線是原函數(shù)值+噪音數(shù)據(jù)的結(jié)果曲線,當(dāng)數(shù)據(jù)樣本曲線較粗時,表示噪音數(shù)據(jù)的波動區(qū)間較大,如圖1和圖4所示;當(dāng)數(shù)據(jù)樣本曲線較細(xì)時,表示噪音數(shù)據(jù)的波動區(qū)間較小,如圖2和圖3所示。
理論切線值表示由原函數(shù)導(dǎo)數(shù)生成的切線值,圖1、圖2和圖3的理論切線值由sin(x)的導(dǎo)數(shù)也就是cos(x)生成。數(shù)據(jù)生成切線值是由樣本曲線中的數(shù)據(jù)利用1.2節(jié)所述方法生成的曲線。數(shù)據(jù)生成切線曲線和理論切線值差異越大,說明利用本方法計(jì)算的切線越不正確,如圖1和圖4所示,當(dāng)數(shù)據(jù)生成切線值與理論切線值保持一致甚至看起來融合成一條線時,說明利用本方法計(jì)算的切線越正確,如圖2和圖3所示。
由上述方法,可能存在兩個區(qū)域間的點(diǎn)間直線交叉的問題,假設(shè)前置區(qū)域有兩點(diǎn)[a(1,2),b(2,3)],切線區(qū)域有兩點(diǎn)[c(3,1),d(4,5)],斜率k(ad)和斜率k(bc)的平均斜率為0.333 00,斜率k(ac)和斜率k(bd)的平均斜率為0.162 27,因此筆者猜測,減少交叉直線可以減少切線波動。
2.2? 新的猜想
為解決2.1節(jié)的猜測,在1.2節(jié)的步驟(3)和步驟(4)之間增加一個步驟,將步驟(3)選取的三個區(qū)域按照y值進(jìn)行排序,且稱為步驟(3.5)。這樣步驟(4)用于計(jì)算的直線將不會存在交叉的關(guān)系。生成的效果圖如圖5所示。
由圖5所示,可以看出增加步驟(3.5)后,數(shù)據(jù)生成切線比圖1所示的數(shù)據(jù)生成切線能更好地與理論切線值融為一體,這說明改進(jìn)后的方法能更好地計(jì)算切線值。
2.3? 總結(jié)
由圖1、圖2、圖3可見,波動值越小,切線斜率預(yù)測值與原函數(shù)的切線值越相近,兩條線也越接近。由圖4利用cos函數(shù)驗(yàn)證此方法的普遍性,說明此方法并非僅針對正弦函數(shù)適用。
由圖5可見,計(jì)算前將區(qū)間數(shù)據(jù)按照y值排序后進(jìn)行計(jì)算能夠大幅提升切線的準(zhǔn)確度。
3? 結(jié)? 論
本文依托Python進(jìn)行具體實(shí)驗(yàn),并得出圖示,依托這些實(shí)驗(yàn),也提出一種新的觀點(diǎn):數(shù)據(jù)集即函數(shù)。在這種概念下,尋找離散數(shù)據(jù)集導(dǎo)數(shù)的首要任務(wù)將不再是總結(jié)出原函數(shù)f(x),而是找到求導(dǎo)點(diǎn)位x0的當(dāng)前區(qū)間、左區(qū)間及右區(qū)間,僅利用這些區(qū)間就求出點(diǎn)位x0的導(dǎo)數(shù)。此種方法也還有其他實(shí)驗(yàn)空間,如將三個數(shù)據(jù)集進(jìn)行排序后再進(jìn)行計(jì)算、其他數(shù)據(jù)集等。
本方法在如今的大數(shù)據(jù)時代,將離散的數(shù)據(jù)變得像函數(shù)一樣處理具有重要意義,很多函數(shù)相關(guān)理論可以通過另一種形式來指導(dǎo)實(shí)踐中的發(fā)展方向,可以幫助眾多企業(yè)透過數(shù)據(jù)看趨勢。由于本方法的數(shù)據(jù)取樣僅是附近區(qū)間的數(shù)據(jù)而不是全部數(shù)據(jù)集,因此可以加快實(shí)時處理速度,對前置區(qū)間、當(dāng)前區(qū)間、后置區(qū)間的區(qū)間長度的設(shè)置,能夠針對自己的數(shù)據(jù)集設(shè)置不同區(qū)間,從而降低區(qū)間過大或過小帶來的數(shù)據(jù)影響。
本方法能應(yīng)用的領(lǐng)域很多,在計(jì)算機(jī)領(lǐng)域能夠用于服務(wù)器網(wǎng)絡(luò)速度的變化趨勢、硬盤空間的增長趨勢以及顯卡性能分析等等,在基礎(chǔ)建設(shè)工程中能夠分析水位線的變化趨勢、邊樁沉降趨勢、地質(zhì)板塊變動趨勢等,在金融領(lǐng)域可以分析股票的變化趨勢、全球經(jīng)濟(jì)變動趨勢、消費(fèi)者微觀消費(fèi)趨勢等,在人體方面能夠用于分析一個人的體能變化趨勢、飲食對體力的影響趨勢、心跳趨勢等。
參考文獻(xiàn):
[1] 同濟(jì)大學(xué)數(shù)學(xué)系.高等數(shù)學(xué):第7版 [M].北京:高等教育出版社,2014.
[2] 盛驟,謝式千,潘承毅.概率論與數(shù)理統(tǒng)計(jì):浙大·第4版 [M].北京:高等教育出版社,2012.
[3] 唐亙.精通數(shù)據(jù)科學(xué):從線性回歸到深度學(xué)習(xí) [M].北京:人民郵電出版社,2018.
作者簡介:白東玉(1989.08-),男,漢族,云南文山人,助理工程師,本科,研究方向:數(shù)據(jù)分析。