Python:基于较小函数的迭代构造较大的三角函数

问题描述 投票:-2回答:1

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 math trigonometry
1个回答
1
投票

我建议您使自己熟悉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
© www.soinside.com 2019 - 2024. All rights reserved.