課題1
ダウンロードするもの→E_fft.c E_fft.h E_lpf_m.c E_lpf_m.h E_rand.c E_rand.h
E_fft_test.c E_fft_test.h E_window.c E_window.h E_sin_with_noise.c makefile
これらを,あるディレクトリに保存し,コマンドラインからmakeとタイプすれば実行ファイルが作ら
れます.定数をいろいろと変えて試してみて下さい.

課題2

simeq_mxinv_m.h
#ifndef _SIMEQ_MXINV_H
#define _SIMEQ_MXINV_H

void mxprint(double *, int, int);
double simeq(double *, int, int);
double mxinv(double *, int, int);
void mxmull(double *,double *, int, int);

#endif
main.c
#include <stdio.h>
#include <stdlib.h>

#include "simeq_mxinv_m.h"

#define MMAX 10

int main(){
 static double a[MMAX*MMAX*2], b[MMAX*MMAX*2], d;
 static int i,j,m,n;
 double det;

 m=6;

 n=m+m;

 a[n*0+0]=5.0; a[n*0+1]= 5.0; a[n*0+2]=-3.0; a[n*0+3]=-2.0; a[n*0+4]=2.0; a[n*0+5]=2.0;
 a[n*1+0]=2.0; a[n*1+1]= 1.0; a[n*1+2]= 2.0; a[n*1+3]= 2.0; a[n*1+4]=3.0; a[n*1+5]=4.0;
 a[n*2+0]=0.0; a[n*2+1]=-2.0; a[n*2+2]=-5.0; a[n*2+3]= 3.0; a[n*2+4]=1.0; a[n*2+5]=1.0;
 a[n*3+0]=1.0; a[n*3+1]=-2.0; a[n*3+2]=-1.0; a[n*3+3]= 1.0; a[n*3+4]=4.0; a[n*3+5]=1.0;
 a[n*4+0]=3.0; a[n*4+1]=-4.0; a[n*4+2]= 2.0; a[n*4+3]= 3.0; a[n*4+4]=2.0; a[n*4+5]=1.0;
 a[n*5+0]=0.0; a[n*5+1]=-1.0; a[n*5+2]=-5.0; a[n*5+3]= 4.0; a[n*5+4]=2.0; a[n*5+5]=2.0;

 for(i=0;i<m;j++)
 {
  for(j=0;j<m;j++)
  {
   b[m*i+j]=a[n*i+j];
  }
 }

 mxprint(a, m, n);
 det=mxinv(a, m, n);
 mxprint(a, m, n);
 printf("det=%f", det);
 mxmull(a, b, m, n);
 mxprint(a, m, n);

}
makefile
CC = bcc32
LINK = bcc32
TARGET = main_inv
OBJ = main_inv.obj simeq_mxinv_m.obj
SRC = $(OBJ:%.obj=%.c)

.SUFFIXES: .obj .c .h

$(TARGET).exe: $(OBJ)
$(LINK) -e$@ $(OBJ)

.c.obj:
$(CC) -c $<

$(TARGET): $(TARGET).c $(OBJ:%.obj=.h)
simeq_mxinv_m.obj: simeq_mxinv_m.c simeq_mxinv_m.h

#clean:
# $(RM) $(TARGET) $(OBJ) *.tds *.bak

課題3

上記と同様.