Matematické flop počet stĺpec založené späť substitučnú funkciu ( Julia )

0

Otázka

Som nový Lineárnej Algebry a učenie o trojuholníkové systémy implementované v Julia lang. Mám col_bs() funkcia som vám ukázať, že tu musím urobiť matematický flop počet. Nemusí to byť super technické to je pre vzdelávacie účely. Snažil som sa do prestávky funkcia dole do vnútorného som slučky a vonkajšia j slučky. Medzi tým je počet jednotlivých FLOP , ktorý predpokladám, že je zbytočné, pretože konštanty sú zvyčajne klesol rovnako.

Ja tiež viem, odpoveď by mala byť N^2 od jeho reverznou verzia dopredu substitučnej algoritmus, ktorý je N^2 flops. Snažil som sa čo najlepšie odvodenie tejto N^2 počítať, ale keď som sa snažil skončil som s divný Nj počítať. Budem sa snažiť poskytnúť všetky práce, čo som urobil! Ďakujem každému, kto pomáha.

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
$$

Čo potom znamená, že ak budeme ignorovať konštanty najvyššie možnosť flops pre tento vzorec by $n$, (ktoré môžu byť tip, čo je zle s mojím funkciu pretože to by mala byť $n^2$ rovnako ako zvyšok našich trojuholníkové systémy verím)

Function picture

Proof picture 1

Proof picture 2 and conclusion

1

Najlepšiu odpoveď

2

Znížiť svoj kód, aby tento formulár:

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

Vnútorné slučky trvá k*(j-1) flops. Náklady na vonkajšej slučky je tak

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

Keďže viete, že j <= nviete , že táto suma je nižšia ako (n-1)^2 čo je dosť pre veľké O.

V skutočnosti, však, tiež by ste mali byť schopný zistiť, že

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

2021-11-16 07:23:40

V iných jazykoch

Táto stránka je v iných jazykoch

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