matlab的开方算法_每天一个小算法(matlab armijo)
下面是 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)相关推荐
- java 如何将数字倒置_每日一个小算法之整数中每位上的数字进行反转 20190810
题目要求: 给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321 示例 3: 输入: 120输出 ...
- kmeans算法_实战 | KMeans 聚类算法
1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Ad ...
- pso解决tsp matlab,计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc...
计算智能课程设计_粒子群优化算法求解旅行商问题_Matlab实现.doc 摘要:TSP是一个典型的NPC问题.本文首先介绍旅行商问题和粒子群优化算法的基本概念.然后构造一种基于交换子和交换序[1]概念 ...
- 一个软件公司需要多少前端_制作一个小程序商城需要多少钱?开发小程序公司哪家强?...
搭建小程序商城能更好的为商家打造私域粉丝池,形成私域流量,因此,微信小程序自然成为了企业商家的首选. 随着线上的快速发展,微信小程序能力的升级,使小程序也存在多种类型,例如电商类.资讯类.预约类等等, ...
- 小孔成像总结_每天一个小实验|小孔成像
Hi-新朋友 记得点蓝字关注我们哟 小孔成像 在我们的生活中处处都能看到相机,那你知道其中的原理吗?让我们去看看吧. 实验材料 杯子.蜡烛.图钉.胶带塑料卡片.记号笔.打火机.剪刀 实验步骤 第一步: ...
- 小程序制作预算_做一个小程序的大概预算是多少?做一个小程序大概多少钱?...
做一个小程序的大概预算是多少?做一个小程序大概多少钱?下面跟随小编一起来看看吧! 小程序开发需要多少钱,这个要看你做什么样的小程序, 你对小程序的功能.框架.定位.交互.UI的要求是什么? 这些都需要 ...
- 如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数...
请教各位怎样用matlab定义一个分段函数 MATLAB分段函数 www.zhiqu.org 时间: 2020-12-08 matlab提供了了两种定义分段函数的方法: 常规方法:使用if.. ...
- JAVA 判断简单密码算法_十道简单算法题二【Java实现】
前言 清明不小心就拖了两天没更了-- 这是十道算法题的第二篇了-上一篇回顾:十道简单算法题 最近在回顾以前使用C写过的数据结构和算法的东西,发现自己的算法和数据结构是真的薄弱,现在用Java改写一下, ...
- java 哈希一致算法_一致哈希算法Java实现
一致哈希算法(Consistent Hashing Algorithms)是一个分布式系统中常用的算法.传统的Hash算法当槽位(Slot)增减时,面临所有数据重新部署的问题,而一致哈希算法确可以保证 ...
- Java实现的时钟置换算法_时钟页面置换算法
一.局部:时钟置换算法: 1.最优置换算法:理论上的,预测最晚调用的页面. 2.LRU算法,置换掉最久未使用的. 一个链表.一个页面被调用的话,会被从链表中(它原本的位置)移动到链表首,而每次缺页,则 ...
最新文章
- 通达信四色谱四量图源码_翔博精选指标熊市专用优化(通达信公式 选股 源码 测试图)...
- pthread_cond_broadcast相关
- python es 数据库_Python将json文件写入ES数据库的方法
- JavaScript实现最小公倍数LCM算法(附完整源码)
- hash算法_到底什么是Hash?Hash算法的原理和实际应用讲解
- 使用Angular,Ionic 4和Spring Boot构建移动应用
- ubuntu安装codeblock的方法
- 一起学习C语言:函数(一)
- unity常见问题之20题
- 微课|玩转Python轻松过二级(2.2.1节):算术运算符
- 高性能服务器设计——模块间通信(转载)
- 数据库原理及应用教程课后习题参考答案
- CCF推荐的计算机顶级期刊和论文参考
- PASCAL VOC2012数据集介绍与制作自己的数据集
- 获取火山无水印视频方法
- Apache AXIS 1.4 RCE
- 入坑张银奎老师研发的GDK7
- 1GB等于2的多少次方
- 鸿蒙小型系统内核Liteos-a开发指南
- 象棋软件新霸主诞生,旋风绝杀名手,再次夺冠,一统江湖了