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)