A의 대안은 국가의 각 산업이 다른 나라의 다른 산업과 얼마나 관련이 있는지 나타냅니다. 그것은 약 1.00에서 값을 취할 수 있습니다. 따라서 행렬 A의 대각선 요소는 1에 가깝지만 행렬 A의 대각 원소는 각 산업이 대부분 자체와 관련되기 때문에 1보다 훨씬 작습니다.slow() 느린
I, J는 각각 1:44 인 국가를 나타냅니다.
주의! ("I"는 IN (I-A_omit가 (J는 J가)))는 DIAG (2,464 인 해결한다.
난, j는 1시 56분 각이다 산업 약자.
X는 A가 출력되고 길이 44의 벡터 벡터 56 산업 = 2464
(diag (2464) -A)의 역수로 F를 곱한 값 (특정 국가에서 산업의 최종 수요를 나타내는 2464 * 1 행렬 인 행렬 .
X_omit (J, j)는 j 나라의 산업 j의 모든 값을 0으로 변경하는 함수입니다.
여기에서, 행렬 X의 j + 56 * (J-1) 열은
그런데 해결할 때 "I"(I-A_omit (J, j))는 진단 (2464).
X_omit
(solve
사용)의 계산에는 약 20 초가 걸립니다. A
은 2464 * 2464 매트릭스이고 X
은 2464 * 1 매트릭스입니다. 계산을 가정합니다 b_link
약 20 초 * 2464 계산 하나의 단일 값에 대해 14 시간입니다.
그러나이 경우 sum
을 사용하여 간단한 방정식으로 변경했습니다.이 경우에는 I
과 i
을 분리해도 상관 없습니다. 하지만 다음 계산에서는 I
, i
, J
, j
크기는 1:44,1:56,1:44,1:56
이고 각 문자는 합계를 사용하지 않고 구분해야합니다.
더 빨리 만들 수있는 유일한 방법은 solve()
으로 20 초 빨라진다는 것입니다. solve(I-A_omit(J,j))
의 [A] 행렬은 대칭이 아니며 숫자로 채워진 정상적인 행렬입니다.
이
당신은 루프 외부X_omit(J,j)
을 계산할 수 있습니다 내 코드
X_omit <- function (J,j) {solve((I-A_omit(J,j)),F)}
B_linkages_inter <- function (I,J) {
for (j in 1:56) {
for (i in 1:56) {
sum((X[i+56*(I-1)]-X_omit(J,j)[i+56*(I-1)])/X[j+56*(J-1)])
}
}
}
안녕하세요, 대신 이미지 대신 질문에 코드를 추가 할 수 있습니까? ps 감사합니다. [작은 예제를 추가하여 사람들에게 기대되는 결과를 얻을 수 있다면 좋을 것입니다. 초점은 문제 차원까지 확대 조정할 수 있습니다.] – user20650
업데이트 해 주셔서 감사합니다. 그러나 예제를 많이 추가하십시오. 작은 척도를 사용하여 수행하려는 작업을 표시하십시오. 질문의 맨 아래에 추가하십시오. – user20650
'solve (A) % * % b' 대신'solve (A, b)'를 사용할 수 있습니다. 실제로 행렬을 반전하지 않기 때문에 더 빠릅니다. 여전히 느린 경우 R의 Revolution R 공개 배포판을 사용해 볼 수 있습니다. – Ryan