行列数値計算,計量経済分析用統計計算用のC言語関数ライブラリー「エクスカリバー (Excalibur)」の解説です。;keywords = エクスカリバー (Excalibur),C言語,行列,統計,計算,関数
   このホームページのトップへ,  フレーム枠内のトップ画面へ
 
 
 

行列数値計算,計量経済分析用統計計算C言語ライブラリー
エクスカリバー (Excalibur)


 
神山 卓也
 
 
 エクスカリバー (Excalibur) は,神山卓也が作った倍精度浮動小数点演算の行列数値計算と計量経済分析用統計計算,データ入出力のC言語関数ライブラリー集であり,計量経済分析のためのツールとして開発した.元々は非線形最小二乗法の計算を行うために開発したものであり,非線形最小二乗法について詳しくは当WEBサイト内に掲載した拙稿「非線形最小二乗法」をご参照いただきたい.MS(マイクロソフト社)系のC言語コンパイラー(MSC,Quick-C,Visual-C++等)で,ラージモデル又はヒュージモデルでコンパイル/リンクエディットすれば使用可能であるが,1994以降に開発した関数についてはVisual-C++ Version4.0でしか稼働確認テストを行っていないので,稼働保証できるのはこの環境だけである.数値計算の各種行列関数やデータ入出力関数については,一見すると計量経済学のための統計分析には不要に思えるが,実は統計計算関数やデータ入出力・操作の際に汎用関数としてコールして用いられているので,実は決して不要ではない.なお、C言語そのもの自体についてマスターしたい方には、私がネット・サーフィンして見つけたサイトの中では東京電機大学情報通信工学科実験室のサブ・コンテンツC言語をマスターしよう!!辺りが良いのではないかと思う。C言語をマスターするための本としてお薦めなのは、私自身が昔勉強した本の2004年時点の最新版である、椋田 実『ANSI C対応 はじめてのC  Software Technology』(技術評論社,ISBN:477411264X,改訂第4版,2001年07月)がお薦めかと思う。
 
 エクスカリバー (Excalibur) のシステム設計上の特徴(方針)は以下のとおりである.
 
方針1
 データ入出力を外部ファイルで行えるようにするべく,入出力関連の汎用プログラムの機能を豊富にした.
方針2
 様々な処理系で使えるべく,かつ,統計計算のために開発を急いだために画面入出力など必要不可欠ならざる機能の開発ロードを極小化するべく,Windowsなどの特定の処理系に依存した画面入出力を用いず,画面入出力は標準入出力のみにした.
方針3
 しかし,特定の処理系に移植し易くするべく,例えばprintfのごとき標準入出力をサポートする標準関数についても,入出力汎用関数を通してのみコールし,入出力汎用以外の関数からは直接的にはコールしない設計とした.
方針4
 パソコンやワークステーションのメモリ使用量を極小化するべく,演算に必要なデータ用メモリ・エリアはダイナミック・アロケーションし,不要になった時点でメモリを解放する設計にした.
方針5
 開発者が自分の研究のための計算に使えればそれで良いという要件で設計しているため,トータルな機能を持つ汎用パッケージという設計ではなく,数値計算や統計計算の汎用関数ライブラリー集という設計にした.
方針6
 長期的に使用することを目的として,移植可能性を増すべくできる限りANSI規格にしたがった設計およびコーディングとしたが,関数引数宣言のみは,引数の多さに鑑みて,ANSI規格にしたがわなかった.本件については,今後のコンパイラー製品で上位互換性がサポートされなくなったら修正を要するであろう.
 
 提供形態としては,関数ライブラリーとしてC言語関数ソース・コーディング(インクルード・ファイルを含む)をLZH形式アーカイブ・ファイルで提供する.利用方法としては,提供する関数はサブ関数であるためこれらをコールするmain関数が必要であり,これについてはサンプルとしてOLS(通常の最小二乗法),CLS(制約付き最小二乗法),NLS(非線形最小二乗法)用のソース・コーディングをLZH形式アーカイブ・ファイルで提供するのでご参照願いたい.利用時にはインクルード・ファイル(ヘッダー・ファイル)として全ての関数に対してANALYSIS.H,非線形最小二乗法に対してSPECIFY.Hを指定することが必要である.データはエクスカリバーの入出力汎用関数を用いる場合にはインプット・ファイル,アウトプット・ファイル共にテキスト形式であり,サンプルとしてmain関数:OLSEXTRAを流す際のインプット・ファイルをinput.datの名前でmain関数用アーカイブ・ファイルに格納してある.関数の一覧については以下に示し,各関数の使用法については,「エクスカリバー (Excalibur) ・関数利用法(汎用入出力関数行列数値計算関数計量経済分析用統計計算)」をご覧いただければ参照可能である(ただし,関数使用法については全て英語である).
 
 
・ エクスカリバー (Excalibur) ・C言語関数ライブラリー(LZH形式)
・ エクスカリバー (Excalibur) ・C言語main関数ライブラリー(LZH形式)
 
 
 
エクスカリバー (Excalibur) ・関数一覧表
 
1. main関数

  関数名 

        機能,または特記事項

 OLSEXTRA

 外挿テスト付きOLS実施プログラム

 CLSMAIN

 制約付き最小二乗法(CLS)実施プログラム

 NLSEXTRA
 

 外挿テスト付きNLS実施プログラム
 
 
 
 
2. 汎用入出力関数
関数使用法については関数使用法(汎用入出力関数)ご参照

  関数名 

        機能,または特記事項

 onedata

 ファイルに書かれた1データを倍精度浮動小数点型で読み込む関数

 datain

 ファイルをオープンして、行列のサイズ+各要素データを読み込む関数

 datain2

 オープン済みのファイルから行列のサイズ+各要素データを読み込む関数

 datadsp

 行列データの画面出力関数

 dataout

 行列データのファイル出力関数(datadspのファイル出力版)

 decfile

 データ用インプット・ファイル名,アウトプット・ファイル名決定関数

 dataio

 インプット・ファイルからのデータ読み込み,画面・アウトプット・ファイル出力関数

 msgdsp

 メッセージの画面出力関数(printfの代用関数)

 msgdspi

 メッセージ+int型変数の画面出力関数(printfの代用関数)

 msgdspl

 メッセージ+long型変数の画面出力関数(printfの代用関数)

 msgdspd

 メッセージ+double型変数の画面出力関数(printfの代用関数)

 msgdsps

 メッセージ+文字列データ(char型)の画面出力関数(printfの代用関数)

 msgout

 メッセージの画面+ファイル出力関数 (printf+fprintf機能;以下同様)

 msgouti

 メッセージ+int型変数の画面+ファイル出力関数

 msgoutl

 メッセージ+long型変数の画面+ファイル出力関数

 msgoutd

 メッセージ+double型変数の画面+ファイル出力関数

 msgouts

 メッセージ+文字列データ(char型)の画面+ファイル出力関数

 s_pause

 画面出力一時停止関数(PAUSE機能提供関数)

 

 
 
 
 
3. 行列演算汎用関数
関数使用法については関数使用法(行列数値計算関数)ご参照

  関数名 

        機能,または特記事項

 m_sca

 スカラー倍計算関数

 m_add

 行列加算関数

 m_minus

 行列減算関数

 m_mul

 行列乗算関数:C=A×B

 m_mula

 行列乗算関数:A=A×B

 m_mulb

 行列乗算関数:B=A×B

 m_kro

 クロネッカー積算出関数

 m_trace

 トレース算出関数

 m_comp

 行列比較関数

 m_move

 行列コピー関数

 m_row

 行列からの行ベクトル抜き出し関数

 m_col

 行列からの列ベクトル抜き出し関数

 m_rowc

 行列への行ベクトル置換関数

 m_colc

 行列への列ベクトル置換関数

 m_rowd

 行列からの行ベクトル削除関数

 m_cold

 行列からの列ベクトル削除関数

 m_rowin

 行列への行ベクトル挿入関数

 m_colin

 行列への列ベクトル挿入関数

 m_trans

 転置行列算出関数

 m_inv

 逆行列算出関数:A=A−1

 m_inv2

 逆行列算出関数:B=A−1

 m_gauss

 ガウス消去法による連立一次方程式関数

 m_det

 ガウス消去法による行列式算出関数

 m_cof

 余因子算出関数

 m_adj

 余因子行列算出関数

 m_eigen
 

 ヤコビ法による固有値算出関数
 
 
 
 
4. 計量経済分析用統計プログラム(回帰分析,各種統計量算出など)
関数使用法については関数使用法(計量経済分析用統計計算)ご参照

  関数名 

        機能,または特記事項

 s_mean

 標本平均計算関数

 s_svar

 標本分散(標本不偏分散)計算関数:S = Σ(x-xμ)/(n-1)

 s_ssdev

 標本標準偏差計算関数(標本不偏分散の平方根として)

 s_scov

 標本共分散計算関数:cov = Σ(x - xμ)(y - yμ)/(n-1)

 s_scor

 標本相関係数計算関数:r

 s_moment

 標本の積率(モーメント)計算関数:確率 p=1/n として

 s_codet

 決定係数計算関数:R

 s_mcor

 重相関係数計算関数 :R

 s_adjr

 自由度修正済決定係数計算関数

 s_dw

 ダービン・ワトソン比計算関数:D−W

 s_theil

 タイルのU計算関数

 s_u2

 残差平方和計算関数:Σu

 s_resvar

 残差分散計算関数:σ

 s_covmat

 共分散行列計算関数:V(β)=E[(β-b)(β-b)']=σ(')−1

 s_t

 t値計算関数

 s_f

 回帰のF統計量計算関数

 s_pc

 雨宮のPC基準計算関数

 s_likeki

 残差分散の最大尤度および対数最大尤度の計算関数

 s_lsaic

 赤池の情報量基準AIC計算関数

 s_acovma

 非線形回帰モデルにおける漸近的共分散行列計算関数

 s_ols

 通常の最小自乗法(OLS)関数(係数計算のみ)

 s_olse

 通常の最小自乗法(OLS)関数(各種統計量計算も行なう)

 s_olsp

 OLSによる予測値計算関数

 s_cls

 制約付最小自乗法(CLS)関数(係数計算のみ)

 s_nlin

 非線形最小自乗法sub-main関数(s_newton,s_pat,s_gaussのmain)

 s_newton

 ニュートン法による非線形最小自乗法関数

 s_pat

 パターン法による非線形最小自乗法関数

 s_gauss

 ガウス=ニュートン法による非線形最小自乗法関数

 s_target

 非線形最小自乗法における目的関数の算出用関数

 s_model

 非線形最小自乗法における計測対象モデル特定化用関数

 s_deriv

 

 非線形最小自乗法における計測対象モデル偏微分計算関数
 (s_modelで与えたモデルを偏微分した式を定義し、具体的な数字  を計算するためのもの。s_gaussで用いる。)

 s_extra
 

 外挿テスト実施時の各種統計量計算関数
 
 
 
 
 
 
学術研究の部屋へ  
 
このホームページのトップへ
 
 
HMV
タワーレコード
indiesmusic.com

このHP作者に関係のある別HPです。

STATISTICS

  

炭鉱マニア

  

鉄道艦船航空陸自マニア

  

ネットDE討論@Marine

行列数値計算,計量経済分析用統計計算用のC言語関数ライブラリー「エクスカリバー (Excalibur)」の解説です。;keywords = エクスカリバー (Excalibur),C言語,行列,統計,計算,関数