线性搜索的最速上升法

####
max.search <- function(f, x, y, tol=1e-9, a.max = 2^5){
if(sum(abs(y)) == 0) return(x)
g <- function(a) return(f(x+a*y))
a.l <- 0
g.l <- g(a.l)
a.m <- 1
g.m <- g(a.m) while((g.m < g.l)&(a.m > tol)){
a.m <- a.m/2
g.m <- g(a.m)
}
if((a.m <- tol) & (g.m < g.l)) return (x)
a.r <- 2*a.m
g.r <- g(a.r)
while((g.m < g.r) & (a.r < a.max)){
a.m <- a.r
g.m <- g.r
a.r <- 2*a.max
g.r <- h(a.r)
}
if((a.r >= a.max) & (g.m < g.r)) return(x+a.max*y)
a <- gsection(g, a.l, a.r, a.m)
return(x + a*y)
} ####gsection
gsection <- function(ftn, x.l, x.r, x.m, tol=1e-9){
###黄金分割率
gr1 <- 1 + (1+sqrt(5))/2
f.l <- ftn(x.l)
f.r <- ftn(x.r)
f.m <- ftn(x.m)
while((x.r - x.l) > tol){
if((x.r - x.m) > (x.m - x.l)){
y <- x.m + (x.r - x.m)/grl
f.y <- ftn(y)
if(f.y >= f.m){
x.l <- x.m
f.l <- f.m
x.m <- y
f.m <- f.y
}
else{
x.r <- y
f.r <- f.y
}
}else{
y <- x.m - (x.m - x.l)/grl
f.y <- ftn(y)
if(f.y >= f.m){
x.r <- x.m
f.r <- f.m
x.m <- y
f.m <- f.y
}
else{
x.l <- y
f.l <- f.y
}
}
}
return(x.m)
}

  

R语言最优化(多维)的更多相关文章

  1. R语言最优化(一维)

    最优化问题是普遍存在的,以前上运筹学课的时候也接触过最优化相关的问题,当时主要是理论课,并且关注的重点是单纯形法.运输问题以及图论等,这里指的最优化是指函数的最优化,即函数的极值,由于寻找一个局部最优 ...

  2. 机器学习与R语言

    此书网上有英文电子版:Machine Learning with R - Second Edition [eBook].pdf(附带源码) 评价本书:入门级的好书,介绍了多种机器学习方法,全部用R相关 ...

  3. R语言中的遗传算法详细解析

    前言 人类总是在生活中摸索规律,把规律总结为经验,再把经验传给后人,让后人发现更多的规规律,每一次知识的传递都是一次进化的过程,最终会形成了人类的智慧.自然界规律,让人类适者生存地活了下来,聪明的科学 ...

  4. 微软的R语言发行版本MRO及开发工具RTVS

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:微软在收购R语言的开发商后,也独立发行或在自己的产品中集成了R语言,这里就介绍下它们包 ...

  5. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  6. R语言实战(一)介绍、数据集与图形初阶

    本文对应<R语言实战>前3章,因为里面大部分内容已经比较熟悉,所以在这里只是起一个索引的作用. 第1章       R语言介绍 获取帮助函数 help(), ? 查看函数帮助 exampl ...

  7. 从零开始系列-R语言基础学习笔记之二 数据结构(二)

    在上一篇中我们一起学习了R语言的数据结构第一部分:向量.数组和矩阵,这次我们开始学习R语言的数据结构第二部分:数据框.因子和列表. 一.数据框 类似于二维数组,但不同的列可以有不同的数据类型(每一列内 ...

  8. R语言学习笔记(一)

    1.不同的行业对数据集(即表格)的行和列称谓不同,统计学家称其为观测(observation)和变量(variable): 2.R语言存储数据的结构: ①向量:类似于C语言里的一位数组,执行组合功能的 ...

  9. R语言之RCurl实现文件批量下载

    前言: RCurl工具包的作者是由Duncan Temple Lang现任加州大学 U.C. Davis分校副教授.他曾致力于借助统计整合进行信息技术的探索.使用者通过RCurl可以轻易访问网页,进行 ...

随机推荐

  1. Maven的基本概念

    一.Maven的基本概念' Maven(翻译为"专家","内行")是跨平台的项目管理工具.主要服务于基于Java平台的项目构建,依赖管理和项目信息管理. 1.1 ...

  2. javascript的对象内容对比

    vue是这样对比的 function looseEqual (a, b) { if (a === b) return true const isObjectA = isObject(a) const ...

  3. 20171017数据处理sql

    SELECT LEFT(RIGHT(进场时间,8),2), 车牌号,进场时间,支付时间 FROM 停车收费详情$;1是周日,7是周六SELECT COUNT(*),周几 FROM date_parts ...

  4. 编译openwrt时报错:g++: internal compiler error: Killed (program cc1plus)

    答: 这是内存不足导致的,增大内存或者减少运行的线程即可

  5. SpringIOC的概念理解、构造器注入、setter注入、p命名空间注入、IOC容器介绍与比较

    1.IOC概念理解 IOC(Inversion of Control)即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...

  6. CSS--block inline inline-block

    display:block block元素会独占一行,多个block元素会各自新起一行.默认情况下,block元素宽度自动填满其父元素宽度. block元素可以设置width,height属性.块级元 ...

  7. intelliJ idea常用快捷键 mac版

    目录 coding project coding Command + P 显示方法参数信息 Command + N 自动生成getter.setter.hashCode.equals.toString ...

  8. C# 加载DotNetBar组件

    C#作为前端的开发软件,使用的人很多,但是原生的C#界面较为简陋,已经不能满足公司级的开发工作了,今天这篇博客的主要内容是讲一下怎么在C#端使用一个可以提升界面美感的第三方控件,DotNetBar 首 ...

  9. [Web Service] Tutorial Basic Concepts

    WSDL是网络服务描述语言,是一个包含关于web service信息(如方法名,方法参数)以及如何访问它. WSDL是UDDI的一部分. 作为web service 应用程序之间的接口,发音为wiz- ...

  10. 提升 Hive Query 执行效率 - Hive LLAP

    从 Hive 刚推出到现在,得益于社区对它的不断贡献,使得 Hive执行 query 效率显著提升.其中比较有代表性的功能如 Tez (将多个 job整合为一个DAG job)以及 CBO(Cost- ...