下面是 armijo线搜索+最速下降法的小程序,matlab用的很不熟,费了不少劲。

函数:

function g=fun_obj(x)

syms a b

f = 1/2*a^2+b^2-a*b-2*a;

a=x(1);b=x(2);

g=eval(f);

求梯度:

function g=fun_grad(x)

syms a b

f = 1/2*a^2+b^2-a*b-2*a;

gradient = jacobian(f,[a,b]);

a = x(1);b = x(2);

g = eval(gradient);

armijo线搜索:

function mk = armijo( xk, rho, sigma, d )

assert( rho > 0 && rho < 1 );

assert( sigma > 0 && sigma < 0.5 );

mk = 0; max_mk = 100;

while mk <= max_mk

x = xk + rho^mk * d;

if fun_obj( x ) <= fun_obj( xk ) + sigma * rho^mk *fun_grad(xk)*d';

break;

end

mk = mk + 1;

end

return;

主程序:

function result = armijograd(x0)

max_iter = 5000; % max number of iterations

EPS = 1e-6; % threshold of gradient norm

rho = 0.45; sigma = 0.2; % Armijo parameters

k = 0; xk = x0; % initialization

while k < max_iter

k = k + 1;

dk = fun_grad( xk ); % gradient vector

d = -1 * dk; % search direction

if norm( dk ) < EPS %precision

break;

end

mk = armijo( xk, rho, sigma, d); %armijo line search

xk = xk + rho^mk * d; %update

end

result = xk;

return;

最终结果是:[4,2]';程序正确。

matlab的开方算法_每天一个小算法(matlab armijo)相关推荐

  1. java 如何将数字倒置_每日一个小算法之整数中每位上的数字进行反转 20190810

    题目要求: 给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 120输出 ...

  2. kmeans算法_实战 | KMeans 聚类算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Ad ...

  3. pso解决tsp matlab,计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc...

    计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc 摘要:TSP是一个典型的NPC问题.本文首先介绍旅行商问题和粒子群优化算法的基本概念.然后构造一种基于交换子和交换序[1]概念 ...

  4. 一个软件公司需要多少前端_制作一个小程序商城需要多少钱?开发小程序公司哪家强?...

    搭建小程序商城能更好的为商家打造私域粉丝池,形成私域流量,因此,微信小程序自然成为了企业商家的首选. 随着线上的快速发展,微信小程序能力的升级,使小程序也存在多种类型,例如电商类.资讯类.预约类等等, ...

  5. 小孔成像总结_每天一个小实验|小孔成像

    Hi-新朋友 记得点蓝字关注我们哟 小孔成像 在我们的生活中处处都能看到相机,那你知道其中的原理吗?让我们去看看吧. 实验材料 杯子.蜡烛.图钉.胶带塑料卡片.记号笔.打火机.剪刀 实验步骤 第一步: ...

  6. 小程序制作预算_做一个小程序的大概预算是多少?做一个小程序大概多少钱?...

    做一个小程序的大概预算是多少?做一个小程序大概多少钱?下面跟随小编一起来看看吧! 小程序开发需要多少钱,这个要看你做什么样的小程序, 你对小程序的功能.框架.定位.交互.UI的要求是什么? 这些都需要 ...

  7. 如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数...

    请教各位怎样用matlab定义一个分段函数 MATLAB分段函数 www.zhiqu.org     时间: 2020-12-08 matlab提供了了两种定义分段函数的方法: 常规方法:使用if.. ...

  8. JAVA 判断简单密码算法_十道简单算法题二【Java实现】

    前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...

  9. java 哈希一致算法_一致哈希算法Java实现

    一致哈希算法(Consistent Hashing Algorithms)是一个分布式系统中常用的算法.传统的Hash算法当槽位(Slot)增减时,面临所有数据重新部署的问题,而一致哈希算法确可以保证 ...

  10. Java实现的时钟置换算法_时钟页面置换算法

    一.局部:时钟置换算法: 1.最优置换算法:理论上的,预测最晚调用的页面. 2.LRU算法,置换掉最久未使用的. 一个链表.一个页面被调用的话,会被从链表中(它原本的位置)移动到链表首,而每次缺页,则 ...

最新文章

  1. 通达信四色谱四量图源码_翔博精选指标熊市专用优化(通达信公式 选股 源码 测试图)...
  2. pthread_cond_broadcast相关
  3. python es 数据库_Python将json文件写入ES数据库的方法
  4. JavaScript实现最小公倍数LCM算法(附完整源码)
  5. hash算法_到底什么是Hash?Hash算法的原理和实际应用讲解
  6. 使用Angular,Ionic 4和Spring Boot构建移动应用
  7. ubuntu安装codeblock的方法
  8. 一起学习C语言:函数(一)
  9. unity常见问题之20题
  10. 微课|玩转Python轻松过二级(2.2.1节):算术运算符
  11. 高性能服务器设计——模块间通信(转载)
  12. 数据库原理及应用教程课后习题参考答案
  13. CCF推荐的计算机顶级期刊和论文参考
  14. PASCAL VOC2012数据集介绍与制作自己的数据集
  15. 获取火山无水印视频方法
  16. Apache AXIS 1.4 RCE
  17. 入坑张银奎老师研发的GDK7
  18. 1GB等于2的多少次方
  19. 鸿蒙小型系统内核Liteos-a开发指南
  20. 象棋软件新霸主诞生,旋风绝杀名手,再次夺冠,一统江湖了

热门文章

  1. SQL Server 中导入外部数据库文件
  2. 编程软件有哪些比较好用
  3. 易语言EXUI游戏充值系统源码
  4. <Linux开发> -之-系统移植 uboot移植过程详细记录(第一部分)
  5. SSLOJ 买装备 5月11日提高B组 T1
  6. python实现禁忌搜索算法
  7. SPSS的下载和使用经历
  8. 2022年如何申请延迟还款(国家助学贷款)
  9. PLSQL只导出表结构
  10. Python 源代码代码打包成 whl 文件