用MATLAB求極值_第1頁(yè)
用MATLAB求極值_第2頁(yè)
用MATLAB求極值_第3頁(yè)
用MATLAB求極值_第4頁(yè)
用MATLAB求極值_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余2頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、用MATLAB求極值靈活的運(yùn)用MATLAB的計(jì)算功能,可以很容易地求得函數(shù)的極值._23x4x4.八例3.6.1求y3x24X4的極值xx1解首先建立函數(shù)關(guān)系:symssy=(3*xA2+4*x+4)/(xA A2+x+1);/然后求函數(shù)的駐點(diǎn):dy=diff(y);/xz=solve(dy)/xz=0-2知道函數(shù)有兩個(gè)駐點(diǎn)x1=0和x2=-2,考察函數(shù)在駐點(diǎn)處二階導(dǎo)數(shù)的正負(fù)情況:d2y=diff(y,2);/z1=limit(d2y,x,0)/z1=-2z2=limit(d2y,x,-2)/z2=2/9于是知在x1=0處二階導(dǎo)數(shù)的值為z1=-2,小于0,函數(shù)有極大值;在x2=-2處二階導(dǎo)數(shù)的

2、值為Z2=2/9,大于0,函數(shù)有極小值.如果需要,可順便求出極值點(diǎn)處的函數(shù)值:y1=limit(y,x,0)/y=4y2=limit(y,x,-2)/y2=8/3事實(shí)上,如果知道了一個(gè)函數(shù)的圖形,那么它的極值情況和許多其它特性是一目了然的.而借助MATLAB的作圖功能,我們很容易做到這一點(diǎn).例解symsx/y=(3*xA2+4*x+4)/(xA2+x+1);/得到如下列圖形ezplot(y)/如何用MATLAB求函數(shù)的極值點(diǎn)和最大值比方說(shuō)y=x+xA2+1,怎樣用matlab來(lái)算它的極值和最大值?求極值:symsxyy=xA A3+xA A2+1diff(y)%求導(dǎo)ans=3*xA2+2*xs

3、olve(ans)%求導(dǎo)函數(shù)為零的點(diǎn)ans=-2/30極值有兩點(diǎn).求最大值,既求-y的最小值:f=(x)(-xA3-xA2-1)f=(x)(-xA3-xA2-1)x=fminunc(f,-3,3)%在-3;-3范圍內(nèi)找Warning:Gradientmustbeprovidedfortrust-regionmethod;usingline-searchmethodinstead.Infminuncat354Optimizationterminated:relativeinfinity-normofgradientlessthanoptions.TolFun.x=-0.6667f(x)ans=-

4、1.1481在規(guī)定范圍內(nèi)白最大值是1.1481由于函數(shù)的局限性,求出的極值可能是局部最小(大)值.求全局最值要用遺傳算法.如何用matlab求多元函數(shù)的極值在0 xpi/2,0ydzy=diff(z,y)dzy=sin(x)*cos(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)xx,yy=solve(cos(x)*sin(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0,.sin(x)*cos(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0,x,y)%,y可以不用?A=diff(z,x,2);%對(duì)于定義域內(nèi)的駐點(diǎn)求解二階

5、偏導(dǎo)函數(shù)B=diff(diff(z,x),y);C=diff(z,y,2);D=A*C-BA2;wu別極大值點(diǎn)D1=subs(subs(D,x,xx(1),y,yy(1)%subs含義見補(bǔ)充局部A1=subs(subs(A,x,xx(1),y,yy(1)D2=subs(subs(D,x,xx(2),y,yy(2)A2=subs(subs(A,x,xx(2),y,yy(2)%極大值點(diǎn)和極大值xx(2)yy(2)JDZ=subs(subs(z,x,xx(2),y,yy(2)程序運(yùn)行結(jié)果ans=1/3*pi,1/3*piJDZ=3/8*3A(1/2)補(bǔ)充matlab中的繪圖函數(shù)很多,三維的有好幾個(gè)呢

6、,下面我給出兩種繪制方法1.使用ezmesh或者ezsurf這兩個(gè)函數(shù)是簡(jiǎn)易繪圖函數(shù),可以直接使用字符串繪圖ezmesh(x*y-(1/3)*(xA3)+1/4*(xA2)*(sqrt(2*(xA2-y*2)-1/2*(y*(sqrt(2*(xA2-y*2)2.先計(jì)算坐標(biāo)點(diǎn)數(shù)據(jù),再繪圖,可以使用mesh和surf函數(shù)x,y=meshgrid(0:0.1:10);z=x.*y-(1/3)*(x.A A3)+1/4*(x.A A2).*(sqrt(2*(x.A A2-y*2)-1/2*(y.*(sqrt(2*(x.A A2-y*2);z(imag=0)=nan;mesh(x,y,z)subs是賦值

7、函數(shù),用數(shù)值替代符號(hào)變量替換函數(shù)例如:輸入subs(a+b,a,4)意思就是把a(bǔ)用4替換掉,返回4+b也可以替換多個(gè)變量,例如:subs(cos(a)+sin(b),a,b,sym(alpha),2)分別用字符alpha替換a和2替換b,返回cos(alpha)+sin(2)用法很靈活,仔細(xì)看幫助,會(huì)得到你想要的形式的matlabsubs如何用懸賞分:0-解決時(shí)間:2021-12-317:36在解一個(gè)模型,其中:Qd=(-2*x-2*wd+2*a-a*k+y*k+wf*k+td*k)/(4*b-2*b*kA2)現(xiàn)在求出來(lái)x=1/2*(48*a+32*k+16*wd-16*cdu-4*wf*k-

8、4*td*k-12*a*k-10*a*kA2+td*kA3-8*kA3+4*kA2*cdu-4*k*cfu+cfu*kA3+3*a*kA3-6*wd*kA2+wf*kA3)/(5*kA2-16)y=(-8*a+a*kA2-2*wd*k+10*a*k+8*wf-3*wf*kA2-3*td*kA2+2*cfu*kA2+4*kA2+8*td-8*cfu-2*k*cdu)/(5*kA2-16)要把x和y代回Qd,請(qǐng)教達(dá)人,用matlab的subs怎么寫?。咳f(wàn)分感謝!問(wèn)題補(bǔ)充:Qd=(-2*x1-2*wd+2*a-a*k+y1*k+wf*k+td*k)/(4*b-2*b*kA2)x1=1/2*(48*a

9、+32*k+16*wd-16*cdu-4*wf*k-4*td*k-12*a*k-10*a*kA2+td*kA3-8*kA3+4*kA2*cdu-4*k*cfu+cfu*kA3+3*a*kA3-6*wd*kA2+wf*kA3)/(5*kA2-16)y1=(-8*a+a*kA2-2*wd*k+10*a*k+8*wf-3*wf*kA2-3*td*kA2+2*cfu*kA2+4*kA2+8*td-8*cfu-2*k*cdu)/(5*kA2-16)subs(Qd,x1,y1,x,y)以上輸入之后報(bào)錯(cuò)為:Undefinedfunctionorvariablex1.請(qǐng)問(wèn)是哪里除了問(wèn)題?提問(wèn)者:nxdviol

10、a一級(jí)最正確答案symsx1,y1QdQd=(-2*x1-2*wd+2*a-a*k+y1*k+wf*k+td*k)/(4*b-2*b*kA2)subs(Qd,x1,y1,x,y)為何Matlab用subs后給出的結(jié)果是個(gè)代數(shù)式而不是數(shù)字?懸賞分:0-解決時(shí)間:2021-10-822:16使用d=subs(f4,x,y,z,2,3,1)后,結(jié)果給出了一個(gè)很長(zhǎng)的代數(shù)式,里面有pi和atan,但都沒(méi)有計(jì)算,為什么不給出一個(gè)最終的數(shù)字結(jié)果?提問(wèn)者:再見長(zhǎng)江-二級(jí)最正確答案subs函數(shù)就是替換符號(hào)表達(dá)式的函數(shù),要計(jì)算需要用eval函數(shù)急詢:Matlab中subs(S)的應(yīng)用疑問(wèn)?懸賞分:5-解決時(shí)間:2

11、006-6-2912:57急詢:Matlab中subs(S)的應(yīng)用疑問(wèn)?1.subs(S)到底是什么函數(shù)?其什么作用,謝謝!2.下段繪圖程序如下的話就畫出不來(lái):symsxt;t=0:pi/60:2*pi;y1=int(sin(x),x,0,t);y2=int(cos(x),x,0,t);plot(y1,y2)而把plot(y1,y2)改成plot(subs(y1),subs(y2)就可以運(yùn)行成功畫出來(lái)了.(1)為什么?(2)subs在此起到什么作用?(3)而不加subs為什么運(yùn)行不了,畫不出來(lái)?急,多謝!(上次提問(wèn)時(shí)候把y1寫成y1=sin(x)了,現(xiàn)在改為int(sin(x),x,0,t);

12、抱歉)問(wèn)題補(bǔ)充:(上次提問(wèn)時(shí)候把y1寫成y1=sin(x)了,現(xiàn)在改為int(sin(x),x,0,t);抱歉)請(qǐng)具體講一下subs(S)到底是什么意思?(我知道subs(f,x,t)是什么意思,但我不明白sub(S)在此到底具體是什么意思?請(qǐng)?jiān)敿?xì)一下,謝謝!)提問(wèn)者:wanglicun-二級(jí)最正確答案subs(S)的意思是:S以前是sym變量,subs(S)為double變量,plot只能對(duì)double變量作圖.曲線極值的標(biāo)注:用matlab中plot繪制的曲線時(shí),把曲線上峰值的大小標(biāo)注在上面你指的是離散點(diǎn)的最大和最小值吧?給你個(gè)簡(jiǎn)單的例子看看:代碼:x=0:pi/50:2*pi;y=sin

13、(x);y1=max(y);x1=x(find(y=y1);y2=min(y);x2=x(find(y=y2);plot(x,y);holdonplot(x1,y1,r*);plot(x2,y2,g*);離散數(shù)據(jù)就極值點(diǎn)腦法一x=0:0,01:20;y=2*sin(x/2)+cos(2*x)/2;%indmax=find(diff(sign(diff(y)0)+1;%極小值點(diǎn)ind=find(diff(sign(diff(y)=0)+1;%極值點(diǎn)plot(x,y,x(ind),y(ind),ro)%r法二x=0:0.01:20;y=2*sin(x/2)+cos(2*x)/2;indmax=intersect(find(diff(y)0)+1,find(diff(y)0);%極大值點(diǎn)indmin=intersect(find(diff(y)0)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論