梯度下降法求解函式極大值 Matlab

2022-05-24 20:21:08 字數 2089 閱讀 4818

目錄題目

作答1. 建立函式檔案ceshi.m

2. 這是呼叫的命令,也可以寫在.m檔案裡

3. 輸出結果

題外話

本文使用matlab作答

function [x1,y1,f_now,z] = ceshi(z1,z2)

%%%%%%%%%%%%%% 梯度下降法求函式區域性極大值@冀瑞靜 %%%%%%%%%%%%%%%%%%

% 函式:f(x,y)=

% 目的:求區域性極大值和對應的極大值點座標

% 方法:梯度下降法

% 理論:

% 方向導數:偏導數反應的是函式沿座標軸方向的變化率,但許多物理現象告訴我們,只考慮函式沿座標軸方向的變化率是不夠的,有必要研究函式沿任一指定方向的變化率。

% 函式f(x,y)在點p0(x0,y0)可微分,那麼函式在改點沿任一方向l的方向導數存在,其值為:f'x(x0,y0)*cos(α)+f'y(x0,y0)*cos(β),其中,cos(α),cos(β)是方向l的方向余弦。

% 梯 度:是與方向導數有關聯的另乙個概念,梯度是乙個向量,表示為:'x(x0,y0)*i+f'y(x0,y0)*j。

% 關 系:

% f'x(x0,y0)*cos(α)+f'y(x0,y0)*cos(β)

% =grad f(x0,y0)*el

% =|grad f(x0,y0)|*cos(θ),其中el=(cos(α),cos(β))是與方向l同方向的單位向量。

% 變化率:函式沿某個方向的變化率指的是函式值沿這個方向變化的快慢。

% θ=0,el與梯度同向,函式增加最快,函式在這個方向的方向導數達到最大值,這個最大值就是梯度的模;

% θ=π,el與梯度反向,函式減少最快,函式在這個方向的方向導數達到最小值;

% θ=π/2,el與梯度方向正交,函式變化率為零。

x0 = z1;

y0 = z2;

f_now = exp((sin(y0) - 1)^2)*cos(x0) + (x0 - y0)^2 + exp((cos(x0) - 1)^2)*sin(y0);%求解函式的極大值點,先求其函式負值的極小值點

z=0; %用於記錄迴圈次數

f_error = 1; %f_error為迭代差值,作為判別標準

h = 1.0e-8; %步長

while f_error>1.0e-8 %判定標準:1.前後兩次的差》1.0e-8(選用);2.迭代次數達到xx次;

if (x00)

break;

endif ((y00))

break;

endf_val = f_now;

x1 = x0 + h * (2*x0 - 2*y0 - exp((sin(y0) - 1)^2)*sin(x0) - 2*exp((cos(x0) - 1)^2)*sin(x0)*sin(y0)*(cos(x0) - 1));

y1 = y0 + h * (2*y0 - 2*x0 + exp((cos(x0) - 1)^2)*cos(y0) + 2*exp((sin(y0) - 1)^2)*cos(x0)*cos(y0)*(sin(y0) - 1));

f_now = exp((sin(y1) - 1)^2)*cos(x1) + (x1 - y1)^2 + exp((cos(x1) - 1)^2)*sin(y1) ;

f_error = f_now-f_val;

x0 = x1;

y0 = y1;

z = z+1;

endend

clear

clc[x1,y1,f_out] = ceshi(-1,-2);

fprintf('%.3f\t',x1,y1,f_out); %f保留小數點後三位

0.000 -1.585 56.088

這是截圖

第一次發部落格,開始涉足計算機視覺領域,歡迎拍磚。

利用梯度下降法求解函式最小值

import numpy as np import matplotlib.pyplot as plt plot x np.linspace 1,6,141 在 1到6之間等距的生成141個數 plot y plot x 2.5 2 3 同時根據plot x來生成plot y 由上一段 可以知道,我們...

梯度下降法 求解最優解

import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import math from mpl toolkits.mplot3d import axes3d 設定在jupyter中matplotlib的...

梯度下降法求解線性回歸

梯度下降法 英語 gradient descent 是乙個一階最優化演算法,通常也稱為最速下降法。要使用梯度下降法找到乙個函式的區域性極小值,必須向函式上當前點對應梯度 或者是近似梯度 的反方向的規定步長距離點進行迭代搜尋。如果相反地向梯度正方向迭代進行搜尋,則會接近函式的區域性極大值點 這個過程則...