wetchのブログ

他人に見られることを想定していない書き散らかし独習ノート.物理学とかVBAとか.

VBA

太陽の高さの計算

VBA

参考文献 仕様 標準モジュール:main 標準モジュール:数学関数 クラスモジュール:LocalTime クラスモジュール:測地座標系 クラスモジュール:地平座標系 クラスモジュール:時角赤緯座標系 クラスモジュール:赤道座標系 クラスモジュール:黄道座標系 考…

対称行列の固有値・固有ベクトルを求めるマクロ

VBA

エクセルで主成分分析をしたくて固有値・固有ベクトルを求めるマクロを作った. 参考 標準モジュール グローバル変数 ワークシート関数 メイン関数 クラスモジュール Matrix クラスモジュール SymmetryMatrix クラスモジュール GivensMatrix 参考 ヤコビ法 (…

ISBNから出版社記号を抜き出す

VBA

カテゴリはVBAとしたけど,エクセルのワークシート関数の話. 新しい関数を使ってみたテスト.書籍についてるISBNには時代によって2つの規格があって,日本の本だと 古い規格は 4-(出版社記号)-(書名記号)-(チェックディジット) の順 新しい規格は 978-4-(出…

相関行列を生成する

VBA

時々手作業で作ったりしてたのだがいい加減イラついたのでマクロを作成した. 変数名が日本語なのはスルーの方向で頼む.前提として 元のデータはテーブルになっていること 「相関行列」という名前のシートやテーブルが他にないこと マクロ起動時にカーソル…

相互依存する6変数のクラス

VBA

Air Calc というアプリから発想してある計算プログラムを考え中.6変数のうち自由度が2,つまり6つのうち2つを指定したら残りの4つは計算できるというものを考えて,その6つをまとめて扱うクラスモジュールを作りたい. どの2変数が入力されてもいいから,入…

VBAの実行時間を測るためのクラス

VBA

VBAの話も久し振り.コードが遅い気がしたので実行時間を測ろうとしたのだけど,折角だからそれなりのツールとして作ることにした.完成イメージとしては,学生のときに使ってたMatlabの感じでレポートを出せるようにしようと思った. jp.mathworks.com こう…

求根アルゴリズム (5)

VBA

まだ続き。 https://wetch.hatenablog.com/entry/2019/10/20/120414そもそもやりたかったことを思い出すと、3変数関数に対してとなるようなを1個ずつ決めたかったのだった。なのでIMathFuncインターフェイスの実装であるConcreteFunctionクラスを書いてみる…

求根アルゴリズム (4)

VBA

前回の続き。 https://wetch.hatenablog.com/entry/2019/10/19/232740少しずつ修正しながらまとめていこう。まずは標準モジュールに反復計算する本体の関数を書く。 Function IterativeCalculation(f As IMathFunc, ite As IIterationStrategy) As Double Co…

求根アルゴリズム (3)

VBA

前回の続き。 https://wetch.hatenablog.com/entry/2019/10/19/120124やりたいことがまだ残ってる。 任意に1変数関数を与えて切り替えられるようにしたい。ただしは定数パラメータベクトル。 二分法の部分を割線法に切り替えられるようにしたい。割線法 - Wi…

求根アルゴリズム (2)

VBA

前回の続き。 https://wetch.hatenablog.com/entry/2019/10/02/212051前回は1つの多変数関数を持ってきて変化させる変数を切り替えられるようにしたが、仕様を変更&追加する。 任意に1変数関数を与えて切り替えられるようにしたい。ただしは定数パラメータ…

多変数関数の求根アルゴリズムを切り替える

VBA

3つの実引数をとる関数について、次のそれぞれには独立している3つの問題を考える: 3つのうち以外には既知の定数を与えて、を動かすことで方程式を数値的に解きたい。ただし 以外には既知の定数を与えて、を動かすことで方程式を解きたい。ただし 以外には…

フーリエ変換

VBA

新しいテーマとして、エクセルでフーリエ変換を作ろうと思う。 とは言え基本的なところは出来合いのものを使う。 https://imagingsolution.net/office/excel/fast_fourier_transform/ただコピーするだけでなく、ちょっと改造して遊ぼうと思う。 ・複素数クラ…

温度の単位系

物理量クラスを作るにあたって、単位の換算をしたい。と言うか、そもそもこれを自動で行うのが目的だった。 換算のうち、ちょっと特殊な立ち位置にあるのが温度、ケルビンとセルシウス度の換算。で、これで悩んでいる。物理量 - Wikipedia とか理科年表にも…

インターフェースを使っていらんプロパティを隠ぺいする

VBA

今回はこの記事の続き。 https://wetch.hatenablog.com/entry/2018/11/24/145716標準モジュールからは見えないけど同じクラスの別インスタンスからは見える、都合のいいメソッドの書き方を探していると、こちらにヒントが。 thom.hateblo.jp インターフェー…

クロスフロー冷却塔の熱交換の数値計算その2(ほぼ完成)

VBA

前回の続き。 https://wetch.hatenablog.com/entry/2018/12/08/221328陰解法を、WikipediaとQiitaを読みながらデッカー法で実装。 ブレント法 - Wikipedia qiita.com ブレント法は理解できなかったよ…。今回はまったのは、初期値を求める部分。 になる解 を…

クロスフロー冷却塔の熱交換をエクセルで数値計算したい

VBA

以下の式を数値計算したい. ただし は空間座標. 領域は は未知の解きたい関数. 境界条件はで,で. ,は定数. は既知の関数. 最初はを定数,として解析解を求めようとしたのだけど断念.実際のところ指数関数的な動きをするはずだから行けると思ったん…

物理量クラス考え中...

VBA

エクセルvbaのクラスモジュール勉強中。で悩み中。作りたいのは前も言ってた物理量クラス。 privateなフィールド変数として、数値と物理次元(質量、長さ、時間それぞれの何乗かを表す整数)を持っている。 数値と次元をできるだけひとまとめに扱い、個別に…

VBAで物理量クラスを作りたい

VBA

エクセルvbaのクラスモジュールってのを勉強中。目的は物理学関係の数式を計算するときに、単位っちゅうか次元も変数の文字の中に含めたい。で、例えばキロからメガへの換算とか、次元が異なる変数の加算にはエラーを返すとか、そういうのをプログラムしたい…