Matematické flopu počet sloupců na základě zpátky substituční funkce ( Julia )

0

Otázka

Jsem nový Lineární Algebra a učení o trojúhelníkové systémy v Julia lang. Mám col_bs funkce() jsem se zde ukázat, že musím udělat matematický flopu počítat. Nemusí to být super technické je to pro studijní účely. Snažil jsem se zlomit funkce dolů do vnitřní já smyčky a vnější j smyčky. Mezi tím je počet každý FLOP , což předpokládám, že je k ničemu, protože konstanty jsou obvykle spadl tak jako tak.

Také vím, že odpověď by měla být N^2, protože jeho obrácenou verzi vpřed substituční algoritmus, který je N^2 obvody. Snažil jsem se moje nejlepší, aby odvodit tento N^2 počítat, ale když jsem se snažil jsem skončil s divným Nj počítat. Budu se snažit poskytnout veškeré práce jsem udělal! Děkuji každému, kdo pomáhá.

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

Což pak znamená, že pokud budeme ignorovat konstanty nejvyšší možnost flopy pro tento vzorec by být $n$ ( což může být náznak na co je špatně s mojí funkcí, protože by to mělo být $n^2$, stejně jako zbytek naší trojúhelníkové systémy věřím)

Function picture

Proof picture 1

Proof picture 2 and conclusion

1

Nejlepší odpověď

2

Snížit váš kód k této formě:

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

Vnitřní smyčka trvá k*(j-1) flopy. Náklady na vnější smyčky je tedy

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

Vzhledem k tomu, víte, že j <= nvíte , že tento součet je menší než (n-1)^2 což je dost pro velké O.

Ve skutečnosti, nicméně, měli byste být také schopni zjistit, že

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

2021-11-16 07:23:40

V jiných jazycích

Tato stránka je v jiných jazycích

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