我已经做了一个简单的示例,尝试添加两个函数(目前,最后要进行乘法运算,但是它们都不起作用,所以我决定尝试添加)。
def addFun(fun1,fun2):
fun = lambda x: fun1(x) + fun2(x)
return fun
d = [12,10]
B = 5
fun1 = lambda d,L: (d-L)**2
result1 = lambda L: 0
for i in range(0,len(d)):
func = lambda L: fun1(float(d[i]),L)
result1 = addFun(result1,func)
print(func(1))
print(result1(1))
那里的打印功能可以检查它是否正常工作(到目前为止还没有。所以理想情况下,对于d = 12应该发生的是(dL)^ 2是(12-L)^ 2。我将其添加到result1现在是(12-L)^ 2。然后在下一个循环中变成(10-L)^ 2。现在addFun函数应该将这两个加在一起,所以新的result1应该是 (12-L)^ 2 +(10-L)^ 2。然后,我用L代替1,答案应该是11 ^ 2 + 9 ^ 2 =202。但是事实并非如此。当我执行此操作时,得到的答案是162。最糟糕的是+号不会上下班;当我先输入10和12秒时,答案变为242。
我已经将其用于更简单的方程式,例如将x ^ 2与x ^ 3 e.t.c相加。但是有人知道为什么这在这里不起作用吗?