Привет
У меня есть функция y = sin (x * b (i) + a (i)). Я хочу создать новую функцию f, которая является продуктом n первой итерации этой y-функции с i в качестве итератора.
f = y (I = 1) * y (I = 2) * y (I = 3)
Как создать такой f в python?
Обратите внимание, что b (i) и a (i) не такие простые, как, например, b = I ^ 2 и a = 3i. в них есть операторы if, поэтому, насколько я понимаю, они должны быть вне моей функции y. Допустим, они:
b: if i%2 == 0:
b = I^2+2
else
b = 3
a: if i/3 = int(I/3):
b = 5i
else
b = 0
Цель в том, чтобы я мог просто изменить переменную I, а затем получить f-функцию с произведением y-функций с I итерациями. Затем я могу использовать f-функцию, чтобы найти новые значения для x.
(надеюсь, что мой непродвижущийся имеет смысл)
** РЕДАКТИРОВАТЬ: Этот код решает моя проблема: **
import math
def a(i):
if i/3 == int(i/3):
out = 5 * i
else:
out = 1
return out
def b(i):
if i%2 == 0:
out = (i^2)+2
else:
out = 3
return out
def y(x, i):
return x * b(i) + a(i)
def f(x, i):
accum = 1
for iterations in range(i):
accum *= y(x, iterations + 1)
return accum
print f(3,5)