алгоритм итерации с фиксированной точкой - PullRequest
0 голосов
/ 02 декабря 2010

Меня просят написать программу для решения этого уравнения (x ^ 3 + x -1 = 0) с использованием итерации с фиксированной точкой.

Что такое алгоритм для итерации с фиксированной запятой? Есть ли в Python пример кода с фиксированной точкой? (не функция из каких-либо модулей, а код с алгоритмами)

Спасибо

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Сначала прочитайте это: Итерация с фиксированной точкой: Приложения

Я выбрал метод Ньютона.

Теперь, если вы хотите узнать о функциях генератора, вы можетеопределите функцию генератора и создайте экземпляр объекта генератора следующим образом

def newtons_method(n):
    n = float(n)  #Force float arithmetic
    nPlusOne = n - (pow(n,3) + n - 1)/(3*pow(n,2) +1)
    while 1:
        yield nPlusOne
        n = nPlusOne
        nPlusOne = n - (pow(n,3) + n - 1)/(3*pow(n,2) +1)

approxAnswer = newtons_method(1.0)   #1.0 can be any initial guess...

Тогда вы можете получить последовательно лучшие приближения, вызвав:

approxAnswer.next()

см .: PEP 255 или Классы (Генераторы) - Python v2.7 для получения дополнительной информации о Генераторах

Например

approx1 = approxAnswer.next()
approx2 = approxAnswer.next()

Или еще лучше использовать цикл!

Что касается принятия решения, когда ваше приближение достаточно хорошо ...;)

0 голосов
/ 02 декабря 2010

Псевдокод здесь , вы сможете понять его оттуда.

...