Google

東海大学理学部物理学科素粒子理論・安江研究室  

ホーム 最新情報 サイトマップ

C言語第8回

上へ C言語第1回 C言語第2回 C言語第3回 C言語第4回 C言語第5回 C言語第6回 C言語第7回 C言語第8回 Visual Studio 2005 VisualC++6.0 C言語教科書

PDFファイルの印刷

【学内】PDFファイルリーダーで印刷可能です。PDFファイルでの配布pdfのリンクをクリックしてください。現われる講義録をで印刷してください。

PDFファイル閲覧・印刷にはPDFファイルリーダーが必要です。
無償で使用できる高性能なPDF作成ソフト

第8回:数値シミュレーション2(PDFファイルでの配布:c8.pdf(Web版は更新されていません、pdfをご覧下さい)

目次

1.2階の微分方程式と差分方程式

2.RLC回路のシミュレーション

3.C言語プログラム

4.表計算ソフトの自動立ち上げ(Windows用のみ)

【1】2階の微分方程式と差分方程式

微分方程式を、

とする。これを2つの1階の微分方程式に変更する。

それぞれの1階の微分方程式にRunge-Kutta法を適用する。

目次へ戻る
【2】 RLC回路のシミュレーション

図のようなRC回路にコイル(L)が入っている。スイッチSで端子を電池(E)側から切り替えると、 コンデンサに生じた電位が徐々に消滅していく。そのときのコンデンサの電圧変化は、時間とともに変化する。電流の向きを、RからLの方向にとると、

となる。これを2つの1階の方程式にするには、

と置くと

になる。初期条件として

にする。

目次へ戻る
【3】C言語プログラム

数値として

  • 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関数
    • fclose(FILE * 型番地)
      • fclose(file_open)
  • 表計算ソフトでcsvファイルを開く:ShellExecute関数
    • ShellExecute((HWND)0, "open", 番地, NULL, NULL, SW_SHOWNORMAL)
      • ShellExecute((HWND)0, "open", csvファイル名の格納番地, NULL, NULL, SW_SHOWNORMAL)
      • 戻り値は特別でHWND型になっている。戻り値が32以下だとcsvファイル用表計算ソフトの起動に失敗

の関数を使用する。GetCurrentDirectory関数ShellExecute関数を使用するために

  • windows.hを#includeする

こと。

目次へ戻る


前へ ホーム 上へ 次へ

このWeb サイトではインターネットエクスプローラVer.3.0あるいはそれ以上が推奨です Internet Explorer
この Web サイト(since 1997年12月1日)に関する質問やコメントについては、Mail.gif (4196 バイト)安江 まで電子メールをお送りください。
Copyright © 1997-2022/10 東海大学理学部物理学科安江研究室 All rights reserved
最終更新日: 2022年10月14日
マイクロソフト Front Page98