最速下降法matlab全局最小值_MATLAB实现最速下降法

该博客介绍了如何使用MATLAB实现最速下降法寻找全局最小值,通过展示函数定义、梯度计算和迭代过程,探讨了一个可能的无限循环问题,并寻求解决方案。
摘要由CSDN通过智能技术生成

原程序代码

function [min,n]=Fastest_Dirction(x0,y0,eps)

%最速下降法,给定初始点,以及误差

%结果为收敛答案,以及迭代次数

syms x_1;

syms x_2;

f=(x_1-2)^4+(x_1-2)^2*x_2^2+(x_2+1)^2;      %计算的函数

v=[x_1,x_2];

J=jacobian(f,v);

Tidu=[subs(J(1),[x_1,x_2],[x0,y0]),subs(J(2),[x_1,x_2],[x0,y0])];

temp=sqrt((Tidu(1))^2+(Tidu(2))^2);

x1=x0;y1=y0;

n=0;

syms kk;

while(temp>eps)                                %进行迭代

d=-Tidu;                                    %下降方向,负梯度方向

f1=x1+kk*d(1);f2=y1+kk*d(2);

fT=[subs(J(1),[x_1,x_2],[f1,f2]),subs(J(2),[x_1,x_2],[f1,f2])];

Phi=sqrt((fT(1))^2+(fT(2))^2);

lm=Gold(Phi,0,1,0.00001);                  %调用近似黄金分割法,初始搜索区间定为[0,1],eps=0.00001

x0=x1+lm*d(1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值