GNU Octave: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Kocio (dyskusja | edycje)
Kocio (dyskusja | edycje)
Linia 490:
 
===Macierz rzadka===
Najprostszym sposobem przechowania macierzy w pamięci komputera jest zapamiętanie jej rozmiarów i ciągu wszystkich elementów macierzy, wiersz po wierszu. Jeśli jednak macierz jest szczególnej postaci można optymalizować sposób przechowywania macierzy w pamięci komputera. [[w:Macierz rzadka|Macierz rzadka]] to macierz, w której występuje dużo zer, wystarczy zatem pamiętać pola niezerowe, tj. zbiór trójek: (numer_wiersza, numer_kolumny, wartość), a pozostałe elementy macierzy są zerami (''Uwaga.'' Faktyczna implementacja macierzy rzadkiej może być zupełnie inna). Dzięki macierzom rzadkim można oszczędzić pamięć, wykonać niektóre algorytmy szybkiej, ale niektóre też wolniej, zwłaszcza jeśli wymagają konwersji na postać normalną.
Najprostszym sposobem przechowania macierzy w pamięci komputera jest zapamiętanie
jej rozmiarów i ciągu wszystkich elementów macierzy, wiersz po wierszu.
Jeśli jednak macierz jest szczególnej postaci można optymalizować sposób przechowywania macierzy w
pamięci komputera. [[Macierz rzadka|Macierz rzadka]] to macierz, w której występuje
dużo zer, wystarczy zatem pamiętać pola niezerowe, tj. zbiór trójek:
(numer_wiersza, numer_kolumny, wartość), a pozostałe elementy macierzy są
zerami (''Uwaga.'' Faktyczna implementacja macierzy rzadkiej może być zupełnie inna).
Dzięki macierzom rzadkim można oszczędzić pamięć, wykonać niektóre algorytmy szybkiej,
ale niektóre też wolniej, zwłaszcza jeśli wymagają konwersji na postać normalną.
 
Utworzyć macierz rzadką, przekształcić ją na normalną i spowrotem na rzadką, dla macierzy:
Linia 510 ⟶ 502:
\end{pmatrix}
</math>
Zadajemy macierz w formacie '''sparse''': wektor współrzędnych x-owych, wektor współrzędnych y-owych, wektor wartości i rozmiary macierzy:
wektor wartości i rozmiary macierzy:
<pre>
octave:6> w=[6,1,4];