python里用fsolve解非线性方程的问题

方程组定义

def func(a):
    total=len(a)
    aa=[0]*total
    for i in range(0,total)
        for j in range(0,total):
            if i+j <= p :
                aa[i]+=a[j]*a[i+j]
            else:
                break
    return aa

尝试了一下print(func[1,2,1]),结果是[6,4,1]。
但是用fsolve(func,[6,4,1])结果就不是[1,2,1],请问这是为什么啊?应该怎么改呢?谢谢大家!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^