From f7e35d41c5f827d28d151e97ae1acbe1a9b060bd Mon Sep 17 00:00:00 2001 From: s487174 Date: Fri, 16 Jun 2023 06:07:56 +0200 Subject: [PATCH] Final v2 --- Wrzodak_Koszarek_Zadania.ipynb | 83 ++++++---------------------------- 1 file changed, 13 insertions(+), 70 deletions(-) diff --git a/Wrzodak_Koszarek_Zadania.ipynb b/Wrzodak_Koszarek_Zadania.ipynb index 8a232d4..dbb0934 100644 --- a/Wrzodak_Koszarek_Zadania.ipynb +++ b/Wrzodak_Koszarek_Zadania.ipynb @@ -334,19 +334,19 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 146, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Dominująca wartość własna (power iteration):\n", - "16.116843969807043\n", "Dominujący wektor własny:\n", - "[[0.107761 0.132408 0.157054]\n", - " [0.244037 0.299852 0.355666]\n", - " [0.380312 0.467295 0.554278]]\n" + "[[0.231970]\n", + " [0.525322]\n", + " [0.818674]]\n", + "Dominująca wartość własna (power iteration):\n", + "16.116843969807043\n" ] } ], @@ -357,10 +357,10 @@ " [4,5,6],\n", " [7,8,9]])\n", "\n", - "S = np.array([[1,1,1]])\n", + "S = np.array([[1], [1], [1]])\n", "\n", "def power_iteration(m, n, s):\n", - " #punkt startowy\n", + " #Punkt startowy\n", " st = s\n", " eigv = 0\n", " for i in range(n):\n", @@ -371,7 +371,7 @@ "\n", "def power_iteration_vec(m, n, s):\n", " tolerance = 1e-6\n", - " #punkt startowy\n", + " #Punkt startowy\n", " x = s\n", " for i in range(n): \n", " y = np.dot(m, x)\n", @@ -384,72 +384,15 @@ " x = x_new\n", " return x\n", "\n", - "y1 = power_iteration(A, 1000, A)\n", - "print(\"Dominująca wartość własna (power iteration):\")\n", + "y1 = power_iteration_vec(A, 1000, S)\n", + "print(\"Dominujący wektor własny:\")\n", "print(y1)\n", "\n", - "y2 = power_iteration_vec(A, 1000, A)\n", - "print(\"Dominujący wektor własny:\")\n", + "y2 = power_iteration(A, 1000, S)\n", + "print(\"Dominująca wartość własna (power iteration):\")\n", "print(y2)\n", - "\n", "\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Dominująca wartość własna:\n", - "16.116840810027913\n", - "Dominujący wektor własny:\n", - "[0.231970 0.525322 0.818674]\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "\n", - "# Definicja macierzy A\n", - "A = np.array([[1,2,3],\n", - " [4,5,6],\n", - " [7,8,9]])\n", - " \n", - "# Definicja wektora startowego\n", - "x = np.array([1, 1, 1])\n", - "\n", - "# Parametry iteracji\n", - "max_iterations = 1000\n", - "tolerance = 1e-6\n", - "\n", - "# Iteracyjne obliczanie dominującej wartości własnej i wektora własnego\n", - "for _ in range(max_iterations):\n", - " # Mnożenie macierzy przez wektor\n", - " y = np.dot(A, x)\n", - "\n", - " # Normalizacja wektora\n", - " x_new = y / np.linalg.norm(y)\n", - "\n", - " # Sprawdzenie warunku zbieżności\n", - " if np.linalg.norm(x - x_new) < tolerance:\n", - " break\n", - "\n", - " # Aktualizacja wektora\n", - " x = x_new\n", - "\n", - "# Obliczenie dominującej wartości własnej\n", - "eigenvalue = np.dot(np.dot(A, x), x) / np.dot(x, x)\n", - "\n", - "# Wyświetlenie wyników\n", - "print(\"Dominująca wartość własna:\")\n", - "print(eigenvalue)\n", - "print(\"Dominujący wektor własny:\")\n", - "print(x)\n" - ] } ], "metadata": {