标度行为
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if( p<=0.25) c[i]=max(c[i]-1,0);
a[i]=u[i]+c[i];
if( a[i]>=N) a[i]=a[i]%N;
}
for(i=0;i<k;i++)
{
u[i]=a[i];
w[i]=c[i];
}
}
void main()
{
int i,rando,n ;
int x[N],v[N];
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
#define N 1024
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
int min(int x,int y)
最后,应该注意到方程(2)仅仅可以被解释作为一个纯粹的指数规律下降的弛豫时间,
。然而图(4)显示出这与 的情形并不相符合。在这种情形下,甚至发现了非单调的弛豫行为。为了获得一张清晰的相变本质的图象,我们应该检查各种各样的数量。
1,弛豫时间――密度图象(p=0.00,Vmax=5)
2,弛豫时间――密度图象(p=0.25,Vmax=5)
{
int z;
z=x<y?x:y;
return z;
}
float min(float x,float y)
{
float z;
z=x<y?x:y;
return z;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
rando=rand()%N;
x[i]=rando;
for(int j=0;j<i;j++)
if( x[i]==x[j]) i=i-1;
}
sort(x,n);
for(int time=0;time<(10*N);time++) rules(x,v,n);
for(int tim=0;tim<1000;tim++)
if(k<N) file1<<s[j]<<" ";
else file1<<s[j]<<endl;
}
file1.close();
}
}
5,速度比率――时间图象
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
}
}
void initial(int R[],int T[], int n)
{
int i,j;
for(i=0;i<n;i++)
{
R[i]=0;
T[i]=0;
}
R[0]=rand()%N;
for(i=1;i<n;i++)
{
R[i]=rand()%N;
for(j=0;j<i;j++)
if(R[i]==R[j]) i=i-1;
{
int i;
int a[N],c[N];
for(i=0;i<k;i++)
{
float p;
int d;
if(i==k-1) d=gap(u[k-1],u[0]);
else d=gap(u[i],u[i+1]);
if((d>w[i]+1)&&w[i]<5) c[i]=min(w[i]+1,5);
else c[i]=min(w[i],d-1);
附程序(C++语言)
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
#include<string.h>
#define N 1000
int max(int x,int y)
{
int z;
z=x>y?x:y;
double r;
cout<<"Please input an initial density :";
cin>>r;
n=int(r*N);
srand(time(NULL));
for(i=0;i<n;i++)
{
x[i]=0;
v[i]=0;
}
rando=rand()%N;
x[0]=rando;
for(i=1;i<n;i++)
float A[N]={0};
float W1, W2=0;
for(t=0;t<N;t++)
{
rules(x,v,n);
for(i=0;i<n;i++) A[t]=A[t]+float(v[i])/n;
}
for(i=0;i<n;i++) W2=W2+float(v[i])/n;
for(t=0;t<N;t++)
{
W1=float(1-r)*t;
rela=rela+(min(W1,W2)-A[t]);
}
}
rela=rela/1000;
ofstream file1("d:\\zlh1.txt",0x04,0);
file1<<r<<" "<<rela<<endl;
file1.close();
}
}
3, 图象
#include<iostream.h>
(2)
其中 表示在加速相(即时间趋于0,低密度时的情形)的平均速度。因为车辆之间不发生相互作用,公式 在这一区域适用。因此弛豫时间是通过总结来自系统速度值与平均速度的偏差来获得的,此系统中单一车辆能够移动并不和其他车辆发生相互作用。可以发现弛豫参数临近的最大值低于文献(13)中p=0.25和 的最大流量的密度。
第二部分.弛豫
第二有序相变的一个特有的性质是在相变点弛豫时间的发散。基于技术方面的原因,Csanyi和Kertesz没有对弛豫时间进行直接测量,但他们采用了下面的方法:开始于车辆速度为 的任一随机构型,平均速度 是用来度量每一时步t的。当时间趋于无穷大时,系统达到了一个稳定的平均速度 ,弛豫时间可用如下参数来定义:
for(i=1;i<n;i++)
{
R[i]=rand()%N;
for(j=0;j<i;j++)
if(R[i]==R[j]) i=i-1;
}
sort(R,n);
}
int gap(int u,int w)
{
int z;
z=(w-u+N)%N;
return z;
}
void rules(int u[],int w[],int k)
for(i=0;i<k;i++)
{
int d;
if(i==k-1) d=gap(u[k-1],u[0]);
else d=gap(u[i],u[i+1]);
if((d>w[i]+1)&&w[i]<5) c[i]=min(w[i]+1,5);
else c[i]=min(w[i],d-1);
p=(float) rand()/(RAND_MAX);
p=(float) rand()/(RAND_MAX);
if( p<=0.25) c[i]=max(c[i]-1,0);
a[i]=u[i]+c[i];
if(a[i]>=N) a[i]=a[i]%N;
}
for(i=0;i<k;i++)
{
u[i]=a[i];
w[i]=c[i];
}
}
void main()
}
sort(R,n);
}
int gap(int u,int w)
{
int z;
z=(w-u+N)%N;
return z;
}
void rules(int u[],int w[],int k)
{
int i;
int a[N],c[N];
for(i=0;i<k;i++)
{
int d;
for(int i=0;i<5;i++)
file1<<log(aቤተ መጻሕፍቲ ባይዱi])<<" "<<log(b[i])<<endl;
file1.close();
}
4,时空斑图
1, density=0.10 (p=0.25)
2, density=0.15 (p=0.25)
3, density=0.42 (p=0.25)
return z;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k]) k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
#include<fstream.h>
#include<math.h>
void main()
{
double a[5]={1024,2048,4096,5824,8192};
double b[5]={40.3836,51.53,72.0071,91.5436,118.768};
ofstream file1("d:\\zlh6.txt",0x04,0);
我们发现:当p=0.5时,z=0.28和v=5.7。当p=0.25时,z=0.36和v=6.8。对于p=0这种确定的情形,对临界指数的许多评价是 和 。注意到这些峰值不是对称的以致很难确定其宽度。将我们的数据与文献(13)进行比较,提及到这样的两个事实。第一,对于p=0.25的情形,我们的结果完全不同于文献(13)中获得的指数。第二个异常点是弛豫时间负值的出现。这种结果在文献(13)中没有出现。一种可能认为负值的出现来自不精确的测量或有限尺寸的影响。但负值是定义的一个必然结果。假如我们观察 的时间演化,可以发现这一令人不愉快的特性的原因。对于 情形,系统临时进入了一个比稳定状态下更高的平均速度的状态。以致于 在这一时间间隔内成立。这种过度反应是弛豫机制的结果,对于p>0情形,它可以被分割成两相。在最初的极少的时步内,出现在初始构型中的小的拥堵逐渐消失。第二相是以幸存堵塞的增加为主要特征的.越来越多的车辆陷入大堵塞,因此平均流量下降到它的稳定的值。这一下降导致了在高密度区域 的负值的出现。
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
int gap(int u,int w)
{
int z;
z=(w-u+N)%N;
return (z);
}
void rules(int u[],int w[],int k)
{
int i;
float p;
int a[N],c[N];
{
rules(x,v,n);
int k=0;
int s[N]={0,0};
for(int j=0;j<N;j++)
{
for(i=0;i<n;i++)
if(j==x[i]) s[j]=1;
}
ofstream file1("d:\\zlh3.txt",0x04,0);
for(j=0;j<N;j++)
{
k=k+1;
在这一研究中,我们扩展了刹车参数集合,目的是为了研究弛豫时间最大值的参数依赖。我们所考虑的系统的尺寸达到L=30000,此时弛豫时间最大值的密度的位置变成尺寸独立。相变密度是通过我们所考虑的最大系统的临界密度( )给定的。
对于p=0和p=0.25两种情形的结果已经在图(2)和图(3)中给出。在考虑了所有的p值之后,对相变密度 和最大流量密度 进行比较,显示出相变密度的值较小。仅仅当p=0时相变密度和最大流量密度是一致的。把 的大小作为弛豫时间的一个特有的值,我们可以评估其动力指数。更进一步,已经被考虑的峰值的宽度 和高度 的标度行为, (2)
{
srand(time(NULL));
int i, n, t;
for(double r=0.070;r<0.130;r=r+0.005)
{
float rela=0;
n=int(r*N);
for(int j=0;j<1000;j++)
{
int x[N]={0}, v[N]={0};
initial(x,v,n);
if(array[j]<array[k]) k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
void initial(int R[],int T[], int n)
{
int i,j;
for(i=0;i<n;i++)
{
R[i]=0;
T[i]=0;
}
R[0]=rand()%N;
return z;
}
int min(int x,int y)
{
int z;
z=x<y?x:y;
return z;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k]) k=j;
#define N 5000
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
int min(int x,int y)
{
int z;
z=x<y?x:y;
return z;
}
float min(float x,float y)
{
float z;
z=x<y?x:y;
a[i]=u[i]+c[i];
if( a[i]>=N) a[i]=a[i]%N;
}
for(i=0;i<k;i++)
{
u[i]=a[i];
w[i]=c[i];
}
}
void main()
{
int i,rando,n ;
int x[N],v[N];
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
#define N 1024
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
int min(int x,int y)
最后,应该注意到方程(2)仅仅可以被解释作为一个纯粹的指数规律下降的弛豫时间,
。然而图(4)显示出这与 的情形并不相符合。在这种情形下,甚至发现了非单调的弛豫行为。为了获得一张清晰的相变本质的图象,我们应该检查各种各样的数量。
1,弛豫时间――密度图象(p=0.00,Vmax=5)
2,弛豫时间――密度图象(p=0.25,Vmax=5)
{
int z;
z=x<y?x:y;
return z;
}
float min(float x,float y)
{
float z;
z=x<y?x:y;
return z;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
rando=rand()%N;
x[i]=rando;
for(int j=0;j<i;j++)
if( x[i]==x[j]) i=i-1;
}
sort(x,n);
for(int time=0;time<(10*N);time++) rules(x,v,n);
for(int tim=0;tim<1000;tim++)
if(k<N) file1<<s[j]<<" ";
else file1<<s[j]<<endl;
}
file1.close();
}
}
5,速度比率――时间图象
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
}
}
void initial(int R[],int T[], int n)
{
int i,j;
for(i=0;i<n;i++)
{
R[i]=0;
T[i]=0;
}
R[0]=rand()%N;
for(i=1;i<n;i++)
{
R[i]=rand()%N;
for(j=0;j<i;j++)
if(R[i]==R[j]) i=i-1;
{
int i;
int a[N],c[N];
for(i=0;i<k;i++)
{
float p;
int d;
if(i==k-1) d=gap(u[k-1],u[0]);
else d=gap(u[i],u[i+1]);
if((d>w[i]+1)&&w[i]<5) c[i]=min(w[i]+1,5);
else c[i]=min(w[i],d-1);
附程序(C++语言)
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
#include<fstream.h>
#include<string.h>
#define N 1000
int max(int x,int y)
{
int z;
z=x>y?x:y;
double r;
cout<<"Please input an initial density :";
cin>>r;
n=int(r*N);
srand(time(NULL));
for(i=0;i<n;i++)
{
x[i]=0;
v[i]=0;
}
rando=rand()%N;
x[0]=rando;
for(i=1;i<n;i++)
float A[N]={0};
float W1, W2=0;
for(t=0;t<N;t++)
{
rules(x,v,n);
for(i=0;i<n;i++) A[t]=A[t]+float(v[i])/n;
}
for(i=0;i<n;i++) W2=W2+float(v[i])/n;
for(t=0;t<N;t++)
{
W1=float(1-r)*t;
rela=rela+(min(W1,W2)-A[t]);
}
}
rela=rela/1000;
ofstream file1("d:\\zlh1.txt",0x04,0);
file1<<r<<" "<<rela<<endl;
file1.close();
}
}
3, 图象
#include<iostream.h>
(2)
其中 表示在加速相(即时间趋于0,低密度时的情形)的平均速度。因为车辆之间不发生相互作用,公式 在这一区域适用。因此弛豫时间是通过总结来自系统速度值与平均速度的偏差来获得的,此系统中单一车辆能够移动并不和其他车辆发生相互作用。可以发现弛豫参数临近的最大值低于文献(13)中p=0.25和 的最大流量的密度。
第二部分.弛豫
第二有序相变的一个特有的性质是在相变点弛豫时间的发散。基于技术方面的原因,Csanyi和Kertesz没有对弛豫时间进行直接测量,但他们采用了下面的方法:开始于车辆速度为 的任一随机构型,平均速度 是用来度量每一时步t的。当时间趋于无穷大时,系统达到了一个稳定的平均速度 ,弛豫时间可用如下参数来定义:
for(i=1;i<n;i++)
{
R[i]=rand()%N;
for(j=0;j<i;j++)
if(R[i]==R[j]) i=i-1;
}
sort(R,n);
}
int gap(int u,int w)
{
int z;
z=(w-u+N)%N;
return z;
}
void rules(int u[],int w[],int k)
for(i=0;i<k;i++)
{
int d;
if(i==k-1) d=gap(u[k-1],u[0]);
else d=gap(u[i],u[i+1]);
if((d>w[i]+1)&&w[i]<5) c[i]=min(w[i]+1,5);
else c[i]=min(w[i],d-1);
p=(float) rand()/(RAND_MAX);
p=(float) rand()/(RAND_MAX);
if( p<=0.25) c[i]=max(c[i]-1,0);
a[i]=u[i]+c[i];
if(a[i]>=N) a[i]=a[i]%N;
}
for(i=0;i<k;i++)
{
u[i]=a[i];
w[i]=c[i];
}
}
void main()
}
sort(R,n);
}
int gap(int u,int w)
{
int z;
z=(w-u+N)%N;
return z;
}
void rules(int u[],int w[],int k)
{
int i;
int a[N],c[N];
for(i=0;i<k;i++)
{
int d;
for(int i=0;i<5;i++)
file1<<log(aቤተ መጻሕፍቲ ባይዱi])<<" "<<log(b[i])<<endl;
file1.close();
}
4,时空斑图
1, density=0.10 (p=0.25)
2, density=0.15 (p=0.25)
3, density=0.42 (p=0.25)
return z;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k]) k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
#include<fstream.h>
#include<math.h>
void main()
{
double a[5]={1024,2048,4096,5824,8192};
double b[5]={40.3836,51.53,72.0071,91.5436,118.768};
ofstream file1("d:\\zlh6.txt",0x04,0);
我们发现:当p=0.5时,z=0.28和v=5.7。当p=0.25时,z=0.36和v=6.8。对于p=0这种确定的情形,对临界指数的许多评价是 和 。注意到这些峰值不是对称的以致很难确定其宽度。将我们的数据与文献(13)进行比较,提及到这样的两个事实。第一,对于p=0.25的情形,我们的结果完全不同于文献(13)中获得的指数。第二个异常点是弛豫时间负值的出现。这种结果在文献(13)中没有出现。一种可能认为负值的出现来自不精确的测量或有限尺寸的影响。但负值是定义的一个必然结果。假如我们观察 的时间演化,可以发现这一令人不愉快的特性的原因。对于 情形,系统临时进入了一个比稳定状态下更高的平均速度的状态。以致于 在这一时间间隔内成立。这种过度反应是弛豫机制的结果,对于p>0情形,它可以被分割成两相。在最初的极少的时步内,出现在初始构型中的小的拥堵逐渐消失。第二相是以幸存堵塞的增加为主要特征的.越来越多的车辆陷入大堵塞,因此平均流量下降到它的稳定的值。这一下降导致了在高密度区域 的负值的出现。
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
int gap(int u,int w)
{
int z;
z=(w-u+N)%N;
return (z);
}
void rules(int u[],int w[],int k)
{
int i;
float p;
int a[N],c[N];
{
rules(x,v,n);
int k=0;
int s[N]={0,0};
for(int j=0;j<N;j++)
{
for(i=0;i<n;i++)
if(j==x[i]) s[j]=1;
}
ofstream file1("d:\\zlh3.txt",0x04,0);
for(j=0;j<N;j++)
{
k=k+1;
在这一研究中,我们扩展了刹车参数集合,目的是为了研究弛豫时间最大值的参数依赖。我们所考虑的系统的尺寸达到L=30000,此时弛豫时间最大值的密度的位置变成尺寸独立。相变密度是通过我们所考虑的最大系统的临界密度( )给定的。
对于p=0和p=0.25两种情形的结果已经在图(2)和图(3)中给出。在考虑了所有的p值之后,对相变密度 和最大流量密度 进行比较,显示出相变密度的值较小。仅仅当p=0时相变密度和最大流量密度是一致的。把 的大小作为弛豫时间的一个特有的值,我们可以评估其动力指数。更进一步,已经被考虑的峰值的宽度 和高度 的标度行为, (2)
{
srand(time(NULL));
int i, n, t;
for(double r=0.070;r<0.130;r=r+0.005)
{
float rela=0;
n=int(r*N);
for(int j=0;j<1000;j++)
{
int x[N]={0}, v[N]={0};
initial(x,v,n);
if(array[j]<array[k]) k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
void initial(int R[],int T[], int n)
{
int i,j;
for(i=0;i<n;i++)
{
R[i]=0;
T[i]=0;
}
R[0]=rand()%N;
return z;
}
int min(int x,int y)
{
int z;
z=x<y?x:y;
return z;
}
void sort(int array[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k]) k=j;
#define N 5000
int max(int x,int y)
{
int z;
z=x>y?x:y;
return z;
}
int min(int x,int y)
{
int z;
z=x<y?x:y;
return z;
}
float min(float x,float y)
{
float z;
z=x<y?x:y;