1
최적화를 기반으로 행렬의 모든 값을 효율적으로 풀 수있는 코드를 작성하려고합니다.행렬의 모든 값 최적화
(x - (1/((1/x) - sqrt(1/x))))^2
나는이 작업을 수행하는 코드를 작성하지만, 꽤 아니다 (도 아니다 빠르다) : 나는 방정식을 최소화 x의 값을 찾기 위해 노력하고있어.
mSS <- function(x)
{
#Sum of squares for X and the transformation
(x - (1/((1/test_mat[rows, cols]) - sqrt(1/x))))^2
}
n = 151
m = 50000
test_mat = matrix(rnorm(n * m, mean = 0, sd = 1), n, m)
trans_mat = matrix(data = NA, n, m)
#Go through each row/col position in array, find value that minimizes mSS function
for (cols in 1:ncol(test_mat)) {
for (rows in 1:nrow(test_mat)) {
trans_mat[rows, cols] = optimize(mSS, c(0, 3))$minimum
}
}
저는이 작업을보다 빠르게 진행하기위한 최선의 방법을 찾기 위해 정신이 없습니다. 어쩌면 일부 사용자 지정 함수를 사용하여 응용 프로그램을 사용하는 것이 경로 일 수 있다고 생각했지만 실행 가능한 솔루션을 찾는 데 어려움을 겪고 있습니다. 올바른 방향으로 향한 어떤 포인터라도 감사 할 것입니다.
또한 1,'적용 (test_mat 같은 뭔가를 할 수) $ minimum})'(똑같은 추론이나,'sapply'와'matrix' 대신에'apply'를 사용합니다. – etienne
@ZheyuanLi : 참으로 방금 벤치 마크를했고,'sapply'는 더 빠릅니다 – etienne