




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MATLAB程序設計程序設計 主講:李強主講:李強Email: 數(shù)學與信息科學學院數(shù)學與信息科學學院1.3 MATLAB中函數(shù)的數(shù)值運算nMATLAB除了可以進行簡單的數(shù)值運算外,還可以由用戶自定義函數(shù)建立一元或多元數(shù)值函數(shù)。通過建立函數(shù),可以求解相關的各種問題,如求函數(shù)的值、零點、極值、積分等。n1.3.1 數(shù)值函數(shù)的建立數(shù)值函數(shù)的建立nMATLAB建立數(shù)值函數(shù)通常有兩種方式:一種使用inline命令;另一種是通過編寫函數(shù)程序,用function來定義函數(shù)。 1.3.1 數(shù)值函數(shù)的建立數(shù)值函數(shù)的建立n使用inline命令nInline 內聯(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ù)(實驗3將詳細介紹)n編寫程序建立一個M函數(shù)是MATLAB的一種常用方式。n例如在編輯窗口駛入如下程序:nfunc
5、tion y=f1(x) %聲明建立一個名為f1的函數(shù);ny=x.2-3; %建立函數(shù)f(x)=x2-3,x可以為向量n用文件名f1(函數(shù)名)保存程序,生成f1.m文件即為建立的函數(shù)。nM-函數(shù)必須由function語句引導,具體格式為:nfunction 輸出變量列表輸出變量列表=函數(shù)名函數(shù)名(輸入變量列表輸入變量列表)n例例1-12 建立同時計算建立同時計算y1=(a+b)n, y2=(a-b)n的函的函數(shù),即任給數(shù),即任給a、b、n三個數(shù),返回三個數(shù),返回y1、y2。n在編輯窗口中輸入如下程序:在編輯窗口中輸入如下程序:n例例1-12 建立同時計算建立同時計算y1=(a+b)n, y2=
6、(a-b)n的的函數(shù),即任給函數(shù),即任給a、b、n三個數(shù),返回三個數(shù),返回y1、y2。n在編輯窗口中輸入如下程序:在編輯窗口中輸入如下程序:nfunction y1,y2=fun1(a,b,n)ny1=(a+b).n;ny2=(a-b).n;n輸入完成后用函數(shù)名輸入完成后用函數(shù)名fun1作為文件名存盤,形作為文件名存盤,形成一個函數(shù)文件:成一個函數(shù)文件:fun1.m,可以進行調用。,可以進行調用。n1.3.2 數(shù)值函數(shù)的運算數(shù)值函數(shù)的運算n當一個數(shù)值函數(shù)通過上述方法,由當一個數(shù)值函數(shù)通過上述方法,由inline或或function建立以后,就可以用于求解相關的各種問建立以后,就可以用于求解相關
7、的各種問題,如求函數(shù)值,函數(shù)的題,如求函數(shù)值,函數(shù)的零點零點、極值極值、積分積分等。等。n1. 求函數(shù)值求函數(shù)值n當自變量為給定的值或向量時,函數(shù)返回相應的函當自變量為給定的值或向量時,函數(shù)返回相應的函數(shù)值或函數(shù)值向量。數(shù)值或函數(shù)值向量。n例如:對于上一節(jié)建立的函數(shù)例如:對于上一節(jié)建立的函數(shù)f(x)、g(x,y)、h(y,x)、f1(x)和和fun1(a,b,n)有如下結果:有如下結果:n例如:對于上一節(jié)建立的函數(shù)例如:對于上一節(jié)建立的函數(shù)f(x)、g(x,y)、h(y,x)、f1(x)和和fun1(a,b,n)有如下結果:有如下結果: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ù)值函數(shù)的定義與用請用實驗驗證以上結果,
9、并總結數(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,注意點運算,注意點運算nplot(x,y,linewidth,2) %畫函數(shù)曲線畫函數(shù)曲線 ngrid %加坐標網(wǎng)格n另一方面,可以通過建立數(shù)值函數(shù),運用MATLAB的fplot命令來實現(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ù)的零點數(shù)值函數(shù)的零點n當一個函數(shù)f(x)與x軸相交時,交點(又稱為零點)是方程f(x)=0的一個實根。如何求函數(shù)的零點,MATLAB提供了一個重要命令fzero。其使用方法有兩種:n(help fzero 出來很多!出來很多!)n求函數(shù)求函數(shù)f(x)在在x0附近的零點附近的零點c,格式:,格式:nc=fzero(f, x0 )n求函數(shù)f(x)在區(qū)間a,b附近的零點c,格式:nc=fzero(f, a,b)n這里要求函數(shù)在區(qū)間兩端點處的函數(shù)值要異號。n例如,對于例題1-13中所定
11、義的f(x),求其零點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上的零點c,要求f(0)f(2) fzero(f,1) %求函數(shù)f在x=1附近的零點nans =n 1.2995n4. 數(shù)值函數(shù)的最小(大)值n求一元函數(shù)或多元函數(shù)的最小(大)值是數(shù)學上經常遇到的問題,如何求解最小(大)值,MATLAB提供了相應的命令fminbnd(一元函數(shù)最小值)和fminsearch(多元函數(shù)最小值)。n求一元函數(shù)f(x)在區(qū)間a,b上的最小值點x及最小值y,格式為x,y=fminbnd(f
12、,a,b) n求多元函數(shù)f(X)在點X0附近的最小值點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上最小值點及最小值上最小值點及最小值nxmin = 0.6370,fmin =11.2528n如何求解函數(shù)fy在0.2,0.8上
13、的最大值點及最大值呢?n事實上,函數(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上最小值點及最小值nxmax=xnfmax=-ynxmax =n 0.2996nfmax =n103.5014n5. 數(shù)值函數(shù)的積分數(shù)值函數(shù)的積分n求一元函數(shù)定積分或多元函數(shù)重積分的近似值,求一元函數(shù)定積分或多元函數(shù)重積分的近似值,MATLAB提供了有關命令提供了有關命令quad(定積
14、分定積分)、dblquad(二重積分二重積分)和和triplequad(三重積分三重積分)。他們。他們的使用方法如下:的使用方法如下:nQuad(四方院子;四胞胎之一;嵌條;成套的四件四方院子;四胞胎之一;嵌條;成套的四件東西東西)n求一元函數(shù)求一元函數(shù)f(x)在區(qū)間在區(qū)間a,b上的定積分上的定積分(近似計算近似計算),格式為格式為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的一個劃分向量X=x1,x2,xn,以及被積函數(shù)y在對應劃分點處的函數(shù)值向量Y=y1,y2,yn(函數(shù)表達式未必知道函數(shù)表達式未必知道),那么可以用梯形近似計算方法計算定積分,MATLAB提供了命令trapz。n格式為:trapz(X,Y)應用舉例n例1-15n當當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 時,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ù)零點命令fzero求無理數(shù)e的近似值;n用定積分計算命令(trapz、quad、quadl)求無理數(shù)ln2的近似值。n無理數(shù)e可以看成是方程lnx-1=0在x=2附近的實根,于是可以用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ù)點后小數(shù)點后10位?位?ne =n 2.718281828n注:注:nx0=fzero(f,2); 可改為可改為x0=fzero(f,3); 結果不變結果不變n用梯形法(trapz)近似計算nX=0:0.01:1; %產生0,1區(qū)間上的劃分向量;nY=1./(1+X); %求對應的分點處的函數(shù)值向量na=trapz(X,Y); %求用梯形法求出積分近似值nln2=vpa(a,10) %顯示a小數(shù)點后10位nln2 =n .69315343051.4 MATLAB中的符號運算中的符號運算nMATLAB除了可以進行數(shù)值運
19、算外,還可以進行有關符號運算,如函數(shù)的求極限、求導、不定積分、Taylor展開與級數(shù)求和等符號運算。n在進行符號運算時,首先要定義符號變量,建立符號函數(shù)。n1.4.1 符號函數(shù)表示符號函數(shù)表示n建立符號函數(shù)通常有兩種方式:1. 首先用syms命令聲明符號變量,再建立符號函數(shù)表達式。格式如下: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ù)求極限、導數(shù)、微分、積分等運算。n1.4.2 符號函數(shù)的求值n符號函數(shù)建
20、立之后,就確立了相應的函數(shù)符號表達式,它和數(shù)值函數(shù)不同,不能直接計算函數(shù)值。n如:nf=sym(0.5-x*y2)nf =n 0.5-x*y2n那么,要想計算當x=2,y=3時f的值,就需要使用MATLAB的符號函數(shù)與數(shù)值函數(shù)的轉換命令eval來計算,其格式如下:nx=2; y=3;na=eval(f) a =-17.5000n1.4.3 符號函數(shù)運算n在對已經建立的符號函數(shù)進行運算時,若符號函數(shù)中只有一個符號變量時,通常默認為函數(shù)的自變量,否則對于多個變量時,通常要指明相應的自變量,再對該變量進行運算。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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年旅行社服務項目建議書
- 2025年微波輻射計、微波散射計、測高計項目發(fā)展計劃
- 實施精準營銷策略提高市場占有率水平
- 光學鏡片透光率測量基準
- 辦公環(huán)境改善措施細則
- 城市地下綜合管廊建設與管理技術研究
- 格林童話選故事解讀
- 1-3-Methoxyphenyl-piperazine-生命科學試劑-MCE
- 公司年會演講致辭稿件范本
- 企業(yè)員工激勵計劃及策劃方案的說明
- 《紙杯變變變》課件
- 2024年山東魯商集團有限公司招聘筆試參考題庫含答案解析
- 財務部門職責財務部工作職能
- 《月歷上的數(shù)字的奧秘》
- 班級公約(完美版)
- 第六章ACS6000勵磁單元
- 醫(yī)療衛(wèi)生監(jiān)督協(xié)管巡查記錄表
- 水利工程資料匯編全套
- 教科版科學四年級下冊第一單元《植物的生長變化》單元作業(yè)設計
- 中國交建模板
- 《寒假開學第一課》課件
評論
0/150
提交評論