數(shù)值分析方法 課件 第三章 數(shù)值逼近基礎(chǔ)_第1頁
數(shù)值分析方法 課件 第三章 數(shù)值逼近基礎(chǔ)_第2頁
數(shù)值分析方法 課件 第三章 數(shù)值逼近基礎(chǔ)_第3頁
數(shù)值分析方法 課件 第三章 數(shù)值逼近基礎(chǔ)_第4頁
數(shù)值分析方法 課件 第三章 數(shù)值逼近基礎(chǔ)_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)值分析方法面向“四新”人才培養(yǎng)普通高等教育系列教材第三章數(shù)值逼近基礎(chǔ)3.1插值逼近3.2曲線擬合3.3Python程序在數(shù)值逼近中的應(yīng)用

目錄/Contents

3.1插值逼近

插值法基本原理代數(shù)插值法幾何意義

插值問題解存在唯一性

證明:

3.1.2拉格朗日(Lagrange)插值法

類似于線性插值基函數(shù)的方法,構(gòu)造滿足條件的二次插值基函數(shù):拉格朗日(Lagrange)插值法插值多項式的誤差估計證明:3.1.3Newton插值法差商定義性質(zhì)3.1.1性質(zhì)3.1.2性質(zhì)3.1.3性質(zhì)3.1.4差商性質(zhì)Newton插值公式

差商與導(dǎo)數(shù)的關(guān)系泰勒公式帶余項的Newton插值公式解

先構(gòu)造差商表

故Newton線性插值多項式為所求近似值為

Newton二次插值多項式為

所求近似值為

由性質(zhì)3.1.4差商與倒數(shù)的關(guān)系,估計插值的截斷誤差為3.1.4等距節(jié)點的Newton插值公式插值點等距(即

),Newton插值公式將得到簡化差分的概念差分與差商的關(guān)系考慮到節(jié)點時等距的,由差商與向前差分的定義,有等距節(jié)點的Newton插值公式例3.1.4

給出余弦函數(shù)表如下,試分別用牛頓前差和后差公式計算cos0.048及cos0.566的近似值,并估計誤差.解:作差分表

3.1.5Hermite插值Hermite插值多項式的構(gòu)造Hermite插值多項式的余項估計

Hermite的插值多項式為由插值余項的誤差估計可以看出:插值多項式與被插函數(shù)的逼近程度,與插值節(jié)點的數(shù)目和位置有關(guān),一般地,節(jié)點越多,逼近程度越好。但也有例外,考察函數(shù)3.1.6分段線性插值

將插值區(qū)間分成若干個小的區(qū)間,在每個小區(qū)間使用低次插值,然后將每個小區(qū)間上的插值多項式相互連接,得到整個區(qū)間上的插值函數(shù),這種把插值區(qū)間分段的方法就是分段低次插值法.采用基函數(shù)方法來構(gòu)造分段線性插值函數(shù)它們的幾何圖形如圖所示,它們具有局部非零性由分段線性插值基函數(shù)得區(qū)間(a,b)上的分段線性插值函數(shù)為

分段三次Hermit插值

3.1.7三次樣條插值三次樣條函數(shù)的構(gòu)造定義3.3構(gòu)造三次樣條插值函數(shù)通常有兩種方法:(1)給定插值節(jié)點處的二階導(dǎo)數(shù)值作為未知數(shù)來求解.在工程上稱二階導(dǎo)數(shù)為彎矩,這種方法成為三彎矩插值.(2)是以給定插值節(jié)點處的一階導(dǎo)數(shù)作為未知數(shù)來求解,而一階導(dǎo)數(shù)又稱為斜率,這種方法稱為三斜率插值.三次樣條函數(shù)的求法滿足第一邊界條件的三彎矩方程組該方程組同樣也是嚴格對角占優(yōu)方程組,利用追趕法可以解得唯一解

定理3.63、遞推化:把復(fù)雜的計算歸結(jié)為簡單過程的多次重復(fù)計算,易于用循環(huán)結(jié)構(gòu)來實現(xiàn)(如迭代法)謝謝!數(shù)值分析方法主編

李冬果李林高磊面向“四新”人才培養(yǎng)普通高等教育系列教材第三章數(shù)值逼近基礎(chǔ)3.1插值逼近3.2曲線擬合3.3Python程序在數(shù)值逼近中的應(yīng)用

目錄/Contents

3.2曲線擬合設(shè)實驗獲得的某函數(shù)關(guān)系y=f(x)在某些離散點上的函數(shù)值為

3.2.1線性擬合例

試根據(jù)以下實驗數(shù)據(jù)做擬合函數(shù)解:表中數(shù)據(jù)作一草圖,可以看出表中數(shù)據(jù)分布可以用以直線來近似描述.設(shè)所求的

擬合曲線為3.2.2多項式擬合系數(shù)矩陣是對稱陣,該方程組存在唯一解例

試根據(jù)以下實驗數(shù)據(jù)做擬合函數(shù)解:表中數(shù)據(jù)作一草圖,可以看出表中數(shù)據(jù)分布可以用以拋物線來近似描述.設(shè)所求

的擬合曲線為可化為線性擬合的非線性擬合類型曲線擬合方程圖形變換關(guān)系變換后線性擬合方程冪函數(shù)

指數(shù)函數(shù)

雙曲線函數(shù)

類型曲線擬合方程圖形變換關(guān)系變換后線性擬合方程對數(shù)函數(shù)

Logistic模型

Gomperty模型

3、遞推化:把復(fù)雜的計算歸結(jié)為簡單過程的多次重復(fù)計算,易于用循環(huán)結(jié)構(gòu)來實現(xiàn)(如迭代法)謝謝!

數(shù)值分析方法主編

李冬果李林高磊面向“四新”人才培養(yǎng)普通高等教育系列教材第三章數(shù)值逼近基礎(chǔ)3.1插值逼近3.2曲線擬合3.3Python程序在數(shù)值逼近中的應(yīng)用

目錄/Contents

3.3Python程序在數(shù)值逼近中的應(yīng)用差值算法Python實驗拉格朗日(Lagrange)插值法Newton差值法的實現(xiàn)擬合算法Python實驗線性擬合多項式擬合Python中的插值函數(shù)Numpy工具包中interp、ployfit、polyval等SciPy工具包中interpolate、curve_fit等拉格朗日(Lagrange)插值法deflagrange_interp(x_data,y_data,x_value):

n=len(x_data)

y=0

foriinrange(n):

p=1

forjinrange(i):

p=p*(x_value-x_data[j])/(x_data[i]-x_data[j])

forjinrange(i+1,n):

p=p*(x_value-x_data[j])/(x_data[i]-x_data[j])

y=y+y_data[i]*p

returny參數(shù)x_data和y_data是插值點的自變量和函數(shù)值,x_value是待求差值函數(shù)值的自變量值,為了同步計算多個點的差值函數(shù)值,x_value可以使用NumPy數(shù)組importnumpyasnpx_data=np.array([100,121,144],dtype=np.float64)y_data=np.sqrt(x_data)lagrange_interp(x_data,y_data,np.array([115]))結(jié)果為:array([10.72275551])對比真值:>>>np.sqrt(115)10.723805294763608defget_divided_differences(x,y):

n=len(x)

dd_matrix=np.zeros((n,n),dtype=float)

dd_matrix[:,0]=y

forjinrange(1,n):

foriinrange(j,n):

dd_matrix[i,j]=\

(dd_matrix[i,j-1]-dd_matrix[i-1,j-1])/(x[i]-x[i-j])

returndd_matrixNewton插值法函數(shù)中的符號“\”是Python中的換行提示符首先編寫差商表計算函數(shù)>>>f=lambdax:x**7+x**4+3*x+1>>>x_data=[2**iforiinrange(9)]>>>x_data=np.array(x_data,dtype=np.float64)>>>y_data=f(x_data)>>>dd_matrix=get_divided_differences(x_data,y_data)>>>dd_matrix[7,7]1.0>>>dd_matrix[8,8]0.0編寫Newton差值法的函數(shù)Newton插值法defnewton_interp(x_data,y_data,x_value):

n=len(x_data)

dd_matrix=get_divided_differences(x_data,y_data)

p=dd_matrix[n-1,n-1]

forkinrange(n-2,-1,-1):

p=dd_matrix[k,k]+(x_value-x_data[k])*p

returnp>>>x_data=np.array([100,121,144,169],dtype=np.float64)>>>y_data=np.sqrt(x_data)>>>newton_interp(x_data,y_data,115)10.723574251835121Numpy工具包中有一個基本的差值函數(shù)interp,而SciPy工具包更是包含一個專門的子包interpolate用于插值計算。這些包含了多種分段插值方法的實現(xiàn),如常用的分段線性插值函數(shù),三次樣條插值類等。插值函數(shù)的使用

解:本題可以由如下代碼完成:importnumpyasnpfromscipyimportinterpolatex=np.linspace(0,2*np.pi,9)y=np.sin(x)spl=interpolate.CubicSpline(x,y)x_value=np.linspace(0,2*np.pi,100)y_value_spl=spl(x_value)y_value_lin=erp(x_value,x,y)spl是由erpolate.CubicSpline和節(jié)點數(shù)據(jù)計算出的差值函數(shù)y_value_spl即為三次樣條插值的結(jié)果y_value_lin則是由函數(shù)numpy.interp計算出的線性插值結(jié)果。通過matplotlib繪出插值圖像:importmatplotlib.pyplotaspltplt.figure(figsize=(8,6),dpi=600)plt.plot(x,y,'kd')plt.plot(x_value,y_value_lin,'k:')plt.plot(x_value,y_value_spl,'k-')plt.legend(['Nodes','Linear','CubicSpline'])plt.show()線性擬合deflin_fit(x,y):

n=len(x)

s_x=sum(x)

s_y=sum(y)

s_xy=sum(x*y)

s_x2=sum(x**2)

a0=(s_x2*s_y-s_x*s_xy)/(n*s_x2-s_x**2)

a1=(n*s_xy-s_x*s_y)/(n*s_x2-s_x**2)

returna1,a0本例中涉及NumPy數(shù)組的運算,參數(shù)中的x和y須是數(shù)組才能正確運行例

試根據(jù)以下實驗數(shù)據(jù)做擬合函數(shù)>>>x_data=np.array([1.36,1.37,1.95,2.28])>>>y_data=np.array([14.094,16.844,18.475,20.963])>>>lin_fit(x_data,y_data)(5.853760129659651,7.408457374392223)多項式擬合importnumpyasnpfromscipyimportlinalgasla

defpoly_fit(x,y,n):

n=n+1

s_x_list=np.array([sum(x**i)foriinrange(2*n)])

s_xy_list=np.array([sum(x**i*y)foriinrange(n)])

A=np.zeros((n,n))

foriinrange(n):

A[i,:]=s_x_list[i:(i+n)]

s_xy_list.reshape((n,1))

a_list=la.inv(A)@s_xy_list

returna_list[::-1]為了簡便計算,在函數(shù)中直接調(diào)用的scipy.linalg.inv函數(shù),并用NumPy矩陣運算計算了線性方程組的解。最后返回結(jié)果按照降冪排列例

試根據(jù)以下實驗數(shù)據(jù)做擬合函數(shù)>>>x_data=np.array([0,1,2,3,4,5],dtype=np.float64)>>>y_data=np.array([5,2,1,1,2,3],dtype=np.float64)>>>poly_fit(x_data,y_data,2)array([0.5

,-2.78571429,

4.71428571])擬合函數(shù)的使用在NumPy工具包中提供了polyfit函數(shù),用于一般的多項式擬合;NumPy還提供了函數(shù)polyval用于求系數(shù)向量形式的多項式函數(shù)值例

試根據(jù)以下實驗數(shù)據(jù)做擬合函數(shù)>>>np.polyfit(x_data,y_data,2)a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論