From 95c00708408c37fe1fe588a53b8b163bfa16d56c Mon Sep 17 00:00:00 2001
From: Karim Ziyatdinov <408659@niuitmo.ru>
Date: Tue, 3 Jun 2025 12:07:00 +0300
Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?=
=?UTF-8?q?=D0=B2=D1=81=D0=B5=20=D0=BB=D0=B0=D0=B1=D1=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
"\320\2403213/ziyatdinov_408659/lab1/main.py" | 157 ++++++++++
...0\253\320\247\320\234\320\220\320\242.pdf" | Bin 0 -> 564124 bytes
.../ziyatdinov_408659/lab2/lab2(1_method).py" | 290 ++++++++++++++++++
...42_\320\233\320\220\320\221\320\220_2.pdf" | Bin 0 -> 1015137 bytes
.../ziyatdinov_408659/lab3/Vich_Mat_3.py" | 263 ++++++++++++++++
...13\321\207_\320\274\320\260\321\202_3.pdf" | Bin 0 -> 1056907 bytes
.../ziyatdinov_408659/lab4/Vich_mat_4.py" | 264 ++++++++++++++++
...13\321\207_\320\274\320\260\321\202_4.pdf" | Bin 0 -> 808989 bytes
.../ziyatdinov_408659/lab5/Vich_mat_5.py" | 223 ++++++++++++++
...13\321\207_\320\274\320\260\321\202_5.pdf" | Bin 0 -> 792398 bytes
.../ziyatdinov_408659/lab6/Vich_mat_6.py" | 155 ++++++++++
...13\321\207_\320\274\320\260\321\202_6.pdf" | Bin 0 -> 490790 bytes
12 files changed, 1352 insertions(+)
create mode 100644 "\320\2403213/ziyatdinov_408659/lab1/main.py"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab1/reports/\320\233\320\220\320\221\320\2201_\320\222\320\253\320\247\320\234\320\220\320\242.pdf"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab2/lab2(1_method).py"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab2/reports/\320\222\320\253\320\247_\320\234\320\220\320\242_\320\233\320\220\320\221\320\220_2.pdf"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab3/Vich_Mat_3.py"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab3/reports/\320\222\321\213\321\207_\320\274\320\260\321\202_3.pdf"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab4/Vich_mat_4.py"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab4/reports/\320\222\321\213\321\207_\320\274\320\260\321\202_4.pdf"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab5/Vich_mat_5.py"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab5/reports/\320\222\321\213\321\207_\320\274\320\260\321\202_5.pdf"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab6/Vich_mat_6.py"
create mode 100644 "\320\2403213/ziyatdinov_408659/lab6/reports/\320\222\321\213\321\207_\320\274\320\260\321\202_6.pdf"
diff --git "a/\320\2403213/ziyatdinov_408659/lab1/main.py" "b/\320\2403213/ziyatdinov_408659/lab1/main.py"
new file mode 100644
index 0000000..a250fa4
--- /dev/null
+++ "b/\320\2403213/ziyatdinov_408659/lab1/main.py"
@@ -0,0 +1,157 @@
+import sys
+import numpy as np
+
+def random_matrix():
+ n = int(input("Введите размер (n): "))
+ matrix = np.random.randint(-1000, 1000, (n, n))
+ d = np.random.randint(-1000, 1000, n)
+ return n, matrix, d
+
+
+def create_matrix():
+ n = int(input("Введите размер (n): "))
+
+ print("Введите матрицу (n на n):")
+ matrix = []
+ for i in range(n):
+ while True:
+ row = input().split()
+ if len(row) == n:
+ try:
+ matrix.append([float(x) for x in row])
+ break
+ except ValueError:
+ pass
+ print(f"Введите пж {n} чисел")
+ print("Введите вектор b:")
+ while True:
+ b = input().split()
+ if len(b) == n:
+ try:
+ b = [float(x) for x in b]
+ break
+ except ValueError:
+ pass
+ print(f"Введите пж {n} чисел")
+
+ return n, matrix, b
+
+
+def perebor_strok(lst):
+ if len(lst) <= 1:
+ yield lst
+ else:
+ for i in range(len(lst)):
+ first = lst[i]
+ rest = lst[:i] + lst[i + 1:]
+ for p in perebor_strok(rest):
+ yield [first] + p
+
+
+def change_stroke(A, b):
+ n = len(A)
+ indices = list(range(n))
+
+ for el_perebor in perebor_strok(indices):
+ val = True
+ for i in range(n):
+ diagonal = abs(A[el_perebor[i]][i])
+ nodiagonal = sum(abs(A[el_perebor[i]][j]) for j in range(n) if j != i)
+ if diagonal < nodiagonal:
+ val = False
+ break
+
+ if val:
+ new_A = [A[idx] for idx in el_perebor]
+ new_b = [b[idx] for idx in el_perebor]
+ print("Найдена перестановка строк для диагонального преобладания:")
+ print("Перестановка индексов:", el_perebor)
+ return new_A, new_b
+
+ print("Перестановкой строк добиться диагонального преобладания не удалось.")
+ return A, b
+
+
+def displaying(matrix):
+ for row in matrix:
+ print(*row)
+
+
+def create_C_d(A, b):
+ n = len(A)
+ C = [[0.0]*n for _ in range(n)]
+ d = [0.0]*n
+
+ for i in range(n):
+ d[i] = b[i] / A[i][i]
+ for j in range(n):
+ if i == j:
+ C[i][j] = 0.0
+ else:
+ C[i][j] = -A[i][j] / A[i][i]
+ return C, d
+
+
+def matrix_norm(C):
+ return max(sum(abs(x) for x in row) for row in C)
+
+
+def gaussSeidel(C, d, eps, max_iter):
+ n = len(C)
+ old = d
+
+ for k in range(max_iter):
+ new = old[:] # копируем список
+
+ for i in range(n):
+ s1 = sum(C[i][j] * new[j] for j in range(i))
+ s2 = sum(C[i][j] * old[j] for j in range(i + 1, n))
+ new[i] = d[i] + s1 + s2
+
+ diff = max(abs(new[i] - old[i]) for i in range(n))
+ print(f"Погрешность для {k + 1}ой итерации:", diff)
+ if diff < eps:
+ return new, k + 1
+
+ old = new
+
+ return old, max_iter
+
+
+def main():
+ mode = input("Выберите источник ввода (1 - консоль, 2 - файл): ")
+ if mode.strip() == "2":
+ filename = input("Введите имя файла: ")
+ sys.stdin = open(filename, "r", encoding="utf-8")
+
+ n, A, b = random_matrix()
+ displaying(A)
+ # n, A, b = create_matrix()
+
+ A, b = change_stroke(A, b)
+ C, d = create_C_d(A, b)
+
+ print("матрица С")
+ displaying(C)
+
+ norma = matrix_norm(C)
+ print("Норма матрицы C (по строкам) =", norma)
+ if norma < 1:
+ print("Условие ||C|| < 1 выполняется")
+ else:
+ print("Условие ||C|| < 1 не выполняется")
+
+ eps_str = input("Введите точность: ")
+ eps = float(eps_str)
+ max_iter_str = input("Введите максимальное число итераций: ")
+ max_iter = int(max_iter_str)
+
+ x, k = gaussSeidel(C, d, eps, max_iter)
+
+ print("Результат решения системы:")
+ for i in range(n):
+ print(f"x[{i+1}] =", x[i])
+ print("Выполнено итераций:", k)
+
+
+main()
diff --git "a/\320\2403213/ziyatdinov_408659/lab1/reports/\320\233\320\220\320\221\320\2201_\320\222\320\253\320\247\320\234\320\220\320\242.pdf" "b/\320\2403213/ziyatdinov_408659/lab1/reports/\320\233\320\220\320\221\320\2201_\320\222\320\253\320\247\320\234\320\220\320\242.pdf"
new file mode 100644
index 0000000000000000000000000000000000000000..e9d6d66f39c58ec30de0425a6388f2f57ed6d207
GIT binary patch
literal 564124
zcmY(pW0Yjewl-Y0-Q_OZw#_ah%eL8NyUVt1+vu`w+s0RW-*fJF-;qCZWaJua&6smO
zh!sJqAR
UJ$e)l%)`HjGJd4B(GAQ(0`sfPqY9X
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 btMb471_G;UnSWVLGfC*-j-qB%ODg
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