ようこそゲストさん

Wiki 小さなそして広がっていく世界

GSLで簡単プログラミング1

未分類

GSLで簡単プログラミング1

マニュアルに載っているベッセル関数の例だけでは何だかよくわからないので,続きを書いてみる.
というか,この例だと,一点しかわからないので,データをテキストファイルに保存してくれるような,次のようなプログラムを書いてみた.
#include <stdio.h>
#include <gsl/gsl_sf.h>		//特殊関数のヘッダファイル
#include <gsl/gsl_math.h>	//数学の基本的な関数のヘッダファイル
 
int main(void)
{
	double xx = -500.0;	//x.初期値を一応設定.
	double yy = 0;		//y.初期値を設定
	int i;			//ループ用変数.
	int stop_i=10000;	//ループの停止値.まあ設定する必要もない気がするけど作った….
	
	FILE *outputdata;	//データ保存用ストリーム.

	outputdata = fopen("outputdata.txt", "w");	//データ保存ファイル,オープン
	fprintf(outputdata, "#xx\tyy\n");
	fclose(outputdata);				//データ保存ファイル,クローズ


	for (i=1 ; i<=stop_i ; i++){
		xx = xx + 0.1;
		yy=gsl_sf_bessel_J0(xx);
		outputdata = fopen("outputdata.txt", "a");
		fprintf(outputdata, "%f\t%f\n", xx,yy);
		printf("%d回目の計算結果:J0(%g) = %.18e\n", i, xx, yy);
		fclose(outputdata);
	}
	return 0;
}
はき出したテキストファイルを範囲指定してグラフ化すると,次のようになったり.
Graph0_gsl_sf_bessel_J0.png

Graph1_gsl_sf_bessel_J0.png

名前:  非公開コメント   

  • TB-URL  http://ac206223.ppp.asahi-net.or.jp/adiary/memo/adiary.cgi/hirosugu/083/tb/