如何用R计算函数L_2范数

时间:2014-12-23 08:50:04

标签: r

假设fg是在[0,1]区间定义的两个有界函数。

如何计算fg之间的L_2 distance

1 个答案:

答案 0 :(得分:4)

扩展我的评论:

f <- function(x) x^2
g <- function(x) sqrt(cos(x))
z <- function(x) 0

l2_norm <- function(fun) {
  f_sq <- function(x) fun(x)^2
  sqrt(integrate(f = f_sq, lower = 0, upper = 1)$value)
}

l2_dist <- function(f, g) {
  f_diff <- function(x) (f(x) - g(x))^2
  sqrt(integrate(f = f_diff, lower = 0, upper = 1)$value)
}

l2_norm(f) # = sqrt(1/5)
l2_norm(g) # = sqrt(sin(1))
l2_dist(f, z) # = l2_norm(f)
l2_dist(f, g)

可以使用类似的方法来定义,例如L2中的内在产品。