基于数据帧的newton-raphson方法

2024-04-23 13:39:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scipy中的newton()函数来解一个特定的非线性方程,它只适用于一个值

 def iv(p):
   I=p
   diode=Il-(Io*(np.exp((v+(I*RS))/a)-1))-((v+(I*RS))/Rsh)-I

   return diode

 I=[opt.newton(iv,2)for v in np.arange(0,44.5,0.1)]

我正在尝试对8760个值(I,Io,RS,a,Rsh)执行相同的操作,这些值是单独的数据帧

^{pr2}$

我得到了一个索引的错误错误:索引输出边界
我应该得到8760*445的I值

Traceback (most recent call last):
File "<ipython-input-176-18d774ef131a>", line 5, in <module>
elec()
File "<ipython-input-174-996ccd566a20>", line 18, in elec
I[i]=[opt.newton(power,2)for v in np.arange(0,44.5,0.1)]
File "C:\Python27\lib\site-packages\scipy\optimize\zeros.py", line 143, in newton
q0 = func(*((p0,) + args))
File "<ipython-input-174-996ccd566a20>", line 14, in power
diode_east[i]=IL_east[0][i]-(Io_east[0][i]*(np.exp((v+(I*RS_ref[i]))/a_east[0][i]-1)))-   ((v+(I*RS_ref[i]))/Rsh_east[0][i])-I
File "C:\Python27\lib\site-packages\pandas\core\series.py", line 613, in __getitem__
return self.index.get_value(self, key)
File "C:\Python27\lib\site-packages\pandas\tseries\index.py", line 1132, in get_value
return Index.get_value(self, series, key)
File "C:\Python27\lib\site-packages\pandas\core\index.py", line 769, in get_value
return tslib.get_value_box(series, key)
File "tslib.pyx", line 364, in pandas.tslib.get_value_box (pandas\tslib.c:8228)
File "tslib.pyx", line 379, in pandas.tslib.get_value_box (pandas\tslib.c:8075)
IndexError: index out of bounds

<type 'exceptions.IndexError'>

Tags: inpandasgetreturnvaluelibnpline