集団感染の数理モデルとシミュレーション(7)
付録
C言語で書いたシミュレーションプログラムの一部を公開します。 他にはgnuplot やtgifを補助ツールとして使用しました。 イラストやグラフの作成にでは、パワーポイントを文房具として用いました。 自宅の4台のPCを繋いで一人で全部やりました。
下は1次元のC言語基本プログラム
#include <stdio.h>
#include <math.h>
/*#include “random.h”*/
#define p 0.5
#define q 0.5
#define ii 5 /*indiv person */
#define NN 21
#define KK 11
/*void m3579();*/
int main()
{
int i,j,k,mm;
double x[11][21];
double sum[8];
double av_x[8];
for(i=1;i<21;i++)
x[0][i]=0.1+rand()/10000000000.;
for(k=1;k<11;k++)
{
for(i=1;i<21;i++)
x[k][i]=x[k][i]+x[k-1][i-1]*p+x[k-1][i+1]*q;
x[k][0]=x[k][0]+x[k-1][1]*q;
}
printf( “# 1D_xk_pi < uni_low #”);
printf(“# k<m #” );
printf(“# ii=person #” );
printf(“\n”);
/*printf(“# k=”); printf(“%d”,k);printf(“# “); printf(“\n”);*/
printf(“# ii=”);printf(” %d”,ii);
printf(“# p=”);printf(” %5.3f”,p);
printf(” q=”);printf(” %5.3f”,q);
printf(“# “);
printf(“\n”);
printf(“\n”);
for(k=0;k<8;k++)
{
printf(“%d”,k); printf(” %4.3f”,x[k][ii]);printf(“\n”);
}
printf(“\n”);
printf(“# avx #”);
printf(“\n”);
printf(“# p=”);printf(” %5.3f”,p);
printf(” q=”);printf(” %5.3f”,q);
printf(“# “);
printf(“\n”);
printf(“\n”);
for(k=0;k<8;k++)
{
av_x[k]=0.;
for(i=1;i<11;i++)
av_x[k]=av_x[k]+x[k][i];
av_x[k]=av_x[k]/10;
printf(“%d”,k);printf(” %4.3f”,av_x[k]);printf(“\n”);
}
}
printf(“%d”,k); printf(” %5.3f”, avx[k]);
printf(“\n”);
printf(“\n”);
printf(” 1D_xk_pi.c”);
printf(“\n”);
for(k=0;k<8;k++)
{
av_x[k]=0.;
for(i=1;i<11;i++)
av_x[k]=av_x[k]+x[k][i];
av_x[k]=av_x[k]/10;
printf(“k= %d”,k);printf(” %4.3f”,av_x[k]);printf(“\n”);
}
}