# Untitled

Dec 12th, 2021
832
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. from math import tan, fabs, cos, sin
2.
3.
4. def first(x):
5.     # return 3 * x1**2 - x1 + x2**2 - 1
6.     # return 2*x1**2 - x1*x2 - 5*x1 + 1
7.     return cos(x) + 2
8.
9.
10. def second(x):
11.     # return x2 - tan(x1)
12.     # return x1 + 3*log10(x1) - x2**2
13.     return sin(x) + 2
14.
15.
16. def is_continue(x1, old_x1, x2, old_x2, eps):
17.     return fabs(x1 - old_x1) > eps or (fabs(x2 - old_x2)) > eps
18.
19.
20. def simple(system, eps=0.01):
21.     new_system = [lambda x1, x2: (1 - x2**2) / (3*x1 - 1), lambda x: tan(x)]
22.     x1 = -0.5
23.     old_x1 = 0
24.     x2 = -0.5
25.     old_x2 = 0
26.     pribl = [x1, x2]
27.
28.     iters = 0
29.     while is_continue(x1, old_x1, x2, old_x2, eps):
30.         old_x1 = x1
31.         old_x2 = x2
32.         x1 = new_system[0](old_x2)
33.         x2 = new_system[1](old_x1)
34.         # print(x1, x2)
35.         iters += 1
36.     print("Начальные приближения: ", pribl)
37.     print("\nИтераций: ", iters)
38.     return [x1, x2]
39.
40.
41. def first_center(y2, y0, h):
42.     return (y2 - y0) / (2 * h)
43.
44. def newton(system, eps=0.01):
45.     x1 = 1.5
46.     old_x1 = 0
47.     x2 = 2.5
48.     old_x2 = 0
49.     pribl = [x1, x2]
50.
51.     iters = 0
52.     t = 0
53.     while is_continue(x1, old_x1, x2, old_x2, eps) and t != 2:
54.         t += 1
55.         old_x1 = x1
56.         old_x2 = x2
57.         # delta_x1 = (-system[1](old_x1) + system[0](old_x2)) / ((-1/(cos(old_x1)**2)) - 6*old_x2 - 1)
58.         # delta_x2 = -system[0](old_x1, old_x2) - (6*old_x2 - 1) * delta_x1
59.         delta_x1 = (-system[1](old_x1) + system[0](old_x2))
60.         delta_x2 =
61.         x1 = old_x1 + delta_x1
62.         x2 = old_x2 + delta_x2
63.         # print(x1, x2)
64.         iters += 1
65.     print("Начальные приближения: ", pribl)
66.     print("\nИтераций: ", iters)
67.     return [x1, x2]
68.
69. system = [first, second]
70. eps = 0.0001
71. # print("Вариант - 4\n")
72. # print("Точность: ", eps)
73.
74. # print("\nМетод простой итерации: ")
75. # ans = simple(system, eps)
76. # print("Ответ: ", ans)
77. # print("Проверка:")
78. # print("3 * x1**2 - x1 + x2**2 - 1 = {}\nx2 - tg(x1) = {}".format(system[0](ans[0], ans[1]), system[1](ans[0], ans[1])))
79.
80. print("\nМетод Ньютона: ")
81. ans = newton(system, eps)
82. print("Ответ: ", ans)
83. print("Проверка:")
84. print("3 * x1**2 - x1 + x2**2 - 1 = {}\nx2 - tg(x1) = {}".format(system[0](ans[0], ans[1]), system[1](ans[0], ans[1])))