無約束優化問題的目標函式為:
多維極值的牛頓法,不同於之前介紹過的梯度下降法,該方法引入了二階導數的資訊,假設當前迭代到第 kk 次,將目標函式在自變數 xk 處展開為二階泰勒級數:
f(x)兩端同時對 x求導,導數為零求得的極值點就是下一次迭代的取值 xk+1。式中將
則式(2)可化簡為
綜上,式中-hk^(-1)gk即為搜尋方向。
f=@(x1,x2) (x1-4)^2+(x2+2)^2+1;
[x,result]=min_newton(f,[-0.6 0.2],1e-6,100)
function [x,result]=min_newton(f,x0,eps,n)
tidu=gradient(sym(f),symvar(sym(f)));% 計算出梯度表示式
haisai=jacobian(tidu,symvar(tidu));%計算出海塞矩陣表示式
var_tidu=symvar(tidu); %梯度表示式中變數的個數
var_haisai=symvar(haisai); %海塞矩陣中變數的個數
var_num_tidu=length(var_tidu); %梯度的維數
var_num_haisai=length(var_haisai); %海塞矩陣的維數
tidu=matlabfunction(tidu);%將梯度表示式轉換為匿名函式
flag = 0;
if var_num_haisai == 0 %海塞矩陣變數的個數為零,也就是說海塞矩陣是常數
haisai=double((haisai));
flag=1; %海塞矩陣為常量的標誌
end%求當前點梯度與海賽矩陣的逆
f_cal='f(';
tidu_cal='tidu(';
haisai_cal='haisai(';
for k=1:length(x0) %求得初始變數的x0的元素個數
f_cal=[f_cal,'x0(',num2str(k),'),'];%組裝f_cal=f(x0(k))求得該點函式值
for j=1: var_num_tidu %求得梯度中的元素個數
if char(var_tidu(j)) == ['x',num2str(k)]
tidu_cal=[tidu_cal,'x0(',num2str(k),'),'];%組裝tidu_cal=tidu_cal(x0(k)求得該點梯度值
endend
for j=1:var_num_haisai
if char(var_haisai(j)) == ['x',num2str(k)]
haisai_cal=[haisai_cal,'x0(',num2str(k),'),'];%組裝haisai_cal=haisai_cal(x0(k)求得該點海塞矩陣的值
endend
endhaisai_cal(end)=')'; %完成海塞矩陣封裝
tidu_cal(end)=')';%完成梯度封裝
f_cal(end)=')';%完成函式封裝
switch flag %根據標誌位判斷海塞矩陣表示式中是否有引數
case 0 %有引數
haisai=matlabfunction(haisai);
dk='-eval(haisai_cal)^(-1)*eval(tidu_cal)';
case 1 %無引數
dk='-haisai^(-1)*eval(tidu_cal)';
haisai_cal='haisai';
endi=1;
while i < n %設定最大迭代次數n
if rcond(eval(haisai_cal)) < 1e-6 %計算海塞矩陣的條件數 條件數越大,逆陣結果越不穩定
disp('海賽矩陣病態!'); %條件數超出範圍,示為病態矩陣
break;
endx0=x0(:)+eval(dk); %eval函式將字串轉換為指令
if norm(eval(tidu_cal)) < eps
x=x0;
result=eval(f_cal);
return;
endi=i+1;
enddisp('無法收斂!'); %超出迭代範圍
x=;result=;
end
MATLAB 無約束一維極值問題
無約束一維極值問題 極值問題表示式 min f x x,x x1 x2 一維極值的搜尋方式包括線性搜尋和非線性搜尋,線性搜尋包含 分割法 斐波那契法和牛頓法,非線性方法包含拋物線法和三次樣條插值。1 進退法 演算法原理 進退法就是用來確定搜尋區間的演算法,理論依據 f x 為函式有一極值,且 a b...
MATLAB無約束一維極值之二次插值法
設曲線f x 尋找到其極值區間 x1,x2 使其滿足f x1 f x1 x2 2 f x1 x2 2 f x ax 2 bx c,a b c 為係數。ax1 2 bx1 c f x1 ax2 2 bx2 c f x2 ax3 2 bx3 c f x3 寫成矩陣形式 x1 2 x1 1 a f x1 ...
無約束極值 線性分類器和線性回歸基礎
總結無約束極值的基本內容以及線性分類器和回歸的基礎知識,包含梯度下降 相比於約束極值問題,無約束極值問題去掉了約束,因此表述方式非常簡單 mi nf x x en 1 現假設f x 有一階連續偏導,極小值點為x x k 為第k次接近。在x k 點沿著方向p k 做射線,有 x k 1 x k p k...