国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

25.4 matlab里面的10中優(yōu)化方法介紹——最速下降法(matlab程序)

這篇具有很好參考價值的文章主要介紹了25.4 matlab里面的10中優(yōu)化方法介紹——最速下降法(matlab程序)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.簡述

? ? ??

matlab實現(xiàn)最速下降法
定義:沿負梯度方向進行搜索的算法(負梯度方向為最速下降方向)
算法步驟:

步0:選取初始點x0,容許誤差是e=[0~1],令k=1

步1:計算目標函數(shù)的梯度gk=▽f(xk))
?

若 ||gk||<=e,即達到誤差要求,立即停止計算,并輸出xk作為近似最優(yōu)解。

步2:取搜索方向為dk=-gk(即負梯度方向)。

步3:利用線搜索技術(shù)確定步長σ
?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-606534.html

(這里采用Armijo準則來求步長)?

步長為α

k=β是給定的,所以要求出mk

Amrijo準則就是

(1)給定βε(0~1),αε(0,0.5),令m=0

(2)若不等式

f(xk+β^m*dk)<=f(xk)*β^m*gk'*dk

成立,則令mk=m,Xk+1=xk+β^m*dk.停止運算,輸出mk得到步長

(3)若不滿足上述不等式,則令m=m+1,然后回到第二步。

步4:確定步長后,令Xk+1=Xk+σk*dk,k=k+1,轉(zhuǎn)步驟1.

matlab 具體代碼如下:
?

?

2.代碼

?

主程序:

%% ? 用最速下降法求最優(yōu)化解
f1204 = inline('x(1)*(x(1)-5-x(2))+x(2)*(x(2)-4)','x');%目標函數(shù)
grad=inline('[2*x(1)-5-x(2),-x(1)+2*x(2)-4]','x'); %目標函數(shù)的梯度函數(shù)
x0 = [1 4];
TolX = 1e-4;?
TolFun = 1e-9;
MaxIter = 100;
dist0=1;
[xo,fo] = Opt_Steepest(f1204,grad,x0,TolX,TolFun,dist0,MaxIter)

?

子程序:

function [xo,fo] = Opt_Steepest(f,grad,x0,TolX,TolFun,dist0,MaxIter)
% 用最速下降法求最優(yōu)化解
%輸入:f為函數(shù)名 grad為梯度函數(shù)
%x0為解的初值 TolX,TolFun分別為變量和函數(shù)的誤差閾值
%dist0為初始步長 MaxIter為最大迭代次數(shù)
%輸出: xo為取最小值的點 fo為最小的函數(shù)值
% f0 = f(x(0))

%%%%%%判斷輸入的變量數(shù),設(shè)定一些變量為默認值
if nargin < 7
? ? MaxIter = 100; %最大迭代次數(shù)默認為100
end
if nargin < 6
? ? dist0 = 10; %初始步長默認為10
end
if nargin < 5
? ? TolFun = 1e-8; %函數(shù)值誤差為1e-8
end
if nargin < 4
? ? TolX = 1e-6; %自變量距離誤差
end
%%%%%第一步,求解的初值的函數(shù)值
x = x0;
fx0 = feval(f,x0);
fx = fx0;
dist = dist0;
kmax1 = 25; %線性搜索法確定步長的最大搜索次數(shù)
warning = 0;?
%%%%%迭代計算求最優(yōu)解

for k = 1: MaxIter
? ? g = feval(grad,x);
? ? g = g/norm(g); %求在x處的梯度方向
? ? %%線性搜索方法確定步長
? ? dist = dist*2; %令步長為原步長的二倍
? ? fx1 = feval(f,x-dist*2*g);
? ? for k1 = 1:kmax1
? ? ? ? fx2 = fx1;
? ? ? ? fx1 = feval(f,x-dist*g);
? ? ? ? if fx0 > fx1+TolFun & fx1 < fx2 - TolFun %fx0 > fx1 < fx2,
? ? ? ? ? ? den = 4*fx1 - 2*fx0 - 2*fx2;num = den - fx0 + fx2; ?%二次逼近法
? ? ? ? ? ? dist = dist*num/den;
? ? ? ? ? ? x = x - dist*g; fx = feval(f,x); %確定下一點
? ? ? ? ? ? break;
? ? ? ? else
? ? ? ? ? ? dist = dist/2;
? ? ? ? end
? ? end
? ? if k1 >= kmax1
? ? ? ? warning = warning + 1; %無法確定最優(yōu)步長
? ? else
? ? ? ? warning = 0;
? ? end
? ? if warning >= 2|(norm(x - x0) < TolX&abs(fx - fx0) < TolFun)
? ? ? ? break;
? ? end
? ? x0 = x;
? ? fx0 = fx;
end
xo = x; fo = fx;
if k == MaxIter
? ? fprintf('Just best in %d iterations',MaxIter);
end

?

?

3.運行結(jié)果

?

25.4 matlab里面的10中優(yōu)化方法介紹——最速下降法(matlab程序),matlab,開發(fā)語言,數(shù)據(jù)分析,人工智能,算法

?

?

到了這里,關(guān)于25.4 matlab里面的10中優(yōu)化方法介紹——最速下降法(matlab程序)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 25.9 matlab里面的10中優(yōu)化方法介紹—— 懲罰函數(shù)法求約束最優(yōu)化問題(matlab程序)

    25.9 matlab里面的10中優(yōu)化方法介紹—— 懲罰函數(shù)法求約束最優(yōu)化問題(matlab程序)

    1. 簡述 ? ? ?? ? 一、算法原理 1、問題引入 之前我們了解過的算法大部分都是無約束優(yōu)化問題,其算法有:黃金分割法,牛頓法,擬牛頓法,共軛梯度法,單純性法等。但在實際工程問題中,大多數(shù)優(yōu)化問題都屬于有約束優(yōu)化問題。懲罰函數(shù)法就可以將約束優(yōu)化問題轉(zhuǎn)化為

    2024年02月15日
    瀏覽(22)
  • 25.8 matlab里面的10中優(yōu)化方法介紹—— 拉各朗日乘子法求最優(yōu)化解(matlab程序)

    25.8 matlab里面的10中優(yōu)化方法介紹—— 拉各朗日乘子法求最優(yōu)化解(matlab程序)

    1. 簡述 ? ? ?? 拉格朗日乘子法(Lagrange multipliers)是一種尋找多元函數(shù) 在一組約束下 的 極值 的方法。 通過引入拉格朗日乘子,可將有?變量與?約束條件的最優(yōu)化問題轉(zhuǎn)化為具有變量的無約束優(yōu)化問題求解 舉個例子: 求 最小值,約束條件,可以用下圖表示。 這是一個等

    2024年02月14日
    瀏覽(74)
  • 無約束優(yōu)化——最速下降算法及Matlab實現(xiàn)

    無約束優(yōu)化——最速下降算法及Matlab實現(xiàn)

    ??最近太忙了,更新的有點慢了。本篇就更新一個通常用的較多的算法——最速下降法,其實數(shù)值分析中會講到這個方法。此篇先回顧梯度概念,再講述最速下降法,最后通過例子理解算法以及實現(xiàn)代碼編寫。 希望大家看完這篇文章之后能有所收獲!?。?! 下一篇文章:

    2024年02月02日
    瀏覽(31)
  • 【最優(yōu)化算法】基于【MATLAB】的最速下降仿真

    【最優(yōu)化算法】基于【MATLAB】的最速下降仿真

    無約束問題的求解過程一般都是通過一系列的一維搜索來實現(xiàn),搜索方向的不同,形成了不同的最優(yōu)化方法。這篇文章從最速下降法入手,來進行搜索。 最速下降法又叫梯度法,通過梯度下降法來一步步的迭代求解,得到最小化的損失函數(shù)和模型參數(shù)值。如果我們需要求解損

    2024年02月05日
    瀏覽(25)
  • 機器人中的數(shù)值優(yōu)化(六)—— 線搜索最速下降法

    機器人中的數(shù)值優(yōu)化(六)—— 線搜索最速下降法

    ?? 本系列文章主要是我在學習《數(shù)值優(yōu)化》過程中的一些筆記和相關(guān)思考,主要的學習資料是深藍學院的課程《機器人中的數(shù)值優(yōu)化》和高立編著的《數(shù)值最優(yōu)化方法》等,本系列文章篇數(shù)較多,不定期更新,上半部分介紹無約束優(yōu)化,下半部分介紹帶約束的優(yōu)化,中間會

    2024年02月10日
    瀏覽(19)
  • 共軛梯度法、 最速下降法求解大規(guī)模稀疏方程組【Matlab】

    共軛梯度法、 最速下降法求解大規(guī)模稀疏方程組【Matlab】

    針對此題,可分別用共軛梯度法、?最速下降法求解線性方程組。 程序如下: 附錄1? ?共輒梯度法求解大規(guī)模稀疏方程組程序 附錄2? ?三對角矩陣A、右端項b生成程序 附錄3? ?最速下降法求解線性方程組程序 此處僅展示了代碼實現(xiàn),具體算法原理可參考《數(shù)值分析》等有關(guān)

    2024年02月08日
    瀏覽(20)
  • 最速下降法—python實現(xiàn)

    最速下降法—python實現(xiàn)

    最速下降法就是從一個初始點開始,逐步沿著以當前點為基準,函數(shù)值變化最快的方向走,一直走到最優(yōu)解為止。那么接下來就要考慮兩個問題:(1)沿著什么方向走;(2)應該走多遠; 我們知道,沿著函數(shù)中某點方向?qū)?shù)最大的方向走下降是最快的,那么我們就得去找平

    2024年02月02日
    瀏覽(14)
  • (25)(25.4) PX4FLOW光學流量相機板

    (25)(25.4) PX4FLOW光學流量相機板

    文章目錄 前言 25.4.1 概述 25.4.2 在哪里購買 25.4.3 安裝驅(qū)動程序(僅限 Windows) 25.4.4 使用MissionPlanner 25.4.5 使用QGroundControl 25.4.6 與Pixhawk連接 25.4.7 安裝到機架上 25.4.8 啟用傳感器 25.4.9 測試和設(shè)置 本文介紹如何設(shè)置可用于非 GPS 導航( Non-GPS navigation )的 PX4FLOW (光學流量)傳感器

    2024年02月08日
    瀏覽(11)
  • 優(yōu)化算法之梯度下降|Matlab實現(xiàn)梯度下降算法

    優(yōu)化算法之梯度下降|Matlab實現(xiàn)梯度下降算法

    題目要求: 使用Matab實現(xiàn)梯度下降法 對于函數(shù): min ? f ( x ) = 2 x 1 2 + 4 x 2 2 ? 6 x 1 ? 2 x 1 x 2 min f(x)=2 x_{1}^{2}+4 x_{2}^{2}-6 x_{1}-2 x_{1} x_{2} min f ( x ) = 2 x 1 2 ? + 4 x 2 2 ? ? 6 x 1 ? ? 2 x 1 ? x 2 ? 試采用 MATLAB實現(xiàn)最速下降法求解該問題, 給出具體的迭代過程、 最終優(yōu)化結(jié)果、

    2024年02月16日
    瀏覽(28)
  • 使用MATLAB將Excel里面的數(shù)據(jù)導入,并且將MATLAB數(shù)據(jù)導入到Excel里面的命令介紹

    Matlab中求解線性方程組——高斯消元法、LU分解法、QR分解法、SVD分解法、迭代法等 MATLAB迭代的三種方式以及相關(guān)案例舉例 MATLAB矩陣的分解函數(shù)與案例舉例 MATLAB當中線性方程組、不定方程組、奇異方程組、超定方程組的介紹 MATLAB語句實現(xiàn)方陣性質(zhì)的驗證 MATLAB繪圖函數(shù)的相關(guān)

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包