Добавление двух функций / умножение двух функций дает неправильный ответ python - PullRequest
0 голосов
/ 13 ноября 2018

Я сделал простой пример, чтобы попытаться добавить две функции (на данный момент я хочу умножить в конце, но ни одна из них не работает, поэтому я решил попробовать добавить).

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))

Функции печати предназначены для проверки, работает ли он или нет (пока это не так. В идеале, что должно произойти, (dL) ^ 2, для d = 12 - (12-L) ^ 2. Я добавляю это к result1 который теперь (12-L) ^ 2. Затем в следующем цикле он становится (10-L) ^ 2. Теперь функция addFun должна сложить эти два вместе, поэтому новый результат1 должен быть (12-L) ^ 2 + (10-L) ^ 2. Затем я заменяю L на 1, ответ должен быть 11 ^ 2 + 9 ^ 2 = 202. Однако это не так. Когда я проверяю это, получающийся ответ - 162. Худшим является то, что знак + не коммутирует; когда я введу 10 первых и 12 секунд, ответ будет 242.

Я работал с более простыми уравнениями, такими как добавление x ^ 2 с x ^ 3 и т. Д. Но кто-нибудь знает, почему это не работает здесь?

...