����ʸ��� Why Not Numerical Recipes? �������Ǥ��� �����Ȥ� ������ͺ ([email protected]) �ޤǤ��ꤤ���ޤ��� �ޤ� NR �⤽�θ��Ǥ�ŤͤƤޤ����� ����ʸ��νнꡦʸ�դ�褯�狼��ʤ��ʤäƤޤ���ǡ� �ɤ��ޤǿ����뤫���ɼԤˤ�Ǥ�����ޤ� (���դ����äƤʤ���)�� ������ "Why not use Numerical Recipes" �Ȥ����� �⤦����ä� reference ���Ѥ���ʸ���ä��褦�˵������Ƥ���ΤǤ�����
��濭������ˤϡ���ʸ�ˤĤ���¿����ͭ�פʥ����Ȥ������ޤ�����
��Υڡ����� http://math.jpl.nasa.gov/nr/ �ǤϤʤ����� �Ȥ�������Ŧ��غ�ã�פ��餤�������ޤ����� ������ǰ�ʤ��餳�Υڡ����ϸ��ߥ��������Ǥ��ʤ��褦�Ǥ� (�Τǥ�ˤϤ��Ƥޤ���)�� NR �����Ԥ��������ȿ�� �⸫�Ĥ���ޤ��������Ĥ�����������Ƥߤ褦���ȻפäƤޤ���
�ɤ��˥塼���ϡ� ���Υ�����������ؤ�ɬ�פȤʤ���ͷ��Υȥԥå��� ���˹����ϰϤ��Ϥäƥ��С����Ƥ��뤳�Ȥ������������ʤϤȤƤ�¤��� �����˥塼���ϡ��ޤޤ�Ƥ�����ؤ������䥳���ɤμ��修�����ˡ� �����Խ��褬���뤳�Ȥ��� �����ܤ˽�Ƥ�������Ҥ����ΤȤߤʤ����ꡢ ���Υ����ɤη�̤����������տ������ꤹ�뤳�Ȥϡ� �����Ǥ���Ȼ䤿���Ϲͤ��Ƥ��롣
�����ܤ����Ԥ����ϡ����ҤΥ��С��ǡֻ�ƳŪ�ʲʳؼԤ����� �ȾҲ𤵤�Ƥ��롣�����Ǥʤ��Ȥ�����ͳ�ϻ䤿���ˤϤʤ��� �������ʤ��顢��餬���Ͳ��Ϥ���إ��եȥ������˴ؤ��ơ� ���Ф餷��ǽ�Ϥ���äƤ���ȸ������Ȥ�Ǥ��ʤ��� ���ʤ��Ȥ⡢�桹�������ܤΤ����Ĥ�����ʬ��ܺ٤�Ĵ�٤��Ȥ����Ǥϡ� ���Ϥ��Τ褦�����̤��Ƥ���Ȥϸ����ʤ���
�����ܤä�����������Ƥ����ɾ�ϡ�2 �ĤΥ��ƥ����ʬ��Ǥ��롣 �ʳؼ� (�Ρ��٥���Ԥ� Kenneth Wilson ��ޤ�) �乩�ؼԤˤ��������ɾ�ˤ����Ƥϡ� �����ܤ�������������������� �ʼ��ˤĤ��ƤϤޤ����ɾ�����뤳�Ȥʤ��� ��ޤ��뷹�������롣 ���������Ͳ��Ϥ�����Ȥˤ���ɾ�ϡ� �����䥳���ɤ��ʼ����Ф���������ȽŪ����
���Ͳ��Ϥ�����Ȥˤ���ӥ塼�� 2 �ľҲ𤷤褦��
���ξϤˤ����� ODE �ο��Ͳ���ˡ�β���ϡ������� 1970 ǯ��Τ�Τ��� �⤷���Ԥ餬�������������Ȥ˽�������Ƥ����ꡢ ���Ǥ���Ƥ����ɼ���������������äƤ���С� ���Ϥ����μ�ˡ���ä�����ɾ�����Ƥ������������� �����μ�ˡ�ˤĤ��Ƥ⡢��äȿ������Ǥ����Ƥ����������Ȼ�Ϲͤ��롣
�ޤ� Shampine �����ϡ�������ʬ����ˤ�����Ŭ��Ū��ˡ�� NR �ǰ����Ƥ��ʤ����Ȥˤ���ڤ��Ƥ��롣 Ŭ����ʬ�Ͽ��Ͳ��ϤǤ�����ɾ������Ƥ����ˡ�Ǥ���ˤ⤫����餺���Ǥ��롣
Hanson ��Τϡ����� Association for Computing Machinery Transactions on Mathematical Software (ACM TOMS) �Υ��르�ꥺ��������Խ��ԤǤ��ä��� ��Τ� NR ���������Ǿ�����ˡ�Υ����ɤ�ƥ��Ȥ��� ����Τ��Ƥ��륳���ɤǤ��� MINPAC �� LMDIR �� NL2SOL �Ρ� ��ɽ����Ƥ����̤���Ӥ�Ԥä��� NR �Ͼ��ˤ�äƤϡ�����оݤΥ����ɤ���١� 20 �ܤ�η����֤���ɬ�פǤ��뤳�Ȥ���Τ�ȯ�������� ��Υ����Ȥˤ��С� Levenberg-Marquardt ˡ�θ���ѥ����ˤ����椬��ʬ�ˤ���������Ƥ��ʤ����ᡢ �ˤΥ����С��ե����䥢������ե����������Ƥ��ޤäƤ���ȤΤ��Ȥ��� NR �Υ��르�ꥺ��ϡ�Marquardt �� 1963 ǯ����ʸ�Υ����ǥ��� ���Ҥ˸¤äƼ���������ΤˤʤäƤ��롣 ���Υ����ǥ��ˤϤ��θ� 27 ǯ���Ϥäƽ��פʿ��⤬���ä��� �桹�� LMDIR �� NL2SOL������Ӥ����θ�ѥ����ɤΤۤ����� ���ä���ΨŪ�ǿ���Ǥ��� [��Ĵ�Լ�] �ȹͤ��롣
���߲桹�� NR �����̤��Ф������ܤ���褦�ˤʤä��Τϡ� ���̤�������Τ����ä������ä������Ҥ� 2 �Ĥ�����⤽�ΰ����Ǥ��롣 ���Τ褦�����̤�¾�ˤ⤢�ꡢ���η�̲桹�� 6.6 ��� "Spherical Harmonics" �� 14.6 ��� "Robust Estimation" �Ȥ�ܺ٤�Ĵ�٤뤳�Ȥˤʤä���
6.6 ���Ϳ�����Ƥ�����������르�ꥺ�ࡦ�����ɤϡ� ����Ū�ˤ����礷�Ƥ��롣 �ޤ� Legendre ��ؿ��η����Ѥ��Ƥ����������ϡ� �������������Ȥ����ˤ�äơ� ����Ǥ���ȿ侩����Ƥ����ΤǤ��롣 �������ʤ��顢�������������Ҥ˴ؤ��ơ� �͡��ʽ��������뤳�ȤˤĤ��Ƥϲ��ηٹ��ʤ���Ƥ��ʤ��� ����ͤ����� NR �Υ����ɤη�̤�¾�Υ��������Ȥ߹�碌��ȡ� �����餯�������ʤ���̤����뤳�ȤˤʤäƤ��ޤ���
���Х���ɾ�� (robust estimation) ������ɤ�Ǥߤ��Ȥ����� �桹�ϡ֥��Х��Ȥ�ľ���ե��åȡפ��� 14.6.1(b) �˵�������ä��� ����ϡֺǾ�����ե��åȡפη�̤��⤺�ä��ɤ��褦�˸����롣
���οޤ˴ؤ���桹�ε����Τ���뤿�ᡢ �桹�Ϥ��οޤ���礷�Ƽ¸�������ӡ֥ե��åȤ��줿�����������˥ȥ졼������ ���η�̤˴ؤ��Ƽ��Τ褦�ʼ¸���Ԥä���
�桹�Ϥޤ��Ǿ�����ե��åȤ�������� �� 14.6.1(b) �ˤ����ơ� �ɤΤ褦�ʡ֥��Х��ȡפʼ�ˡ���Ѥ���줿�Τ�����Ǥ��ʤ��ä��� �������������ΰ�� NR �ˤ�����Ϳ�����Ƥ��륳���ɤ� L1 �ե��åƥ������ʤΤǡ� �桹�Ϥ��Υǡ������Ф���֥��Х��ȡפʥե��åȤ���Ȥ��ơ� L1 �ե��åȤ�������� �桹�� CL1 ���֥롼������Ѥ��� L1 �ե��åȤη�̤������� ����� 1980 ǯ�� ACM TOMS �Υ��르�ꥺ�����礫��������줿��Τǡ� ��̤˴ؤ��Ƥ��������ȹͤ����ɤ��������� �桹��Ʊ���� NR �Υ����� MEDFIT �Υǡ������Ф���Ŭ�Ѥ����� ����줿��̤ϡ�CL1 �η�̤Ⱦ������ʲ��軰��ޤǰ��פ�����
ͽ���̤ꡢ�Ǿ�����ե��åȤη�̤� 14.6.1(b) �θ����ܤη����Ȥ��ޤ���ʤ��ä��� ������ L1 �ե��åȤη�̤Ϥ��ޤ���Ƥ��ʤ��ä��� NR �ο� 14.6.1(b) �� "fits" �ȼ����줿���ϡ� �ɤ�ʷ�������줿��̤Ǥ�ʤ��� ñ�����Ԥ餬�� �֥��Х��ȡץե��åƥ����Ф���ٻ����䶯���뤿��� ���Ū�˰�������ΤΤ褦�˻פ��롣 ��ȽŪ�ǤϤʤ��ɼԤϡ������餯 14.6.1(b) �ơ� ���줬�ºݤΥ��르�ꥺ�����ǽ�Ǥ��롢 �ȴְ�äƻפ�����Ǥ��ޤ���������
L1 �ե��åƥ����������Ū�ؿ��ϡ� �ե��åȷ�̤�ҤȤİʾ�Υǡ���������֤Ȥ���褦�ʥѥ����ͤǤϡ� ��ʬ��ǽ�ǤϤʤ��� ���Ԥ�Ϥ������˴ؤ��Ƥ����餫�ϵ��Ť��Ƥ���褦������ ���Τ��Ȥ���ˡ���르�ꥺ��ˤ⤿�餹��̤��٤ƤˤĤ��ƤϤ����ǤϤʤ��餷���� �̾����������Ф����ˡ�Ǥ� 2 �İʾ��������֤���Τ��Ф��� ���Ԥ�Υ��르�ꥺ��Ǥϥ��르�ꥺ��Τ����� ��ԥե��åȤˤ����ơ����� 1 �ĤΥǡ�����������֤��ʤ����Ȥ��ɤ�����褦���� �����Ǥ� MEDFIT/ROFUNC �����ɤ����Ԥ���褦�ʥǡ������åȤ� ��ñ�˺��뤳�Ȥ��ˤȤɤ�Ƥ�����
�롼�פ�����������褦�ʥǡ������åȤΤҤȤĤ� [x = 1, 2, 3; y = 1, 1, 1] �Ǥ��롣�����ɤ��̤ξ��ǥ롼�פ�����������̤Υǡ������åȤȤ��� [x = 2, 3, 4; y = 1, 3, 2] �����롣 �����ɤϽ�λ���뤬���礭���ְ�ä���̤�⤿�餹�ǡ������åȤ� [x = 3, 4, 5, 6, 7; y = 1, 3, 2, 4, 3] �Ǥ��롣 ����Ū�ʴ��ä˴ְ㤤�����뤿�ᡢ ���Υ����ɤˤ�ä�����줿����η�̤��������ȿ����뤳�ȤϽ���ʤ��� ��������������̤������뤳�Ȥ⡢�ʤ��Ȥϸ���ʤ�����
"Numerical Recipes" ����Τä�����䥳���ɤ��Ф��Ƥϡ� �����������Υ����å������Ӥ˹Ԥ��٤��Ǥ��롣
�������� Bessel �ؿ��Ƚ��� Bessel �ؿ��� 0 ���� 1 �� (J0, J1, I0, I1) ������륳���ɤ��ȼ��˥����å������� NR ��Ϳ�����Ƥ������ϡ� Cecil Hastings �ˤ�ä� 1959 ǯ�˽��Ǥ��줿�� National Bureau of Standards �� "Handbook of Special Functions, Applied Mathematics Series 55" �ˤ����Τ�Ʊ���Ǥ��ä��� ���ζ���������������������ΤȤ������ǤϤʤ��� 6 ��ʾ���뤳�ȤϽ���ʤ��� ��äƤ��Υ����ɤ�������١פ��Ѥ��뤳�ȤϤǤ��ʤ��� �ü�ؿ��ζ���˴ؤ��Ƥϡ� ���� 32 ǯ�δ֤ˤ�������λŻ����ʤ���Ƥ��Ƥ���Τ�����
�桹�� NR �Υ��르�ꥺ��䥳���ɤΤ��٤Ƥ��İ��Ĵ�������櫓�ǤϤʤ����� NR �γƾϤΤ��٤Ƥ������������櫓�Ǥ�ʤ� (�桹�ˤ�¾�ˤ��٤����������Ū�ʻŻ�������)�� ������ (���̤������) Ǥ�դ˺Τä� 4 �Ĥ��ΰ�ˤ����ơ� ���� 4 �Ĥ��٤������꤬���ä��Τ����顢 �Ĥ����ʬ�ˤĤ��Ƥ�ꤹ�뤳�Ȥ�����
���ˡ������Ǥ��������ɤ˴�̯���ʤ�����ޤ��� �㤨������ؤΥ����������ְ�äƤ����ꡢ ��¦�Υ롼�פ���ɬ�פ� IF �� MOD ʸ������Ƥ����ꡣ
�����ǡ�ϢΩ��������������ˡ�Dz��Ȥ˴ؤ������ε�������ϡ� ��Ϥ��ʤ�Τ��Ȥ�ؤӤޤ����� ���μ����Ϲ����ǤϤ���ޤ����Ǥ������ OK �Ǥ�����
And:
���ʤ��� "Numerical Recipes" �ˤĤ��� sci.physics �˥ݥ��Ȥ������Ƥϡ� ��ηи��Ȱ��פ��ޤ��� ��� "Numerical Recipes" ��Ϳ�����Ƥ������ϡ� ����ͤ�����˴��������ΤǤ����ʤ����ȹͤ��Ƥ��ޤ��� �ʤ��ʤ� NR ���ɤ���ͤϡ� ����Dz��������äƤ��뤫���������ȻפäƤ��ޤ�����Ǥ��� NR �μ�����ϡ����������ˤĤ��ƻ���ʸ�����Ƥ���Ȥ����Ǥ��� ���٤�Ҥɤ��ܤˤ����С��ޤä�������ʸ���˸��������Ȥ�ؤ֤Ǥ��礦��
��: 9.5 ��Ǥϡ�¿�༰��������õ�����뤿��� Laguerre �μ�ˡ�����ɤ�ʽ�ȯ������Ǥ��«����ȽҤ٤Ƥ��ޤ��� �������ʤ��� Ralston �� Rabinowitz �ˤ��С� ���줬��Ω����ΤϤ���¿�༰�β��٤Ƽ¿��ξ��˸¤��ޤ��� �㤨�� Laguerre �μ�ˡ��¿�༰ f(x)=x^n + 1 ���Ѥ��� ��ȯ�Ϥ� 0 �Ȥ���ȡ�f'(0) = f"(0) = 0 �Ǥ��뤿��ˡ� ���ʱ��ܤ˴٤�ޤ���
And:
;�̤Ǥ�������Ϥ��礦�ɽ��ǼҤ��顢 NR �� 18 �ϤȻפ���褦�ʥץ�ץ��Ȥ�������ޤ����� Υ���������֥�å��Ѵ��˴ؤ����ΤǤ��� �������Ƥϴְ�äƤ��롢�ȤϤä�������ޤ��� ��οޤˤ����̤ϡ���Υ롼����ǤϺƹ����Ǥ��ʤ��ΤǤ��� �ʤ����Ϥ狼��ޤ����Ȥˤ���ư���ʤ��ΤǤ��� �����Υ롼�����ȤäƤ���ͤ��⤷����ä���ä���������ꤲ�뤳�ȤǤ��� �����Υ롼����������Ƥ����ꡢ ¾��Υ���������֥�å��Ѵ��롼�������äƤ���ͤ�����ä���ä��顢 ����ˤĤ����Τꤿ���פ��ޤ�����������
And:
��θĿ�Ū�ʷٹ�� SVDCMP �Ͼ��ư���Ȥϸ¤�ޤ��� ������Ǥϡ���̤��ְ㤦���Ȥ��狼��ޤ��� (�����ʤ��Ȥ˳�ǧ����Τϴ�ñ�Ǥ��������̤οͤϤ��ʤ��Ǥ����)�� ��� NR fortran �� c ����������NR �� c �����ɤ��Ƥߤޤ����� ξ�Ԥ�Ʊ���褦�˴ְ㤤�ޤ����� IMSL �� fortran �� Linpack �ǻ�� Linpack �� c ������������ΤǤ��Ƥߤޤ����� ���� 3 �ĤϤ��٤���������̤��ޤ�����
And:
NR ���������Ƥ�����������롼���� RAN1 �� RAN2 �ϡ� �ޤ���ʥ��ץꥱ�������ǤϷ褷���Ѥ���٤��ǤϤ���ޤ��� RAN1 �κǹ�̥ӥåȤ��Ѥ���Ĺ�� 10,000 �� Υ�������०������ (Ʊ����Ψ�ǡ�1) ����ȡ� ʬ������ 1500 �ǡ�˾�ޤ����ͤǤ��� 10,000 �����ڤ���û���Ǥ���
ξ���Ȥ� low-modulus ȯ����ˤ��������Хåե�����������Τǡ� ������˺���̥ӥåȤ�¾�� low-modulus ȯ����Ȳ�ž�����ޤ��� �����η����Ϥޤ���ʻŻ��ˤ�û������ ��̤Ȥ���������ȯ�����ȤƤ��ɤ��Ȥϸ����ޤ���
And:
�䤬�ä����͡��ϳ��������ܤΤ��줾��㤦���˵�������ʤ��Ȥ���������ޤ��� (�䤬���ַ����ʤΤϡ�simulated annealing �Ƚ���륹�ޥ�����˴ؤ�����Ǥ��� ��������ˤĤ��ƤϤ��äȤޤ��ʥ��ץ�������¸�ߤ��ޤ�)��
And:
�����������Ͳ��ϤΤ��֤��ǿͤǡ� NR ���ˤθ��դȤ��ƶ���� (����ã��Ʊνã����ǡ��������餫�� NR ��Ȥä����Ȥ��ʤ��Τ�!)�� �ʤ� NR �� QL ʬ��Υ롼���� ��ư��ʤ��Τ����褹��Τ� ���������䤷�ޤ����� �ְ�äƤ���Τϼ�ʬ���ȻפäƤ����ΤǤ���
And:
������Ρ���ླྀ�פϡ�FFT �����ɤ˴ؤ����ΤҤɤ��и��� �դ��Ƥ���뤫���Τ�ޤ��� �⤷���Τ褦���ä����ä��鶵���Ƥ�������!
And:
��ϺǶ� Numerical Recipes in C (�Ǥ�����) �ΥХ��˽Ф��路�ޤ����� ksprob() �Υ����ɤƤ��������� ¿����η����֤��Ƥ��«�˼��Ԥ���ȡ�0.0 ���֤��ΤǤ��� ���������δؿ������äȸ���С� ������ lambda �Ǥ��¤ϼ�«���ʤ� (lambda �ϼºݾ������ʤ��Ȥ����ʤ��ΤǤ���) ���Ȥ��狼��ޤ��� ��ä��������֤��ͤ� 0.0 �ǤϤʤ� 1.0 �Ǥ���٤��Ǥ���
�ޤ������δؿ��Ͽ��� (���餫�ˤޤ�ï������Ȥ��ʤ�) �ؿ����Ф�������Ū�ʶ���˲�������μ�ˡ�Ͼ����� lambda �ˤ����Ƥ� ������������Ǥ��뤳�Ȥ桼���Ϸٹ𤵤�Ƥ�����٤����Ȼפ��ޤ���
�桹�Ρ�������¾��¿���ο͡��ηи��ˤ��С� ���ͷ����եȥ���������Ǥ���������������Τ���äȤ��ɤ��� ��äȤ��ڤ��ݲ��ʤΤ� NETLIB �ǡ� ACM Transactions on Mathematical Software �Υ��르�ꥺ�� (���٤ƺ��ɤ�ФƤ���) �䡢 ¾�ˤ�Ʊ�ȼԤˤ����̩��Ĵ�� (��������ʸ��Υ�ե�������ȤϾ����ۤʤ�) ���Ѥ������̤Υ����ɤ��ΤǤ��롣
MEDFIT ������ϡ������ɤ��������Τۤ���������� �����ɤΰ������Ŧ���ơ��֤�����!�פȸ����Τ����� MEDFIT �κ�Ԥϡ����� 0 �����ǻĺ����Ǿ��ˤʤ�Ȳ��ꤷ�Ƥ��롣 ������ L1 ����Ǥϡ�������������ʤ��� ����ؿ��� C0 ��Ϣ³�����������ʤ����顢 ���ۤ�¸�ߤ��ʤ�����¸�ߤ����� (�㤨�Хǡ������Ϥ��٤Ƥ����ʤ�)�� �Ѥ���٤����ϡ� "The Approximation of Functions -- Vol 1: Linear Theory" by John R. Rice, Addison-Wesley, 1964 (102ff) �� 4-4 ��ˤϤä����Ƥ��롣 �Ǿ��Ȥʤ�Τϡ�Ǥ�դ���ư�����٤ƻĺ������ä�������Ǥ��롣 Ϣ³����Ϣ³Ū����ʬ��ǽ�ʷ����᤹ܶ����ϡ� ����ϸ��ۤ� 0 �Ǥ��뤳�Ȥ��������ȸ��ä��ɤ��� ���������Τ��Ȥ� L1 �ե��åƥ����ܶ�Ǥ���Ω���ʤ��� ��ä� MEDFIT �Τޤ��ǽ�η�٤ϡ� ����ؿ��θ��ۤ� 0 �ǺǾ��ͤȤʤ롢�Ȥ�������ˤ��롣
����ܤη�٤ϡ�����Τ��������르�ꥺ���ž������ݤ������Ƥ��롣 ������������뤿��ˡ� �ޤ��ѥ��� 1 �Ĥ� L1 �ե��åƥ��������ͤ��Ƥߤ褦�� ���ξ�硢���Ԥ��٤���̤Ͻ��������ͤǤ��롣 ������������礭���������ξ��ϡ� ����� 2 �ͤδ֤��ͤʤ顢�ɤ�Ǥ��������ɤ���Ǥ��롣 �������ʤ��� NR �Υ��르�ꥺ��Ǥϡ� 1 �Ĥޤ��� 2 �ĤΥǡ���������֤������θ���Ƥ��ʤ� (���̤� N �ѥ����ؤ� L1 �ե��åƥ��� N �ĤΥǡ���������֤���)�� ��äƷ�̤Ȥ��ơ�MEDFIT ��ɬ������ʬ��¸�ߤ��ʤ�������ʬ������뤳�Ȥˤʤ롣 �¤� MEDFIT ���ºݤ�ɬ�פȤ���Τ��������ǡ� ��ʬ��¸�ߤ��ʤ��Ƥ⡢�������ͤ��������Ψ�� 1/2 �Ǥ��롣 �������ǡ������⤦����äȤ��äơ�MEDFIT ����ζ�ˤ������ϡ� ������θ��ۤ���ߤ�Ϳ�����뤳�Ȥˤʤꡢ 2 ���δ֤å���Хå���Ԥ��褹�뤳�ȤȤʤ롣 (�����餯�Ϥ��� 2 ���Τ���������������������� MEDFIT �ˤϤɤ���ǽ�λ����Ф����Τ����狼��ʤ�)��
3 �Ĥ�η�٤ϡ�����Τ��륢�르�ꥺ����ɤ�ž������ݤ������Ƥ��롣 ������ (�����ɤ��ºݤΤȤ����������Τ��Ϥ狼��ʤ��Ƥ����餫��) ��٤ˤĤ��Ƥϴ���¾�λ�Ŧ�����롣
�Ȥ����ǡ�Fortran �Ǥ� C �Ǥϡ����Ф��аۤʤä�ư��뤳�Ȥ����롣 ����� Fortran �� SIGN �ؿ���������Ѥ����Ƥ��� C �ǤǤ�ɾ�������� Fortran-77 ɸ��������Ƥ��� SIGN �ؿ��Τ�ΤȤϰ㤦����Ǥ��롣