diff --git a/numeric_lab1/.idea/.gitignore b/numeric_lab1/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/numeric_lab1/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/numeric_lab1/.idea/inspectionProfiles/Project_Default.xml b/numeric_lab1/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..3dce9c6 --- /dev/null +++ b/numeric_lab1/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/numeric_lab1/.idea/inspectionProfiles/profiles_settings.xml b/numeric_lab1/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/numeric_lab1/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/numeric_lab1/.idea/misc.xml b/numeric_lab1/.idea/misc.xml new file mode 100644 index 0000000..a2e120d --- /dev/null +++ b/numeric_lab1/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/numeric_lab1/.idea/modules.xml b/numeric_lab1/.idea/modules.xml new file mode 100644 index 0000000..57d773f --- /dev/null +++ b/numeric_lab1/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/numeric_lab1/.idea/numeric_lab1.iml b/numeric_lab1/.idea/numeric_lab1.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/numeric_lab1/.idea/numeric_lab1.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/numeric_lab1/matrix.py b/numeric_lab1/matrix.py new file mode 100644 index 0000000..10a5b94 --- /dev/null +++ b/numeric_lab1/matrix.py @@ -0,0 +1,67 @@ +def main(): + matrix = [[8.3, 3.2, 4.1, 1.9], + [3.92, 8.45, 7.2, 2.46], + [3.77, 7.79, 8.04, 2.28], + [2.21, 3.07, 1.69, 6.69]] + matrix_l = [[0 for _ in range(4)] for _ in range(4)] + matrix_u = [[0 for _ in range(4)] for _ in range(4)] + matrix_b = [-10.23, 12.21, 15.03, -8.35] + matrix_y = [0, 0, 0, 0] + matrix_x = [0, 0, 0, 0] + + + for k in range(0, 4): + for i in range(k, 4): + matrix_l[i][k] = matrix[i][k] - sum([matrix_l[i][m] * matrix_u[m][k] for m in range(0, k - 1)]) + for j in range(k + 1, 4): + matrix_u[k][j] = (matrix[k][j] - sum([matrix_l[k][m] * matrix_u[m][j] for m in + range(0, k - 1)])) / matrix_l[k][k] + + matrix_y[0] = matrix_b[0] / matrix_l[0][0] + for i in range(1, 4): + matrix_y[i] = (matrix_b[i] - sum([matrix_l[i][m] * matrix_y[m] for m in range(0, k - 1)])) / matrix_l[i][i] + + matrix_x[3] = matrix_y[3] + for i in reversed(range(0, 3)): + matrix_x[i] = (matrix_y[i] - sum([matrix_u[i][m] * matrix_x[m] for m in range(i + 1, 4)])) / matrix_l[i][i] + + + return matrix_x + + def read_input(): + matrix_a = [[]] + matrix_b = [[]] + for i in range(4): + matrix_b[i] = float(input("Enter element for matrix B: ")) + for j in range(4): + matrix_a[i][j] = float(input("Enter element for matrix A: ")) + + + +if __name__ == '__main__': + matrix_x = main() + k = 20 + p = 21 + s = 0.02 * k + B = 0.02 * p + + a = [[8.3, 2.62 + s, 4.1, 1.9], + [3.92, 8.45, 7.78 - s, 2.46], + [3.77, 7.21 + s, 8.04, 2.28], + [2.21, 3.65 - s, 1.69, 6.69]] + + b = [-10.65 + B, 12.21, 15.45 - B, -8.35] + + print(matrix_x) + print(a) + + sums = [] + for equation in a: + sum = 0 + for iterator in range(len(equation)): + sum += equation[iterator] * matrix_x[iterator] + sums.append(sum) + print(sums) + print(b) + +