べき級数の計算
普通に計算すると掛け算の回数は
の項で n(n+1)/2回(等差級数)
の項で n回
足し算は n 回
Hornerの方法で計算回数を落とす。f(x)を以下のように変形する。
以下の漸化式を定義する。
計算回数はn回の掛け算とn回の足し算になる。
以下がコード。
#horner.py #! usr/bin/env python # -*- coding :utf-8 -*- import sys x = raw_input("input x: ") an = [1,2,3,4,5] fi = an[-1] #print fi for a in reversed(an[:-1]): print fi fi = fi * int(x) + a print "5x^4 + 4x^3 + 3x^2 + 2x + 1= ", fi