数値計算法レポート2-オイラー

「数値計算法レポート2-オイラー」の編集履歴(バックアップ)一覧はこちら

数値計算法レポート2-オイラー」(2011/06/29 (水) 10:06:10) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

適当に作ったオイラー法 //C/linenumber #include <stdio.h> #include <stdlib.h> #include <math.h> #include "report2.h" int main(){ double x,y,vx,vy; int i; FILE *fpdata; if((fpdata=fopen("euler.dat","w")) == NULL){ printf("error:cannot open file\n"); exit(1); } for(i=-10;i<=10;i++){ x=min; y=i*20; vx=sqrt(Energy/mass)*c; vy=0; while(x<=max && y<=max && y>=min && x>=min){ fprintf(fpdata,"%lf %lf ",x,y); x=x+vx*dt; y=y+vy*dt; vx=vx+Z*197/137/mass*x/(pow(x*x+y*y,1.5))*c*c*dt; vy=vy+Z*197/137/mass*y/(pow(x*x+y*y,1.5))*c*c*dt; } } fclose(fpdata); }
//C/linenumber #include <stdio.h> #include <stdlib.h> #include <math.h> #include "report2.h" int main(){ double x,y,vx,vy; int i; FILE *fpdata; if((fpdata=fopen("euler.dat","w")) == NULL){ printf("error:cannot open file\n"); exit(1); } for(i=-10;i<=10;i++){ x=min; y=i*20; vx=sqrt(Energy/mass)*c; vy=0; while(x<=max && y<=max && y>=min && x>=min){ fprintf(fpdata,"%lf %lf ",x,y); x=x+vx*dt; y=y+vy*dt; vx=vx+Z*197/137/mass*x/(pow(x*x+y*y,1.5))*c*c*dt; vy=vy+Z*197/137/mass*y/(pow(x*x+y*y,1.5))*c*c*dt; } } fclose(fpdata); }

表示オプション

横に並べて表示:
変化行の前後のみ表示: