import numpy as np # Вектор функций F(x, y, z) def F(X): x, y, z = X return np.array([ x**2 + x - y*z - 0.1, -3*y + y**2 - x*z + 0.2, 2*z + z**2 + x*y - 0.3 ], dtype=float) # Базовое отображение φ0 (без релаксации) def phi0(X): x, y, z = X return np.array([ -x**2 + y*z + 0.1, (y**2 - x*z + 0.2) / 3.0, (-z**2 - x*y + 0.3) / 2.0 ], dtype=float) # Релаксированное отображение φ = X + λ(φ0(X) - X) def phi(X, lam=0.24): return X + lam * (phi0(X) - X) def simple_iterations(x0, eps=1e-6, lam=0.24, max_iter=100): X = np.array(x0, dtype=float) print("Метод простых итераций (λ = %.2f)" % lam) print("k\t x_k\t\t y_k\t\t z_k\t\tmax|F_i(x_k)|") for k in range(1, max_iter + 1): X_new = phi(X, lam) r = F(X_new) r_max = np.max(np.abs(r)) print(f"{k:2d}\t{X_new[0]: .8f}\t{X_new[1]: .8f}\t" f"{X_new[2]: .8f}\t{r_max: .2e}") if r_max < eps: print("Достигнута точность ε =", eps) break X = X_new return X_new # Старт из аналитического приближения x0 = [0.10, 0.07, 0.15] root_iter = simple_iterations(x0) print("\nИтог (метод простых итераций):") print("x =", root_iter[0]) print("y =", root_iter[1]) print("z =", root_iter[2]) print("Невязки F(x):", F(root_iter))