Hello
我具有函数y = sin(x * b(i)+ a(i))。我想创建一个新函数f,该函数是该y函数的n个第一次迭代的乘积,其中i为迭代器。
f = y(I = 1)* y(I = 2)* y(I = 3)
如何在python中创建这样的f?
请注意,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,然后通过I迭代获得y函数乘积的f函数。然后,我可以使用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)
我建议您使自己熟悉Python语法,这样您就可以发布一个示例来说明正在尝试运行的代码,或者至少显示您遇到的错误。您发布的代码无法运行,因为它不是Python代码。
拼写/大写/缩进全部计算。
我无法完全遵循您的要求,但这已经尽我所能了,您应该可以从这里进行调整。
def a(i):
if i/3 = int(i/3):
out = 5 * i
else
out = 0
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