2010-12-02 26 views
0

固定小数点反復を使用してこの方程式(x^3 + x -1 = 0)を解くプログラムを書くように求められます。固定小数点反復アルゴリズム

固定小数点反復のアルゴリズムとは何ですか? Pythonで固定小数点反復コードのサンプルがありますか? (ない任意のモジュールから関数が、アルゴリズムを使用してコード)

+4

あなたはこれまで何を持っていますか? – SingleNegationElimination

+1

始めにこれを読んでください:http://en.wikipedia.org/wiki/Fixed_point_%28mathematics%29理解するのは難しいですが、実装は非常に簡単です。 – ruslik

答えて

1

まず、これを読んで。

今、あなたは発電機の機能について学習したい場合、あなたはジェネレータ関数を定義することができ、およびインスタンスジェネレータオブジェクト

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ですありがとうございました、あなたはそこからそれを把握することができるはずです。私はニュートン法を選んだ Fixed point iteration:Applications