使用 R nloptr 包进行最小化 - 多重等式约束

2024-01-04

是否可以指定多个等式约束nloptrR 中的函数?我尝试运行的代码如下:

eval_f <- function( x ) {
  return( list( "objective" = x[3]^2+x[4]^2,
                "gradient" = c( 0,
                                0,
                                2*x[3],
                                2*x[4] ) ) )
}
# constraint functions
# equalities
eval_g_eq <- function( x ) {
  constr <- c( x[1] + x[2] + x[3] - 4,  
               x[1]^2 + x[2]^2 + x[4] - 15
  )
  grad <- c( c(1, 1, 1, 0),
             c(2*x[1], 2*x[2], 0, 1)
  )
  return( list( "constraints"=constr, "jacobian"=grad ) )
}
# initial values
x0 <- c( 1, 5, 5, 1 )
local_opts <- list( "algorithm" = "NLOPT_LD_MMA",
                    "xtol_rel" = 1.0e-7 )
opts <- list( "algorithm" = "NLOPT_LD_AUGLAG",
              "xtol_rel" = 1.0e-7,
              "maxeval" = 1000,
              "local_opts" = local_opts )
res <- nloptr( x0=x0,
               eval_f=eval_f,
               eval_g_eq=eval_g_eq,
               opts=opts)
print( res )

它产生的结果如下:

Current value of controls: -1.035323 3.093593 2.409501 0.2708714

然而,这些值不具有等式约束,即

-1.035323 + 3.093593 + 2.409501 = 4.467771
(-1.035323)^2 + 3.093593^2 + 0.2708714 = 10.91308

我猜想要么不可能在中指定多个等式约束nloptr函数或者我以错误的方式传递了它们。 我在包文档中没有找到任何具有多个等式约束的示例。

UPDATE

好的,我解决了。情况是指定constr and grad in eval_g_eq,应该使用rbind()代替c().


我最近在另一篇关于不等式约束的文章中回答了这个问题,但是您应该能够使用向量返回多个等式约束c()

“多重不等式约束” - 使用 R nloptr 包进行最小化 https://stackoverflow.com/questions/37951719/multiple-inequality-constraints-minimization-with-r-nloptr-package/65550025#65550025

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 R nloptr 包进行最小化 - 多重等式约束 的相关文章

  • R - 在浏览器中获取帮助而不是内置的 R 帮助程序

    我见过 R help 的两种不同行为 当你输入 density例如 帮助已在您的默认浏览器中打开 帮助在内置 R 帮助程序中打开 R 中的窗口 我目前有第二种行为 但我想在浏览器中打开帮助 我可以轻松地在这两种行为之间切换吗 无需重新安装
  • 在 Shiny 中设置一个绘图缩放以匹配另一个绘图缩放

    我正在尝试使用情节重排获取一个图的 x 轴缩放限制 并将它们应用到 Shiny 中的另一个图 到目前为止 我可以从 plot1 x轴限制 获取相关的plotly relayout数据 将其转换 从数字到日期 并在绘制 plot2 之前将其提
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • 将summary()写入as.data.frame以在ggplot / R中使用

    请查找 af 数据样本t below 我正在使用以下方法进行竞争风险分析etmCIF来自etm package 产生以下结果 这很好 但需要更好的图形 曾经有一个ggtrans etm函数将数据导入ggplot 然而 这个功能显然被删除了
  • dplyr 中的 Summarize 是否可以不删除数据框中的其他列?

    我有一个包含三列的数据框 我正在尝试进行简单的总结以查找数据框中每个城市的最高温度 但同时保留每个最高温度列出的日期 这是数据框 我们称之为 maxT new ID Date Max TemperatureF 1 TUS 1960 04 0
  • 将值替换为其各自列的名称

    我有一个数据框 Code 401k CVS 101A true 231N true FD54 true 99JB 85F4 true 我试图用相应的列名称 例如 401k 替换 true 字符值 这是我想要的输出 Code 401k CVS
  • 使用 R 的 flextable 包时,有没有办法将传递给 add_header_lines() 的字符串部分加粗

    我正在使用我喜欢的 flextable 包为 Word 文档创建几个表格 但是 我在将表格标题中的部分文本加粗时遇到了一些麻烦 例如 我希望标题为 Table 1 我的表格标题的其余部分 而不是 表 1 我的表格标题的其余部分 I 找到这个
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • 仅保留百分比的尾随零

    给出以下示例 library pander tableAbs lt Titanic 1 1 tablePct lt round prop table tableAbs 100 2 table lt cbind tableAbs tableP
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co
  • 为什么 geom_boxplot 比基本箱线图识别更多异常值?

    这是一个可重复的示例 与基本箱线图相比 最后一个治疗组又发现了一个异常值 dta lt structure list Treatment c A A A A A A A A A A A A A A A A B B B B B B B B B
  • 16 位以上整数的计算

    我有两个大整数 两者都超过 16 位 确切地说是 20 位 而且我知道由于双精度浮点运算 我在使用这些数字进行计算甚至将它们存储在变量中 独立于编程语言 时受到限制 不过 我想也许gmp图书馆应该处理它们 但不幸的是它没有 可以计算更大的整
  • GGPLOT2:如何在 ggplot() 脚本中绘制特定选择

    这是一个名为的大型数据集的峰值P 其中有 10 个优惠 CS 有不同的商店 SHP 具有多个数值 数据集列出了按周排序的它们 WK 2 tm 52 它创建一个大文件 仅前 6 行出现峰值 WK MND CS SHP RevCY RevLY
  • 如何将 ggrough 图表另存为 .png

    说我正在使用R包裹ggrough https xvrdm github io ggrough https xvrdm github io ggrough 我有这个代码 取自该网页 library ggplot2 library ggroug
  • jQuery 对象相等

    如何确定两个 jQuery 对象是否相等 我希望能够在数组中搜索特定的 jQuery 对象 inArray jqobj my array 1 alert deviceTypeRoot deviceTypeRoot False alert d

随机推荐

  • Chain React setState 回调

    我需要按顺序加载三个不同的 json 文件并使用 fetch 原因是我正在使用 nextjs 导出 并且我需要动态读取这些文件 所以我在需要时获取它们 即使在出口 第一个文件包含用于创建第二个文件的 url 的数据 依此类推 因此每次获取都
  • 如何使 $(document).ready() 函数全局可用?

    我这里有一个有趣的问题 可能听起来很愚蠢 但就是这样 使用 jQuery 的 Ready 函数 我定义了一些函数 如下所示 function var function1 function data do something var func
  • javascript_include_tag Rails 4 在生产中生成“/javascripts/”而不是“/assets”

    我有一个 Rails 4 应用程序 在头脑中 在开发中 呈现以下 HTML 并加载 Modernizr 在生产中 呈现以下 HTML modernizr 是not已加载 404 未找到 在生产中 assets modernizr j
  • 将参数包转换为向量

    我试图理解 C 中的可变参数模板 但我迷失在以下示例中 想象一个函数富 T T T T 它采用相同类型 T 的可变数量参数并将它们转换为向量 知道如何实施吗 它应该像这样工作 foo
  • 副本上的 VBA 事件触发器?

    VBA 中是否有一种方法 当我在 Excel 中复制单元格的值时 它会触发我的函数 或者有什么解决方法吗 或者我可以阅读按键并听 Ctrl C 吗 或者VBA可以读取复制文本的内容吗 原因是 我将一些条目从 Excel 工作表复制到另一个程
  • 如何使 REDIS 中的映射键过期?

    我使用redis来存储用户信息 我在 user 键下设置了许多用户的信息 如下所示 hset user userid1234 如何使用户中的密钥 userid1234 在几秒钟后过期 有一些命令如 expire 只能设置用户的超时时间 但我
  • 读取两个关键字之间的行

    如果我必须在两个关键字之间进行阅读 有人可以建议该怎么做吗 System Power 1 1 2 1 8 2 System Terminate 在这种情况下 答案是 1 1 2 1 8 2 我尝试使用 awk 像 awk 0 System
  • php artisan migrate 抛出 [PDO 异常] 找不到驱动程序 - 使用 Laravel

    我在安装 Laravel 时遇到了不好的经历 然而 我能够做到这一点并进入下一个阶段 我使用了生成器并创建了我的迁移 但是当我输入最后一个命令时 php artisan migrate 它抛出 PDOException 找不到驱动程序 my
  • R:使用地图工具绘制邻国

    假设我正在使用地图工具在世界地图上绘制国家 如果我要绘制一个国家 是否有办法以不同的颜色绘制与该国家接壤的国家 我正在使用形状文件wrld simpl地图工具附带的 所以说我绘制了中国 plot wrld simpl wrld simpl
  • CSS 中的 HTML colspan

    我正在尝试构建类似于以下内容的布局 底部填充上排的空间 如果这是一个实际的表 我可以轻松地完成此操作 td 但因为我只是创建一个类似表格的layout 我不能使用 table 标签 使用 CSS 可以实现这一点吗 没有简单 优雅的 CSS
  • 有或没有美元符号反应[重复]

    这个问题在这里已经有答案了 我在反应函数返回语句中阅读了以下代码 return span charge span span amount span 我的问题是有或没有 它们只是代表要渲染的动态变量 对吗 我看到 和 有时散布在代码中 并且非
  • 如何在sqlite IPHONE中获取像列一样的rowNum

    我有一个像这样的 Sqlite 数据库表 没有上升 但我需要检索表按名称升序排列 当我将其设置为升序时 rowId 按混乱顺序更改如下 但我需要找回一些联系人数量有限 5每次都按升序排列 like 啊啊 Eeee and 然后 Ffff J
  • 如何使用reportlab将png添加到PDF

    我正在与报告实验室合作 我无法找到用鸭嘴兽添加 png 图像的方法 这是这里的一些示例代码http www tylerlesmann com 2009 jan 28 writing pdfs python adding images htt
  • 项目类型“PackageReference”缺少必需的属性“OutputPath”

    我正在尝试通过 Jenkins Pipeline 运行以下命令 bat nuget restore mySolution sln MSBuildPath C Program Files x86 MSBuild 14 0 Bin 但我收到错误
  • C# 使用 EPPLUS 更改 Excel 图表轴格式

    是否有办法更改图表 X 或 Y 轴以设置自定义标签格式 例如 在 XAxis 中 我的标签是日期时间 但格式是 yyyy mm dd hh mm ss 我想将其更改为 yyyy mm dd 想知道在 EPPLUS 中是否可以不使用互操作 对
  • 如何使用PDO的持久连接? [复制]

    这个问题在这里已经有答案了 我有以下代码并在 Firefox 中刷新该网页 5 次 然后 MySQL 显示了 5 个连接 根据 PDO 手册 持久连接未关闭 在脚本的末尾 但是 缓存并在另一个脚本时重新使用 使用相同的方式请求连接 证书 持
  • 如何决定使用哪个运行时 ID?

    我习惯了 dot net 框架构建一个可以发布的 exe 文件 但是在 Net Core 2 0 中 我需要在创建 exe 时指定运行时 ID 例如 dotnet publish runtime win7 x84 其中运行时 ID 是 wi
  • Shiny - 绘制列的右边框

    假设我有以下 Shiny ui 代码 fluidRow column width 4 column width 8 如何绘制第一列的右边框 您可以使用以下命令将 CSS 添加到列中style争论 因此 一种方法是 library shiny
  • ANTLR 是否允许在 locals 子句中定义多个变量?

    在解析器语法中 我想在中定义几个变量locals clause 一个简化的示例如下所示 body locals Map
  • 使用 R nloptr 包进行最小化 - 多重等式约束

    是否可以指定多个等式约束nloptrR 中的函数 我尝试运行的代码如下 eval f lt function x return list objective x 3 2 x 4 2 gradient c 0 0 2 x 3 2 x 4 co