基本遺傳算法 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求極值?
極值:
data
find(diff(sign(diff(data)))===-2)1
find(diff(sign(diff(data))==2)1
find(sign(diff(data))==2)1
find(sign(diff(data))==2)1
data(find(sign(diff(data))==2)1羅森布魯克函數(shù)是數(shù)學(xué)中常用的函數(shù)優(yōu)化,可以用來測(cè)試優(yōu)化算法的性能。又稱“羅森布魯克谷”、“羅森布魯克香蕉函數(shù)”、“香蕉函數(shù)”。其定義如下圖所示:
匿名函數(shù)表示函數(shù),MATLAB的匿名函數(shù)代碼為:FF=@(x)(100*(x(2)-x(1)。^2)^2(1-x(1))^2。
用單純形法求極值
檢查目標(biāo)函數(shù)
繪制Rosenbrock函數(shù)3D圖,如下圖所示是繪圖代碼:
下面是繪制的Rosenbrock函數(shù)3D圖