« #NHKスペシャル 「シリーズ 人体 神秘の巨大ネットワーク 第2集 驚きのパワー!“脂肪と筋肉”が命を守る」を観てます。橋本マナミさんの全身MRIが!速記メモ。 | トップページ | あ、やっぱりJR西日本、「人身事故」という表現をやめて「列車がお客様と接触」としてたのか! »

2017年11月 6日 (月)

11/5のGoogleトップページはAICの赤池さん、ということで多項式などのフィッティングができるVBAプログラムをUP!(Numerical Recipes移植版)

トップページがAICで有名な赤池さんになっていて驚いた。

Hirotuguakaikes90thbirthday576729_2

そこでAICの計算をカシオの高精度計算サイトにでもUPしようか、と思ったけど多数のデータを読み込ませるのができない、、、
じゃあExcel VBAででもやるか、と思ったけどその前段階のフィッティングする関数とかのほうが便利かということでそちらを紹介。
昔、Numerical Recipes in Cのlfit関数をVBAに移植していたのだ。
こちら。
「lfitLib.bas」をダウンロード
これを標準モジュールとして読み込む。
使い方は、例えば、Excelではできない8次多項式のフィッティングをやってみる。
データはExcelのセルに100個入力されているとして、、、
8thorder
Option Explicit
Option Base 1

Private Sub CommandButton1_Click()
    Dim x() As Double, y() As Double, sig() As Double
    Dim a() As Double, ia() As Integer
    Dim n As Integer, m As Integer, i As Integer
    Dim covar() As Double, chisq As Double
    
    n = 100
    m = 9
    
    ReDim x(n), y(n), sig(n)
    ReDim a(m), ia(m), covar(m, m)
    
    For i = 1 To n
        x(i) = CDbl(Worksheets("Sheet1").Cells(i + 1, 4))
        y(i) = CDbl(Worksheets("Sheet1").Cells(i + 1, 5))
        sig(i) = 1#
    Next i
    
    For i = 1 To m
        ia(i) = 1
    Next i
    
    
    Call lfit(x, y, sig, n, a, ia, m, covar, chisq)
    
    For i = 1 To m
        Worksheets("Sheet1").Cells(i + 3, 2) = a(i)
    Next i
    
    For i = 1 To n
        
        x(i) = CDbl(Worksheets("Sheet1").Cells(i + 1, 4))

    Next i
    
End Sub

のように使う。引数の詳しい説明は、Numerical Recipesを読んでください。

無償で読めます。
の15章、Modeling of Dataのところ。

残念ながらVBAでは関数を引数に取れないので、フィッティング関数はfuncsに決め打ちです、、、ここを変えたら多項式からより一般の

y(x)=Σa_k*X_k(x)

のフィッティングができます。

その他も移植してますが、またおいおい、、、

« #NHKスペシャル 「シリーズ 人体 神秘の巨大ネットワーク 第2集 驚きのパワー!“脂肪と筋肉”が命を守る」を観てます。橋本マナミさんの全身MRIが!速記メモ。 | トップページ | あ、やっぱりJR西日本、「人身事故」という表現をやめて「列車がお客様と接触」としてたのか! »

パソコン・インターネット」カテゴリの記事

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« #NHKスペシャル 「シリーズ 人体 神秘の巨大ネットワーク 第2集 驚きのパワー!“脂肪と筋肉”が命を守る」を観てます。橋本マナミさんの全身MRIが!速記メモ。 | トップページ | あ、やっぱりJR西日本、「人身事故」という表現をやめて「列車がお客様と接触」としてたのか! »

最近の記事

最近のコメント

2023年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
フォト
無料ブログはココログ