本文章包含以下内容

1、画出最速下降法的算法流程图;

2、MATLAB 编写用数值微分法的梯度计算函数(函数式 M 文件);

3、MATLAB 编写最速下降法求解无约束优化问题的函数,要求采用黄金分割法精确一维搜索,用数值微分法计算梯度(函数式 M 文件,精度设为 epson 可调);

4、MATLAB 编写最速下降法求解无约束优化问题的函数,要求采用 Wolfe-Powell 非精确一维搜索,用数值微分法计算梯度(函数式 M 文件, 精度设为 epson 可调);

5、MATLAB 编写程序(命令式 M 文件),分别利用精确搜索和不精确搜索 的最速下降法,求解如下问题:

精度为 0.001,初始点为(-1,1);

改变初始点为(-1.2,1)重新运行,观察运行结果。

一维搜索,进退法,黄金分割法代码链接

本实验中函数用单独function计算

function y=f(x)
if(length(x)==1)global xk;global pk;x=xk+x*pk;
end
y=100*(x(2)-x(1)^2)^2+(1-x(1))^2;

1.最速下降法的算法流程图

2、MATLAB 编写用数值微分法的梯度计算函数(函数式 M 文件);

function g=shuzhiweifenfa(x)
for i = 1:length(x)m=zeros(1,length(x));m(i)=(10^-6)/2;g(i)=f(x+m)-f(x-m);
end
g=g/10^-6;

3、最速下降法求解无约束优化问题的函数,采用黄金分割法精确一维搜索,用数值微分法计算梯度(函数式 M 文件,精度设为 epson 可调);

function x=zuisuxiajiangfa_hjfg(e,x)
%step 1
%没用到k,只存储当前迭代的值。
global xk;
global pk;
while 1%step 2g=shuzhiweifenfa(x);%step 3%范数用的是平方和开根号if sqrt(sum(g.^2))<=ereturn;endpk=-g;xk=x;%这两个函数见之前代码(matlab无约束最优化的一般算法)[a,b,c]=jintuifa(0,0.1);a=huangjinfenge(a,c,10^-4);%step 4x=x+a*pk;
end

4、最速下降法求解无约束优化问题的函数,要求采用 Wolfe-Powell 非精确一维搜索,用数值微分法计算梯度(函数式 M 文件, 精度设为 epson 可调);

function a=Wolfe_Powell(x,pk)
%step 1
u=0.1;
b=0.5;
a=1;
n=0;
m=10^100;
%step 2
fx=f(x);
g=shuzhiweifenfa(x);
while 1xk=x+a*pk;fxk=f(xk);gk=shuzhiweifenfa(xk);if (fx-fxk)>=(-u*a*g*pk.')%(3-1)if (gk*pk.')>=(b*g*pk.')%(3-2)return;else%step 4n=a;a=min(2*a,(a+m)/2);endelse%step 3m=a;a=(a+n)/2;end
end
function x=zuisuxiajiangfa_Wolfe(e,x)
%step 1
%没用到k,只存储当前迭代的值。
while 1%step 2g=shuzhiweifenfa(x);%step 3%范数用的是平方和开根号if sqrt(sum(g.^2))<=ereturn;endpk=-g;a=Wolfe_Powell(x,pk);%step 4x=x+a*pk;
end

5、分别利用精确搜索和不精确搜索 的最速下降法,问题:

clear
clc
for i=1:2if(i==1)x=[-1,1];fprintf('=========================');fprintf('\nx=%f\t\t%f\n',x(1),x(2));fprintf('=========================\n');elsex=[-1.2,1];fprintf('=========================');fprintf('\nx=%f\t\t%f\n',x(1),x(2));fprintf('=========================\n');endfprintf('精确搜索的最速下降法:\n');x_=zuisuxiajiangfa_hjfg(10^-3,x);fprintf('x*=%f\t%f\n',x_(1),x_(2));fprintf('f(x)=%f\n',f(x_));fprintf('不精确搜索的最速下降法\n');x_=zuisuxiajiangfa_Wolfe(10^-3,x);fprintf('x*=%f\t%f\n',x_(1),x_(2));fprintf('f(x)=%f\n',f(x_));
end

结果:

利用 MATLAB 编程实现最速下降法求解无约束最优化问题相关推荐

  1. 利用 MATLAB 编程实现共轭梯度法求解无约束最优化问题

    本文章包含以下内容 1.FR 共轭梯度法的算法流程图: 2.MATLAB 编写 FR 共轭梯度法求解无约束优化问题的函数,要求采用 黄金分割法精确一维搜索,用数值微分法计算梯度(函数式 M 文件,精度 ...

  2. 机器学习之求解无约束最优化问题方法(手推公式版)

    文章目录 前言 1. 基础知识 1.1 方向导数 1.2 梯度 1.3 方向导数与梯度的关系 1.4 泰勒展开公式 1.5 Jacobian矩阵与Hessian矩阵 1.6 正定矩阵 2. 梯度下降法 ...

  3. matlab粒子群算法求解无约束最小值,pso matlab粒子群算法和遗传 是解决约束优化问题,无 和多目标 的优 259万源代码下载- www.pudn.com...

    文件名称: pso下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 51 KB 上传时间: 2016-06-01 下载次数: 0 提 供 者: 孙志勇 详细说 ...

  4. 牛顿法求解无约束最优化问题

    记泰勒公式 舍去高阶项 在导数为0时候取得极值,令,以上式子可以变形为 继续整理可以得到 通过观察上式,我们可以发现,当给出一个初始点a的时候,我们可以通过泰勒公式用a点的一阶导数与二阶导数还有a的值 ...

  5. 计算智能课程设计(遗传算法求解无约束单目标优化问题)

    写在前面 前天写完了基于传递闭包的模糊聚类,今天准备写"遗传算法求解无约束单目标优化问题".昨天和npy玩了一下午,去齐白石艺术学院看了画展,一起在最高处看了夕阳,并在落日前接吻. ...

  6. 利用MATLAB编程实现系统传递函数的构建以及它们之间进行串联、并联、反馈时的构建方法

       本文主要介绍如何利用MATLAB编程实现系统传递函数的构建以及它们之间进行串联.并联.反馈时的构建方法 一.传递函数的构建方法     首先 ,我们把想要构建的传递函数分子和分母的系数按照阶次从 ...

  7. Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示

    Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示 目录 输出结果 实现代码 输出结果 实现代码 %Brownian motion clf; n=20; s=0.02; x = rand ...

  8. idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...

    [连线题]请对正确的快键键连线 [判断题]板书是指教师在课堂黑板或白板上书写,将教学内容形象.直观.简洁地传授给学生.清晰.流畅.快速的粉笔书写是课堂板书的基本功. [其它]利用 MATLAB 编程, ...

  9. matlab 进行非线性回归,5.利用Matlab编程进行非线性回归分析.doc

    5.利用Matlab编程进行非线性回归分析.doc §5. 利用Matlab编程计算非线性回归模型 --以Logistic曲线为例 1.原始数据 下表给出了某地区1971-2000年的人口数据(表1) ...

最新文章

  1. 2022-2028年中国镀金属膜行业市场研究及前瞻分析报告
  2. Centos-安装Docker并使用Docker安装mysql遇到的问题以及解决方法
  3. java软件网络工程师面试题_170道Java工程师面试题,你敢挑战吗?
  4. 利物浦大学comp313课程第一节课
  5. Android——数据存储(课堂代码整理:SharedPreferences存储和手机内部文件存储)...
  6. java集群_Kafka多节点分布式集群搭建实现过程详解_java
  7. Redis windows学习(二)——Redis持久化的AOF模式和RDB模式
  8. Delphi XE2 之 FireMonkey 入门(20) - TStyleBook(皮肤、样式相关)
  9. golang 所有进程休眠_Golang-进程无故消失?
  10. 浏览器加载渲染HTML、DOM、CSS、 JAVASCRIPT、IMAGE、FLASH、IFRAME、SRC属性等资源的顺序总结...
  11. 会员编号生成规则_单据编号规则浅析
  12. python中path的用法,python中path的用法
  13. 基于JAVA+SpringMVC+Mybatis+MYSQL的网络投票系统
  14. AD域控Exchange邮箱(二)——卸载ExchangeServer2010报错:“有些控件无效 - 请指定要卸载的现有服务器” 解决方法
  15. javascript js 拖动效果 兼 ie 6,7,8 firefox Chrome(原创,想要尽管拿去用。技术支持:QQ3084532)...
  16. html5 audio js控制进度,HTML5 audio标签使用js进行播放控制实例
  17. VSCode使用记录四:Ubuntu终端启动报错以及Ubuntu查看修改文件夹权限
  18. c语言题库南信,c语言上机题库百科园南信大.docx
  19. 学生食堂信息管理系统
  20. Java方法——方法的重载

热门文章

  1. 人工智能的四波浪潮以及未来的发展方向
  2. 北京理工大学统考计算机在线作业,北京理工大学计算机统考网上作业答案
  3. 把USB打印机变成WI-FI打印机
  4. 公网Web系统集成局域网内海康威视IPC网络摄像机
  5. OCR图片相似度对比和分类算法
  6. HTML5七夕情人节表白网页制作【新年倒计时-红色雪花】HTML+CSS+JavaScript
  7. png.h缺失 - 安装
  8. ABBYY Screenshot Reader功能详解
  9. PHP Fatal error: Uncaught RedisException: Redis server went away in
  10. JavaScript中函数