NumericalRecipes

提供: MacWiki
移動: 案内検索

Numerical Recipes in C[編集]

  • 本格的な数値計算をやる人々にはNumerical Recipes in Cに載っているコードは良くないという評判があります(速度が遅い、解説が不十分、バグがある等)。
  • バグがけっこうあるようなので、本文中の他のコードをそのまま使う場合は、バグ情報(http://www.nr.com)を参照のこと。
  • 下記の関数群は便利なので紹介します。

nrutil.h nrutil.c[編集]

前記のような欠陥が指摘されてはいるが、この配列確保の関数群(nrutil.h nrutil.c)は、数値計算以外においても便利なので紹介する。

  • 配列(ベクトルや行列)を、添え字を指定して確保することのできる関数群。
  • 変数宣言時ではなく、main関数中で、配列の大きさと添え字を指定できる。
  • 変数の型ごとに、関数が記述されている。
  • なおこの関数群の全コードは、Numerical Recipes in Cの巻末に掲載されている。

使用例:

#include <stdio.h>
#include "nrutil.h"
#include "nrutil.c"
int main(void){
/* 変数宣言をする */
float *a, **b;

/* 例えば 添え字が2-5のベクトルと5x6の行列を確保する*/
a=vector(2,5);
b=matrix(1,5,1,6);
/* a[2] a[3] a[4] a[5]と b[1][1] b[1][2] ..... b[5][6] が確保された。*/

/*.... 例えば それらの配列に代入する*/
a[2]=1;
b[2][3]=4;
/*.....*/

/* 確保した配列を開放する*/
free_vector(a,1,5);
free_matrix(b,1,5,1,6);

/*....*/
return 0;
}

配付・販売[編集]

Wiki内の関連ページ[編集]