Matematic flop numărul de coloane bazate pe spate de substituție a funcției ( Julia )

0

Problema

Sunt nou Algebră Liniară și de învățare despre triunghiular sistemele puse în aplicare în Julia lang. Am o col_bs (funcția) I se va arăta aici că am nevoie pentru a face un matematice flop contele de. Nu trebuie să fie super-tehnic acest lucru este pentru scopuri de învățare. Am încercat să rup funcția de jos în interior am buclă și exterioare j buclă. În între este un număr de fiecare FLOP , ceea ce cred că este inutil deoarece constantele sunt de obicei scăzut, oricum.

Știu, de asemenea, răspunsul ar trebui să fie N^2, deoarece ei o inversat versiunea înainte de substituție algoritm care este N^2 flops. Am încercat meu cel mai bun pentru a obține acest lucru N^2 numere, dar când am încercat, am ajuns cu un ciudat Nj conta. Voi încerca să furnizeze toate munca pe care am făcut! Vă mulțumim pentru oricine care ajută.

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

Ceea ce înseamnă că dacă am ignora constante cea mai mare posibilitatea de a flops pentru această formulă ar fi $n$ ( care poate fi un indiciu pentru ce-i cu funcția mea deoarece ar trebui să fie $n^2$ la fel ca restul de sisteme triunghiulare cred)

Function picture

Proof picture 1

Proof picture 2 and conclusion

1

Cel mai bun răspuns

2

Reduce codul la acest formular:

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

Bucla interioara are k*(j-1) flops. Costul buclei exterioare este astfel

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

Când știi că j <= nștii că această sumă este mai mică decât (n-1)^2 care este suficient de mare O.

În fapt, cu toate acestea, ar trebui să fie, de asemenea, în măsură să-mi dau seama că

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

2021-11-16 07:23:40

În alte limbi

Această pagină este în alte limbi

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