11/5のGoogleトップページはAICの赤池さん、ということで多項式などのフィッティングができるVBAプログラムをUP!(Numerical Recipes移植版)
トップページがAICで有名な赤池さんになっていて驚いた。
そこでAICの計算をカシオの高精度計算サイトにでもUPしようか、と思ったけど多数のデータを読み込ませるのができない、、、
じゃあExcel VBAででもやるか、と思ったけどその前段階のフィッティングする関数とかのほうが便利かということでそちらを紹介。
昔、Numerical Recipes in Cのlfit関数をVBAに移植していたのだ。
こちら。
使い方は、例えば、Excelではできない8次多項式のフィッティングをやってみる。
データはExcelのセルに100個入力されているとして、、、
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西日本、「人身事故」という表現をやめて「列車がお客様と接触」としてたのか! »
「パソコン・インターネット」カテゴリの記事
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- KeysightのADSで位相を±180°に限らずに連続にする関数をよく聞かれるがいつも忘れる…unwrap()だ。PythonのNumPyでもあるので(matlabにもある)いい加減に覚えたい。とりあえずPythonでやってみて記憶する。(2023.03.02)
- 50万人が毎年受ける試験で採用、“謎”のプログラミング言語「DNCL」という記事を見た。大学入試センターで2022年1月に出している仕様(日本語プログラムぽい)と、令和7年度試験の問題作成の方向性,試作問題等で出している仕様(Pythonを日本語にしたっぽい)違うのか…(2023.03.01)
- LC共振回路のモンテカルロシミュレーションでL,Cを一様乱数で振って共振周波数を見る、、、と全然一様じゃない。そりゃそうだ。何を勘違いしてたんだろう…(2023.02.27)
「学問・資格」カテゴリの記事
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース(3/16) IEEE Microwave Magazineは女性マイクロ波研究者特集、Microwave Journalで285GHz帯で30GHz帯域のOTA測定!QorvoがUWB室内ナビのデモ、STMとonsemiのBluetooth新商品、IDTechExの6Gレポート、など。(2023.03.16)
- KeysightのADSで位相を±180°に限らずに連続にする関数をよく聞かれるがいつも忘れる…unwrap()だ。PythonのNumPyでもあるので(matlabにもある)いい加減に覚えたい。とりあえずPythonでやってみて記憶する。(2023.03.02)
- 50万人が毎年受ける試験で採用、“謎”のプログラミング言語「DNCL」という記事を見た。大学入試センターで2022年1月に出している仕様(日本語プログラムぽい)と、令和7年度試験の問題作成の方向性,試作問題等で出している仕様(Pythonを日本語にしたっぽい)違うのか…(2023.03.01)
「日記・コラム・つぶやき」カテゴリの記事
- Visual Basic (VB.NET)でC#用の数値計算ライブラリMath.NET Numericsを使う(1)複素行列を定義して一次方程式や逆行列、行列式などを計算する。(2023.03.24)
- BingのAIチャットに最大の素数はいくつ?と聞くと、存在しないが今知られている最大の素数は2^89589933-1だと答えた。が、これは引用している記事が誤植していて、実際は2^82589933-1だ...間違った記事を引用すると間違った答えになる。英語で聞くと1つ前のメルセンヌ素数に…(2023.03.17)
- 高周波(RF・マイクロ波・ミリ波・5G)関連ニュース(3/16) IEEE Microwave Magazineは女性マイクロ波研究者特集、Microwave Journalで285GHz帯で30GHz帯域のOTA測定!QorvoがUWB室内ナビのデモ、STMとonsemiのBluetooth新商品、IDTechExの6Gレポート、など。(2023.03.16)
- 今日は円周率の日(3.14)ということでChatGPTとBingのAIチャットに円周率を求める面白い方法を教えてくださいと聞いてみた。ChatGPTが訳の分からない方法をRegenerateするたびに提案してくる...ピザ押し。Bingは検索していることもあってまあこんな感じか。(2023.03.15)
トラックバック
この記事へのトラックバック一覧です: 11/5のGoogleトップページはAICの赤池さん、ということで多項式などのフィッティングができるVBAプログラムをUP!(Numerical Recipes移植版):
« #NHKスペシャル 「シリーズ 人体 神秘の巨大ネットワーク 第2集 驚きのパワー!“脂肪と筋肉”が命を守る」を観てます。橋本マナミさんの全身MRIが!速記メモ。 | トップページ | あ、やっぱりJR西日本、「人身事故」という表現をやめて「列車がお客様と接触」としてたのか! »
コメント