Scipy fsolve 求解一个有特定需求的方程

Scipy fsolve solving an equation with specific demand

下面的代码示例包含一个等式,它使用 scipy.fsolve 找到 x 轴的零,

1- 如何 运行 fsolve 并要求在特定区间内搜索 f.ex。 -75 和 75?

2- 有时候需求是在结果变成2000的时候求x值,fsolve怎么实现?

from scipy.optimize import fsolve

def func(x, a, b, c):
    result = a * x ** 2 + b * x + c
    return  result

result = fsolve(func, 0.01, args = (1, 2, 3))
print(result)


import matplotlib.pyplot as plt
import numpy as np

# Data for plotting
x = np.arange(-100.0, 100.0, 0.1)
fig, ax = plt.subplots()
ax.plot(x, func(x, 1, 2, 3))

ax.set(xlabel='x', ylabel='result',
       title='Just for illustration')
ax.grid()
plt.show()

以图形方式显示。

  1. fsolve 不支持边界。如果您有本地化间隔,请首选 brentq。

  2. 只求lambda x, a, b, c: func(x, a, b c) -2000

    的一个根