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()
以图形方式显示。
fsolve 不支持边界。如果您有本地化间隔,请首选 brentq。
只求lambda x, a, b, c: func(x, a, b c) -2000
的一个根
下面的代码示例包含一个等式,它使用 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()
以图形方式显示。
fsolve 不支持边界。如果您有本地化间隔,请首选 brentq。
只求
的一个根lambda x, a, b, c: func(x, a, b c) -2000