Нелинейный поиск корняPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Нелинейный поиск корня

Сообщение Anonymous »


Мне нужен стабильный нелинейный корень для функции, которая принимает два входных параметра и возвращает два нелинейных вывода в Python без библиотек «черного ящика»

Я обнаружил, что алгоритм Ньютона-Рафсона полезен, но он не всегда сходится. Затем я прочитал о BFGS, но не знал, как написать этот алгоритм с двумя входными и двумя выходными функциями, как я это сделал в Ньютон Рафсон
def root_finding(f, x0, y0, eps=1e-6, max_iter=100): """ Находит корень функции с двумя входами и двумя выходами, используя метод Ньютона-Рафсона. Параметры: f (вызываемая): функция, для которой нужно найти корень; должен принимать два входных параметра и возвращать массив из двух элементов x0 (float): начальное предположение для первого ввода y0 (float): начальное предположение для второго входа. eps (float, необязательно): допуск сходимости; итерации прекращаются, когда норма приращения меньше eps max_iter (int, необязательно): максимальное количество итераций Возврат: кортеж: корень (x, y) """ х = х0 у = у0 для меня в диапазоне (1): # Вычисляем функцию и ее якобиан при текущем приближении fxy = np.array(f(x, y)) печать (fxy) J = np.array([ [f(x + eps, y)[0] - fxy[0], f(x, y + eps)[0] - fxy[0]], [f(x + eps, y)[1] - fxy[1], f(x, y + eps)[1] - fxy[1]] ]) / eps печать (Дж) # Вычисляем приращение и обновляем предположение если np.linalg.det(J)==0: print('Матрица сингулярна') вернуть Нет, Нет дельта = np.linalg.solve(J, -fxy) х += дельта[0] у += дельта[1] #Проверяем сходимость если np.linalg.norm(дельта)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Нелинейный анализ временной истории с шарнирами в качестве нулевого элемента в opensee
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Нелинейный анализ временной истории с шарнирами в качестве нулевого элемента в OpenSees
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • OpenCV, проблема коррекции перспективы, нелинейный
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • OpenCV, проблема коррекции перспективы, нелинейный
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • OpenCV, проблема коррекции перспективы, нелинейный
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»