在数值上优化R中的函数空间

时间:2015-11-30 21:58:13

标签: r numerical-methods numerical-integration numerical-analysis

我想在数字上最大化R中的表达式。为了保持简单,假设我想要最大化的表达式是

\int_0^1 2x y(x)(y(x) -2) dx

,其中

y(x)= \ int_0 ^ 1 y(x,t)dt

并且我在函数集y上最大化:[0,1] ^ 2 - > {0,1}。

我想在R中以数字方式最大化这个表达式,这就是我认为我会这样做的方式:

  1. 使用矩阵
  2. 来区分单位正方形
  3. 将被积函数区分开来
  4. 计算总和的值
  5. 为所有矩阵执行此操作,查看哪个值最大化
  6. 由于我想要最大化的函数只取{0,1}中的值,我想到使用一个矩阵取值0/1来近似函数,然后估计该网格上其余的被积函数。这是代码:

        Value <- function(grid){
        # The argument grid is the matrix taking values 0 or 1
        # For now, consider a 10-times-10 matrix
        Value <- 2*seq(1/20, 19/20, 1/10) %*% apply(grid, 1, sum)/10
        return(Value)
        }
    

    我现在如何创建所有0/1矩阵的列表,然后将上述函数应用于所有矩阵,以查看哪个网格,即函数y的近似值达到最大值?或者是否有一种完全不同且更好的方法来进行这种数值优化?

1 个答案:

答案 0 :(得分:0)

您的枚举所有可能的2 ^(10 * 10)离散函数的搜索算法非常差。您最好尝试使用Nelder-Mead之类的局部优化来最大化该功能。