基于MATLAB數(shù)值解析_第1頁
基于MATLAB數(shù)值解析_第2頁
基于MATLAB數(shù)值解析_第3頁
基于MATLAB數(shù)值解析_第4頁
基于MATLAB數(shù)值解析_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

第五章

自定義函數(shù)的計(jì)算函數(shù)的創(chuàng)建1.用M文件function

f=fun(x)內(nèi)聯(lián)函數(shù)y=inline("(3*x^2-1)/2","x");字符串表達(dá)式(函數(shù))"theta=t/2,y=sin(theta)‘4.符號(hào)函數(shù)Evaluation

only.ated

withfA=1s.p/o(s1e+.xS.l^i2)d);es

for

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.5.1

字符串?dāng)?shù)組一、字符串入門【例1】先實(shí)際操作cleara=12345.6789class(a)a_s=size(a)a

=1.2346e+004ans

=doublea_s

=1

1b="S"b

=Sans

=charb_s

=1

1Evaluation

only.ate本d例wi,t以h以A體s會(huì)po數(shù)se值.S量lidesfor.NETc3l.a5ssC(lbi)entPro與字?符Co串py的ri區(qū)g別ht。2004-2011

Asposbeb_Pst=ysiLzted(b.b)whosNameSizeBytes

Classa1x18double

arraya_s1x216

double

arrayans1x48 char

arrayb

1x12

c?hEavraalruraatyion

only.atedb_wsith1Axs2po1s6e.dSoluibdleesarfroary

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.【例2】本例演示:串的基本屬性、標(biāo)識(shí)和簡單操作。。(1)創(chuàng)建串?dāng)?shù)組

a="This

is

an

example."a=This

is

an

example.(2)串?dāng)?shù)組a的大小ans

=Evaluation

only.atesdsiwziet(ah)Aspose.Slides

for

.NET

3.5

Client

Pro?1Co1p9yright

2004(-230)1串1

數(shù)A數(shù)s組po的se元P素ty標(biāo)L識(shí)td.a14=a(1:4)ra=a(end:-1:1)a14

=Thisra

=.elpmaxe

na

si

sihT【例3】中文字符串?dāng)?shù)組

A="這是一個(gè)算例。";

A_s=size(A)A56=A([5

6])A_s

=1

7A56

=算例Example

"3.1.2-1"ab=[a(1:7),"

",b,"

."]ab

=This

is

Example

"3.1.2-1"

.【例4】由小串構(gòu)?E成va大lu串a(chǎn)tiononly.atebd="wEixtahmpAlsep"o"s3e..1S.2l-i1d"e"s"for.NET3.5ClientProb

=

?Copyright

2004-2011

Aspose

Pty

Ltd.二、復(fù)雜串?dāng)?shù)組的創(chuàng)建【例1】多行串?dāng)?shù)組的直接輸入示例。

clearS=["This

string

array

""has

multiple

rows."]S

=has

multiple

rows.2

18Evaluation

only.ateTdhiwsitsthrAisngpgoasrera.aySlides

for

.NET

3.5

Client

Prosiz?eC(oS)p)yright

2004-2011

Aspose

Pty

Ltd.ans

=【例2】演示:用專門函數(shù)char,str2mat,strvcat創(chuàng)建多行串?dāng)?shù)組示例。。S2

=由4行組成S3=strvcat("這","字符","串?dāng)?shù)組","","由4行組成")S1=char("This

string

array","has

two

rows.")S1

=This

string

arrayhas

two

rows.S2=str2mat(‘這’,‘?‘E字v符a’l,u‘a(chǎn)串t數(shù)i組o’n,‘on’l,y"由.4行組成")ated

with

Aspose.Slides

for

.NET

3.5

Client

Pro這?Copyright

2004-2011

Aspose

Pty

Ltd.字符

串?dāng)?shù)組5.2

串演算函數(shù)為了提高計(jì)算的靈活性,MATLAB提供了一種利用字符串進(jìn)行計(jì)算?的Ev能al力u。a。t利io用n字on符ly串.可以構(gòu)成函數(shù),ate可d以wi在t運(yùn)h運(yùn)A行s中po改se變.S所l執(zhí)i執(zhí)d行es的f指or令.,NE可T以3.被5泛Cl涵ie指n令tP調(diào)ro用實(shí)?現(xiàn)Co比py較ri復(fù)g雜ht的2求00零4-點(diǎn)20、1求1極A極s值po等se運(yùn)P算ty。Ltd.一、evaly=eval(‘CEM’)[y1,y2,…]=eval(‘CEM’)法的指令、表達(dá)式、語句、或M文件名。

(3)第二種格式中的CEM只能是(包含輸入宗量在內(nèi)的)

M函數(shù)文件名。注:(1)eval指令?的Ev輸a入lu宗at量io必n須on是l字y.符串。ate(d2w)it構(gòu)h成As字p符os串e.的SlCEiEMd,es可f以or是.MNAETTLA3B.任5何Cl合ientProCopyright

2004-2011

Aspose

Pty

Ltd.【例】計(jì)算“表達(dá)式”串,產(chǎn)生向量值。。clear,t=pi;cem="[t/2,t*2,sin(t)]";y=eval(cem)y=1.5708 6.2832 0.0000【例】計(jì)算“語?句Ev”a串lu,at創(chuàng)io建n變on量l。y.atceldewari,tth=pApis;pose.Slidesfor.NET3.5ClientProeval?(C"otphyetrtai=gth/t2,2y0=0s4i-n2(0t1he1etAas)p")o;sePtyLtd.theta=1.5708y=1【例】計(jì)算“替代”串。CEM={"cos","sin","tan"};for

k=1:3theta=pi*k/12;y(1,k)=eval([CEM{1},"(",num2str(theta),")"]);endyy

=0.9659

0.8660

0.7071A=ones(2,1);B=ones(1,3);c=eval("B*A","A*B"),errmessage=l

asterrc

=1

1

11

1

1errmessage

=Error

using

==>

*Inner

matrix

dimensions

must

agree.Evaluation

only.ated

with

Aspose.Slides

for

.NET

3.5

Client

Pro【例?C】o計(jì)py算ri“gh合t成20”0串4-。2011

Aspose

Pty

Ltd.feval。x=pi/4;Ve=eval("1+sin(x)")Ve

=1.7071Vf=feval("1+sin(x)",x)???

Error

using

==>

fevalInvalid

function

name

"1+sin(x)".二、feval[y1,y2,…]=feval(F,arg1,arg2,…)F可以是函數(shù)句柄,函數(shù)名字符串,內(nèi)聯(lián)函數(shù)feval與函數(shù)句柄配套使用【例】對(duì)字符串類型函數(shù)只能用eval,而不能用Evaluationonly.ated

with

Aspose.Slides

for

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.【例】函數(shù)句柄只能被feval運(yùn)用,而不能被eval調(diào)用。。(1)函數(shù)句柄被feval調(diào)用

rand("seed",1);A=rand(2,2);Heig=@eig;d=feval(Heig,A)d

=Function

"eval"

not

defined

for

variablesof

class

"function_handle".Evaluation

only.ated0.w7i5t6h8

Aspose.Slides

for

.NET

3.5

Client

Pro-0.?1C4o8p8yright

2004-2011

Aspose

Pty

Ltd.(2)eval不能對(duì)函數(shù)句柄進(jìn)行操作de=eval(Heig,A)???

Error

using

==>

eval(3)feval能對(duì)函數(shù)名字符串進(jìn)行操作

dn=feval("eig",A)dn

=0.7568-0.1488dn=feval("sin?"E,vpail/u2)ation

only.ateddnw=ith

Aspose.Slides

for

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.1【例】feval和eval調(diào)用區(qū)別:feval的FN只接受函數(shù)名。本例兩種方法以后者為好。。randn("seed",1);A=rand(2,2);[ue,de,ve]=eval("svd(A)");disp("Results

by

eval");disp([ue,de,ve]);disp(blanks(1))[uf,df,vf]=feval("svd",A);disp("Results

by

feval");disp([uf,df,vf])Results

by

eval-0.3936

0.9193

0 0.2633

-0.6135

0.7897-0.9193

-0.3936

1.2212

0-0.3936

0.9193

0

0.2633-0.7897

-0.6135-0.6135

0.7897Evaluation

only.at-e0d.91w9i3

-t0h.39A3s6

p1.o2s21e2

.0

Sl-0i.d78e97s-f0.o61r35.NET

3.5

Client

ProResul?tsCboy

pfeyvralight

2004-2011

Aspose

Pty

Ltd.三、內(nèi)聯(lián)函數(shù)式。inline("CE")inline("CE",arg1,arg2,…)inline("CE",n)注:(1)‘CE’字符串?E,vaClEu必at須io是n不on包l含y.賦值號(hào)‘=’的ate表d達(dá)with

Aspose.Slides

for

.NET

3.5

Client

Pro(2)內(nèi)?C聯(lián)op函yr數(shù)i是g是h溝t通20e0v4a-l2,0f1ev1vaAls兩p個(gè)os不e同Pt指y令Lt的d.橋梁。凡eval可以運(yùn)作的表達(dá)式,都可以通過inline轉(zhuǎn)化為內(nèi)聯(lián)函數(shù),而這種內(nèi)聯(lián)函數(shù)總可以被feval使用。(3)第三種調(diào)用格式最簡練,但對(duì)輸入宗量的字符限制嚴(yán)格。輸入宗量的字符只能是x,P1,P2,…,Pn.GG=vectorize(G)GG

=【例】用內(nèi)聯(lián)函數(shù)對(duì)象實(shí)現(xiàn)。創(chuàng)建帶一個(gè)參量的二元函數(shù)

G=inline("a*exp(x)*cos(y)","a","x","y");使適應(yīng)數(shù)組運(yùn)算規(guī)則Evaluation

only.atedIwnilitnheAfsupnocstieio.nS:lides

for

.NET

3.5

Client

ProGG?(Cao,pxy,ry)i)g=hat.*2e0x0p4(-x2)0.1*c1oAss(ypy)ose

Pty

Ltd.GG(2,[1,2],[pi/3,pi])ans

=2.7183

-14.7781【例】演示:內(nèi)聯(lián)函數(shù)的第一種創(chuàng)建格式;使內(nèi)聯(lián)函數(shù)適于“數(shù)組運(yùn)算”。clear,F1=inline("sin(rho)/rho")F1

=Inline

function:F1(rho)

=

sin(rho)/rhof1=F1(2)f1

=xx=[0.5,1,1.5,2];ff1=FF1(xx)FF1

=Inline

function:FF1(rho)

=

sin(rho)./rhoff1

=0.9589

0.8415

0.6650

0.4546Evaluation

only.ated0w.i4t5h46Aspose.Slides

for

.NET

3.5

Client

ProFF1?=Cvoecpctyorriigzhet(F210)04-2011

Aspose

Pty

Ltd.【例】演示:產(chǎn)生向量輸入、向量輸出的內(nèi)聯(lián)函數(shù);這種向量函數(shù)的調(diào)用方法。Y2=inline("[x(1)^2;3*x(1)*sin(x(2))]")argnames(Y2)Y2

=Inline

function:Y2(x)

=

[x(1?)^E2v;a3l*uxa(t1i)o*snsionn(lx(y2.))]ateadnsw=ith

Aspose.Slides

for

.NET

3.5

Client

Pro"x?"Copyright

2004-2011

Aspose

Pty

Ltd.x=[4,pi/6];y2=Y2(x)y2

=16.00006.0000【例】演示:最簡練格式創(chuàng)建內(nèi)聯(lián)函數(shù);內(nèi)聯(lián)函數(shù)可被feval指令調(diào)用。。Z2=inline("P1*x*sin(x^2+P2)",2)

Z2

=Inline

function:Z2(x,P1,P2)

=

P1*x*sin(x^2+P2)z2=Z2(2,2,3)Evaluation

only.atefdz2w=iftehvaAls(pZo2,s2e,.2S,l3i)des

for

.NET

3.5

Client

Proz2

=?Copyright

2004-2011

Aspose

Pty

Ltd.2.6279fz2

=2.62795.3

函數(shù)句柄(1)利用@符號(hào)(2)利用轉(zhuǎn)換函數(shù)str2func引入函數(shù)句柄使“函數(shù)調(diào)用”像“變量調(diào)用”一樣靈活方便?。Evaluation

only.ated一w、it函h

數(shù)As句po柄se的.創(chuàng)Sl建ides

for

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.【例】為MATLAB的“內(nèi)建”函數(shù)創(chuàng)建函數(shù)句柄,并觀察其內(nèi)涵。。創(chuàng)建函數(shù)句柄

hsin=@sin;類型判別class(hsin)?Evaluation

only.atedswiizteh(hAssipno)se.Slides

for

.NET

3.5

Client

Proan?nsCo=pyright

2004-2011

Aspose

Pty

Ltd.function_handleans

=1

1二、函數(shù)句柄的基本用法

[ao1,ao2,…,aon]=FunName(ai1,ai2,…,ain)Hfun=@FunName;

[ao1,ao2,…,aon]=feval(Hfun,ai1,ai2,…,ain)Evaluation

only.ated

with

Aspose.Slides

for

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.【例】本例通過sin函數(shù)及其句柄演示若干基本用法。(1)函數(shù)句柄的創(chuàng)建

fhandle=str2func("sin");(2)函數(shù)句柄在“數(shù)值計(jì)算”中的情況

ys=sin(pi/4)yfold=feval("s?iEnv"a,lpuia/4t4)ion

only.atyefdnwewi=tfhevAvaslp(ofshea.nSdllie,dpeis/4f4)or

.NET

3.5

Client

Proys

=?Copyright

2004-2011

Aspose

Pty

Ltd.0.7071yfold

=0.7071yfnew

=0.7071(3)函數(shù)句柄在“符號(hào)計(jì)算”中的情況

Alpha=sym("pi/4");yss=sin(Alpha)yfold=feval("sin",Alpha)ynews=feval(fhandle,Alpha)yss

=1/2*2^(1/2)Evaluation

only.atyefdowldit=hAspose.Slidesfor.NET3.5ClientPro1/2*?2C^o(p1y/2r2)ight2004-2011AsposePtyLtd.ynews=1/2*2^(1/2)(4)函數(shù)句柄在泛函指令中的用法在[0,2π]間求sin函數(shù)的極小值點(diǎn)的位置。

xold=fminbnd("sin",0,2*pi)xnew=fminbnd(fhandle,0,2*pi)xold

=4.7124xnew

=Evaluation

only.ated4.w7i1t2h4

Aspose.Slides

for

.NET

3.5

Client

ProCopyright

2004-2011

Aspose

Pty

Ltd.【例】自建函數(shù)及其句柄的使用。通過本例可看到:只要在當(dāng)前MATLAB工作空間中存在函數(shù)句柄,那末不管該函數(shù)當(dāng)前是否在搜索范圍內(nèi),均可通過函數(shù)句柄實(shí)現(xiàn)正確的運(yùn)作。。(1)[zzy076_3.m]function Hr=zzy076_3(flag )% ZZY076_3 為演?E示va函l數(shù)ua、ti子on函o數(shù)nl句y柄.而設(shè)計(jì)的繪圖at文ed件w。ithAspose.Slidesfor.NET3.5ClientPro% fl?aCgopyright可2以00取4-字20符1串1A"lslipnoes"e或Pt"yciLrtcdl.e"。t=(0:100)/100*2*pi;x=sin(t);y=cos(t);Hr=@cirline; %創(chuàng)建子函數(shù)的句柄feval(Hr,flag,x,y,t)%

subfunctionfunction

cirline(wd,x,y,t)接受字符串"line"或"circle"畫線用的獨(dú)立參變量由t產(chǎn)生的橫坐標(biāo)變量由t產(chǎn)生的縱

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論