Python解方程组 scipy.optimize.fsolve()函数 求解带有循环求和的方程式
qq_53060848:
请教大神,这段代码没看太懂,i并没有实参传入,但在函数中进行了定义;第二个问题是,而a/b作为列表不是放在func中传入而是放在params中传入函数,这个是怎么考虑的啊?
def func(i, params):
x, y = i[0], i[1]
a, b = params
list_e1 = [x * a[j][0] + y * b[j][0] - 5 for j in range(2)]
list_e2 = [x * a[j][1] - y * b[j][1] - 2 for j in range(2)]
return [ # 这里写要求解的方程组式子,变成等于0的形式
sum(list_e1),
sum(list_e2)
]
if __name__ == '__main__':
a = [[3, 4], [3, 4]]
b = [[1, 3], [4, 1]]
params = [a, b]
r = scipy.optimize.fsolve(func, [0, 0], args=params)
print(r)
|