MATLAB中函數(shù)的數(shù)值運(yùn)算_第1頁
MATLAB中函數(shù)的數(shù)值運(yùn)算_第2頁
MATLAB中函數(shù)的數(shù)值運(yùn)算_第3頁
MATLAB中函數(shù)的數(shù)值運(yùn)算_第4頁
MATLAB中函數(shù)的數(shù)值運(yùn)算_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、MATLAB程序設(shè)計(jì)程序設(shè)計(jì) 主講:李強(qiáng)主講:李強(qiáng)Email: 數(shù)學(xué)與信息科學(xué)學(xué)院數(shù)學(xué)與信息科學(xué)學(xué)院1.3 MATLAB中函數(shù)的數(shù)值運(yùn)算nMATLAB除了可以進(jìn)行簡單的數(shù)值運(yùn)算外,還可以由用戶自定義函數(shù)建立一元或多元數(shù)值函數(shù)。通過建立函數(shù),可以求解相關(guān)的各種問題,如求函數(shù)的值、零點(diǎn)、極值、積分等。n1.3.1 數(shù)值函數(shù)的建立數(shù)值函數(shù)的建立nMATLAB建立數(shù)值函數(shù)通常有兩種方式:一種使用inline命令;另一種是通過編寫函數(shù)程序,用function來定義函數(shù)。 1.3.1 數(shù)值函數(shù)的建立數(shù)值函數(shù)的建立n使用inline命令nInline 內(nèi)聯(lián)的nINLINE Construct INLINE

2、object.n INLINE(EXPR) constructs an inline function object from the MATLAB expression contained in the string EXPR. The input arguments are automatically determined by searching EXPR for variable names (see SYMVAR). nIf no variable exists, x is used. nINLINE(EXPR, ARG1, ARG2, .) constructs an inline

3、 function whose input arguments are specified by the strings ARG1, ARG2, . Multicharacter symbol names may be used.nINLINE(EXPR, N), where N is a scalar, constructs an inline function whose input arguments are x, P1, P2, ., PN.nExamples:n g = inline(t2)n g = inline(sin(2*pi*f + theta)n g = inline(si

4、n(2*pi*f + theta), f, theta)n g = inline(xP1, 1)n n See also SYMVAR.n例如:nf=inline(x.2-3) %建立一元函數(shù)f(x)=x2-3ng=inline(x.y-3, x, y) %建立二元函數(shù)f(x)=xy-3ng=inline(x.y-3, y, x) %建立二元函數(shù)f(x)=xy-3n注意g(x,y)與h(y,x)的區(qū)別,如g(2,3)=5, h(2,3)=6,為什么?n使用function創(chuàng)建M函數(shù)(實(shí)驗(yàn)3將詳細(xì)介紹)n編寫程序建立一個(gè)M函數(shù)是MATLAB的一種常用方式。n例如在編輯窗口駛?cè)肴缦鲁绦颍簄func

5、tion y=f1(x) %聲明建立一個(gè)名為f1的函數(shù);ny=x.2-3; %建立函數(shù)f(x)=x2-3,x可以為向量n用文件名f1(函數(shù)名)保存程序,生成f1.m文件即為建立的函數(shù)。nM-函數(shù)必須由function語句引導(dǎo),具體格式為:nfunction 輸出變量列表輸出變量列表=函數(shù)名函數(shù)名(輸入變量列表輸入變量列表)n例例1-12 建立同時(shí)計(jì)算建立同時(shí)計(jì)算y1=(a+b)n, y2=(a-b)n的函的函數(shù),即任給數(shù),即任給a、b、n三個(gè)數(shù),返回三個(gè)數(shù),返回y1、y2。n在編輯窗口中輸入如下程序:在編輯窗口中輸入如下程序:n例例1-12 建立同時(shí)計(jì)算建立同時(shí)計(jì)算y1=(a+b)n, y2=

6、(a-b)n的的函數(shù),即任給函數(shù),即任給a、b、n三個(gè)數(shù),返回三個(gè)數(shù),返回y1、y2。n在編輯窗口中輸入如下程序:在編輯窗口中輸入如下程序:nfunction y1,y2=fun1(a,b,n)ny1=(a+b).n;ny2=(a-b).n;n輸入完成后用函數(shù)名輸入完成后用函數(shù)名fun1作為文件名存盤,形作為文件名存盤,形成一個(gè)函數(shù)文件:成一個(gè)函數(shù)文件:fun1.m,可以進(jìn)行調(diào)用。,可以進(jìn)行調(diào)用。n1.3.2 數(shù)值函數(shù)的運(yùn)算數(shù)值函數(shù)的運(yùn)算n當(dāng)一個(gè)數(shù)值函數(shù)通過上述方法,由當(dāng)一個(gè)數(shù)值函數(shù)通過上述方法,由inline或或function建立以后,就可以用于求解相關(guān)的各種問建立以后,就可以用于求解相關(guān)

7、的各種問題,如求函數(shù)值,函數(shù)的題,如求函數(shù)值,函數(shù)的零點(diǎn)零點(diǎn)、極值極值、積分積分等。等。n1. 求函數(shù)值求函數(shù)值n當(dāng)自變量為給定的值或向量時(shí),函數(shù)返回相應(yīng)的函當(dāng)自變量為給定的值或向量時(shí),函數(shù)返回相應(yīng)的函數(shù)值或函數(shù)值向量。數(shù)值或函數(shù)值向量。n例如:對于上一節(jié)建立的函數(shù)例如:對于上一節(jié)建立的函數(shù)f(x)、g(x,y)、h(y,x)、f1(x)和和fun1(a,b,n)有如下結(jié)果:有如下結(jié)果:n例如:對于上一節(jié)建立的函數(shù)例如:對于上一節(jié)建立的函數(shù)f(x)、g(x,y)、h(y,x)、f1(x)和和fun1(a,b,n)有如下結(jié)果:有如下結(jié)果:n f=inline(x.2-3) %建立一元函數(shù)建立一元

8、函數(shù)f(x)=x2-3nf =n Inline function:n f(x) = x.2-3n f(2)nans =1n g=inline(x.y-3, x, y) %建立二元函數(shù)f(x)=xy-3ng =n Inline function:n g(x,y) = x.y-3n g(2,3)nans =n 5n Y=f1(2)nY =n 1n f(1 2 3)nans =n -2 1 6n y1,y2=fun1(1,2,3)n n%此處不能寫為此處不能寫為y1,y2=fun1(1 2 3)ny1 =n 27ny2 =n -1n請用實(shí)驗(yàn)驗(yàn)證以上結(jié)果,并總結(jié)數(shù)值函數(shù)的定義與用請用實(shí)驗(yàn)驗(yàn)證以上結(jié)果,

9、并總結(jié)數(shù)值函數(shù)的定義與用法。法。n2. 數(shù)值函數(shù)的圖形數(shù)值函數(shù)的圖形nx=0:0.01:2; %生成自變量;生成自變量;ny=1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6; %生成函數(shù)生成函數(shù)y,注意點(diǎn)運(yùn)算,注意點(diǎn)運(yùn)算nplot(x,y,linewidth,2) %畫函數(shù)曲線畫函數(shù)曲線 ngrid %加坐標(biāo)網(wǎng)格n另一方面,可以通過建立數(shù)值函數(shù),運(yùn)用MATLAB的fplot命令來實(shí)現(xiàn),其格式:nfplot(f,a,b)n上述圖形也可以用下述命令來完成。n f=inline(1./(x-0.3).2+0.01)+1./(x- 0.9).2+0.04)-6) % 生

10、成數(shù)值函數(shù)生成數(shù)值函數(shù)f(x)nfplot(f,0,2) % 畫函數(shù)畫函數(shù)f在在0,2上的曲線上的曲線n3. 數(shù)值函數(shù)的零點(diǎn)數(shù)值函數(shù)的零點(diǎn)n當(dāng)一個(gè)函數(shù)f(x)與x軸相交時(shí),交點(diǎn)(又稱為零點(diǎn))是方程f(x)=0的一個(gè)實(shí)根。如何求函數(shù)的零點(diǎn),MATLAB提供了一個(gè)重要命令fzero。其使用方法有兩種:n(help fzero 出來很多!出來很多!)n求函數(shù)求函數(shù)f(x)在在x0附近的零點(diǎn)附近的零點(diǎn)c,格式:,格式:nc=fzero(f, x0 )n求函數(shù)f(x)在區(qū)間a,b附近的零點(diǎn)c,格式:nc=fzero(f, a,b)n這里要求函數(shù)在區(qū)間兩端點(diǎn)處的函數(shù)值要異號。n例如,對于例題1-13中所定

11、義的f(x),求其零點(diǎn)c。nf= inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ;nc=fzero(f, 0,2) %求函數(shù)f在0,2上的零點(diǎn)c,要求f(0)f(2) fzero(f,1) %求函數(shù)f在x=1附近的零點(diǎn)nans =n 1.2995n4. 數(shù)值函數(shù)的最小(大)值n求一元函數(shù)或多元函數(shù)的最小(大)值是數(shù)學(xué)上經(jīng)常遇到的問題,如何求解最小(大)值,MATLAB提供了相應(yīng)的命令fminbnd(一元函數(shù)最小值)和fminsearch(多元函數(shù)最小值)。n求一元函數(shù)f(x)在區(qū)間a,b上的最小值點(diǎn)x及最小值y,格式為x,y=fminbnd(f

12、,a,b) n求多元函數(shù)f(X)在點(diǎn)X0附近的最小值點(diǎn)X及最小值y,格式為X,y=fminbnd(f,a,b)這里這里X、X0均為向量。均為向量。n對于例題對于例題1-13中所定義函數(shù)的中所定義函數(shù)的f(x),求其在區(qū)間,求其在區(qū)間0.2,0.8上的最小值。上的最小值。nfy= inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ;nxmin,fmin=fminbnd(fy,0.2,0.8) %函數(shù)函數(shù)fy在在0.2,0.8上最小值點(diǎn)及最小值上最小值點(diǎn)及最小值nxmin = 0.6370,fmin =11.2528n如何求解函數(shù)fy在0.2,0.8上

13、的最大值點(diǎn)及最大值呢?n事實(shí)上,函數(shù)fy在0.2,0.8上的最大值就是-fy在0.2,0.8上的最小值。nff= inline(-1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ; %函數(shù)ff=-fynx, y=fminbnd(ff,0.2,0.8); %函數(shù)ff在0.2,0.8上最小值點(diǎn)及最小值nxmax=xnfmax=-ynxmax =n 0.2996nfmax =n103.5014n5. 數(shù)值函數(shù)的積分?jǐn)?shù)值函數(shù)的積分n求一元函數(shù)定積分或多元函數(shù)重積分的近似值,求一元函數(shù)定積分或多元函數(shù)重積分的近似值,MATLAB提供了有關(guān)命令提供了有關(guān)命令quad(定積

14、分定積分)、dblquad(二重積分二重積分)和和triplequad(三重積分三重積分)。他們。他們的使用方法如下:的使用方法如下:nQuad(四方院子;四胞胎之一;嵌條;成套的四件四方院子;四胞胎之一;嵌條;成套的四件東西東西)n求一元函數(shù)求一元函數(shù)f(x)在區(qū)間在區(qū)間a,b上的定積分上的定積分(近似計(jì)算近似計(jì)算),格式為格式為n低階方法:低階方法:quad(f,a,b)n高階方法:高階方法:quadl(f,a,b)n求二元函數(shù)f(x,y)在長方形區(qū)域a,bc,d上的二重積分,格式為dblquad(f,a,b,c,d)n求三元函數(shù)f(x,y,z)在長方體區(qū)域a,bc,d e,f上的三重積分

15、,格式為triplequad(f,a,b,c,d,e,f)n例如,求例題1-13所定義f(x)在0,1上的定積分nf= inline(1./(x-0.3).2+0.01)+1./(x-0.9).2+0.04)-6) ;nI=quad(f,0,1) %求f(x)在0,1上的定積分nI =n 29.8583ng=inline(x*y,x,y); % 建立二元函數(shù)g(x,y)=xynI=dblquad(g,0,1,1,2) %求g(x,y)在0,11,2上的二重積分nI = 0.7500nh=inline(x.*exp(y)+z.2,x,y,z); % 建立三元函數(shù);nI=triplequad(h,

16、0,1,0,1,0,1) n %求h(x,y,z)在0,10,1 0,1上的三重積分nI = 1.1925n另外,對于定積分,如果已知積分區(qū)間a,b的一個(gè)劃分向量X=x1,x2,xn,以及被積函數(shù)y在對應(yīng)劃分點(diǎn)處的函數(shù)值向量Y=y1,y2,yn(函數(shù)表達(dá)式未必知道函數(shù)表達(dá)式未必知道),那么可以用梯形近似計(jì)算方法計(jì)算定積分,MATLAB提供了命令trapz。n格式為:trapz(X,Y)應(yīng)用舉例n例1-15n當(dāng)當(dāng)s=5nf=inline(1/4*x4-5/3*x3+3*x2+5*x-5); %建立函數(shù)x=fzero(f,0,5) %求解方程f(x)=0在0,5上的根nx = 0.7762n同理可

17、求出s=10 時(shí),nf=inline(1/4*x4-5/3*x3+3*x2+5*x-10); n%建立函數(shù)x=fzero(f,0,10) %求解方程f(x)=0在0,10上的根nx = 1.5179n例1-16 利用MATLAB命令求解無理數(shù)的近似值。n用函數(shù)零點(diǎn)命令fzero求無理數(shù)e的近似值;n用定積分計(jì)算命令(trapz、quad、quadl)求無理數(shù)ln2的近似值。n無理數(shù)e可以看成是方程lnx-1=0在x=2附近的實(shí)根,于是可以用fzero來求解。n f=inline(log(x)-1); %建立函數(shù)f(x)=lnx-1 nx0=fzero(f,2); %求解方程f(x)=0在x=2

18、附近的根nx0 = 2.7183ne=vpa(x0,10) %顯示顯示x0小數(shù)點(diǎn)后小數(shù)點(diǎn)后10位?位?ne =n 2.718281828n注:注:nx0=fzero(f,2); 可改為可改為x0=fzero(f,3); 結(jié)果不變結(jié)果不變n用梯形法(trapz)近似計(jì)算nX=0:0.01:1; %產(chǎn)生0,1區(qū)間上的劃分向量;nY=1./(1+X); %求對應(yīng)的分點(diǎn)處的函數(shù)值向量na=trapz(X,Y); %求用梯形法求出積分近似值nln2=vpa(a,10) %顯示a小數(shù)點(diǎn)后10位nln2 =n .69315343051.4 MATLAB中的符號運(yùn)算中的符號運(yùn)算nMATLAB除了可以進(jìn)行數(shù)值運(yùn)

19、算外,還可以進(jìn)行有關(guān)符號運(yùn)算,如函數(shù)的求極限、求導(dǎo)、不定積分、Taylor展開與級數(shù)求和等符號運(yùn)算。n在進(jìn)行符號運(yùn)算時(shí),首先要定義符號變量,建立符號函數(shù)。n1.4.1 符號函數(shù)表示符號函數(shù)表示n建立符號函數(shù)通常有兩種方式:1. 首先用syms命令聲明符號變量,再建立符號函數(shù)表達(dá)式。格式如下:nsyms x y n n%聲明x y n均為符號變量;nz=x2+sin(x*yn) %建立符號函數(shù)z=x2+sin(xyn)2. 直接用sym命令定義符號函數(shù),格式如下nf=sym(x2+cos(x*yn) n函數(shù)建立后就可以對函數(shù)求極限、導(dǎo)數(shù)、微分、積分等運(yùn)算。n1.4.2 符號函數(shù)的求值n符號函數(shù)建

20、立之后,就確立了相應(yīng)的函數(shù)符號表達(dá)式,它和數(shù)值函數(shù)不同,不能直接計(jì)算函數(shù)值。n如:nf=sym(0.5-x*y2)nf =n 0.5-x*y2n那么,要想計(jì)算當(dāng)x=2,y=3時(shí)f的值,就需要使用MATLAB的符號函數(shù)與數(shù)值函數(shù)的轉(zhuǎn)換命令eval來計(jì)算,其格式如下:nx=2; y=3;na=eval(f) a =-17.5000n1.4.3 符號函數(shù)運(yùn)算n在對已經(jīng)建立的符號函數(shù)進(jìn)行運(yùn)算時(shí),若符號函數(shù)中只有一個(gè)符號變量時(shí),通常默認(rèn)為函數(shù)的自變量,否則對于多個(gè)變量時(shí),通常要指明相應(yīng)的自變量,再對該變量進(jìn)行運(yùn)算。n極限運(yùn)算(limit命令)n輸入命令為:nsyms x %聲明符號變量nfx=1/(1+exp(-1/x); %建立符號函數(shù)fxnlim

溫馨提示

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

評論

0/150

提交評論