Код программы по поиску собственных значений: ```python import numpy as np import math # Выбрали начальное приближение: x = 3.6 y = 2.6 # Находим delt_X, delt_Y: delt = np.array([500,500]) # заранее инициализируем приращения tolerance = 0.0000000001 # желаемая точность i = 0 while max(delt) > tolerance: print("-"*40, f"iteration: {i}") # Уже для новых X и Y вычисляем приращения deltaX и delta Y: m1 = np.array([[4*x-y-5, -x], [1+3/x, -2*y]]) m2 = np.array([2*x**2 - x*y -5*x + 1, x + 3*math.log(x)-y**2])
# Основная формула: delt = - np.linalg.inv(m1) @ m2 # np.linalg.inv(m1) - обратная матрица print(f"delt_x: {delt[0]} delt_y: {delt[1]} ") # Корректируем значения: x += delt[0] y += delt[1] print(f"x: {round(x,4)},\ty: {round(y,4)} ") print(f"ERROR: {abs(max(delt))}") i += 1 #print("Решение:", f"({x}, {y})") ```
Очень хорошее видео, спасибо
Код программы по поиску собственных значений:
```python
import numpy as np
import math
# Выбрали начальное приближение:
x = 3.6
y = 2.6
# Находим delt_X, delt_Y:
delt = np.array([500,500]) # заранее инициализируем приращения
tolerance = 0.0000000001 # желаемая точность
i = 0
while max(delt) > tolerance:
print("-"*40, f"iteration: {i}")
# Уже для новых X и Y вычисляем приращения deltaX и delta Y:
m1 = np.array([[4*x-y-5, -x],
[1+3/x, -2*y]])
m2 = np.array([2*x**2 - x*y -5*x + 1,
x + 3*math.log(x)-y**2])
# Основная формула:
delt = - np.linalg.inv(m1) @ m2 # np.linalg.inv(m1) - обратная матрица
print(f"delt_x: {delt[0]}
delt_y: {delt[1]}
")
# Корректируем значения:
x += delt[0]
y += delt[1]
print(f"x: {round(x,4)},\ty: {round(y,4)}
")
print(f"ERROR: {abs(max(delt))}")
i += 1
#print("Решение:", f"({x}, {y})")
```