牛頓迭代法能夠使用函數極限角度無限迭代趨近於某一點理解。
迭代算法解決問題,須要作好3個方面的工做:算法
概念:ide
算法證實:函數
整理:code
定義:ci
還有一個很典型的例子是斐波那契(Fibonacci)數列。斐波那契數列爲:0、一、一、二、三、五、八、1三、2一、…,即 fib⑴=0; fib⑵=1;fib(n)=fib(n-1)+fib(n-2) (當n>2時)。
在n>2時,fib(n)總能夠由fib(n-1)和fib(n-2)獲得,由舊值遞推出新值,這是一個典型的迭代關係,因此咱們能夠考慮迭代算法。get
int Fib(int n) //斐波那契(Fibonacci)數列 { if (n < 1)/*預防錯誤*/ return 0; if (n == 1 || n == 2)/*特殊值,無需迭代*/ return 1; int f1 = 1,f2 = 1,fn;/*迭代變量*/ int i; for(i=3; i<=n; ++i)/*用i的值來限制迭代的次數*/ { fn = f1 + f2; /*迭代關係式*/ f1 = f2;//f1和f2迭代前進,其中f2在f1的前面 f2 = fn; } return fn; }
固然 斐波那契數列 得算法豈止一種。
參見 斐波那契數列it