问题描述
我怎样才能用 Scipy 解这个方程?两边都包含“y”。
例如,x = 1 到 10 的范围。
编辑:我为上面的方程尝试了“scipy.optimize.root”函数,它有效,但它不适用于 belove 方程:
from scipy.optimize import root
import numpy as np
v_arr = np.linspace(0,2,100)
J_sc = 0.0006
J_0 = 4.07
KT_q = 0.026
Rs = 5
Rsh = 1000
def function(I_L,v_arr):
return ( J_sc - J_0*exp((v_arr + I_L*Rs)/KT_q) - (v_arr + I_L*Rs)/Rsh - I_L)
result = root(function,np.zeros(len(v_arr)),v_arr )
print ("answer {}".format(result.x))
并且输出为零:answer [0. 0. 0. 0. 0. 0. .... 0. 0. 0. 0. 0. 0. 0.]
解决方法
它对你有用吗?
from scipy.optimize import root
import numpy as np
def function(y,x):
return 1-2*np.exp((2*x+3*y)/5.0) - (1+2*y)/3.0 - y
_xArr = np.arange(1,10)
result = root(function,np.zeros(len(_xArr)),_xArr )
print ("answer {}".format(result.x))