課題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
上記と同様.