W tym wyzwaniu otrzymasz macierz kwadratową A
, wektor v
i skalar λ
. Będziesz musiał ustalić, czy (λ, v)
para własna odpowiada A
; to znaczy, czy nie Av = λv
.
Produkt kropkowy
Iloczyn iloczynu dwóch wektorów jest sumą mnożenia elementarnego. Na przykład iloczyn skalarny następujących dwóch wektorów to:
(1, 2, 3) * (4, 5, 6) = 1*4 + 2*5 + 3*6 = 32
Zauważ, że iloczyn skalarny jest zdefiniowany tylko między dwoma wektorami o tej samej długości.
Mnożenie macierzy-wektorów
Matryca to siatka wartości 2D. m
X n
matryca ma m
wierszy i n
kolumn. Możemy sobie wyobrazić macierz m
x n
jako m
wektory długości n
(jeśli weźmiemy rzędy).
Mnożenie macierzy-wektora jest definiowane między macierzą m
x n
a n
wektorem wielkości . Jeśli pomnożymy macierz m
x n
i n
wektor wielkości , otrzymamy m
wektor wielkości . i
Wartość -ty w wektorze wynik jest kropka produktem i
-tym rzędzie matrycy i oryginalnego wektora.
Przykład
1 2 3 4 5
Let A = 3 4 5 6 7
5 6 7 8 9
1
3
Let v = 5
7
9
Jeśli pomnożymy macierz i wektor Av = x
, otrzymamy:
x 1 = A T 1 * v /* AT1 means the first row of A; A1 would be the first column */
= (1,2,3,4,5) * (1,3,5,7,9) = 1 * 1 + 2 * 3 + 3 * 5 + 4 * 7 + 5 * 9 = 1 + 6 + 15 + 28 + 45 = 95
x 2 = A T 2 * v = (3,4,5,6,7) * (1,3,5,7,9) = 3 * 1 + 4 * 3 + 5 * 5 + 6 * 7 + 7 * 9 = 3 + 12 + 25 + 42 + 63 = 145
x 3 = A T 3 * v = (5,6,7,8,9) * (1,3,5,7,9) = 5 * 1 + 6 * 3 + 7 * 5 + 8 * 7 + 9 * 9 = 5 + 18 + 35 + 56 + 81 = 195
Więc rozumiemy Av = x = (95, 145, 195)
.
Mnożenie przez skalar
Mnożenie skalara (pojedynczej liczby) i wektora jest po prostu mnożeniem elementarnym. Na przykład 3 * (1, 2, 3) = (3, 6, 9)
. To dość proste.
Wartości własne i wektory własne
Biorąc pod uwagę macierz A
, mówimy, że λ
jest to wartość własna odpowiadająca v
i v
jest wektorem własnym odpowiadającym λ
wtedy i tylko wtedy Av = λv
. (Gdzie Av
jest mnożenie macierz-wektor i λv
mnożenie skalarne).
(λ, v)
jest parą własną.
Specyfikacja wyzwań
Wkład
Dane wejściowe będą składały się z macierzy, wektora i skalara. Można je wykonać w dowolnej kolejności w dowolnym rozsądnym formacie.
Wydajność
Dane wyjściowe będą miały wartość prawda / fałsz; Prawda jest wtedy i tylko wtedy, gdy skalar i wektor są parą własną z określoną macierzą.
Zasady
- Obowiązują standardowe luki
- Jeśli w Twoim języku istnieje wbudowana funkcja weryfikacji pary własnej, nie możesz jej używać.
- Możesz założyć, że wszystkie liczby są liczbami całkowitymi
Przypadki testowe
MATRIX VECTOR EIGENVALUE
2 -3 -1 3
1 -2 -1 1 1 -> TRUE
1 -3 0 0
2 -3 -1 1
1 -2 -1 1 -2 -> TRUE
1 -3 0 1
1 6 3 1
0 -2 0 0 4 -> TRUE
3 6 1 1
1 0 -1 2
-1 1 1 1 7 -> FALSE
1 0 0 0
-4 3 1
2 1 2 2 -> TRUE
2 1 2 -> TRUE
Dodam 4x4 później.
Nieczytelne przypadki testowe, które są łatwiejsze do testowania