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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

matlab多变量优化,matlab - Matlab使用fminsearch优化多变量 - 堆栈内存溢出

發布時間:2024/4/18 循环神经网络 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab多变量优化,matlab - Matlab使用fminsearch优化多变量 - 堆栈内存溢出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在使用Matlab fminsearch來最小化帶有兩個變量的方程sum((interval-5).^2, 2)*factor間隔是一個包含5個值的向量。 只能從1到30的步長為1的順序選擇它們。因子是0.1到0.9的值。

代碼如下。 我認為區間值是正確的,但因子值是錯誤的。

間隔值:[3 4 5 6 7]因子值:0.6最終輸出:6

我認為因子值應為0.1,最終輸出應為1作為全局最小值。

%% initialization of problem parameters

minval = 1;

maxval = 30;

step = 1;

count = 5;

minFactor = 0.1;

maxFactor = 0.9;

%% the objective function

fun = @(interval, factor) sum((interval-5).^2, 2)*factor;

%% a function that generates an interval from its initial value

getinterval = @(start) floor(start) + (0:(count-1)) * step;

getfactor =@(start2) floor(start2 * 10)/10;

%% a modified objective function that handles constraints

objective = @(start, start2) f(start, fun, getinterval, minval, maxval, getfactor, minFactor, maxFactor);

%% finding the interval that minimizes the objective function

start = [(minval+maxval)/2 (minFactor+maxFactor)/2];

y = fminsearch(objective, start);

bestvals = getinterval(y(1));

bestfactor = getfactor(y(2));

eval = fun(bestvals,bestfactor);

disp(bestvals)

disp(bestfactor)

disp(eval)

該代碼使用以下函數f 。

function y = f(start, fun, getinterval, minval, maxval, getfactor, minFactor, maxFactor)

interval = getinterval(start(1));

factor = getfactor(start(2));

if (min(interval) < minval) || (max(interval) > maxval) || (factormaxFactor)

y = Inf;

else

y = fun(interval, factor);

end

end

我按照亞當的建議嘗試了GA函數。 考慮到我的變量來自不同的范圍和步驟,我將其更改為兩個不同的集合。 這是我的零錢。

step1 = 1;

set1 = 1:step1:30;

step2 = 0.1;

set2 = 0.1:step2:0.9;

% upper bound depends on how many integer used for mapping

ub = zeros(1, nvar);

ub(1) = length(set1);

ub(2) = length(set2);

然后,我改變了目標函數

% objective function

function y = f(x,set1, set2)

% mapping

xmap1 = set1(x(1));

xmap2 = set2(x(2));

y = (40 - xmap1)^xmap2;

end

運行代碼后,我想我會得到想要的答案。

總結

以上是生活随笔為你收集整理的matlab多变量优化,matlab - Matlab使用fminsearch优化多变量 - 堆栈内存溢出的全部內容,希望文章能夠幫你解決所遇到的問題。

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