PDFファイルの印刷 |
【学内】PDFファイルリーダーで印刷可能です。PDFファイルでの配布のpdfのリンクをクリックしてください。現われる講義録をで印刷してください。 |
|
PDFファイル閲覧・印刷にはPDFファイルリーダーが必要です。 |
|
無償で使用できる高性能なPDF作成ソフト |
|
|
|
第8回:数値シミュレーション2(PDFファイルでの配布:c8.pdf)(Web版は更新されていません、pdfをご覧下さい) |
|
目次
1.2階の微分方程式と差分方程式
2.RLC回路のシミュレーション
3.C言語プログラム
4.表計算ソフトの自動立ち上げ(Windows用のみ)
微分方程式を、
とする。これを2つの1階の微分方程式に変更する。
それぞれの1階の微分方程式にRunge-Kutta法を適用する。
図のようなRC回路にコイル(L)が入っている。スイッチSで端子を電池(E)側から切り替えると、
コンデンサに生じた電位が徐々に消滅していく。そのときのコンデンサの電圧変化は、時間とともに変化する。電流の向きを、RからLの方向にとると、
となる。これを2つの1階の方程式にするには、
と置くと
になる。初期条件として
にする。
数値として
- R=Ω
- C=0.3
- L=10 (mH)
- E=1 (V)
を与える。
になる。
|
【4】表計算ソフトの自動立ち上げ(Windows用のみ) |
|
計算結果を画面表示と同時にファイルを作成し、作成したファイルを自動的に表計算ソフトで表にして表示するようにする。
- このプログラムが実行されるドライブ名の取得:GetCurrentDirectory関数
- GetCurrentDirectory(整数, 番地)
- GetCurrentDirectory(文字配列の個数,
取得したファルダ名の格納用番地)
- char name[100]:
- GetCurrentDirectory(100, name)
- name[0]がドライブ名の文字(コード)になっている
- csvファイルを作成:fopen関数
- fopen(番地, 決まった文字列);
- fopen(csvファイル名の格納番地, "wt");
- FILE * file_open;
- file_open= fopen(filename, "wt");
- file_openの数値が零(NULL)だと作成に失敗
- csvファイルへの書き込み:fprintf関数
- fprintf(FILE * 型番地, ...);
- printf("%5.2f %10.3e\n", t, x1);
- fprintf(file_open, "%5.2f, %10.3e\n", t, x1);
- csvファイルを閉じる:fclose関数
- 表計算ソフトでcsvファイルを開く:ShellExecute関数
- ShellExecute((HWND)0, "open", 番地, NULL, NULL,
SW_SHOWNORMAL)
- ShellExecute((HWND)0, "open", csvファイル名の格納番地, NULL, NULL,
SW_SHOWNORMAL)
- 戻り値は特別でHWND型になっている。戻り値が32以下だとcsvファイル用表計算ソフトの起動に失敗
の関数を使用する。GetCurrentDirectory関数とShellExecute関数を使用するために
こと。
目次へ戻る
|