求R中分段二次函数的系数

时间:2013-12-20 01:38:06

标签: r

我有分段二次函数如下:

$$ \ sum_ {i = 1} ^ {3} a_i(b_i - x)^ {2} _ {+} $$

其中+表示如果b_i大于x,则等于b_i-x,否则等于零。 如何在b_i的零和第一个元素之间,然后在b_i的第一个元素和b_i的第二个元素之间得到上述分段二次函数的系数,依此类推......

      a = c(1, 1, 2)
      b = c(1.5, 3.5, 4.5)
      x = sort(runif(100, 0, 5))
      mat1 = outer(b, x, ">")
      a1 = colSums((a * mat1))
      b1 = colSums(-(2*a*b* mat1))
      c1 = colSums((a*b^2* mat1))

我已经编写了上面的代码来查找整个二次函数的系数

      f1 = function(x) (a1*x^2+b1*x+c1)

我想用公式检查结果,表明它没问题

      z = pmax(b - rep(x, each = length(b)),0)
      dim(z) = c(length(b), length(x))
      f2 = colSums(a * z^2)

      > all.equal(f1(x), f2)
      [1] TRUE

但我希望找到b_i的零和第一个元素之间的二次函数系数,然后找到b_i的第一个元素和b_i的第二个元素之间的二次函数系数,依此类推。 ......我怎么能在R?中做到这一点?

0 个答案:

没有答案