#!/usr/bin/python # codin: UTF-8 #プロット点を出力 t = [ 0, 0.3, 0.8, 1.1, 1.6, 2.3] y = [0.6, 0.67, 1.01, 1.35, 1.47, 1.25] plot(t,y,'o') # y = a*x^2 + b*x^1 + cの解を求める (a, b, c) = polyfit(t, y, 2) print "Y=(%f * X^2) + (%f * X^1) + %f" % (a, b, c) #最小二乗法のグラフを出力 tx = [] ty = [] for xx in range(0, 300, 1): v = float(xx) / 100 tx.append(v) ty.append( (a*v*v) + (b*v) + c ) plot(tx,ty,'-') show()
掃出し法や連立方程式を解く行列式のプログラムを実装しなくていいし、すごく便利。
これにロバスト法で、誤差の大きい入力データの仕分けが出来たら実用的だよなあ。
0 件のコメント:
コメントを投稿