一、用給定的多項式,如y=x3-6x2+5x-3,產生一組數據(xi,yi,i=1,2,…,n),再在yi上添加隨機干擾(可用rand產生(0,1)均勻分佈隨機數,或用rands產生N(0,1)分佈隨機數),然後用xi和添加了隨機干擾的yi作的3次多項式擬合,與原係數比較。
分別作1、2、4、6次多項式擬合,比較結果,體會欠擬合、過擬合現象。
查找資料可知
作多項式f(x)=a1xm+ …+amx+am+1擬合,可利用已有程序:
a=polyfit(x,y,m)
多項式在x處的值y可用以下命令計算:
y=polyval(a,x)
編寫代碼如下
運行結果:
f1 =
43.2000 -148.8880
f2 =
10.5000 -72.3000 89.9870
f4 =
0.0000 1.0000 -6.0000 5.0000 -2.4130
f6 =
0.0000 -0.0000 0.0000 1.0000 -6.0000 5.0000 -2.4130
運行後,比較擬合後多項式和原式的係數,發現四次多項式係數與原係數比較接近,四次多項式的四次項係數很小。作圖後,發現一次和二次多項式的圖形與原函數的差別比較大,屬於欠擬合的情況,而四次多項式比較符合。六次多項式屬於過擬合的情況。
練習2 用電壓V=10伏的電池給電容器充電,電容器上t時刻的電壓爲 ,其中V0是電容器的初始電壓,是充電常數。試由下面一組t,V數據確定V0,。
分別應用非線性最小二乘擬合以及非線性迴歸命令求解,並作比較,體會統計迴歸與擬合方法的區別。
1. 用非線性最小二乘擬合求解:
兩種方法確定的V0,一樣。
統計迴歸可以判斷擬合的效果,用統計迴歸可以分析可靠性,而擬合只是對數據點的擬合,不能用數據說明擬合的可靠性,只能從圖形來判別。
練習三
在某海域測得一些點(x,y)處的水深z由下表給出,船的吃水深度爲5英尺,估計在矩形區域(75,200)*(-50,150)裏的哪些地方船要避免進入。
用插值方法作海底曲面圖.作出水深小於5的海域範圍,即z=5的等高線.