R中的简单优化具有相同的逻辑但不同的结果

时间:2017-10-01 05:36:52

标签: r function math optimization algebra

我完全被以下简单的R代码困惑。在第一部分 x将等于v(这就是我想要的)。

但奇怪的是,在第二部分中,我更改了输入值,但遵循与第一部分完全相同的逻辑,但这次xv不再匹配!我非常想知道问题出在哪里?

第一部分:

m1 = 5
m2 = 1.3*m1
 A = m1 + m2
 x = 5
a <- function(m3){
abs((m1 - (A + m3)/3)^2 + (1.3*m1 - (A + m3)/3)^2 + (m3 - (A + m3)/3)^2 - 3*x) }

m3 = optimize(a, interval = c(0, 100), tol = 1e-20)[[1]]

v = var(c(m1, m2, m3))*(2/3)  # gives "5" same as "x"

第二部分:

eta.sq = .25
  beta = qnorm(c(1e-12, .999999999999))
     q = c(0, 25)
mu.sig = solve(cbind(1L, beta), q)

    m1 = mu.sig[[1]]  
     H = (mu.sig[[2]])^2 

   m2 = 1.3 * m1
    A = m1 + m2
    x = (H * eta.sq) / (1 - eta.sq)    # "x" is: 1.052529

   a = function(m3){
  abs((m1 - (A + m3)/3)^2 + (1.3*m1 - (A + m3)/3)^2 + (m3 - (A + m3)/3)^2 - 3*x)  }

  m3 = optimize(a, interval = c(0, 100), tol = 1e-20)[[1]]

  v = var(c(m1, m2, m3))*(2/3)    # "v" is: 2.343749

1 个答案:

答案 0 :(得分:1)

不同之处在于,对于第一部分,函数<?xml version="1.0" encoding="utf-8"?> 有两个根,优化函数找到其中一个(<slide android:slideEdge="start"> <targets> <target android:excludeId="@android:id/statusBarBackground"/> <target android:excludeId="@android:id/navigationBarBackground"/> </targets> </slide> )。在此a的值下,m3=10.31207暗示m3a(m3)==0m1的归一化平方和(SS)等于m2

m3

根据样本方差的定义,变量3*x等于SS的三分之一,因此得到> a(m3) [1] 3.348097e-07 > ss <- function(x) { sum((x-mean(x))^2) } > ss(c(m1, m2, m3)) [1] 15 > 3*x [1] 15 >

相反,在第二部分中,您的函数v没有根。它在v==x达到最小值,但在a的此值,m3=14.375的值不为零,因此标准化的平方和不等于m3,所以我没有理由期望a(m3)==3.87366(SS的三分之一)应该等于3*x

v