• ベストアンサー

井戸型ポテンシャルの数値解シミュレーション

井戸型ポテンシャルの数値解を「オイラー・クロマー法」を用いてシミュレーションで表す場合、どのようなプログラムにすれば良いのでしょうか?井戸の深さや幅をこちらで任意な数値を代入して、基底状態などにおける固有値や波動関数をグラフに表したいのです。 プログラムに関しては全くの初心者なのでどなたか具体的に教えてもらえれば幸いです。言語はC、グラフィクスの処理はPGPLOTのようなものは使用しないで、単純に結果をエクセルへ出力して求めたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

913さん、こんにちは。私はExcelは詳しくないのですが、次の二つが考えられると思います。 (1)他のCの処理系で計算し、計算結果をテキストのファイルにしてExcelに読み込ませる。 (2)ExcelのVBAを使う。 ここではExcel 2001で(2)を実行する方法を書きます。Excelではプログラムをワークシートから呼び出すユーザ定義関数として実行できます。 (1)Excelのメニューバーからツール→マクロ→Visual Basic Editionを選択。 (2)プロジェクトの画面から関数を入れたいsheetの番号を選択。 (3)モジュールシートが表示されるのでソースコードをVisual Basicで記述。 (4)メニューバーからデバッグ→マクロ→VBAプロジェクトコンパイルを選択し、デバッグする。 (5)ファイルメニューで保存した後、終了してMicrosoft Excelへ戻る。 (6)関数に渡したいデータを適当なセルに入れる。 (7)計算結果を入れたいセルに移る。 (8)ツールバーの「関数のペースト」ボタン(fx)をクリック。 (9)ダイアログボックスの「分類」リストボックスで「ユーザ定義」、関数名ボックスで使用したい関数を選択して「OK」をクリック。 (10)関数の引数に渡したい数字の入っているセルを指定して「OK」をクリック です。詳細はExcel VBAの解説書を御覧下さい(Excelの入門書には書いてありません)。

noname#5999
質問者

お礼

Excelへの出力の仕方についてご回答有難う御座いました。さっそく試してみますね

その他の回答 (2)

noname#108554
noname#108554
回答No.2

プログラミングをweb上で具体的に教えるなんてのは、 およそ不可能なのでアドバイスです。 ステップ1 for,if,while,配列,関数などの基本的な使い方は理解しているのか? ステップ2 「エクセルへ出力」なので、とりあえずtxtで出力して csvに変換→エクセルという手順でxlsファイルを得ます。 前提として、fopen,fclose,scanfなどの ファイル入出力関数が使えることが必要。 ステップ3 アルゴリズムは分かっているのか? 私はオイラー・クロマー法は知りませんが オイラー法なら折れ線近似なのでイメージはすぐに出来ます。 何をどうするのかが分かっていないとプログラムはかけません。 まあ、もう少し簡単なものから始めたらどうですか? 例えば、データを入力して、最大値を求める・・・とか。

noname#5999
質問者

お礼

ご回答有難う御座いました。ステップ1程度であれば理解していますが、やはり難易度が高いようですね。もう少し簡単なものを試してみたいと思います。

回答No.1

井戸型ポテンシャルは厳密解が求まると思いますが、わざわざ数値的に計算するのですか?

noname#5999
質問者

お礼

そうです。一応、参考サイト「http://www12.plala.or.jp/ksp/qumtam/squarewall-simu/squarewall-simu.html」を見つけてはいるのですが、ここに載ってるプログラムですとPGPLOT使用のものなので、PGPLOTが無くてもエクセルへ出力させてグラフとして表せるようなプログラムが知りたいのです。この参考サイトのプログラムの内容を多少変更すれば出来そうなのですが・・・。

関連するQ&A