scipy.optimize.

fsolve#

scipy.optimize.fsolve(функция, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, полоса=None, epsfcn=None, фактор=100, диаг=None)[источник]#

Найти корни функции.

Возвращает корни (нелинейных) уравнений, определённых func(x) = 0 при заданной начальной оценке.

Параметры:
функцияcallable f(x, *args)

Функция, которая принимает хотя бы один (возможно, векторный) аргумент и возвращает значение той же длины.

x0ndarray

Начальная оценка для корней func(x) = 0.

argsкортеж, необязательный

Любые дополнительные аргументы для функция.

fprimecallable f(x, *args), опционально

Функция для вычисления матрицы Якоби от функция с производными по строкам. По умолчанию, Якобиан будет оценён.

full_outputbool, необязательно

Если True, возвращает дополнительные выходные данные.

col_derivbool, необязательно

Указать, вычисляет ли функция Якоби производные по столбцам (быстрее, потому что нет операции транспонирования).

xtolfloat, опционально

Вычисление завершится, если относительная ошибка между двумя последовательными итерациями не превышает xtol.

maxfevint, необязательный

Максимальное количество вызовов функции. Если ноль, то 100*(N+1) является максимумом, где N — количество элементов в x0.

полосакортеж, необязательный

Если установлено в двухэлементную последовательность, содержащую количество под- и наддиагоналей в полосе матрицы Якоби, матрица Якоби считается ленточной (только для fprime=None).

epsfcnfloat, опционально

Подходящая длина шага для аппроксимации Якобиана методом прямой разности (для fprime=None). Если epsfcn если меньше машинной точности, предполагается, что относительные ошибки в функциях имеют порядок машинной точности.

факторfloat, опционально

Параметр, определяющий начальную границу шага (factor * || diag * x||). Должно быть в интервале (0.1, 100).

диагsequence, optional

N положительных элементов, которые служат масштабными коэффициентами для переменных.

Возвращает:
xndarray

Решение (или результат последней итерации для неудачного вызова).

infodictdict

Словарь дополнительных выходных данных с ключами:

nfev

количество вызовов функции

njev

количество вызовов Якобиана

fvec

функция, вычисленная на выходе

fjac

ортогональная матрица, q, полученная QR- разложением конечной приближенной матрицы Якоби, хранимая по столбцам

r

верхняя треугольная матрица, полученная QR-разложением той же матрицы

qtf

вектор (transpose(q) * fvec)

ierint

Целочисленный флаг. Установлен в 1, если решение найдено, в противном случае см. mesg для получения дополнительной информации.

mesgstr

Если решение не найдено, mesg подробно описывает причину сбоя.

Смотрите также

root

Интерфейс к алгоритмам нахождения корней для многомерных функций. См. method='hybr' в частности.

Примечания

fsolve является обёрткой вокруг алгоритмов hybrd и hybrj из MINPACK.

Примеры

Найти решение системы уравнений: x0*cos(x1) = 4,  x1*x0 - x1 = 5.

>>> import numpy as np
>>> from scipy.optimize import fsolve
>>> def func(x):
...     return [x[0] * np.cos(x[1]) - 4,
...             x[1] * x[0] - x[1] - 5]
>>> root = fsolve(func, [1, 1])
>>> root
array([6.50409711, 0.90841421])
>>> np.isclose(func(root), [0.0, 0.0])  # func(root) should be almost 0.0.
array([ True,  True])