Rozkład Cholesky'ego kalkulator

Format liczbowy
Komentarze dotyczące rozwiązania
Bez opisu (tylko odpowiedź)

a

b

c

d

x

y

z

clear

i

ab
x2
xn

Randomize

313131313135151515151583137
2
2510
=Solve

  O kalkulatorze dekompozycji Cholesky'ego macierzy

To jest darmowy, internetowy kalkulator dekompozycji Cholesky'ego macierzy z pełnym, szczegółowym, krok po kroku opisem rozwiązań, który wykonuje operacje na macierzach o rozmiarze do 99x99 z elementami macierzowymi następujących typów: liczby dziesiętne, ułamki, liczby zespolone, zmienne.

Aby rozpocząć obliczenia, należy najpierw wprowadzić rozmiar macierzy w polu wejściowym, które znajduje się w górnej części ekranu, a także wybrać metodę obliczeń.

Nieco niżej znajduje się okno macierzy, w którym należy wprowadzić elementy macierzy za pomocą klawiatury. Znajduje się tu również panel kontrolny macierzy, który upraszcza pracę z macierzami i zawiera następujące elementy sterujące:

  • Pierwszy element pozwala na powiększenie okna macierzy. Może to być szczególnie przydatne w przypadku, gdy trzeba wykonać obliczenia na bardzo dużych macierzach, które nie mieszczą się w całości. Jeśli macierz nadal nie jest widoczna po powiększeniu okna, można zmienić jej skalę za pomocą przycisków + / -;
  • Drugi element wykonuje funkcję kopiowania wprowadzanej macierzy do bufora pamięci. Może to być przydatne w przypadku, gdy często używa się tej samej macierzy do obliczeń lub gdy trzeba przenosić macierze między operacjami;
  • Ostatni element wstawia wcześniej skopiowaną macierz, co pozwala przyspieszyć proces wprowadzania macierzy do zaledwie kilku kliknięć, zamiast robić to ręcznie;

Niżej znajduje się pasek narzędzi, który pozwala na dostosowanie kalkulatora i ułatwienie pracy z nim. Jest on wizualnie podzielony na trzy części, z których każda odpowiada za następującą funkcjonalność:

  • Pierwsza pozwala na wybór formatu liczb przy wyświetlaniu wyniku rozwiązania. Można tu również wyłączyć komentarze do rozwiązania zadania, jeśli użytkownik zrozumiał już, jak rozwiązać to zadanie i używa kalkulatora do przyspieszenia lub sprawdzenia własnych obliczeń. Można również całkowicie wyłączyć rozwiązanie krok po kroku, jeśli potrzebny jest tylko wynik rozwiązania;
  • Druga zawiera przyciski, które pozwalają na zmianę typu pola wprowadzania macierzy, wymazanie jej elementów lub całej macierzy, oraz największy przycisk ze znakiem równości, który przeniesie użytkownika do ekranu z rozwiązaniem zadania. Wszystkie te przyciski są zduplikowane przez klawisze na klawiaturze. Aby dowiedzieć się, który klawisz na klawiaturze należy nacisnąć, wystarczy najechać kursorem na jeden z przycisków, a pojawi się wskazówka z nazwą klawisza. Można również używać strzałek na klawiaturze do poruszania kursorem między polami wprowadzania macierzy;
  • Ostatnia pozwala na wybór liczby cyfr po przecinku do zaokrąglania liczb nie całkowitych. Można tu również od razu zobaczyć przykład, jak będą wyglądały zaokrąglone ułamki;

  Czym jest dekompozycja Cholesky'ego macierzy?

Dekompozycja Cholesky'ego to faktoryzacja symetrycznej macierzy dodatnio określonej na macierz dolnotrójkątną i macierz transponowaną macierzy dolnotrójkątnej, a iloczyn tych macierzy powinien dać oryginalną macierz. Macierz jest symetryczna, jeśli jest równa swojej macierzy transponowanej, a dodatnio określona, jeśli wszystkie jej podmacierze górno-lewe są dodatnie.

  Jak przeprowadzić dekompozycję Cholesky'ego macierzy?

Najpierw musimy upewnić się, że macierz jest symetryczna dodatnio określona. Następnie rozpoczyna się iteracyjny proces znajdowania macierzy dolnotrójkątnej. Ilość iteracji będzie taka sama, jak ilość elementów pod główną przekątną oryginalnej macierzy, każdy element ma swoją własną iterację. A wynikiem każdej iteracji będzie jeden element macierzy dolnotrójkątnej. Aby znaleźć elementy macierzy dolnotrójkątnej, musimy użyć dwóch wzorów (1) i (2), patrz poniżej. Po znalezieniu wszystkich elementów macierzy dolnotrójkątnej pozostaje jedynie ją transponować.

  Przykład dekompozycji Cholesky'ego macierzy

Zapisz macierz początkową
A
:
A
=
4
2
2
2
5
1
2
1
3
Rozkład Cholesky'ego to przedstawienie symetrycznej, dodatnio określonej macierzy
A
w postaci
A
=
L
*
L
T
0
;
Macierz jest symetryczna, jeśli jest równa swojej macierzy transponowanej:
A
=
A
T
0
;
Macierz jest dodatnio określona, jeśli wszystkie jej lewo-górne podmacierze są dodatnie;
Przed obliczeniem macierzy
L
należy sprawdzić, czy macierz
A
jest symetryczna i dodatnio określona;
2
Symetryczna
Aby ustalić, czy macierz
A
jest symetryczna, znajdujemy jej macierz transponowaną i porównujemy je:
A
T
0
=
4
2
2
2
5
1
2
1
3
a
T
0
0
1,1
=
a
0
1,1
=
4
;
a
T
0
0
1,2
=
a
0
2,1
=
2
;
a
T
0
0
1,3
=
a
0
3,1
=
2
;
a
T
0
0
2,1
=
a
0
1,2
=
2
;
a
T
0
0
2,2
=
a
0
2,2
=
5
;
a
T
0
0
2,3
=
a
0
3,2
=
1
;
a
T
0
0
3,1
=
a
0
1,3
=
2
;
a
T
0
0
3,2
=
a
0
2,3
=
1
;
a
T
0
0
3,3
=
a
0
3,3
=
3
;
Ukryj opis
9 elementów
A
=
A
T
0
=
4
2
2
2
5
1
2
1
3
=
4
2
2
2
5
1
2
1
3

Dodatnio określona

3
M₁
4
2
2
2
5
1
2
1
3
=
4
=
4
;
4
>
0;
dodatnia;
4
M₂
4
2
2
2
5
1
2
1
3
=
4
2
2
5
=
16
;
16
>
0;
dodatnia;
5
M₃
4
2
2
2
5
1
2
1
3
=
4
2
2
2
5
1
2
1
3
=
32
;
32
>
0;
dodatnia;
6
Macierz L
Sprawdziliśmy, że macierz
A
jest symetryczna, dodatnio określona;
Oznacza to, że rozkład Cholesky'ego jest możliwy;
Zapiszmy początkową macierz
L
i oznaczmy elementy, które musimy znaleźć, jako nieznane:
L
=
×××
0
××
0
0
×
Do obliczenia elementów macierzy
L
użyjemy dwóch wzorów:
Pierwszy wzór (1) dotyczy elementów znajdujących się na głównej przekątnej;
Drugi wzór (2) dotyczy wszystkich pozostałych elementów;
l
0
i,i
=
a
0
i,i
-
i
- 1
k
= 1
l
2
i,k
(1)
Użyj tego wzoru, gdy
i = j
;
// gdzie
i
to numer wiersza
j
to numer kolumny
k
to licznik zmiennych, który dla każdego elementu lᵢ,ᵢ rozpocznie się od wartości 1, będzie zwiększany o 1 przy każdej iteracji i zakończy się wartością i - 1
a
to element macierzy A
l
to element macierzy L
Wyjątek:
Do obliczenia
l
0
1,1
potrzebujemy elementu pod indeksem
i - 1
, który w tym przypadku jest równy 0, a więc nie istnieje;
Dlatego w tym przypadku:
l
0
1,1
=
a
0
1,1
;
l
0
i,j
=
a
0
i,j
-
j
- 1
k
= 1
l
0
j,k
*
l
0
i,k
l
0
j,j
(2)
Użyj tego wzoru, gdy
i > j
;
// gdzie
i
to numer wiersza
j
to numer kolumny
k
to licznik zmiennych, który dla każdego elementu lᵢ,ⱼ rozpocznie się od wartości 1, będzie zwiększany o 1 przy każdej iteracji i zakończy się wartością j - 1
a
to element macierzy A
l
to element macierzy L
Wyjątek:
Do obliczenia
l
0
i
,1
potrzebujemy elementu pod indeksem
j - 1
, który w tym przypadku jest równy 0, a więc nie istnieje;
Dlatego w tym przypadku:
l
0
i
,1
=
a
0
i
,1
l
0
1,1
;
7
l₁,₁
i
= 1;
j
= 1;
Użyj wyjątku wzoru
(1)
:
l
0
1,1
=
a
0
1,1
=
4
=
2
;
Zapisz obliczony element w macierzy
L
:
L
=
2
××
0
××
0
0
×
8
l₂,₁
i
= 2;
j
= 1;
Użyj wyjątku wzoru
(2)
:
l
0
2,1
=
a
0
2,1
l
0
1,1
=
2
2
=
1
;
Zapisz obliczony element w macierzy
L
:
L
=
2
1
×
0
××
0
0
×
9
l₂,₂
i
= 2;
j
= 2;
k
= { 1 };
Użyj wzoru
(1)
:
l
0
2,2
=
a
0
2,2
-
l
2
2,1
=
5
-
1
2
0
=
2
;
Zapisz obliczony element w macierzy
L
:
L
=
2
1
×
0
2
×
0
0
×
10
l₃,₁
i
= 3;
j
= 1;
Użyj wyjątku wzoru
(2)
:
l
0
3,1
=
a
0
3,1
l
0
1,1
=
2
2
=
1
;
Zapisz obliczony element w macierzy
L
:
L
=
2
1
1
0
2
×
0
0
×
11
l₃,₂
i
= 3;
j
= 2;
k
= { 1 };
Użyj wzoru
(2)
:
l
0
3,2
=
a
0
3,2
-
(
l
0
2,1
*
l
0
3,1
)
l
0
2,2
=
1
-
(
1
*
1
)
2
=
0
;
Zapisz obliczony element w macierzy
L
:
L
=
2
1
1
0
2
0
0
0
×
12
l₃,₃
i
= 3;
j
= 3;
k
= { 1, 2 };
Użyj wzoru
(1)
:
l
0
3,3
=
a
0
3,3
-
(
l
2
3,1
+
l
2
3,2
)
=
3
-
(
1
2
0
+
0
2
0
)
=
1
72
173
;
Zapisz obliczony element w macierzy
L
:
L
=
2
1
1
0
2
0
0
0
1
72
173
13
Macierz Lᵀ
Obliczyliśmy wszystkie elementy macierzy
L
;
Teraz, aby ukończyć rozkład Cholesky'ego, musimy tylko znaleźć jej macierz transponowaną:
L
T
0
=
2
0
0
1
2
0
1
0
1
72
173
l
T
0
0
1,1
=
l
0
1,1
=
2
;
l
T
0
0
1,2
=
l
0
2,1
=
1
;
l
T
0
0
1,3
=
l
0
3,1
=
1
;
l
T
0
0
2,1
=
l
0
1,2
=
0
;
l
T
0
0
2,2
=
l
0
2,2
=
2
;
l
T
0
0
2,3
=
l
0
3,2
=
0
;
l
T
0
0
3,1
=
l
0
1,3
=
0
;
l
T
0
0
3,2
=
l
0
2,3
=
0
;
l
T
0
0
3,3
=
l
0
3,3
=
1
72
173
;
Ukryj opis
9 elementów
Answer
A = L · Lᵀ
L
=
2
1
1
0
2
0
0
0
1
72
173
L
T
0
=
2
0
0
1
2
0
1
0
1
72
173
Rozmiar3×3

  Źródła