首页 > 编程知识 正文

图像梯度matlab,最速下降法matlab求最优解

时间:2023-05-06 10:19:11 阅读:137071 作者:2189

看报道

matlab最速下降法

2010-08-18 17:13

函数x=fsx steep (f,e,a,b ) )。

% fsxsteep函数最速下降法

%x=fsxsteep(f,e,a,b )是输入函数f,函数e是允许误差(a,b )是初始点; % fsx TJPU 2008.6.15

x1=a; x2=b;

q=fsxhesse(f,x1,x2 );

x0=[x1 x2] ';

FX1=diff(f,' x1 ' ); 对%x1求偏导数

FX2=diff(f,' x2 ' ); 对%x2求偏导数

g=[fx1 fx2] '; %梯度

G1=Subs(G ); 将%符号变量转换为数字

d=-g1;

wile(ABS(norm(G1 )=e ) ) ) ) ) ) ) ) ) ) ) ) ) )。

t=(-d ) ) d/)-d ) ) *Q*d ); t=(-d ) ) d/)-d ) ) *Q*d ); %请求搜索方向

x0=x0-t*g1; %查找到的点

v=x0;

a=[1 0]*x0;

b=[0 1]*x0;

x1=a;

x2=b;

G1=Subs(G );

d=-g1;

结束;

x=v;

函数x=fsx Hesse (f,a,b ) ) )。

% fsxhesse函数求函数的hesse矩阵;

%本程序是单纯求二次函数的hesse矩阵!

%x=fsxhesse(f )表示输入函数f为二次函数x1、x2为自变量;

% fsx TJPU 2008.6.15

x1=a; x2=b;

FX=diff(f,' x1 ' ); 求f对%x1的偏导数

fy=diff(f,' x2 ' ); 求f对%x2的偏导数

fxx=diff(FX,' x1 ' ); (求二阶偏导数对x1 (并x1 )

fxy=diff(FX,' x2 ' ); (求出二次偏导数对x1,再求出x2

fyx=diff(fy,' x1 ' ); (求二次偏导数对x2,再求x1

fyy=diff(fy,' x2 ' ); (求二次偏导数对x2,再求x2

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。