我尝试使用scipy.curve_fit或scipy.least_squares来实现如下函数
def f(x, C):
r = 0
for i in range( len(C) ) :
for j in range( len(C[i]) ):
r+= x[0]**j * x[1]**i * C[i][j]
return r
字符串
其中C
是长度定义的运行时间的列表的列表。代码的一个参数是类似[[1., 1.]]
或[[1., 1.], [1.]]
的东西,它定义了C
的形状。
我试着跟随this answer,但C
将是一个NxN矩阵,而curve_fit
不能很好地使用矩阵作为输入。我试图定义一个以x, *args
为参数的函数,但目前还没有成功。
我还尝试了直接使用least_squares
的另一个答案,但在这里我也遇到了一个障碍,那就是我事先不知道行的大小。
我觉得这两个答案的结合对我来说可以起作用,但我不能弄清楚。我想写一个函数,它的参数是C
的长度,C[i]
的长度列表,然后是C
的元素,但我不能写一个工作版本的代码。如果有人对如何做到这一点有一个清晰的理解,或有类似的问题,我会感谢任何帮助。
1条答案
按热度按时间92dk7w1h1#
由于这个问题最近有一些活动,我会回答它,因为我几天后解决了它。我用一个lambda函数解决了这个问题。
我把函数定义为
字符串
然后我只需要把最初的猜测拉平,我就可以自由调用了
型