Как использовать l oop (любой), чтобы поместить выходные данные уравнения в то же уравнение и получить новое значение для определенного набора значений в python? - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу использовать уравнение {Xn=2.6*X*(1-X)}, положить начальное значение X как 0,4 и получить 1-й 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)

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Ничего из этого не имеет смысла, если только вы не предполагаете, что Python может выполнять вычисления в стиле пролога c, что невозможно,

Python не сложный язык: у вас есть выражения, которые оценивается и привязывается к переменной. Похоже, что вы хотите здесь, чтобы повторить по вашему уравнению: применить его к начальному значению, а затем повторно применить к его собственному результату.

AFAIK Python не имеет ни iterate, ни unfold как часть своей стандартной библиотеки, но вы можете достаточно легко создать генератор для определенного c экземпляра итерации:

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)
0 голосов
/ 12 февраля 2020

Вы можете сделать это с for l oop

x = 0.4
for i in range(50):
    x = 2.6 * x * (1 - x)
    print(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...