首页 > 解决方案 > 如何使用循环(任何)将方程的输出放在同一个方程中并为python中的特定值集获取新值?

问题描述

我想使用方程式{Xn=2.6*X*(1-X)}将 X 的初始值设为 0.4 并获得第一个 Xn 并将其用作 X 在同一个方程式中,这样获得前 50 个值。

这是我尝试过的:

x=float(input("enter the initial guess:"))
xn=2.6*x*(1-x)
print(xn)
for x in xn:
    print(xn)

count=0
print(2.6*x*(1-x))
while x>=0.4:
    count+=x
    print(count)

标签: pythonloopsequation

解决方案


除非您假设 Python 可以进行 prolog 样式的符号评估,否则这一切都没有意义,而它不能。

Python 不是一门复杂的语言:你有表达式,它们被评估并绑定到变量。看起来您想要在这里迭代您的方程式:将其应用于初始值,然后将其重新应用于自己的结果。

AFAIK Python既没有iterate也没有unfold作为其标准库的一部分,但是您可以轻松地为特定的迭代实例创建生成器:

def the_thing(x=0.4):
    while True:
        # swap if you don't want the initial value to be returned
        yield x
        x = 2.6 * x * (1-x)

然后,您可以迭代其中的一部分:

for x in itertools.islice(the_thing(), 50):
    print(x)

推荐阅读