수학 플롭 수의 열을 기반으로 다시 대체 기능(줄리아)

0

질문

나는 새로 선형대수학에 대해 배우고 삼각형 시스템 구현에 줄리아 lang. 나는 col_bs()함수는 내가 여기에 표시해야 할 수학적 flop 의 개수. 그것이어야 하지 않는 슈퍼 기술 이것은 학습을 위한 목적입니다. 나는 휴식 기능으로 그것이 내가 루프와 외부 j 다. 사이에서 각 플롭,나는 가정은 쓸모가 없기 때문 상수는 일반적으로 떨어졌다 어쨌든.

또한 답을 알고 있어야 합 N^2 이후 이전 버전의 앞으로 대체 알고리즘 N^2 퍼. 내가하기 위해 최선을 다했어 파생 이 N^2 도 사용할 수 있지만 나는 이상한 뉴저지는 계산합니다. 내가 제공하기 위해 노력할 것입니다 모든 작업을 했! 감사한 사람에게 당신을 도움이 됩니다.

function col_bs(U, b)


n = length(b)
x = copy(b)

for j = n:-1:2
    if U[j,j] == 0
        error("Error: Matrix U is singular.")
    end
        x[j] = x[j]/U[j,j] 
        
        for i=1:j-1
        x[i] = x[i] - x[j] * U[i , j ]
        end
end

x[1] = x[1]/U[1,1]
 

return x
end

1: To start 2 flops for the addition and multiplication x[i] - x[j] * U[i , j ]

The $i$ loop does: $$ \sum_{i=1}^{j-1} 2$$

2: 1 flop for the division $$ x[j]  / = U[j,j] $$
3: Inside the for $j$ loop in total does: $$ 1 + \sum_{i=1}^{j-1} 2$$
4:The $j$ loop itself does:$$\sum_{j=2}^n ( 1 + \sum_{i=1}^{j-1} 2)) $$
5: Then one final flop for $$  x[1] = x[1]/U[1,1].$$

6: Finally we have 
$$\\ 1 + (\sum_{j=2}^n ( 1 + \sum_{i=1}^{j-1} 2))) .$$

Which we can now break down.

If we distribute and simplify
$$\\ 1 + (\sum_{j=2}^n + \sum_{j=2}^n \sum_{i=1}^{j-1} 2) .$$

We can look at only the significant variables and ignore constants,

$$\\
  \\ 1 + (n + n(j-1)) 
  \\ n + nj - n
  \\ nj
$$

는 다음을 의미하는 경우 우리는 무시 상수를 가장 높은 가능성을 퍼를 이 수식 것$n$(수 있는 힌트를 배경으로 펼쳐집니 나의 함수해야하기 때문에$n^2$의 나머지 부분처럼 우리의 삼각형 시스템 내가 믿)

Function picture

Proof picture 1

Proof picture 2 and conclusion

1

최고의 응답

2

을 줄의 코드를 이 양식은:

for j = n:-1:2
   ...
   for i = 1:j-1
      ... do k FLOPs
   end
end

내부 루프를 걸리 k*(j-1) 슬리퍼. 의 비용을 외부 루프라

\sum_{j=2}^n k (j-1)

때문에 당신이 알고 있는 j <= n당신이 알고,이 합계보 (n-1)^2 는 충분히 큰 O.

사실,그러나,당신이 할 수 있어야한다는 것을 파악하기 위하여

\sum_{j=1}^n j = n (n+1) / 2

2021-11-16 07:23:40

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................