Метод Ньютона для систем нелинейных уравнений.

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ย. 2024

ความคิดเห็น • 2

  • @tiimuur
    @tiimuur หลายเดือนก่อน +1

    Очень хорошее видео, спасибо

  • @OnTheWayToTheDirection
    @OnTheWayToTheDirection  4 หลายเดือนก่อน

    Код программы по поиску собственных значений:
    ```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})")
    ```