數(shù)模(3):線性障癌、多項式、簡單曲線擬合

1.線性函數(shù)擬合

先來看最簡單的例子辩尊,對于線性函數(shù)y=ax+b涛浙,可以使用最小二乘法來確定a、b兩個系數(shù)摄欲。對于N個點轿亮,x值對應函數(shù)值與y值的差值平方和(殘差平方和)作為目標函數(shù),分別對a胸墙、b求偏導我注,令偏導為0,得到兩個方程劳秋,聯(lián)立解得系數(shù)。

設有N個點坐標為(x_i,y_i),i=1,2,...,N,則殘差平方和為\sum_{i=1}^N(ax_i+b-y_i)^2玻淑,展開來就是(ax_1+b-y_1)^2+(ax_2+b-y_2)^2+...+(ax_N+b-y_N)^2嗽冒,分別對a、b求偏導并令偏導為0得兩個方程:

  1. \sum_{i=1}^{N}(ax_i+b-y_i)x_i=0
  2. \sum_{i=1}^{N}(ax_i+b-y_i)=0

聯(lián)立以上兩個方程即可求解补履。

2.可化成線性函數(shù)的曲線擬合

冪函數(shù)擬合添坊、雙曲線(在一三象限的那種形式)擬合、指數(shù)函數(shù)擬合箫锤、對數(shù)函數(shù)擬合贬蛙,都可以利用最小二乘法來解決。但是這些函數(shù)的偏導數(shù)可能很復雜谚攒,列出的方程組是非線性方程組阳准,解算較為困難。因此我們需要通過變換點坐標把這些曲線轉化為線性函數(shù)馏臭。

冪函數(shù)的一般方程為y=ax^b野蝇,兩邊取對數(shù)可變換為lny=blnx+lna,換元可得y'=bx'+a'括儒。對每個點(x,y)的x值和y值取對數(shù)可得到(x',y')绕沈,化為線性函數(shù)擬合問題。

雙曲線的一般方程為y=\frac{1}{ax+b}帮寻,兩邊取倒數(shù)可變換為\frac{1}{y}=ax+b乍狐,換元得y'=ax+b。對每個點(x,y)的y值取倒數(shù)即可得到(x,y')固逗,化為線性函數(shù)擬合問題浅蚪。

指數(shù)函數(shù)的一般方程為y=ae^{bx},兩邊取自然對數(shù)可變換為lny=lna+bx抒蚜,換元得y'=a'+bx掘鄙。對每個點(x,y)的y值取對數(shù)即可得到(x,y'),化為線性函數(shù)擬合問題嗡髓。

對數(shù)函數(shù)的一般方程為y=alnx+b操漠,換元得y=ax'+b。對每個點(x,y)的x值取對數(shù)即可得到(x',y)饿这,化為線性函數(shù)擬合問題浊伙。

3.系數(shù)間為線性關系的曲線擬合

再來看個例子y=ae^x+bsinx+cx^3,雖然這不是一個線性函數(shù)长捧,也不能通過坐標變換化成線性函數(shù)嚣鄙,但如果設x為常量,a串结、b哑子、c為變量舅列,則a、b卧蜓、c三個系數(shù)之間是線性關系的帐要,因此殘差平方和求偏導后得到的方程組依然是線性方程組。

設有N個點坐標為(x_i,y_i),i=1,2,...,N弥奸,則殘差平方和為\sum_{i=1}^N(ae^{x_i}+bsinx_i+cx_i^3-y_i)^2榨惠,展開來就是(ae^{x_1}+bsinx_1+cx_1^3-y_1)^2+(ae^{x_2}+bsinx_2+cx_2^3-y_2)^2+...+(ae^{x_N}+bsinx_N+cx_N^3-y_N)^2,分別對a盛霎、b赠橙、c求偏導并令偏導為0得三個方程:

  1. \sum_{i=1}^N(ae^{x_i}+bsinx_i+cx_i^3-y_i)e^{x_i}=0
  2. \sum_{i=1}^N(ae^{x_i}+bsinx_i+cx_i^3-y_i)sinx_i=0
  3. \sum_{i=1}^N(ae^{x_i}+bsinx_i+cx_i^3-y_i)x_i^3=0

聯(lián)立以上三個方程即可求解。

典例:n階多項式擬合

n階多項式擬合同樣采用最小二乘法愤炸。大體思路是對于N個點期揪,用n+1個待定系數(shù)設出函數(shù),將殘差平方和作為目標函數(shù)摇幻,分別對n+1個系數(shù)求偏導横侦,令偏導為0,得到n+1個方程绰姻,聯(lián)立解得系數(shù)枉侧。

設有N個點坐標為(x_i,y_i),i=1,2,...,N,設n次函數(shù)f(x)=\sum_{k=0}^{n}a_kx^k狂芋,則其殘差平方和為\sum_{i=1}^N\sum_{k=0}^{n}(a_kx_i^k-y_i)^2榨馁,展開來就是(a_0+a_1x_1+...+a_nx_1^n-y_1)^2+(a_0+a_1x_2+...+a_nx_2^n-y_2)^2+...+(a_0+a_1x_N+...+a_nx_N^n-y_N)^2,設其對aj求偏導并令偏導等于0帜矾,得2(a_0+a_1x_1+...+a_nx_1^n-y_1)x_1^j+2(a_0+a_1x_2+...+a_nx_2^n-y_2)x_2^j+...+2(a_0+a_1x_N+...+a_nx_N^n-y_N)x_N^j=0翼虫,整理得\sum_{i=1}^{N}\sum_{k=0}^{n}a_kx_i^{j+k}-\sum_{i=1}^{N}y_ix_i^j=0,j=0,1,...,n,可見j有n+1個取值屡萤,將n+1個點代入可以列出n+1個線性方程珍剑,利用線性代數(shù)知識可以解出系數(shù)值。

4.n階多項式擬合實例

本實例演示使用python進行n階多項式擬合死陆,線性函數(shù)擬合其實就是一階多項式擬合招拙,而非線性函數(shù)擬合實例則放到下一期進行講解。

1999-2004年長江排污量如下表:

年份 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
排污量/億噸 174 179 183 189 207 234 220 256 270 285

用二次多項式來擬合以上數(shù)據措译,python代碼如下:

import numpy as np
from matplotlib import pyplot

num=int(input())
x=[]
y=[]
for i in range(0,num):
    x.append(int(input()))
    y.append(int(input()))
z1 = np.polyfit(x, y, 2)
z = np.polyval(z1, x)
print(z1)

pyplot.plot(x,y,'.')
pyplot.plot(x,z,'-')
pyplot.show()

得到模型為y=0.84x^2-3349.94x+3336464.85别凤,圖像如下:

Figure_1.png

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市领虹,隨后出現(xiàn)的幾起案子规哪,更是在濱河造成了極大的恐慌,老刑警劉巖塌衰,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诉稍,死亡現(xiàn)場離奇詭異蝠嘉,居然都是意外死亡,警方通過查閱死者的電腦和手機杯巨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門是晨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舔箭,你說我怎么就攤上這事∥梅辏” “怎么了层扶?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烙荷。 經常有香客問我镜会,道長,這世上最難降的妖魔是什么终抽? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任戳表,我火速辦了婚禮,結果婚禮上昼伴,老公的妹妹穿的比我還像新娘匾旭。我一直安慰自己,他們只是感情好圃郊,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布价涝。 她就那樣靜靜地躺著,像睡著了一般持舆。 火紅的嫁衣襯著肌膚如雪色瘩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天逸寓,我揣著相機與錄音居兆,去河邊找鬼。 笑死竹伸,一個胖子當著我的面吹牛泥栖,可吹牛的內容都是我干的。 我是一名探鬼主播佩伤,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼聊倔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了生巡?” 一聲冷哼從身側響起耙蔑,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孤荣,沒想到半個月后甸陌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體须揣,經...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年钱豁,在試婚紗的時候發(fā)現(xiàn)自己被綠了耻卡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡牲尺,死狀恐怖卵酪,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情谤碳,我是刑警寧澤溃卡,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站蜒简,受9級特大地震影響瘸羡,放射性物質發(fā)生泄漏。R本人自食惡果不足惜搓茬,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一犹赖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卷仑,春花似錦峻村、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至私爷,卻和暖如春雾棺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衬浑。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工捌浩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人工秩。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓尸饺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親助币。 傳聞我的和親對象是個殘疾皇子浪听,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354