第5章 Matlab數(shù)值計算20141030_第1頁
第5章 Matlab數(shù)值計算20141030_第2頁
第5章 Matlab數(shù)值計算20141030_第3頁
第5章 Matlab數(shù)值計算20141030_第4頁
第5章 Matlab數(shù)值計算20141030_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第五第五章章MATLABMATLAB數(shù)值計算數(shù)值計算(2 2)1 1 插值與逼近插值與逼近2 2 常微分方程數(shù)值求解常微分方程數(shù)值求解3 3 非線性方程數(shù)值求解非線性方程數(shù)值求解插值與逼近插值與逼近 插值:在實際問題中常遇到這樣的函數(shù)y=f(x)其在某個區(qū)間a,b上是存在的,但通過觀測或測量或實驗只能的到在這個區(qū)間a,b上有限個離散點x0,x1,xn上的函數(shù)值y=f(xi)(i=0,1,n)或f(x)的函數(shù)表達式是已知的,但確很復雜而不便于計算,希望用一個簡單的函數(shù)來描述它。 假設函數(shù)假設函數(shù)y=f(x)是是a,b上的實值函數(shù),上的實值函數(shù),x0,x1,xn是是a,b上上n+1個互異的點,個互

2、異的點,f(x)在這些點上的取值分別為在這些點上的取值分別為 y0,y1,yn, 求一個確定的函數(shù)求一個確定的函數(shù)P(x),使之滿足:使之滿足: P(xi)=yi (i=0,1,2,n) (10-5) 稱稱x0,x1,xn為插值節(jié)點,關系式為插值節(jié)點,關系式(1)稱為插值原則,函數(shù)稱為插值原則,函數(shù)P(x)稱為函數(shù)稱為函數(shù)y=f(x)的插值函數(shù),區(qū)間的插值函數(shù),區(qū)間a,b稱為插值區(qū)間。稱為插值區(qū)間。插值法的概念:要求該多項式的函數(shù)曲線要求該多項式的函數(shù)曲線要經(jīng)過要經(jīng)過y=f(x)y=f(x)上已知的這上已知的這n+1n+1個點,個點,(x(x0 0,y,y0 0),(x),(x1 1,y,y1

3、 1),(x),(xn n,y,yn n) )。同時在其它同時在其它 上要估上要估計誤差計誤差 R(x)=f(x)-P(x) R(x)=f(x)-P(x)。,bax 解:設 ,其中 為待定系數(shù)。 由給定的條件有: 聯(lián)立上式得:于是,線性插值線性插值 線性插值也叫兩點插值,已知函數(shù)線性插值也叫兩點插值,已知函數(shù)y = f (x)在給定互異點在給定互異點x0, x1上的值為上的值為y0= f(x0),y1=f(x1)線性插值就是構造一個一次多項式線性插值就是構造一個一次多項式 P1(x) = ax + b 使它滿足條件使它滿足條件 P1 (x0) = y0 P1 (x1) = y1 (10-6)

4、其幾何解釋就是一條直線,通過已知點其幾何解釋就是一條直線,通過已知點A (x0, y0),B(x1, y1)。)()(0010101xxxxyyyxP(點斜式)101001011)(yxxxxyxxxxxP(對稱式)P1(x)就是所求的一次多項多,稱為f(x)的線性插值多項式。例:用線性插值求 (x* = 10.723805) 解:設解:設 ,取,取x0 = 100,x1 = 121 則則 y0 = 10 y1 = 11 從而從而 Matlab(實現(xiàn))yi = interp1(100 121,10 11,115)逼近逼近 用簡單的函數(shù)用簡單的函數(shù)p(x)近似地代替函數(shù)近似地代替函數(shù)f (x),

5、是計算數(shù),是計算數(shù)學中最基本的概念和方法之一。近似代替又稱為逼學中最基本的概念和方法之一。近似代替又稱為逼近,函數(shù)近,函數(shù)f (x)稱為被逼近的函數(shù),稱為被逼近的函數(shù),p (x)稱為逼近函稱為逼近函數(shù),兩者之差數(shù),兩者之差 稱為逼近的誤差或余項。稱為逼近的誤差或余項。 一致逼近一致逼近 以函數(shù)以函數(shù)f (x)和和p (x)的最大誤差的最大誤差 作為度量誤差作為度量誤差f (x) - p (x)的的“大小大小”的標準,在這種的標準,在這種意義下的函數(shù)逼近稱為一致逼近或均勻逼近,講得意義下的函數(shù)逼近稱為一致逼近或均勻逼近,講得更具體一點,也即對于任意給定的一個小正數(shù)更具體一點,也即對于任意給定的一

6、個小正數(shù) 0,如果存在函數(shù)如果存在函數(shù)p (x),使不等式,使不等式 成立,則稱該函數(shù)成立,則稱該函數(shù)p (x)在區(qū)間在區(qū)間a, b上一致逼近或均上一致逼近或均勻逼近于函數(shù)勻逼近于函數(shù)f (x)。 平方逼近:平方逼近: 如果采用如果采用 作為度量誤差作為度量誤差 的的“大小大小”的標準,在這種意義下的函的標準,在這種意義下的函數(shù)逼近稱為平方逼近或均方逼近。這種方法要比一數(shù)逼近稱為平方逼近或均方逼近。這種方法要比一致逼近的相應問題簡單得多。致逼近的相應問題簡單得多。matlab 數(shù)值插值數(shù)值插值1. 一維數(shù)值插值一維數(shù)值插值interp1函數(shù)調用格式為:函數(shù)調用格式為: Y1=interp1(X

7、,Y,X1,method) 函數(shù)根據(jù)函數(shù)根據(jù)X、Y的值,計算函數(shù)在的值,計算函數(shù)在X1處的值。處的值。X、Y是兩個等長的已知向量,分別描述采樣點和樣是兩個等長的已知向量,分別描述采樣點和樣本值,本值,X1是一個向量或標量,描述欲插值的點,是一個向量或標量,描述欲插值的點,Y1是一個與是一個與X1等長的插值結果。等長的插值結果。method是插值是插值方法,允許的取值有方法,允許的取值有l(wèi)inear(線性插值線性插值)、nearest(最近插值最近插值)、spline(三次樣條插值三次樣條插值)、cubic(三次多項式插值),缺省值是(三次多項式插值),缺省值是linear。例例 用不同的插值方

8、法計算用不同的插值方法計算sin(x)在在/2點的值。點的值。這是一個一維插值問題。在這是一個一維插值問題。在MATLAB命令窗口,輸入命令:命令窗口,輸入命令:X=0:0.2:pi;Y=sin(X); %給出給出X、Yinterp1(X,Y,pi/2) %用缺省方法用缺省方法(即線性插值方法即線性插值方法)計算計算sin(/2)interp1(X,Y,pi/2,nearest) %用最近方法計算用最近方法計算sin(/2)interp1(X,Y,pi/2,linear) %用線性方法計算用線性方法計算sin(/2)interp1(X,Y,pi/2,spline) %用三次樣條方法計算用三次樣

9、條方法計算sin(/2)interp1(X,Y,pi/2,cubic) %用三次多項式方法計算用三次多項式方法計算sin(/2)M A T L A B 中 有 一 個 專 門 的 三 次 樣 條 插 值 函 數(shù)中 有 一 個 專 門 的 三 次 樣 條 插 值 函 數(shù)Y1=spline(X,Y,X1),其功能及使用方法與函數(shù),其功能及使用方法與函數(shù)Y1=interp1(X,Y,X1,spline)完全相同。完全相同。11.522.533.540.99750.9980.99850.9990.999511-nearest,2-linear,3-spline,4-cubic 例例 已知檢測參數(shù)已知檢

10、測參數(shù)f隨時間隨時間t的采樣結果,用數(shù)值插值法計算的采樣結果,用數(shù)值插值法計算t=2,7,12,17,22,17,32,37,42,47,52,57時時f的值。的值。這是一個一維數(shù)值插值問題,命令如下:這是一個一維數(shù)值插值問題,命令如下:T=0:5:65;X=2:5:57;F=3.2015,2.2560,879.5,1835.9,2968.8,4136.2,5237.9,6152.7,.6725.3,6848.3,6403.5,6824.7,7328.5,7857.6;F1=interp1(T,F,X) %用線性方法插值用線性方法插值F1=interp1(T,F,X,nearest) %用最近

11、方法插值用最近方法插值F1=interp1(T,F,X,spline) %用三次樣條方法插值用三次樣條方法插值F1=interp1(T,F,X,cubic) %用三次多項式方法插值用三次多項式方法插值2. 二維數(shù)值插值二維數(shù)值插值MATLAB中,提供了解決二維插值問題的函數(shù)。中,提供了解決二維插值問題的函數(shù)。其調用格式為:其調用格式為:Z1=interp2(X,Y,Z,X1,Y1,method)其中其中X、Y是兩個向量,分別描述兩個參數(shù)的采樣是兩個向量,分別描述兩個參數(shù)的采樣點,點,Z是與參數(shù)采樣點對應的采樣變量的樣本是與參數(shù)采樣點對應的采樣變量的樣本值,值,X1、Y1是兩個向量或標量,描述欲

12、插值的是兩個向量或標量,描述欲插值的點。點。method的取值與一維插值函數(shù)相同的取值與一維插值函數(shù)相同。例例 設設Z=x2+y2,對,對Z函數(shù)在函數(shù)在(0,1)(0,2)區(qū)域內進行插值。區(qū)域內進行插值。命令如下:命令如下:x=0:0.1:10;y=0:0.2:20;X,Y=meshgrid(x,y);Z=X.2+Y.2;interp2(x,y,Z,0.5,0.5) %對函數(shù)在對函數(shù)在(0.5,0.5)點進行插值點進行插值interp2(x,y,Z,0.5 0.6,0.4) %對函數(shù)在對函數(shù)在(0.5,0.4)點和點和(0.6,0.4)點進行插值點進行插值interp2(x,y,Z,0.5 0

13、.6,0.4 0.5) %對函數(shù)在對函數(shù)在(0.5,0.4)點和點和(0.6,0.5)點進行插值點進行插值interp2(x,y,Z,0.5 0.6,0.4 0.5) %對函數(shù)在對函數(shù)在(0.5,0.4), (0.6,0.4), (0.5,0.5)和和(0.6,0.5)點進行插值點進行插值3. 三維數(shù)值插值三維數(shù)值插值對三維函數(shù)插值的函數(shù)是對三維函數(shù)插值的函數(shù)是interp3,其使用方法和,其使用方法和interp2相同。其調用格式為:相同。其調用格式為:W1=interp3(X,Y,Z,W,X1,Y1,Z1,method) 函數(shù)返回三維插值結果。其中函數(shù)返回三維插值結果。其中X、Y、Z是三個

14、是三個向量,分別描述三個參數(shù)的采樣點,向量,分別描述三個參數(shù)的采樣點,W是與參是與參數(shù)采樣點對應的采樣變量的樣本值,數(shù)采樣點對應的采樣變量的樣本值,X1、Y1、Z1是三個向量或標量,描述欲插值的點。是三個向量或標量,描述欲插值的點。method是插值方法,可選,其缺省值是是插值方法,可選,其缺省值是 line。method的取值與一、二維插值函數(shù)相同。的取值與一、二維插值函數(shù)相同。數(shù)據(jù)插值例:已知某處山區(qū)地形選點測量坐標數(shù)據(jù)為:x=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5y=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6海拔高度數(shù)據(jù)為:z=89

15、 90 87 85 92 91 96 93 90 87 82 92 96 98 99 95 91 89 86 84 82 84 96 98 95 92 90 88 85 84 83 81 85 80 81 82 89 95 96 93 92 89 86 86 82 85 87 98 99 96 97 88 85 82 83 82 85 89 94 95 93 92 91 86 84 88 88 92 93 94 95 89 87 86 83 81 92 92 96 97 98 96 93 95 84 82 81 84 85 85 81 82 80 80 81 85 90 93 95 84 86

16、 81 98 99 98 97 96 95 84 87 80 81 85 82 83 84 87 90 95 86 88 80 82 81 84 85 86 83 82 81 80 82 87 88 89 98 99 97 96 98 94 92 87求對數(shù)據(jù)插值加密后形成的地貌圖 數(shù)據(jù)插值繪原始數(shù)據(jù)圖x=0:.5:5;y=0:.5:6;z=89 90 87 85 92 91 96 93 90 87 82 92 96 98 99 95 91 89 86 84 82 84 96 98 95 92 90 88 85 84 83 81 85 80 81 82 89 95 96 93 92 89 86

17、 86 82 85 87 98 99 96 97 88 85 82 83 82 85 89 94 95 93 92 91 86 84 88 88 92 93 94 95 89 87 86 83 81 92 92 96 97 98 96 93 95 84 82 81 84 85 85 81 82 80 80 81 85 90 93 95 84 86 81 98 99 98 97 96 95 84 87 80 81 85 82 83 84 87 90 95 86 88 80 82 81 84 85 86 83 82 81 80 82 87 88 89 98 99 97 96 98 94 92 87

18、;mesh(x,y,z)012345024680859095100數(shù)據(jù)插值 繪插值后的地貌圖 xi=linspace(0,5,50); %加密橫坐標數(shù)據(jù)到50個 yi=linspace(0,6,80); %加密縱坐標數(shù)據(jù)到60個 xii,yii=meshgrid(xi,yi); %生成網(wǎng)格數(shù)據(jù) zii=interp2(x,y,z,xii,yii,cubic); %插值 mesh(xii,yii,zii) %加密后的地貌圖01234502467580859095100曲線擬合曲線擬合(一一)多項式曲線擬合多項式曲線擬合MATLAB中,提供了解決使用最小二乘法進行曲中,提供了解決使用最小二乘法進行

19、曲線擬合的函數(shù)。調用格式為:線擬合的函數(shù)。調用格式為:P,S=polyfit(X,Y,m) 函數(shù)根據(jù)采樣點函數(shù)根據(jù)采樣點X和采樣點函數(shù)值和采樣點函數(shù)值Y,產(chǎn)生一個,產(chǎn)生一個m次多項式次多項式P及其在采樣點的誤差向量及其在采樣點的誤差向量S。其中其中X、Y是兩個等長的向量,是兩個等長的向量,P是一個長度為是一個長度為m+1的向量。的向量。P(1)*xm+ P(2)*x(m-1)+ P(m)*x+p(m+1)例例 用一個用一個5次多項式在區(qū)間次多項式在區(qū)間0,2內逼近函數(shù)內逼近函數(shù)sin(x)。命令如下:命令如下:X=linspace(0, 2*pi, 50);Y=sin(X);P,S=polyf

20、it(X,Y,5) %得到得到5次多項式的系數(shù)和誤差次多項式的系數(shù)和誤差plot(X,Y,k-*,X,polyval(P,X),r-)01234567-1.5-1-0.500.511.5真 值擬 合 值使用指定函數(shù)進行曲線擬合使用指定函數(shù)進行曲線擬合x=lsqnonlin(fun,x0)x返回擬合參數(shù),返回擬合參數(shù),fun為擬合曲線對應的函數(shù),為擬合曲線對應的函數(shù),x0為初始值為初始值例:根據(jù)所給試驗數(shù)據(jù),用雙曲線模型例:根據(jù)所給試驗數(shù)據(jù),用雙曲線模型擬合,確定模型參數(shù)擬合,確定模型參數(shù)0 xyyabx0,0.05,0.1,0.2,0.4,0.6,0.8,1.21.335,1.253,1.18

21、0,1.058,0.887,0.803,0.752,0.685xyfunction =curvefit()data=0 1.335;0.05 1.253;0.1 1.180;0.2 1.058;0.4 0.887;0.6 0.803;0.8 0.752;1.2 0.685;x=data(:,1);y=data(:,2);plot(x,y,g-); hold on;x0=1 0;p=lsqnonlin(curve_model,x0);y1=y(1);y=y1-x./(p(1)+p(2)*x);plot(x,y,bo);%定義curve_model函數(shù)function f=curve_model(

22、p,data)data=0 1.335;0.05 1.253;0.1 1.180;0.2 1.058;0.4 0.887;0.6 0.803;0.8 0.752;1.2 0.685;x=data(:,1);y=data(:,2);y1=y(1);z=y1-x./(p(1)+p(2)*x);f=z-y;函數(shù)零點函數(shù)零點 x,feval,exitflag,output = fzero(fun,x0,options)x為函數(shù)為函數(shù)fun在在x0附近的零點,附近的零點, x0為為x的初始值,其他符號的初始值,其他符號意義與一元函數(shù)極值時相同。意義與一元函數(shù)極值時相同。 例例 求函數(shù)求函數(shù) 的極值,初始

23、值的極值,初始值為為 。2( )56f xxx00.0 x xx,fx,flag=fzero(x.*x-5*x+6,0.0) %一個零點一個零點 xx,fx,flag=fzero(x.*x-5*x+6,4.0) %另一個零點,通另一個零點,通過改變初始值過改變初始值運行結果:運行結果: xx = 2.0000 fx = 0 flag = 1運行結果:運行結果: xx = 3.0000 fx = 0 flag = 1常微分方程的數(shù)值求解常微分方程的數(shù)值求解基于龍格庫塔法,基于龍格庫塔法,MATLAB提供了求常微分方提供了求常微分方程數(shù)值解的函數(shù),一般調用格式為:程數(shù)值解的函數(shù),一般調用格式為:X

24、,Y=ode23(f,x0,xn,y0)X,Y=ode45(f,x0,xn,y0) 其中其中X、Y是兩個向量,是兩個向量,X對應自變量對應自變量x在求解區(qū)在求解區(qū)間間x1,xn的一組采樣點,其采樣密度是自適的一組采樣點,其采樣密度是自適應的,無需指定;應的,無需指定;Y是與是與X對應的一組解,對應的一組解,f是是一個函數(shù),一個函數(shù),x0,xn代表自變量的求解區(qū)間,代表自變量的求解區(qū)間,y0=y(x0),由方程的初值給定。函數(shù)在求解區(qū),由方程的初值給定。函數(shù)在求解區(qū)間間x0,xn內,自動設立采樣點向量內,自動設立采樣點向量X,并求出,并求出解函數(shù)解函數(shù)y在采樣點在采樣點X處的樣本值。處的樣本值。

25、 例例5.45 求微分方程求微分方程 。步驟一:轉化為狀態(tài)方程步驟一:轉化為狀態(tài)方程令令 ,那么可把,那么可把 寫寫成狀態(tài)方程形式成狀態(tài)方程形式步驟二:建立函數(shù)文件步驟二:建立函數(shù)文件xprime.m:function xdot = xprime(t,x)xdot = zeros(2,1);xdot(1) = (1-x(2)2)*x(1)-x(2);xdot(2) = x(1);2(1)0 xxxx12,xxxx2121221(1)xxxxxx2(1)0 xxxx步驟三:解微分方程步驟三:解微分方程t0 = 0; tf=20;x0=0, 0.25;t,x = ode23(xprime,t0,

26、tf, x0);plot(t, x(:,1), :b, t, x(:,2), -r);legend(速度速度,位移位移););非線性方程求根非線性方程求根 1、二分法 二分法是求方程f(x)=0根的近似值的常用方法。其基本思想是利用有根區(qū)間的判別方法確定方程根的區(qū)間a,b ,將有根區(qū)間平分為二;再利用有根區(qū)間的判別方法判斷那一個區(qū)間是有根區(qū)間;重復上述步驟,直到小區(qū)間端點差的絕對值小于等于精度要求的數(shù)值,則用將上一區(qū)間的分半值作為方程的根的近似值。根據(jù)精度要求可以事先計算出需執(zhí)行步驟數(shù)n。二分法的計算步驟如下: (1)計算區(qū)間端點的函數(shù)值f(a) , f(b)(不妨設f(a)0,f(b)0);

27、確定初始有根區(qū)間a,b。 (2)二分有根區(qū)間a,b,并計算 (3)判斷:若 , 則方程的根為 ; 若 ,則有根區(qū)間為 若 ,則有根區(qū)間為 (4)如果b-a(為誤差限),則方程的根為 ; 否則轉向步驟2,繼續(xù)二分有根區(qū)間a1,b1,并計算中點值,繼續(xù)有根區(qū)間的判斷,直到滿足精度要求為止,即bn-an。12lnln)ln(abnn確定二分次數(shù):【例】 用區(qū)間二分法求方程 f(x)=x3-5x+3在某區(qū)間內實根的近似值(精確到0.001)解 f(1.8)=-0.1680, f(1.9)=0.3590 f(x)在區(qū)間1.8,1.9內有一個根。由公式 取n=6, 計算結果列表如下:則方程在區(qū)間1.8,1

28、.9內所求近似值為x* x = 1.8328125a=fzero(x3-5*x+3,1:2)fplot(x3-5*x+3,0,1,2)grid切線法(牛頓法) 1.切線法的基本思想:假設方程f(x)=0在區(qū)間a,b上有唯一根x*,過曲線y= f(x)上的一點(x0,f(x0)),作曲線的切線,用此切線與x軸的交點的橫坐標x1作為方程的根x*的新的近似值, 再過點(x1,f(x1)),作曲線的切線,則又得到新的近似值,按此方法進行迭代計算,直到滿足精度要求為止。 切線法(牛頓法)的迭代公式為 牛頓法有明顯的幾何意義。方程f (x) = 0的根x*在幾何上表示曲線y = f (x)與x軸的交點。當

29、求得x*的近似值xk以后,過曲線y= f (x) 上對應點(xk, f (xk))作f (x) 的切線,其切線方程為 求此切線方程和x軸的交點,即得x*的新的近似值xk+1必須滿足方程這就是牛頓法的迭代公式 的計算結果。由圖可知,只要初值取得合適,點列xk就會很快收斂于x*。2.切線法(牛頓法)的收斂性: 定理. 設f(x) 在a,b上存在二階連續(xù)導數(shù),且滿足條件 (1) f(a)f(b)=0 。 則由切線法迭代公式得到的近似根序列 xn平方收斂于方程f(x)=0 在區(qū)間a,b的唯一根x*。 牛頓迭代法的主要優(yōu)點是收斂速度較快,它是平方收斂的。切線法(牛頓法)的計算步驟 先判斷有根區(qū)間a,b,然后選擇初始值x0(一般地,若f”(x)0 ,則選擇區(qū)間的右端點;若 f”(x)0,則選擇區(qū)間的左端點),再建立迭代公式進行計算。 【案例10.5】 用切線法求【案例10.4】中方程在1,2內根的近似值,精確到0.000001。非線性方程的matlab數(shù)值求解1單變量非線性方程求解單變量非線性方程求解MATLAB中,提供了求解單變量方程的函數(shù)中,提供了求解單變量方程的函數(shù)fzero(f,x0,tol),該函數(shù)采用迭代法計算函數(shù),該函數(shù)采用迭代法計算函數(shù)f(x)的一個零點,迭代初值為的一個零點,迭

溫馨提示

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

評論

0/150

提交評論