梯度下降法matlab實(shí)例 matlab用最速下降法(梯度法)計(jì)算Rosenbrock函數(shù),求程序代碼?
matlab用最速下降法(梯度法)計(jì)算Rosenbrock函數(shù),求程序代碼?Rosenbrock函數(shù)實(shí)現(xiàn)代碼:CLC,clear allformat long gx0=[00]樂趣=@funcgfun
matlab用最速下降法(梯度法)計(jì)算Rosenbrock函數(shù),求程序代碼?
Rosenbrock函數(shù)實(shí)現(xiàn)代碼:CLC,clear allformat long gx0=[00]樂趣=@funcgfun=@gfunc[x,Val,k]=grad(fun,gfun,x0)%最速下降法(梯度法)目標(biāo)函數(shù)f=func(x)f=100*(x(1)^2-x(2))^2(1-x(1))^2末級(jí)梯度函數(shù)g=gfunc(x)g=[400*x(1)*(x(1)^2-x(2))-x(2)2*(x(1) -200*(x(1)^2-x(2))]如果最終運(yùn)行結(jié)果有任何問題,請(qǐng)向我發(fā)送私人消息。用GA()得到的Rosenbrock函數(shù)的結(jié)果與用上述方法得到的結(jié)果接近。
最速下降法matlab程序?qū)崿F(xiàn)如何做?
最陡下降法是找到梯度。例如,求F=(X-Y)/(X^2 Y^2)在(-3,-2)處的梯度。Clcclear x=-3Y=-2 F=“(x-Y)/(x^2 Y^2)”FX=diff(F,“x”),求x的偏導(dǎo)數(shù),F(xiàn)Y=diff(F,“Y”),求Y的偏導(dǎo)數(shù),g=[FX FY]%梯度,g=subs(g)%,共軛梯度法是介于最速下降法和牛頓法之間的一種方法。它只需要利用一階導(dǎo)數(shù)信息,克服了最速下降法收斂速度慢的缺點(diǎn),避免了牛頓法需要存儲(chǔ)和計(jì)算Hesse矩陣求逆的缺點(diǎn)。共軛梯度法不僅是求解大規(guī)模線性方程組最有用的方法之一,也是求解大規(guī)模非線性優(yōu)化問題最有效的算法之一。共軛梯度法最早由hestenes和stiefle(1952)提出,用于求解具有正定系數(shù)矩陣的線性方程組。在此基礎(chǔ)上,F(xiàn)letcher和Reeves(1964)首次提出了求解非線性優(yōu)化問題的共軛梯度法。由于共軛梯度法不需要矩陣存儲(chǔ),且具有收斂速度快、二次終止等優(yōu)點(diǎn),目前共軛梯度法在實(shí)際問題中得到了廣泛的應(yīng)用。共軛梯度法是一種典型的共軛方向法,它的每個(gè)搜索方向都是相互共軛的,而這些搜索方向D只是負(fù)梯度方向和上一次迭代的搜索方向的組合,所以它的存儲(chǔ)量少,計(jì)算方便
~】應(yīng)用優(yōu)化系統(tǒng)描述了如何將優(yōu)化方法作為應(yīng)用軟件來(lái)實(shí)現(xiàn)。本文系統(tǒng)地介紹了各種無(wú)約束和有約束優(yōu)化問題的計(jì)算方法和程序?qū)崿F(xiàn),包括:精確/不精確一維搜索、最速下降法、牛頓/擬牛頓法、共軛梯度法、單純形法、內(nèi)點(diǎn)法、活動(dòng)集法、,序貫二次規(guī)劃法等書中包含了優(yōu)化的必要理論知識(shí),為得到優(yōu)化方法和使用程序做準(zhǔn)備。書中給出的許多應(yīng)用程序優(yōu)化技術(shù)都是我們最新的研究成果。本書給出的優(yōu)化程序是一種通過(guò)專業(yè)編程技巧實(shí)現(xiàn)的優(yōu)化算法。這本書還提供了許多例子和練習(xí)??勺鳛楦咝W詣?dòng)化、控制、系統(tǒng)工程、工業(yè)工程、計(jì)算機(jī)、應(yīng)用數(shù)學(xué)、經(jīng)濟(jì)、管理、化工、材料、機(jī)械、能源等相關(guān)專業(yè)學(xué)生的教材,也可作為科研人員和工程技術(shù)人員的參考書。