如何在R中的函数内自动更改局部变量?

慈济

为了简化问题,我将在此处使用一个玩具示例。我想导出诸如library(pracma)的多项式函数的梯度和Hessian

dummy <- function(x) {
         z <- x[1]; y <- x[2]
         rez <- (z^2)*(y^3)+3
         rez
         }
grad(dummy, c(1,2))

hessian(dummy, c(1,2))

我的问题是,有没有一种有效的方法,因此我可以从中的不同常数项导出梯度和Hessian dummy例如,梯度和从粗麻布(z^2)*(y^3)+az=1y=2,其中a=[0.01,3]

谢谢!

格雷格·托马斯(Gregor Thomas)

双方pracma::hessianpracma::grad采取...为“变量传递到f”。如果要a成为变量,则只需要dummy函数即可将其作为参数:

dummy <- function(x, a) {
         z <- x[1]; y <- x[2]
         rez <- (z^2)*(y^3)+a
         rez
         }

grad(dummy, c(1,2), a = 0.01)
# [1] 16 12
hessian(dummy, c(1,2), a = 3)
#      [,1] [,2]
# [1,]   16   24
# [2,]   24   12

sapply(seq(0.01, 3, length.out = 10), function(a) grad(dummy, c(1, 2), a = a))
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,]   16   16   16   16   16   16   16   16   16    16
# [2,]   12   12   12   12   12   12   12   12   12    12

当然,结果都是一样的,您要更改一个常数项,然后求导数。任何常数的导数为0。但是这种想法将推广到更有趣的情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中的函数中修改局部变量?

如何更改返回局部变量的函数

当函数具有同义局部变量时,如何在函数中获取全局变量?

C ++试图更改函数中的局部变量

如何在vim中自动生成像IDEA这样的局部变量

C#中存在具有相同名称的局部变量时,如何在函数中更改全局变量的值

如何在Java / Android中的回调函数中设置局部变量?

如何在Data Weave中的函数中为局部变量赋值

如何在Bash函数中使用局部变量

如何在主函数内部创建局部变量?

如何在函数外部访问局部变量

如何在内部类中更改局部变量的值?

如何在JFrame中更改System.out.println局部变量的大小

在Excel VBA中,如何在MATCH函数中代替局部变量代替硬编码值?

如何在C中的另一个函数中使用局部变量的值

如何在Elixir中的匿名函数中分配给局部变量?

如何在打字稿函数中声明类型为 number 的局部变量?

如何在服务中模拟函数的局部变量?茉莉/业力测试

函数调用时如何在堆栈中组织局部变量?

Javascript:如何在回调函数中访问局部变量?

嵌套函数调用中的变量分配会意外更改调用方范围内的局部变量

r 自定义函数中的局部变量问题

Java ASM - 如何在方法中创建局部变量

如何在Python的局部变量中存储随机整数?

如何在AutoHotkey的热键中声明局部变量?

如何在Java中创建静态局部变量?

如何在列表理解中设置局部变量?

如何在Bash中增加局部变量?

如何在Razor中声明局部变量?