我想使用<代码>fsolve,在数字上找到一条非线性超标的根基。
下面的法典做了这项工作。
import numpy as np
from scipy.optimize import fsolve
import matplotlib.pyplot as plt
kappa = 0.1
tau = 90
def equation(x, * parameters):
kappa,tau = parameters
return -x + kappa * np.sin(-tau*x)
x = np.linspace(-0.5,0.5, 35)
roots = fsolve(equation,x, (kappa,tau))
x_2 = np.linspace(-1.5,1.5,1500)
plt.plot(x_2 ,x_2 )
plt.plot(x_2 , kappa*np.sin(-x_2 *tau))
plt.scatter(x, roots)
plt.show()
我可以将以下两条图表编成图,对解决办法进行双轨制:f1(x) = x
和f2(x) = k*sin(-x*tau)
,我也列入该守则。 <代码>fsolve向我提供了一些错误的答复,但没有提出任何错误或趋同问题。
问题在于,我要将不同条码(<>kappa>/code>和tau
的程序自动化,而无需我核实哪些答案是错误的,哪些是正确的。 但是,用错误的答复作为产出,我无法使用这种方法。 是否有其他方法或选择,我可以使用,坐在安全方面?