2010-12-02 3 views
0

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

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

Спасибо

+4

Что у вас есть? – SingleNegationElimination 2010-12-02 01:53:07

ответ

1

Во-первых, прочитать: Fixed point iteration:Applications

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

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

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 или Classes (Generators) - Python v2.7 для получения дополнительной информации о генераторах

Например

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

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

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

0

псевдокод here, вы должны быть в состоянии понять это оттуда.

Смежные вопросы