%=====================================================================
% ���Ĺ��� 5E �׻������ѥƥ�����
%�����ơ��ޡ��ա��ꥨ����η�����ϢΩ�������ǵ���
%    �ܥƥ����Ȥ�����
%�����������ա��ꥨ���
%����������
%        ��
%����
%
% last updated 2005.11.25
%    created by  Masashi Yamamoto
%     e-mail yamamoto@akita-nct.jp
%=====================================================================
\documentclass[10pt,a4paper]{jarticle}
\usepackage{graphicx,amsmath,amssymb,ascmac,verbatim,multirow,bigdelim}
\newcommand{\vm}[1]{\boldsymbol{#1}}
\newcommand{\hugesymbol}[1]{\mbox{\strut\rlap{\smash{\Huge$#1$}}\quad}}
\oddsidemargin 0mm  %����;�� 25.4mm-0mm������ڡ���
\evensidemargin 0mm %����;�� 25.4mm-0mm�������ڡ���
\textwidth 160mm
%
\begin{document}
\title{�����������(����ԥ塼�����ˤ��ա��ꥨ���)}
\author{���ܾ���\thanks{��Ω���Ĺ��ȹ�������ع����ŵ����ز�}}
\date{2005ǯ11��25��}
\maketitle
%
%
%=====================================================================
\section{�ա��ꥨ���}
%=====================================================================
ϢΩ�������κǸ������ϡ��ա��ꥨ����˴ط���������Ǥ��������ǡ���������ˤĤ�
�ƴ�ñ�˲��⤷�Ƥ�����
%
%---------------------------------------------------------------------
\subsection{�ա��ꥨ����Ȥ�}
%---------------------------------------------------------------------
�ա��ꥨ����ϡ��ա��ꥨ(1768-1830 �ե��)��Ǯ��Ƴ���������򸦵椷�Ƥ���Ȥ���
ȯ����������Ǥ������ϡ���äѤ���(��ư���Ȥȹͤ���)�������Ŭ�Ѥ���Ƥ��ޤ���

�ա��ꥨ����Ȥϡ��Ĥ��Τ褦�˶��[$-\pi,\pi$]��������줿Ǥ�դδؿ���$\sin$��
$\cos$��Ÿ��������ΤǤ���
%
\begin{align}
 f(x)=\frac{a_0}{2}+\sum_{n=1}^{\infty}a_n\cos
 nx+\sum_{n=1}^{\infty}b_n\sin nx
 \label{eq:fourier_sincos_exp}
\end{align}
%
���μ������Τ�����Ω�Ĥ����$f(x)$�˲ݤ�������ϡ�$f(x)$�Ϥ�������ͭ�¸Ĥ�ͭ
�¤���Ϣ³���������������ޤ�ͭ�äƤ�ͭ�¸Ĥζ��͡������ͤޤ��϶˾��ͤ���Ĥ��Ȥ�
�����ʳص��Ѥ��Ѥ��������̤δؿ��Ϥ��ξ�����­���ޤ���ͭ�¸Ĥ�ͭ�¤���Ϣ³��
�������ΤǤ�������ϡ����˶ä��٤����ȤǤ������ޤǤۤ�̵�뤷�Ƥ�����Ϣ³����
��갷����Ȥ����Τ����򤤤��ȤǤ���

���Τ褦�˴ؿ���Ÿ�����뤳�ȤϤ��������ʾ��̤ǻȤ��ޤ���������ϡ��ա��ꥨ���
�ʳ��ˤ��Ѿ��Ÿ������ƥ��顼Ÿ���Ȥ�����Τ򤹤Ǥ˳ؽ����Ƥ���Ϥ��Ǥ������̤�
�������Թ���ɤ�Ÿ����Ȥ��Ф褤�ΤǤ���

������Ǥ�դδؿ�������(\ref{eq:fourier_sincos_exp})��Ÿ���Ǥ��뤳�Ȥξ����Ͽ���
�ζ��ʽ�˾��뤳�Ȥˤ��ơ�����Ÿ���η������ա��ꥨ����$a_n$ ��$b_n$�������ˡ
�򼨤��ޤ������줳�������ա��ꥨ�����ա��ꥨ�Ѵ������뤤�ϥ���ԥ塼�����ˤ��
Υ���ա��ꥨ�Ѵ�(DFT)�ޤ��Ϲ�®�ա��ꥨ�Ѵ�(FFT)�μºݤη׻��Ǥ���

����Ÿ������������Ū�ʼ��ϡ����Ѵؿ��μ���������Ȥ����Ȥˤ����뤳�Ȥ��Ǥ���
������������$m$ ��$n$��1�ʾ�������Ȥ��ޤ���
%
\begin{align}
\int_{-\pi}^{\pi}\cos mx \cos nx =\begin{cases}
				  0 & m \neq n\\
				  \pi & m=n\\
				 \end{cases}
\end{align}
%
\begin{align}
\int_{-\pi}^{\pi}\sin mx \sin nx =\begin{cases}
				  0 & m \neq n\\
				  \pi & m=n\\
				 \end{cases}
\end{align}
%
\begin{align}
\int_{-\pi}^{\pi}\cos mx \sin nx =0
\end{align}
%
\begin{align}
\int_{-\pi}^{\pi}\cos nx =0
\end{align}
%
\begin{align}
\int_{-\pi}^{\pi}\sin nx =0
\end{align}
%
�ޤ��ϡ�$a_0$�Τ�׻����ޤ������Τ���ˡ���(\ref{eq:fourier_sincos_exp})
��ξ�դ���[$-\pi,\pi$]��$x$����ʬ����Ф褯��
%
\begin{equation}
 \begin{aligned}
  \int_{-\pi}^{\pi}f(x)dx &=
  \int_{-\pi}^{\pi}\frac{a_0}{2}dx+\sum_{n=1}^{\infty}a_n\int_{-\pi}^{\pi}\cos
  nx dx+\sum_{n=1}^{\infty}b_n\int_{-\pi}^{\pi}\sin nx dx\\
 &= \pi a_0
 \end{aligned}
\end{equation}
%
�Ȥʤ�ޤ������줫�顤
%
\begin{align}
 a_0=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)dx
 \label{eq:fourier_a_n_zero}
\end{align}
%
�ȷ׻��Ǥ��ޤ���$\frac{a_0}{2}$�ϡ��ؿ�$f(x)$�ζ��[$-\pi,\pi$]��ʿ����
�ˤʤäƤ��뤳�Ȥ˵����դ��Ƥۤ���������򵻽ѼԤ�ľή��ʬ�ȸ����ޤ���

�Ĥ��ˡ�$a_n$����褦����(\ref{eq:fourier_sincos_exp})��ξ�դ�$\cos
mx$��񤱤ơ����[$-\pi,\pi$]��$x$����ʬ���ޤ�������ȡ�
%
\begin{equation}
 \begin{aligned}
  \int_{-\pi}^{\pi}f(x)\cos mx dx &=
  \int_{-\pi}^{\pi}\frac{a_0}{2}\cos mx dx+\sum_{n=1}^{\infty}a_n\int_{-\pi}^{\pi}\cos
  nx \cos mx dx+\sum_{n=1}^{\infty}b_n\int_{-\pi}^{\pi}\sin nx \cos mx dx\\
  &= a_m \pi
 \end{aligned}
\end{equation}
%
�Ȥʤ�ޤ������줫�顤ľ����$a_n$�Ϸ׻��Ǥ��ơ�
%
\begin{align}
 a_n &= \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)\cos nx dx &
 (n=1,2,3,\cdots)
 \label{eq:fourier_a_n_nonzero}
\end{align}
%
�Ȥʤ�ޤ��������ǡ����μ��ȼ�(\ref{eq:fourier_a_n_zero})����٤ޤ�������ȡ�
%
\begin{align}
 a_n &= \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)\cos nx dx &
 (n=0,1,2,3,\cdots)
 \label{eq:fourier_a_n}
\end{align}
%
�Ȥʤ뤳�Ȥ�ʬ����ޤ��������ҤȤ�����Ǥ������Ȥˤʤ�ޤ���Ʊ�ͤˡ�
$b_n$�ϡ�ξ�դ�$\sin mx$�򤫤��ơ���ʬ��Ԥ��ޤ�������ȡ�
%
\begin{equation}
 \begin{aligned}
  \int_{-\pi}^{\pi}f(x)\sin mx dx &=
  \int_{-\pi}^{\pi}\frac{a_0}{2}\sin mx dx+\sum_{n=1}^{\infty}a_n\int_{-\pi}^{\pi}\cos
  nx \sin mx dx+\sum_{n=1}^{\infty}b_n\int_{-\pi}^{\pi}\sin nx \sin mx dx\\
  &= b_m \pi
 \end{aligned}
\end{equation}
%
�Ȥʤ�ޤ����������äơ�$b_n$�ϡ�
%
\begin{align}
 b_n &= \frac{1}{\pi}\int_{-\pi}^{\pi}f(x)\sin mx dx &
 (n=1,2,3,\cdots)
 \label{eq:fourier_b_n}
\end{align}
%
�ȵ��뤳�Ȥ��Ǥ��ޤ������μ��ȼ�(\ref{eq:fourier_a_n})����ա��ꥨ����
���׻��Ǥ�����(\ref{eq:fourier_sincos_exp})��Ÿ������ǽ�Ȥʤ�櫓�Ǥ���

����ޤǤϡ��ؿ��ζ��[$-\pi,\pi$]�Ȥ��Ƥ��ޤ���������
(\ref{eq:fourier_sincos_exp})�Ϥ��ζ�֤γ�¦�Ǥ�׻��Ǥ��ޤ�����¦��
�ͤ����ˤʤ�Ȥ����Ǥ���������ϻ��Ѵؿ��������ˤ��ľ���ˤ狼��ޤ���
�ա��ꥨ�����������뻰�Ѵؿ��ϡ�$2\pi$�μ���������ޤ��Τǡ��ա��ꥨ
�����Ʊ����������Ĥ��Ȥˤʤ�ޤ����������äơ����[$-\pi,\pi$]�η���
���γ�¦�Ǽ���Ū�˸���뤳�Ȥˤʤ�ޤ����ȤȰ��Ǥ���
%
%---------------------------------------------------------------------
\subsection{�о���}
%---------------------------------------------------------------------
�ա��ꥨ����ϡ�������ؿ��ϻ��Ѵؿ�����Ǥ��Ƥ���ȸ��äƤ��ޤ������λ��Ѵؿ�
�ϡ�������򶭤��оΤ�$\cos$��ȿ�оΤ�$\sin$��ʬ���뤳�Ȥ��Ǥ��ޤ������Τ��Ȥ��顤
�ɤ�ʷ��δؿ��Ǥ��оδؿ���ȿ�оΤʴؿ���ʬ��Ǥ��뤳�Ȥ��̣���Ƥ��ޤ���

�⤷�����δؿ��������򶭤��оݤʷ��򤷤Ƥ���ʤ�С����Υա��ꥨ�����$\cos(nx)$
���¤Τߤǽ񤫤�뤳�Ȥˤʤ�ޤ�\footnote{ľή��ʬ�ϡ�$n=0$��$\cos$�ΰ����ȹͤ���
����}���������������濴��ȿ�оȤʴؿ��Ǥ���С�$\sin(nx)$���¤Τߤ�ɽ���Ǥ��ޤ���
����ϡ�$a_n$��$b_n$����뼰���������Ǥ��ޤ���
%
%=====================================================================
\section{�׻����ˤ��ա��ꥨ���}
%=====================================================================
%---------------------------------------------------------------------
\subsection{Υ���ա��ꥨ�Ѵ�(�ա��ꥨ$\cos$Ÿ��)}
%---------------------------------------------------------------------
�����Ǥϡ��׻����ˤ��ա��ꥨ�Ѵ���Ԥ���ˡ���������ޤ����ա��ꥨ�Ѵ�
�ȸ��äƤ⡤�ºݤϥա��ꥨ����η�������Ƥ�������Ǥ������ޤǤϿ���
���ä��Τǡ��ؿ�$f(x)$��Ϣ³Ū���ͤǤ��������������ºݤ�¬���̡��㤨��
�Ű��ʤ�Ϣ³Ū��¬�ꤷ�Ƥ��Υǡ������ߤ�����櫓�Ǥ�ͭ��ޤ���Ϣ³
�ǤϤʤ�Υ��Ū�ʥǡ����Ȥʤ�ޤ����������˰����ա��ꥨ�Ѵ�������ˡ
��ͤ��ޤ��礦���Ȥϸ��äƤ⡤���˥ա��ꥨ�Ѵ�����FFT�ޤǤϤ��ɤ���
���ޤ��󤬡����Τ������������ޤ���

�����Ǥ��ä��ñ�ˤ��뤿��ˡ�������$2\pi$�Ȥ��ޤ��������ơ������򶭤�
�оΤʾ���ͤ��ޤ�������ϡ�ϢΩ���������������꤬�����ʤäƤ�������
�ǡ�����Ū������˳�ĥ���뤳�Ȥ��ưפǤ������̲��ˤĤ��Ƥ⡤��˼�����
�ιֵ��Ρ��Ȥ򻲾Ȥ��Ƥ���������

���Ρ�������Ⱦʬ[$0,\,\pi$]���N�Ĥ����ֳ֤ǥǡ���������줿�Ȥ��ޤ���
�����������򶭤��оΤȤ������꤬����ޤ��Τǡ�[$-\pi,\,0$]���ͤ�ʬ����
�Ƥ��ޤ����������ǤϻȤ��ޤ��󡥥ǡ��������ֳ֤��¤֤Ȥ������ȤϽ��פ�
��\footnote{�����ǤϽ��פǤ���ޤ��󤬡�DFT��FFT�η׻��ǤϽ��פˤʤ��
����}�����ʤ����
%
\begin{align}
 x_j&=\frac{\pi}{N}j\qquad(j=0,1,2,\cdots,N-1)
\end{align}
%
�����ǥǡ���������줿��ΤȤ��ޤ��������������ǡ�����
%
\begin{align}
 f_j=f(x_j)
\end{align}
%
�Ȥ��ޤ���

���ơ��������Ǥ����Τǡ��ºݤΥա��ꥨ����μ�
(\ref{eq:fourier_sincos_exp}) ��ɾ�����Ƥߤޤ���¬���̤Ǥ���$f_j$��
$x_j$�Ϥ��줾��N�Ĥ�������ޤ��󡥽��äơ��ա��ꥨ������$c_n$��N�Ĥ���
���뤳�ȤϤǤ��ޤ��󡥴ؿ����оΤȲ��ꤷ�Ƥ��ޤ��Τǡ�ȿ�оΤ򼨤�
$b_n$�ϥ����Ȥʤꡤ$a_n$��$n=0,1,2,\cdots,N-1$����뤳�Ȥˤʤ�ޤ���
����$a_n$����ʬ�μ�(\ref{eq:fourier_a_n})��Ȥ�ʤ��ǡ�ϢΩ����������
�׻����褦�Ȥ����ΤǤ���

���ʤ����
%
\begin{align}
 f(x)=\sum_{n=0}^{N-1}a_n \cos(nx)
 \label{eq:fourier_cos_expansion}
\end{align}
%
��������$a_n$����뤳�Ȥˤʤ�ޤ��������ǻĤ��줿����ϡ�¬���̤�
$x_j$��$f_j$����$a_n$����뤳�Ȥˤʤ�ޤ�����������Ū��ñ�ǡ�
%
\begin{align}
 f_j=\sum_{n=0}^{N-1}a_n \cos(kx_j)\qquad(j=0,1,2,\cdots,N-1)
 \label{eq:DFT_renritsu1}
\end{align}
%
��ϢΩ��������򤱤��ɤ����Ȥ�ʬ����ޤ������μ��η���ʬ����ˤ�������
��ǤϤ⤦����ʬ����פ��񤤤Ƥߤޤ��礦��
%
\begin{align}
 \begin{pmatrix}
  f_0\\
  f_1\\
  f_2\\
  \vdots\\
  f_{N-1}
 \end{pmatrix}
 =
 \begin{pmatrix}
  1      & 1             & 1              & \dots  & 1\\
  1      & \cos(x_1)     & \cos(2x_1)     & \dots  & \cos\left((N-1)x_1\right) \\
  1      & \cos(x_2)     & \cos(2x_2)     & \dots  & \cos\left((N-1)x_2\right) \\
  \vdots & \vdots        & \vdots         & \ddots & \vdots \\
  1      & \cos(x_{N-1}) & \cos(2x_{N-1}) & \dots  & \cos\left((N-1)x_{N-1}\right)
 \end{pmatrix}
 \begin{pmatrix}
  a_0\\
  a_1\\
  a_2\\
  \vdots\\
  a_{N-1}
 \end{pmatrix}
 \label{eq:DFT_renritsu_eq}
\end{align}
%
$f_j$��$x_j$�ϴ��ΤʤΤǡ�����ϢΩ��������򤤤�$a_j$��׻����뤳�Ȥ�
��ǽ�Ǥ������β򤬥ա��ꥨ����$a_n$�Ȥʤ�ޤ�����®�ա��ꥨ�Ѵ�(First
Fourier Transform ά����FFT)�ϡ�����$a_n$�򤢤빩�פ��줿���르�ꥺ��
�ǹ�®�˷׻����Ƥ�������Ǥ���

�֤ʤ�ۤɡ�ϢΩ�������ʤ�з׻��������դʤΤǡ���
(\ref{eq:DFT_renritsu_eq})��򤱤��äϽ����פȻפäƤϤ����ޤ��󡥤�
���Ǥγؽ��Ϥ����ºݤ˷׻����Ƥߤ뤳�ȤǤ������ºݤˤϹ�®�˷׻�����
����ˤ��������ȹ��פ��Ǥ��ޤ�����������$N=1000$�̤ˤʤ�Ȥ��μ���׻�
����Τ�����ʻ��֤�������ޤ��Τǡ��׻����֤�û�̤�ɬ�פˤʤ�ޤ���

���η׻����®�ǹԤ��褦�˹��פ������르�ꥺ�ब��Υ���ա��ꥨ�Ѵ�
(DFT)�Ǥ��ä����®�ա��ꥨ�Ѵ�(FFT)�ȸƤФ���ΤǤ�������ϡ��ǡ���
�����ֳ֤��¤�Ǥ���Ȥ������������Ѥ�����ˡ�Ǥ����⤦�����ܤ�����
���ϡ����5M�¸��ιֵ��Ρ��ȤΡ֥ա��ꥨ�Ѵ��Ȥ��μ��աפ򸫤Ƥ���������
URL�ϰʲ����̤�Ǥ���

http://www.ipc.akita-nct.ac.jp/~yamamoto/lecture/2003/5M\_Exp/lecture\_5M\_Exp/fourier\_transform.pdf
%
%---------------------------------------------------------------------
\subsection{��������ˤĤ���}
%---------------------------------------------------------------------
����ʬ���ä��Τ�������������ƤˤĤ����������ޤ�����������ϡ���
\ref{fig:triangle}�˼����ǡ������顤�ա��ꥨ�������褦�Ȥ����Τ�
����������$2\pi$�ǡ��������濴���оΤȤ��Ƥ��ޤ����ޤ����ʬ����褦��
�����Ȥ�ա��ꥨ$cos$Ÿ�����뤳�Ȥˤʤ�ޤ���

�����ȷ��Υա��ꥨ����ϡ���ʬ�ǤϤʤ���(\ref{eq:DFT_renritsu_eq})��Ϣ
Ω��������򤯤��Ȥˤ����뤳�Ȥ��Ǥ��ޤ�����\ref{fig:triangle}��ɽ
�����ϡ��ʲ����̤�Ǥ���
%
\begin{align}
 \begin{pmatrix}
  0\\
  \frac{1}{N}\\
  \frac{2}{N}\\
  \vdots\\
  \frac{N-1}{N}
 \end{pmatrix}
 =
 \begin{pmatrix}
  1      & 1             & 1              & \dots  & 1\\
  1      & \cos\left(\frac{\pi}{N}\right)     & \cos\left(\frac{2\pi}{N}\right)     & \dots  & \cos\left(\frac{(N-1)\pi}{N}\right) \\
  1      & \cos\left(\frac{2\pi}{N}\right)     & \left(\frac{4\pi}{N}\right)     & \dots  & \cos\left(\frac{2(N-1)\pi}{N}\right) \\
  \vdots & \vdots        & \vdots         & \ddots & \vdots \\
  1      & \cos\left(\frac{(N-1)\pi}{N}\right) & \cos\left(\frac{2(N-1)\pi}{N}\right) & \dots  & \cos\left(\frac{(N-1)(N-1)\pi}{N}\right)
 \end{pmatrix}
 \begin{pmatrix}
  a_0\\
  a_1\\
  a_2\\
  \vdots\\
  a_{N-1}
 \end{pmatrix}
 \label{eq:renritsu_cos_expansion}
\end{align}
%
����ϢΩ��������򤤤ơ���(\ref{eq:fourier_cos_expansion})����������С�
Υ��Ū�������̤뼰����뤳�Ȥ��Ǥ��ޤ����ǽ�Ū�ˤϡ���Ҥ�
\pageref{fig:result}�ڡ����ο�\ref{fig:result}�Τ褦�ˤʤ�ޤ���
%
\begin{figure}[hbpt]
 \begin{center}
  \includegraphics[keepaspectratio, scale=1.0]{./figure/trianglefunc.eps}
  \caption{��������Υǡ���}
  \label{fig:triangle}
 \end{center}   
\end{figure}
%
%=====================================================================
\section{C����ǥա��ꥨ�Ѵ�}
%=====================================================================

%---------------------------------------------------------------------
\subsection{�ץ������}
%---------------------------------------------------------------------
�ºݤΥץ�������ʲ��˼����ޤ������Υץ������ϡ�
\begin{enumerate}
 \item{��(\ref{eq:renritsu_cos_expansion})��򤯤���ˡ�����Υǡ����������
     ����ʬ}
 \item{ϢΩ��������׻�������ʬ}
 \item{ϢΩ���������顤�ա��ꥨ����δؿ���׻�������ʬ}
 \item{�ؿ��򥰥�դˤ�����ʬ}
\end{enumerate}
��ʬ����Ƥ��ޤ����ºݤΥץ������ϡ��ʲ����̤�ǡ���������ջ��ब�ܤ�
�Ƥ���ΤǤ���򸫤ʤ������򤷤Ƥ���������
%
\begin{quote}
 \setlength{\baselineskip}{12pt}
 \begin{verbatim}
	#include <stdio.h>
	#include <math.h>
	#define MAXN 200

	int gauss_jordan(int n, double a[][MAXN+10], double b[]);
	double func(double x, int n, double b[]);
	void mk_graph(int n, double x[], double x1, double x2,
                             double y[], double y1, double y2);

	/*===========================================================*/
	/*    main function                                          */
	/*===========================================================*/
	main(){
	
	   double a[MAXN+10][MAXN+10], b[MAXN+10];
	   double pi=4.0*atan(1);
	   int n, i, j, k;
	   int nf;
	   double x1, x2, dx, x[1010], y[1010];

	   n=100;
	
	   /* -------- ���������Ʊ��������� ---------- */
	   for(i=1 ; i<= n ; i++){
	      for(j=1 ; j<=n ; j++){
	         a[i][j]=cos((double)pi*(i-1)*(j-1)/n);
	      }
	      b[i]=(double)(i-1)/n;
	   }  	

	   /* -------- ϢΩ�������η׻� ---------------- */
	   if(gauss_jordan(n, a, b) == 0){
	      printf("singular matrix !!!\n");
	      exit(0);
	   };

	   /* -------- ���δؿ��η׻�   ---------------- */
	   nf=1000;
	   x1=-2*pi;
	   x2=2*pi;

	   dx=(x2-x1)/nf;

	   for(i=0 ; i<=nf ; i++){
	      x[i]=x1+dx*i;
	      y[i]=func(x[i], n, b);
	   }

	   /* -------- ����պ��� ----------------------- */
	   mk_graph(nf,x,x1,x2,y,-0.5,1.5);
   
	}

	/*===========================================================*/
	/*    Gauss-Jordan method                                    */
	/*===========================================================*/
	int gauss_jordan(int n, double a[][MAXN+10], double b[]){

	   int ipv, i, j;
	   double inv_pivot, temp;
	   double big;
	   int pivot_row, row[MAXN+10];

	   for(ipv=1 ; ipv <= n ; ipv++){

	      /* ---- ������õ�� ---------------------------- */
	      big=0.0;
	      for(i=ipv ; i<=n ; i++){
	         if(fabs(a[i][ipv]) > big){
	            big = fabs(a[i][ipv]);
	            pivot_row = i;
	         }
	      }
	      if(big == 0.0){return(0);}	
	      row[ipv] = pivot_row;

	      /* ---- �Ԥ������ؤ� -------------------------- */
	      if(ipv != pivot_row){
	         for(i=1 ; i<=n ; i++){
	            temp = a[ipv][i];
	            a[ipv][i] = a[pivot_row][i];
	            a[pivot_row][i] = temp;
	         }
	         temp = b[ipv];
	         b[ipv] = b[pivot_row];
	         b[pivot_row] = temp;
	      }

	      /* ---- �г���ʬ=1(�ԥܥåȹԤν���) ---------- */
	      inv_pivot = 1.0/a[ipv][ipv];
	      a[ipv][ipv]=1.0;
	      for(j=1 ; j <= n ; j++){
	         a[ipv][j] *= inv_pivot;
	      }
	      b[ipv] *= inv_pivot;

	      /* ---- �ԥܥå���=0(�ԥܥåȹ԰ʳ��ν���) ---- */
	      for(i=1 ; i<=n ; i++){
	         if(i != ipv){
	            temp = a[i][ipv];
		    a[i][ipv]=0.0;
	            for(j=1 ; j<=n ; j++){
	               a[i][j] -= temp*a[ipv][j];
	            }
	            b[i] -= temp*b[ipv];
	         }
	      }

	   }

	   /* ---- ��������ؤ�(�չ���) -------------------------- */
	   for(j=n ; j>=1 ; j--){
	      if(j != row[j]){
	         for(i=1 ; i<=n ; i++){
	            temp = a[i][j];
	            a[i][j]=a[i][row[j]];
	            a[i][row[j]]=temp;
	         }
	      }
	   }

	   return(1);
	}

	/*===========================================================*/
	/*    function                                               */
	/*===========================================================*/
	double func(double x, int n, double b[]){

	   int i;
	   double y;
	
	   y=0;
	   for(i=1 ; i<=n ; i++){
	      y += b[i]*cos((i-1)*x);
	   }

	   return(y);
	}

	/*==========================================================*/
	/*   make a graph                                           */
	/*==========================================================*/
	void mk_graph(int n, double x[], double x1, double x2,
	                     double y[], double y1, double y2){

	   int i;
	   char *data_file;
	   FILE *out;
	   FILE *gp;

	   /* ------- make a data file ------------ */
	   data_file="gpdata.txt";
	   out = fopen(data_file, "w");
	   for(i=0; i<=n; i++){
	      fprintf(out, "%e\t%e\n", x[i], y[i]);
	   }
	   fclose(out);

	   /* == flowing lines make a graph by using gnuplot == */

	   gp = popen("gnuplot -persist","w");
  	
	   fprintf(gp, "reset\n");
	   fprintf(gp, "set terminal postscript eps color\n");
	   fprintf(gp, "set output \"graph.eps\"\n");
	   fprintf(gp, "set grid\n");

	   /* -------------  set x axis ----------------*/
	   fprintf(gp, "set xtics 1\n");
	   fprintf(gp, "set mxtics 10\n");
	   fprintf(gp, "set xlabel \"%s\"\n", "x");
	   fprintf(gp, "set nologscale x\n");
	   fprintf(gp, "set xrange[%e:%e]\n", x1, x2);

	   /* -------------  set y axis ---------------*/
	   fprintf(gp, "set ytics 1\n");
	   fprintf(gp, "set mytics 10\n");
	   fprintf(gp, "set ylabel \"%s\"\n", "y");
	   fprintf(gp, "set nologscale y\n");
	   fprintf(gp, "set yrange[%e:%e]\n", y1, y2);

	   /* -------------  plat graphs ---------------*/
	   fprintf(gp, "plot \"%s\" using 1:2 with line\n", data_file);

	   fprintf(gp, "set terminal x11\n");
	   fprintf(gp, "replot\n");
						
	   pclose(gp);
	}

\end{verbatim}
\end{quote}
%
%---------------------------------------------------------------------
\subsection{������}
%---------------------------------------------------------------------
���Υץ����������ƤˤĤ��ơ��ʲ������դ��Ƥ���������
\begin{itemize}
 \item{��̤ϼ¿����������ΤǤ���������Ʊ�Τα黻���ä˽��������դ�ɬ
      �פǤ���FORTRAN�ǳؽ������褦�ˡ�����Ʊ�Τα黻�Ϥ��Ȥ������Ǥ�
      �����������ˤʤ�ޤ���������ɤ�����ˡ�C����Ǥ϶������Ѵ�(����
      ����)�Ȥ�����Τ�����ޤ���(��)���Τ褦�˽񤯤ȡ��������Ƥ�����
      �줿�����Ѵ�����ޤ����㤨�С��ʲ��Τ褦�˻Ȥ��ޤ���\\
      %
      \vspace{-5mm}
      \begin{quote}
       \setlength{\baselineskip}{12pt}
       \begin{verbatim}	
	a[i][j]=cos((double)pi*(i-1)*(j-1)/n);
       \end{verbatim}
      \end{quote}
      \vspace{-5mm}
      }
 \item{����պ�������ʬ�ϴؿ��ˤ��ޤ��������δؿ��ϡ�\\
      %
      \vspace{-5mm}
      \begin{quote}
       \setlength{\baselineskip}{12pt}
       \begin{verbatim}	
	mk_graph(�ǡ�������,x��ɸ������,x����ü,x����ü,y��ɸ������,y����ü,y����ü);
       \end{verbatim}
      \end{quote}
      \vspace{-5mm}
      %
      �η��ˤʤäƤ��ޤ��������ƤӽФ��С�����դ�񤭤ޤ��������
      �ԡ��ڡ����Ȥ��ƻȤ��ޤ��礦��
      }
\end{itemize}
%
%---------------------------------------------------------------------
\subsection{�¹Է��}
%---------------------------------------------------------------------
���Υץ�������¹Ԥ���ȡ���\ref{fig:result}�˼�����̤������ޤ���
\begin{figure}[hbpt]
 \begin{center}
  \includegraphics[keepaspectratio, scale=0.8]{./figure/graph.eps}
  \caption{�¹Է�̡��ա��ꥨ������100��}
  \label{fig:result}
 \end{center}   
\end{figure}


%=====================================================================
\end{document}



