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

2011/02/14未分類import

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