如何用 SciPy 求解这个方程两边都包括 f(x)

问题描述

enter image description here

我怎样才能用 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))