###前提・実現したいこと
大学の授業の一貫で、プログラミングを利用した物理学現象を学習することになりました。
私は光の回折干渉、「フラウンホーハー回折、フレネル回折」をグラフに描写することにしました。
以下は与えられた式になります。
A:振幅、N:スリットを分割する数、ω:各振動数、t:時間
δ:光路差になります。
kで積分しprintf()で出力しています。
###発生している問題・エラーメッセージ
各変数に具体値を入れてグラフを描写しても、まったく”それらしい”グラフになりません。
###該当のソースコード
C
1#include<math.h> 2 3int main(void){ 4 double R=6328e-10; 5 double D=163e-6; 6 double f=2978e12; 7 double A=1.0; 8 double X=100; 9 int T=100; 10 int N=1000; 11 12 double y,y1,y2,y3; 13 double t; 14 double S; 15 16 t=T; 17 y=0; 18 19 for(int i=0;i<2000;i++){ 20 int z=i-1000; 21 S=atan(z/X); 22 y=0; 23 for(int k=0;k<=N-1;k++){ 24 y1=k*D*sin(S); //位相差 25 y2=y1/N/R+f*t; 26 y3=A*sin(y2); 27 y+=y3/N; 28 } 29 printf("%i %f\n",z,y*y/t); 30 } 31 32 return 0; 33}
###補足情報(言語/FW/ツール等のバージョンなど)
Macで制作、CotEditというツールを使用、ターミナルでgcc,gnuplotとしています。
初めての質問投稿でわかりにくい点があると思いますが、解決案よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー