欢迎来到天天文库
浏览记录
ID:61502481
大小:18.00 KB
页数:7页
时间:2021-02-07
《include蒙特卡罗C程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、#include#include#include#defineL40doublefuniseed(doubleiseed) //同余法产生随机数{ doublemult=1277,modulo,rmodulo; modulo=rmodulo=pow(2,17); iseed=iseed*mult; if(iseed2、L+1],count=0; intici,ien,mcs,mcsmax,n0,mcstep; floatw[9],m,a; doublejkt,iseed; //初始化数组 for(i=0;i<=L;i++){ for(j=0;j<=L;j++){ la[i][j]=-1; a=1./(L*L); } } //************************************ for(i=1;i<=L;i++){ ip[i]=i+1; im[i]=i-1; } ip[L]=1; im[1]=L; //****************************3、******* printf("输入样本步数:"); scanf("%d",&mcstep); printf("输入n0的值:"); scanf("%d",&n0); printf("输入jkt的值:"); scanf("%lf",&jkt); //此方法用在2维Ising模型中 for(j=-4;j<=4;j=j+2){ w[j+4]=1; if(j>0)w[j+4]=exp(-2*jkt*j); } //蒙特卡罗部分 m=-(L*L); for(mcs=1;mcs<=mcstep+n0;mcs++) { for(i=1;i<=L;i++){ f4、or(j=1;j<=L;j++){ ici=la[i][j]; ien=la[ip[i]][j]+la[im[i]][j]+la[i][ip[j]]+la[i][im[j]]; ien=ici*ien;// printf("putintheseed:");// scanf("%lf",&iseed); iseed=1+rand()%10; if(funiseed(iseed)*105、[j]=-ici; m=m-2*ici; } } }if(mcs>=n0){ count=count+1; if(count=n0){ count=0; printf("after%dstepm=%f",mcs-n0,m*a); } } } }#include#include#include#defineL40doublefuniseed(doubleiseed) //同余法产6、生随机数{ doublemult=1277,modulo,rmodulo; modulo=rmodulo=pow(2,17); iseed=iseed*mult; if(iseed7、;i<=L;i++){ for(j=0;j<=L;j++){ la[i][j]=-1; a=1./(L*L); } } //************************************ for(i=1;i<=L;i++){ ip[i]=i+1; im[i]=i-1; } ip[L]=1; im[1]=L; //*********************************** printf("输入样本步数:"); scanf("%d",&m
2、L+1],count=0; intici,ien,mcs,mcsmax,n0,mcstep; floatw[9],m,a; doublejkt,iseed; //初始化数组 for(i=0;i<=L;i++){ for(j=0;j<=L;j++){ la[i][j]=-1; a=1./(L*L); } } //************************************ for(i=1;i<=L;i++){ ip[i]=i+1; im[i]=i-1; } ip[L]=1; im[1]=L; //****************************
3、******* printf("输入样本步数:"); scanf("%d",&mcstep); printf("输入n0的值:"); scanf("%d",&n0); printf("输入jkt的值:"); scanf("%lf",&jkt); //此方法用在2维Ising模型中 for(j=-4;j<=4;j=j+2){ w[j+4]=1; if(j>0)w[j+4]=exp(-2*jkt*j); } //蒙特卡罗部分 m=-(L*L); for(mcs=1;mcs<=mcstep+n0;mcs++) { for(i=1;i<=L;i++){ f
4、or(j=1;j<=L;j++){ ici=la[i][j]; ien=la[ip[i]][j]+la[im[i]][j]+la[i][ip[j]]+la[i][im[j]]; ien=ici*ien;// printf("putintheseed:");// scanf("%lf",&iseed); iseed=1+rand()%10; if(funiseed(iseed)*105、[j]=-ici; m=m-2*ici; } } }if(mcs>=n0){ count=count+1; if(count=n0){ count=0; printf("after%dstepm=%f",mcs-n0,m*a); } } } }#include#include#include#defineL40doublefuniseed(doubleiseed) //同余法产6、生随机数{ doublemult=1277,modulo,rmodulo; modulo=rmodulo=pow(2,17); iseed=iseed*mult; if(iseed7、;i<=L;i++){ for(j=0;j<=L;j++){ la[i][j]=-1; a=1./(L*L); } } //************************************ for(i=1;i<=L;i++){ ip[i]=i+1; im[i]=i-1; } ip[L]=1; im[1]=L; //*********************************** printf("输入样本步数:"); scanf("%d",&m
5、[j]=-ici; m=m-2*ici; } } }if(mcs>=n0){ count=count+1; if(count=n0){ count=0; printf("after%dstepm=%f",mcs-n0,m*a); } } } }#include#include#include#defineL40doublefuniseed(doubleiseed) //同余法产
6、生随机数{ doublemult=1277,modulo,rmodulo; modulo=rmodulo=pow(2,17); iseed=iseed*mult; if(iseed7、;i<=L;i++){ for(j=0;j<=L;j++){ la[i][j]=-1; a=1./(L*L); } } //************************************ for(i=1;i<=L;i++){ ip[i]=i+1; im[i]=i-1; } ip[L]=1; im[1]=L; //*********************************** printf("输入样本步数:"); scanf("%d",&m
7、;i<=L;i++){ for(j=0;j<=L;j++){ la[i][j]=-1; a=1./(L*L); } } //************************************ for(i=1;i<=L;i++){ ip[i]=i+1; im[i]=i-1; } ip[L]=1; im[1]=L; //*********************************** printf("输入样本步数:"); scanf("%d",&m
此文档下载收益归作者所有