- ベストアンサー
C++言語で、レナードジョーンズ関数型のポテンシャル法をプログラム
わたしはODE(Open Dynamics Engine)について勉強しているのですが、障害物回避の方法で、レナードジョーンズ関数を利用したポテンシャル法をC++でプログラムしたいのですがどのようなプログラムを作ればいいのかわかりません。引力と斥力の合成ベクトルを求めるプログラムを教えていただきたいので、よろしくお願いします
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
その他の回答 (3)
関連するQ&A
- ODE (Open Dynamics Engine)を使ったプログラムで
ODE (Open Dynamics Engine)を使ったプログラムで人型のモデルを作ってみたいのですが、簡単な人型モデルのサンプルのプログラムを作っていただけないでしょうか。もしできる方がいらっしゃいましたらお願いします。
- ベストアンサー
- C・C++・C#
- ポテンシャル関数の微分
レナードジョーンズポテンシャル(添付画像の(1)式)をつかってMD計算をしているものです プログラムの昨日を拡張しようとおもい、論文を探したところ良い感じのものが見つかったのですが、添付画像の(2)の計算をしなければいけないようです。 ポテンシャル関数の変数はスカラーのrで、(2)の方ではベクトルの関数になっています どうにかして(1)に適応させたいのですが、どうすればいいのかわかりません・・・ 出だしから躓いているのですが、わかるかたお願いします
- ベストアンサー
- 数学・算数
- ファンデルワールス レナード・ジョーンズポテンシャルの導き方
●レナード・ジョーンズポテンシャルの導き方について詳しく 知りたいのですが、詳しい説明が載ったサイトとか 本などないでしょうか? ・レナード・ジョーンズポテンシャルは、実験値と ほぼ合ってますが、若干のずれがありますよね。 分極や零点振動とかのことをいろいろ考えての ことと思いますが、どういったモデルでの理論値なのか 詳しく知りたいのですが。 実験値とのずれについての、説明なども知りたいのですが。
- 締切済み
- 物理学
- レナード・ジョーンズについて
レナード・ジョーンズポテンシャルは同一分子間のモデルで議論していますが,異分子間でも適用できるのでしょうか? ネットでチラッとできるということを書いてあったのですが,その場合は,パラメータ値ε,σをどのように取ればいいのでしょうか? 分かる方がいらっしゃったらよろしくお願いします.
- ベストアンサー
- 物理学
- レナード・ジョーンズの式
分子間相互作用のポテンシャルエネルギーの式として使われるレナード・ジョーンズの式で、エネルギーが最小になる分子間距離を表す式の導き方がわかりません。どうやて導けば良いのか教えてください。 最小になる分子間距離の式は以下であっていると思いますが…。 r=2^(1/6)σ よろしくお願いします。
- 締切済み
- 物理学
- 関数はあるがC言語で書けないプログラム
数学的に関数はあるがC言語では書けないプログラムを 探しています。 関数自体は偶数か奇数(0以上の整数)を返す関数で しかしプログラムでは書けないというものです。 よろしくお願いします。
- 締切済み
- C・C++・C#
- [動的配列]C言語の勉強で簡単な単語帳プログラム
C言語の勉強として以下のような簡単なプログラムを作りました。 テキストファイルからユーザが入力した単語を検索し、ヒットしたものだけ その単語とその説明を表示するというプログラムです。 正常に動いているようなので、 つぎはループごとに、読み込んだ文字数に合わせて 配列(mean)の要素数を動的に確保するということを しようと思うのですがどのタイミングでmallocやreallocを入れればよいのか いまいちよくわかりません。 また、このプログラムの欠点などありましたら教えていただけると助かります。 よろしくお願いします。 --------------------------------------------------------------------- //マイ単語帳プログラム #include<stdio.h> #include<stdlib.h> #include<string.h> main(){ char input[100]; //ユーザが入力した文字列を格納 char tango[200]; //ファイルの単語 char mean[1000]; //ファイルの説明 char conti; //検索を続けるかどうかの入力 int flag; //検索単語がヒットした場合に立てるフラグ FILE *fp; //単語ファイルのopen if((fp=fopen("tango.txt","r"))==NULL){ printf("ファイルが開けません。"); exit(1); } /*******************ファイルからの文字列読み込み****************************/ //Yが入力されるまで検索を続ける do{ printf("検索する単語を入力してください。\n"); scanf("%s",input); printf("検索対象:%s\n\n",input); flag=0; //ヒットしたかどうかのフラグの初期化 while((fscanf(fp," %s %s",tango,mean))!=EOF){ //fscan 書式を指定して読み込める。 if(strcmp(tango,input)==0){ //strcmpは2つの引数が同じ時0を返す printf("%s\n%s\n\n\n",tango,mean); flag=1; //ファイル内に単語があった場合にフラグを立てる。 } } rewind(fp); if(flag==0){ printf("その単語は登録されていません。\n"); } printf("検索を終了しますか? ==> Y\n"); printf("検索を続けるにはY以外の文字を入力してください。\n"); scanf(" %c",&conti); //scanfの問題点を回避するために読み込み前に半角スペース } while(conti!='Y'); /**************************************************************************/ fclose(fp); return; } ---------------------------------------------------------------- tango.txt apple リンゴ SMTP 電子メールの送信や転送を行うためのプロトコル。 rewind 形式:rewind(ファイルポインタ); C言語のファイルシステム関数。ファイルの現在位置をファイルの先頭に置くことができる。
- ベストアンサー
- C・C++・C#
- 共役勾配法を用いた最適化について
弾性体の変形を見るために,停留ポテンシャル法を用いようとしているのですが,その際に目的関数にひずみエネルギーをとり 独立な24変数の関数の極小値を共役勾配法で求めようとしています. Hesse行列を手計算でだし,最適化を行うプログラムを書いたのですが どうも上手くいきません. 下にプログラムの一部分をのせます. 共役勾配法について勘違いしている可能性もあるので 問題点を教えて頂ければ幸いです. x_vectorは24変数ベクトルで,dは探索方向,HはHesse行列です. for(i=0;i<10;i++) { lambda = (x_vector*d)/(d*H*d); x_save_vector = x_vector; x_vector=x_vector - lambda*H*d;//変数べクトル再設定 if(i==0) { // 初期値 gamma = 1; } else { gamma =x_vector*x_vector/(x_save_vector*x_save_vector); } d = x_vector + gamma*d;//探索方向再設定 }
- ベストアンサー
- 数学・算数
- 分かる限りで構わないのでお願いします。
分かる限りで構わないのでお願いします。 1次元のδ関数型の引力ポテンシャル V(x)=-cδ(x) (cは正の定数) の中を運動する質量mの粒子に関するシュレーティンガー方程式を考える。 (1)を参考に(2)、(3)、(4)を答えて下さい。 (1) x=0における解の接続条件を求めよ。 解 V(x)=-cδ(x) (c>0) (-h^2/2m)・(d^2Ψ(x)/dx^2)-cδ(x)Ψ(x)=EΨ(x) これを両編(-ε,ε)で積分 → (-h^2/2m)・{(dΨ(+ε)/dx)- (dΨ(-ε)/dx)-cΨ(0)=E∫(-ε→ε)Ψ(x)dx ε(右下矢印)0の極限をとると (-h^2/2m)・{(dΨ(+0)/dx)- (dΨ(-0)/dx)-cΨ(0)=0 よって、(dΨ(+0)/dx)- (dΨ(-0)/dx)=(-2mcΨ(0)/h^2) さらにこれをもう1度(-ε,ε)で積分して、ε(右下矢印)0の極限をとると Ψ(+0)-Ψ(-0)=0 (2)E>0の粒子が左から入射する際の、ポテンシャルV(x)による粒子の反射率と透過率計算して下さい。 (3)束縛状態(E<0)のエネルギー準位を求めて下さい。 (4)δ型関数の斥力ポテンシャル(c<0)の場合に束縛状態が存在するかどうか考察して下さい。
- ベストアンサー
- 物理学
お礼
回答ほんとうにありがとうございます!! 私は今友達と一緒に考えていて、スカラで全て計算した後にベクトル計算すればいいのではないかというアイデアを、さっきまさにIMTさんから回答をいただく直前に思いつき、そしてIMTさんの回答のおかげで確信にかわりました。また、スカラを逆数で計算することで遠くのものからの力は弱く近いものからの力は強いようにできると考えたのですがどうでしょうか??