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 положительных элементов, которые служат масштабными коэффициентами для переменных.
- функцияcallable
- Возвращает:
- 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])