日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab中globalsearch,MATLAB中fmincon和globalsearch、multistart优化问题

發布時間:2023/12/14 循环神经网络 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab中globalsearch,MATLAB中fmincon和globalsearch、multistart优化问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 wwwjjj7008 于 2018-3-21 10:24 編輯

問題描述:從四個參數的給定范圍r1[200 300]、r2[50 100]、l1[150 200]、l2[150 250]中,任取一組數,代入:

h = sqrt(l2*l2-(3*r1/2-3*l1*cos(t)/2-90.9).^2 -(3^0.5*r1/2-3^0.5*l1*cos(t)/2-119.1).^2);

x = 0.39*r1-0.16*r2-0.39*l1*cos(t)-0.54*h+8.24 ;

z = 1.39*r1 - 1.16*r2 - 1.39 * l1 * cos(t) + l1*sin(t) +0.46*h+14.41;

其中t的變化范圍是:50*pi/180~57*pi/180

得到xz曲線,求曲線關于坐標軸所圍成面積最大時的那組參數,并輸出面積和最大時的圖像。

下面是我用fmincon,globalsearch和multistart分別的結果:

GetS.m:

function S = GetS(data)

% 待優化函數

% 輸出S 為待優化的面積 z(x)與x軸圍成的面積

r1 = data(1);r2 = data(2);l1 = data(3);l2 = data(4);

syms t;

h = sqrt(l2*l2-(3*r1/2-3*l1*cos(t)/2-90.9).^2 -(3^0.5*r1/2-3^0.5*l1*cos(t)/2-119.1).^2);

x = 0.39*r1-0.16*r2-0.39*l1*cos(t)-0.54*h+8.24 ;

z = 1.39*r1 - 1.16*r2 - 1.39 * l1 * cos(t) + l1*sin(t) +0.46*h+14.41;

% x(t)的一階導數

x_ = diff(x);

del = 100;

t = linspace(50*pi/180,57*pi/180,del);

% 將t代入上述表達式中 求解對應的x,z

xda = subs(x);

zda = subs(z);

x_da = subs(x_);

digits(10);

% 將數據格式轉化為double

zda = double(vpa(zda));

xda = double(vpa(xda));

x_da = double(vpa(x_da));

% 忽略虛數解

zda = zda(abs(imag(zda))<=1e-6);

xda = xda(abs(imag(xda))<=1e-6);

x_da = x_da(abs(imag(x_da))<=1e-6);

% 參數方程的積分方法

deltat = pi/(2*del);

% 積分??原理有附圖解釋

S = sum(x_da.*zda*deltat);

% 用trapz也可以

% S = trapz(xda,zda);

% 為了優化 取負

S = -S;

end

plotxz.m:

function y = plotxz( data )

% 輸入函數data為數組 分別對應 r1 r2 l1 l2

% 函數功能:畫函數圖像z(x)

% data分別對應r1 r2 l1 l2

r1 = data(1);r2 = data(2);l1 = data(3);l2 = data(4);

% 定義符號變量 t

syms t;

h = sqrt(l2*l2-(3*r1/2-3*l1*cos(t)/2-90.9).^2 -(3^0.5*r1/2-3^0.5*l1*cos(t)/2-119.1).^2);

x = 0.39*r1-0.16*r2-0.39*l1*cos(t)-0.54*h+8.24 ;

z = 1.39*r1 - 1.16*r2 - 1.39 * l1 * cos(t) + l1*sin(t) +0.46*h+14.41;

% t 生成100個50*pi/180~57*pi/180之間的數

t = linspace(50*pi/180,57*pi/180,100);

% 將t代入上述表達式中 求解對應的x,z

xda = subs(x);

zda = subs(z);

% 將數據格式轉化為double

zda = double(vpa(zda));

xda = double(vpa(xda));

% 忽略虛數解

zda = zda(abs(imag(zda))<=1e-6);

xda = xda(abs(imag(xda))<=1e-6);

figure

plot(xda,zda)

grid on

y=1;

end

%下面是主函數

% 設置優化約束條件

options.TolCon = 1e-15;

options.TolX = 1e-15;

options.TolFun = 1e-15;

% 設置迭代優化代數:500

options = gaoptimset(options, 'Generations', 500);

%上邊界

LB = [200,50,150,150];

% 上邊界

UB = [300,100,200,250];

% 優化初始值

x0 = [200,50,180,180];

關鍵是下面用三種不同的優化主函數,得到的結果不同,而且對初始值非常敏感:

(1)用fmincon優化的主函數

main.m:

options = optimset('LargeScale','off');

% 優化函數 fmincon 待優化函數為 GetS函數

[ANSW,FVAL] = fmincon(@(data)GetS(data),x0,[],[],[],[],LB,UB,[],options);

% 優化結果r1 r2 l1 l2 存放在ANSW數組里面

plotxz( ANSW );

% 優化求解的最大面積

S=-FVAL

結果1.png (13.45 KB, 下載次數: 1)

2018-3-21 10:22 上傳

結果2.png (13.25 KB, 下載次數: 1)

2018-3-21 10:22 上傳

(2)用globalsearch優化的主函數

main.m:

f = @(data)GetS(data);

problem = createOptimProblem('fmincon','objective',f,'x0',x0,'lb',LB,'ub',UB,'options',optimset('Algorithm','SQP','DISP','none'));

gs = GlobalSearch;

xgs = run(gs,problem);

% 優化結果r1 r2 l1 l2 存放在xgs數組里面

plotxz( xgs );

xgs

S = -GetS(xgs)

結果1.png (7.58 KB, 下載次數: 1)

2018-3-21 10:23 上傳

結果2.png (12.35 KB, 下載次數: 1)

2018-3-21 10:23 上傳

(3)用multistart優化的主函數

main.m:

f = @(data)GetS(data);

problem = createOptimProblem('fmincon','objective',f,'x0',x0,'lb',LB,'ub',UB,'options',optimset('Algorithm','SQP','DISP','none'));

ms = MultiStart;

tic

xgs_m = run(ms,problem,50);

toc

% 優化結果r1 r2 l1 l2 存放在xgs_m數組里面

plotxz( xgs_m );

xgs_m

S = -GetS(xgs_m)

結果1.png (14.02 KB, 下載次數: 0)

2018-3-21 10:23 上傳

結果2.png (11.04 KB, 下載次數: 2)

2018-3-21 09:55 上傳

求大神指點迷津,我這到底哪里出錯了?理論上globalsearch和multistart的結果應該會比fmincon的結果更優不是嗎?

總結

以上是生活随笔為你收集整理的matlab中globalsearch,MATLAB中fmincon和globalsearch、multistart优化问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。