中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

博彩網(wǎng)站做代理賺錢嗎廣州市口碑seo推廣

博彩網(wǎng)站做代理賺錢嗎,廣州市口碑seo推廣,wordpress 簡潔模板,wordpress是英文的怎么辦一、概述 之前對這本書的第三章進行了代碼實現(xiàn),這篇博客是對這本書第4章相關(guān)代碼進行實現(xiàn),部分內(nèi)容安裝書中代碼無法實現(xiàn)相應(yīng)功能,MATLAB會報錯,對其進行一定程度的更改后,可以正常運行,與書中所給示例運行…

一、概述

? ? ? ? 之前對這本書的第三章進行了代碼實現(xiàn),這篇博客是對這本書第4章相關(guān)代碼進行實現(xiàn),部分內(nèi)容安裝書中代碼無法實現(xiàn)相應(yīng)功能,MATLAB會報錯,對其進行一定程度的更改后,可以正常運行,與書中所給示例運行結(jié)果相一致。

二、具體實現(xiàn)

(一)使用函數(shù)

? ? ? ? 1.概述

????????因為書中幾個條件使用的示例函數(shù)均相同,在此將其單獨羅列出來,復(fù)制即可。

? ? ? ? 2.函數(shù)實現(xiàn)

? ? ? ? f_test1和其導(dǎo)數(shù)g_test1。

function y = f_test1(x)
%F_TEST1 此處顯示有關(guān)此函數(shù)的摘要
%   此處顯示詳細說明y = -3 * x * sin(0.75 * x) + exp(-2 * x);end
function y = g_test1(x)
%G_TEST1 此處顯示有關(guān)此函數(shù)的摘要
%   此處顯示詳細說明y = -2 / exp(2 * x) - 3 * sin(x * 0.75) - (3 * 0.75 * x * cos(0.75 * x));end

????????f_test2和其導(dǎo)數(shù)g_test2。

function y = f_test2(x)
%F_TEST2 此處顯示有關(guān)此函數(shù)的摘要
%   此處顯示詳細說明x1 = x(1);
x2 = x(2);
y = x1 ^ 2 + x2 ^ 2 - 1;end
function y = g_test2(x)
%G_TEST2 此處顯示有關(guān)此函數(shù)的摘要
%   此處顯示詳細說明x1 = x(1);
x2 = x(2);
y = 2 * x1 + 2 * x2;end

?????????f_test3和其導(dǎo)數(shù)g_test3。

function y = f_test3(x)
%F_TEST3 此處顯示有關(guān)此函數(shù)的摘要
%   此處顯示詳細說明y = sin(3 * x) / x;end
function y = g_test3(x)
%G_TEST3 此處顯示有關(guān)此函數(shù)的摘要
%   此處顯示詳細說明y = (3 * cos(3 * x)) / x - sin(3 * x) / ( x ^ 2);end

(二)Armijo_search條件

? ? ? ? 1.main.m文件

? ? ? ? 這個文件是此條件的主運行文件,放開相應(yīng)注釋即可運行每個示例。

% 這個文件主要為Armijo_search文件的主程序% 清空
close;
clear;
clc;% 第一個示例
% x_current = -2;
% d_current = 1;
% rho = 0.1;
% [alpha_acceptable, x_next, f_next, k] = Armijo_search(@f_test1, @g_test1, x_current, d_current, rho);% 第二個示例
% x_current = [2;2];
% d_current = [-1;-1];
% rho = 0.1;
% [alpha_acceptable, x_next, f_next, k] = Armijo_search(@f_test2, @g_test2, x_current, d_current, rho);% 第三個示例
x_current = 5;
d_current = 1;
rho = 0.5;
[alpha_acceptable, x_next, f_next, k] = Armijo_search(@f_test3, @g_test3, x_current, d_current, rho);

? ? ? ? 2.Armijo_search.m文件

? ? ? ? 此函數(shù)跟書中函數(shù)一樣,沒有太大改動。

function [alpha_acceptable, x_next, f_next, k] = Armijo_search(f_test, g_test, x_current, d_current, rho)
% f_test, 目標函數(shù)
% g_test, 目標函數(shù)對決策變量x的導(dǎo)數(shù)
% x_current, x在向量空間中的當(dāng)前點
% d_current, f_test在x_current的下降搜索方向
% rho, 可接受系數(shù)k_max = 1000;
k = 0;
f_current = f_test(x_current);
g_current = g_test(x_current);
f_alpha_lower_k = f_current;
g_alpha_lower_k = g_current;
df_alpha_lower_k = (d_current') * g_alpha_lower_k; % 這里這個值是一直保持不變的
f_alpha_lower_0 = f_alpha_lower_k;
df_alpha_lower_0 = df_alpha_lower_k;alpha_lower_k = 0;
alpha_upper_k = 1e8;
alpha_k = alpha_upper_k;% 
for k = 1:k_maxx_alpha_k = x_current + alpha_k * d_current;f_alpha_k = f_test(x_alpha_k);Armijo_condition = f_alpha_k - f_alpha_lower_0 - rho * alpha_k * df_alpha_lower_0;if (Armijo_condition <= 0)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;elseif (alpha_k < alpha_upper_k)alpha_upper_k = alpha_k;endalpha_k = alpha_lower_k + (1/2) * ((alpha_k ^ 2) * df_alpha_lower_k) / (f_alpha_lower_k - f_alpha_k + alpha_k * df_alpha_lower_k);% x_alpha_k = x_current + alpha_k * d_current;% g_alpha_lower_k = g_test(x_alpha_k);% df_alpha_lower_k = (d_current') * g_alpha_lower_k;end
endif(k == k_max)disp('Armijo inexact line search algorithm failed');alpha_acceptable = NaN;x_next = NaN;f_next = NaN;
endend

(三)Goldstein_search條件

? ? ? ? 1.main.m文件

????????這個文件是此條件的主運行文件,放開相應(yīng)注釋即可運行每個示例。

% 這個文件主要為Goldstein_search文件的主程序% 清空
close;
clear;
clc;% 第一個示例
% x_current = -2;
% d_current = 1;
% rho = 0.1;
% [alpha_acceptable, x_next, f_next, k] = Goldstein_search(@f_test1, @g_test1, x_current, d_current, rho);% 第二個示例
x_current = [2;2];
d_current = [-1;-1];
rho = 0.1;
[alpha_acceptable, x_next, f_next, k] = Goldstein_search(@f_test2, @g_test2, x_current, d_current, rho);% 第三個示例
% x_current = 5;
% d_current = 1;
% rho = 0.1;
% [alpha_acceptable, x_next, f_next, k] = Goldstein_search(@f_test3, @g_test3, x_current, d_current, rho);

? ? ? ? 2.Goldstein_search.m文件

? ? ? ? 此文件有些改動。

function [alpha_acceptable, x_next, f_next, k] = Goldstein_search(f_test, g_test, x_current, d_current, rho)
% f_test, 目標函數(shù)
% g_test, 目標函數(shù)對決策變量x的導(dǎo)數(shù)
% x_current, x在向量空間中的當(dāng)前點
% d_current, f_test在x_current的下降搜索方向
% rho, 可接受系數(shù)k_max = 1000;
k = 0;
f_current = f_test(x_current);
g_current = g_test(x_current);
f_alpha_lower_k = f_current;
g_alpha_lower_k = g_current;
df_alpha_lower_k = (d_current') * g_alpha_lower_k; 
f_alpha_lower_0 = f_alpha_lower_k;
df_alpha_lower_0 = df_alpha_lower_k;tolerance = 1e-15;
if (abs(df_alpha_lower_k) > tolerance)alpha_initial = - 2 * f_alpha_lower_k ./ df_alpha_lower_k;
elsealpha_initial = 1;
end
alpha_lower_k = 0;
alpha_upper_k = 1e8;
alpha_k = alpha_initial; % 這個值是從初始值開始for k = 1:k_maxx_alpha_k = x_current + alpha_k .* d_current;f_alpha_k = f_test(x_alpha_k);g_alpha_k = g_test(x_alpha_k);df_alpha_k = (d_current') * g_alpha_k;Goldstein_condition1 = f_alpha_k - f_alpha_lower_0 - rho * alpha_k * (df_alpha_lower_0');Goldstein_condition2 = f_alpha_lower_0 + (1 - rho) * alpha_k * (df_alpha_lower_0') - f_alpha_k;if(Goldstein_condition1 <= 0)if(Goldstein_condition2 <= 0)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;elsedelta_alpha_k = (alpha_k - alpha_lower_k) * df_alpha_k / (df_alpha_lower_k - df_alpha_k);if(delta_alpha_k <= 0)alpha_k_temp = 2 * alpha_k;elsealpha_k_temp = alpha_k + delta_alpha_k;endalpha_lower_k = alpha_k;f_alpha_lower_k = f_alpha_k;df_alpha_lower_k = df_alpha_k;alpha_k = alpha_k_temp;endelseif (alpha_k < alpha_upper_k)alpha_upper_k = alpha_k;endalpha_k_temp = alpha_lower_k + (1/2) * (((alpha_k - alpha_lower_k) ^ 2) * df_alpha_lower_k) / (f_alpha_lower_k - f_alpha_k + (alpha_k - alpha_lower_k) * df_alpha_lower_k);alpha_k = alpha_k_temp;endif(alpha_upper_k - alpha_lower_k < tolerance)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;end
end
if((Goldstein_condition1 > 0)||(Goldstein_condition2 > 0))disp('Goldstein inexact line search algorithm failed');alpha_acceptable = NaN;x_next = NaN;f_next = NaN;
end
end

? ? ? ? 3.注意

? ? ? ? (1)第1方面? ? ? ??

這個文件改動的主要原因是因為,在運行第二個示例中,無法安裝成功運行,會出現(xiàn)數(shù)據(jù)維度不一樣的報錯。因為第二個示例所給的數(shù)據(jù)不再是單一變量,而是雙變量。

? ? ? ? 如圖所示,如圖中紅線劃出部分。這個部分在單一變量中不會出錯,但是在多變量中,因為向量沒有除法,所以會報錯。

? ? ? ? 將其改成如圖所示,即可消除報錯。

? ? ? ? (2)第二方面? ? ? ?

????????除此之外,還有一部分,如圖中紅線圈出,由于這兩個向量維度相同,都是2*1,所以無法直接相乘。

? ? ? ? 將其更改為如圖所示的部分,更改的思路是因為最后需要的是標量,需要將后面的維度為2*1的,進行轉(zhuǎn)置即可。

?(四)Wolfe_search條件

? ? ? ? 1.main.m文件

????????這個文件是此條件的主運行文件,放開相應(yīng)注釋即可運行每個示例。

% 這個文件主要為Wolfe_search文件的主程序% 清空
close;
clear;
clc;% 第一個示例
% x_current = -2;
% d_current = 1;
% rho = 0.1;
% sigma = 0.11;
% [alpha_acceptable, x_next, f_next, k] = Wolfe_search(@f_test1, @g_test1, x_current, d_current, rho, sigma);% 第二個示例
x_current = [2;2];
d_current = [-1;-1];
rho = 0.1;
sigma = 0.11;
[alpha_acceptable, x_next, f_next, k] = Wolfe_search(@f_test2, @g_test2, x_current, d_current, rho, sigma);% 第三個示例
% x_current = 5;
% d_current = 1;
% rho = 0.5;
% sigma = 0.11;
% [alpha_acceptable, x_next, f_next, k] = Wolfe_search(@f_test3, @g_test3, x_current, d_current, rho, sigma);

? ? ? ? 2.Wolfe_search.m文件

? ? ? ? 此文件的部分地方同樣也經(jīng)過更改,部分更改的思路與前面有一些相似之處。

function [alpha_acceptable, x_next, f_next, k] = Wolfe_search(f_test, g_test, x_current, d_current, rho, sigma)
% f_test, 目標函數(shù)
% g_test, 目標函數(shù)對決策變量x的導(dǎo)數(shù)
% x_current, x在向量空間中的當(dāng)前點
% d_current, f_test在x_current的下降搜索方向
% rho, 可接受系數(shù)
% sigma, 可接受點處的切線斜率大于初始點處切線斜率的倍數(shù),0<rho<sigma<1k_max = 1000;
k = 0;
f_current = f_test(x_current);
g_current = g_test(x_current);
f_alpha_lower_k = f_current;
g_alpha_lower_k = g_current;
df_alpha_lower_k = (d_current') * g_alpha_lower_k; 
f_alpha_lower_0 = f_alpha_lower_k;
df_alpha_lower_0 = df_alpha_lower_k;tolerance = 1e-15;
if (abs(df_alpha_lower_k) > tolerance)alpha_initial = - 2 * f_alpha_lower_k ./ df_alpha_lower_k;
elsealpha_initial = 1;
end
alpha_lower_k = 0;
alpha_upper_k = 1e8;
alpha_k = alpha_initial; % 這個值是從初始值開始for k = 1:k_maxx_alpha_k = x_current + alpha_k .* d_current;f_alpha_k = f_test(x_alpha_k);g_alpha_k = g_test(x_alpha_k);df_alpha_k = (d_current') * g_alpha_k;Wolfe_condition1 = f_alpha_k - f_alpha_lower_0 - rho * alpha_k * (df_alpha_lower_0');Wolfe_condition2 = sum(sigma * df_alpha_lower_0 - df_alpha_k);if(Wolfe_condition1 <= 0)if(Wolfe_condition2 <= 0)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;elsedelta_alpha_k = (alpha_k - alpha_lower_k) .* df_alpha_k ./ (df_alpha_lower_k - df_alpha_k);if(delta_alpha_k <= 0)alpha_k_temp = 2 * alpha_k;elsealpha_k_temp = alpha_k + delta_alpha_k;endalpha_lower_k = alpha_k;f_alpha_lower_k = f_alpha_k;df_alpha_lower_k = df_alpha_k;alpha_k = alpha_k_temp;endelseif (alpha_k < alpha_upper_k)alpha_upper_k = alpha_k;endalpha_k_temp = alpha_lower_k + (1/2) * (((alpha_k - alpha_lower_k) ^ 2) * df_alpha_lower_k) / (f_alpha_lower_k - f_alpha_k + (alpha_k - alpha_lower_k) * df_alpha_lower_k);alpha_k = alpha_k_temp;endif(alpha_upper_k - alpha_lower_k < tolerance)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;end
end
if((Wolfe_condition1 > 0)||(Wolfe_condition2 > 0))disp('Wolfe inexact line search algorithm failed');alpha_acceptable = NaN;x_next = NaN;f_next = NaN;
end
end

? ? ? ? 3.注意

? ? ? ? (1)第1方面

? ? ? ? 與Goldstein條件相同的原因,需要將其修改為下面這樣,如圖所示。

? ? ? ? (2)第2方面

????????與Goldstein條件相同的原因,需要將其修改為下面這樣,如圖所示。原因還是因為維度問題。

? ? ? ? ?(3)第3方面

? ? ? ? 如書中源代碼所示,紅線劃出部分。這個Wolfe_condition2計算結(jié)果是2*1維的向量,不是一個標量,雖然在下面判斷Wolfe_condition2是否≤0時候沒有影響。

? ? ? ? 但其會影響到這個部分,最后的部分的判斷會報錯,如圖所示。

? ? ? ? ?根據(jù)對書中內(nèi)容的分析,此處應(yīng)該是個標量,而不應(yīng)該是個向量,如圖所示。

? ? ? ? ?使用sum將其每項相加即可。

(五)Strong_Wolfe_search條件

? ? ? ? ?1.main.m文件

????????這個文件是此條件的主運行文件,放開相應(yīng)注釋即可運行每個示例。

% 這個文件主要為Strong_Wolfe_search文件的主程序% 清空
close;
clear;
clc;% 第一個示例
x_current = -2;
d_current = 1;
rho = 0.1;
sigma = 0.11;
[alpha_acceptable, x_next, f_next, k] = Strong_Wolfe_search(@f_test1, @g_test1, x_current, d_current, rho, sigma);% 第二個示例
% x_current = [2;2];
% d_current = [-1;-1];
% rho = 0.1;
% sigma = 0.11;
% [alpha_acceptable, x_next, f_next, k] = Strong_Wolfe_search(@f_test2, @g_test2, x_current, d_current, rho, sigma);% 第三個示例
% x_current = 5;
% d_current = 1;
% rho = 0.1;
% sigma = 0.11;
% [alpha_acceptable, x_next, f_next, k] = Strong_Wolfe_search(@f_test3, @g_test3, x_current, d_current, rho, sigma);

? ? ? ? 2.Strong_Wolfe_search.m文件

? ? ? ? 此文件經(jīng)過部分更改。

function [alpha_acceptable, x_next, f_next, k] = Strong_Wolfe_search(f_test, g_test, x_current, d_current, rho, sigma)
% f_test, 目標函數(shù)
% g_test, 目標函數(shù)對決策變量x的導(dǎo)數(shù)
% x_current, x在向量空間中的當(dāng)前點
% d_current, f_test在x_current的下降搜索方向
% rho, 可接受系數(shù)
% sigma, 可接受點處的切線斜率大于初始點處切線斜率的倍數(shù),0<rho<sigma<1k_max = 1000;
k = 0;
f_current = f_test(x_current);
g_current = g_test(x_current);
f_alpha_lower_k = f_current;
g_alpha_lower_k = g_current;
df_alpha_lower_k = (d_current') * g_alpha_lower_k; 
f_alpha_lower_0 = f_alpha_lower_k;
df_alpha_lower_0 = df_alpha_lower_k;tolerance = 1e-15;
if (abs(df_alpha_lower_k) > tolerance)alpha_initial = - 2 * f_alpha_lower_k ./ df_alpha_lower_k;
elsealpha_initial = 1;
end
alpha_lower_k = 0;
alpha_upper_k = 1e8;
alpha_k = alpha_initial; % 這個值是從初始值開始for k = 1:k_maxx_alpha_k = x_current + alpha_k .* d_current;f_alpha_k = f_test(x_alpha_k);g_alpha_k = g_test(x_alpha_k);df_alpha_k = (d_current') * g_alpha_k;Strong_Wolfe_condition1 = f_alpha_k - f_alpha_lower_0 - rho * alpha_k * (df_alpha_lower_0');Strong_Wolfe_condition2 = sum(sigma * df_alpha_lower_0 + abs(df_alpha_k));% Strong_Wolfe_condition2 = sum(abs(df_alpha_k) - abs(sigma * df_alpha_lower_0));if(Strong_Wolfe_condition1 <= 0)if(Strong_Wolfe_condition2 <= 0)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;elsedelta_alpha_k = (alpha_k - alpha_lower_k) .* df_alpha_k ./ (df_alpha_lower_k - df_alpha_k);if(delta_alpha_k <= 0)alpha_k_temp = 2 * alpha_k;elsealpha_k_temp = alpha_k + delta_alpha_k;endalpha_lower_k = alpha_k;f_alpha_lower_k = f_alpha_k;df_alpha_lower_k = df_alpha_k;alpha_k = alpha_k_temp;endelseif (alpha_k < alpha_upper_k)alpha_upper_k = alpha_k;endalpha_k_temp = alpha_lower_k + (1/2) * (((alpha_k - alpha_lower_k) ^ 2) * df_alpha_lower_k) / (f_alpha_lower_k - f_alpha_k + (alpha_k - alpha_lower_k) * df_alpha_lower_k);alpha_k = alpha_k_temp;endif(alpha_upper_k - alpha_lower_k < tolerance)alpha_acceptable = alpha_k;x_next = x_alpha_k;f_next = f_alpha_k;break;end
end
if((Strong_Wolfe_condition1 > 0)||(Strong_Wolfe_condition2 > 0))disp('Wolfe inexact line search algorithm failed');alpha_acceptable = NaN;x_next = NaN;f_next = NaN;
end
end

? ? ? ? 3.注意

? ? ? ? (1)第1方面

? ? ? ? 跟前面類似,如圖所示。

? ? ? ? (2)第2方面

? ? ? ? 跟前面類似,如圖所示,這里將兩個問題合并。

? ? ? ? (3)第3方面

? ? ? ? 如圖所示,第二個判斷條件,可以換成注釋掉的那種,根據(jù)書中的條件,第二種寫法更加符合書中的條件,如圖所示。

?
http://www.risenshineclean.com/news/52397.html

相關(guān)文章:

  • 設(shè)計公司企業(yè)定位桔子seo網(wǎng)
  • 海綿寶寶網(wǎng)頁設(shè)計素材南昌seo排名外包
  • 百科網(wǎng)站怎么做深圳網(wǎng)站優(yōu)化
  • 正規(guī)網(wǎng)站建設(shè)代理網(wǎng)店運營工作內(nèi)容
  • ios開發(fā)網(wǎng)站app全媒體運營師培訓(xùn)機構(gòu)
  • 上海網(wǎng)絡(luò)企業(yè)優(yōu)化公司seo是什么職業(yè)
  • azure做網(wǎng)站營銷型企業(yè)網(wǎng)站案例
  • 做的網(wǎng)站怎么發(fā)布武漢seo優(yōu)化公司
  • 電影網(wǎng)站加盟可以做么整站營銷系統(tǒng)
  • 企業(yè)建站公司哪里找最新的新聞 今天
  • 磁盤陣列做網(wǎng)站手機網(wǎng)站建設(shè)公司
  • wordpress隱藏地址插件西安seo霸屏
  • 自適應(yīng)網(wǎng)站什么意思網(wǎng)絡(luò)營銷策劃ppt
  • 蘇州實力做網(wǎng)站公司有哪些網(wǎng)站制作流程和方法
  • 集團網(wǎng)站建設(shè)哪家好谷歌搜索引擎入口2022
  • 做一些網(wǎng)站犯法么網(wǎng)站建設(shè)公司哪個好呀
  • 如何運營一個網(wǎng)站2024年1月新冠高峰期
  • 惠東做網(wǎng)站報價seo有名氣的優(yōu)化公司
  • 世界上有php應(yīng)用的網(wǎng)站seo點擊排名工具有用嗎
  • 深圳做棋牌網(wǎng)站建設(shè)哪家便宜今日疫情最新數(shù)據(jù)
  • 安裝兩個wordpressseozhun
  • 建設(shè)網(wǎng)站的必要與可行性seo優(yōu)
  • 廣州網(wǎng)站優(yōu)化關(guān)鍵詞公司百度收錄入口在哪里
  • 做網(wǎng)站有哪些平臺宣傳推廣方案
  • seo網(wǎng)站模版合肥百度seo排名
  • iis做的網(wǎng)站為啥打不開知了seo
  • 上海網(wǎng)站建設(shè)的seo網(wǎng)站優(yōu)化推廣怎么樣
  • 網(wǎng)站被別人做鏡像福州短視頻seo方法
  • 讓wordpress的頁面有具體的地址東莞百度快速排名優(yōu)化
  • 商務(wù)網(wǎng)站規(guī)劃與設(shè)計實訓(xùn)心得鏈交換