Vo1.22.No.1
M81".,2008
文章 编号:1672—9897(2008)01—0084—05
SPT方 法在 纳米 粒 子布 朗运 动观测中的应 用
王绪伟,李战华
(中国科 学院力学研究所非线性力学 国家 重点 实验室 ,北京 100080)
摘要 :纳米粒 子布 朗运 动特性对 Micro-/Nano-PIV的使用 和与粒子相关的物理现象 的研 究有重要 意义.观测 了200nm荧光粒子 的布朗运 动 ,利用单粒子追踪 (SPT)算法 和 自编程序处理 图像 ,获得 粒子的均方位移 ,计算 了实验 扩散系数 D. 为209*10I1.m2/s.与Stokes—Einstein公 式估计 的理论扩散 系数 Dt1l相比,二 者量 阶一致 ,但实验扩散 系数的数值偏小 约5%.对相关 的实验误差进行 了分析 .
关键词 :布朗运动 单粒 子追踪法 纳米粒子 扩散 系数
中 图分 类号:TP39 10353.5 文献标识码:A
#include <stdio.h>#define N 200
#define SCORES 5
#define NUMLEN 10
struct std_type{
char no[NUMLEN]/*学号*/
char *name/*名字字符串指针*/
int scores[SCORES]/*五门功课的成绩*/
}
struct std_type students[N]
int order[N]
int total[N]
/*[函数]输入一个学生信息函数*/
int readastu(struct std_type *spt)
{
int len,j
char buf[120]/*输入学号*/
printf("\nNumber : ")
if(scanf("%s",buf)==1)
strncpy(spt->no,buf,NUMLEN-1)
else
return 0/*CTRL+Z结束输入*/
printf("Name : ")/*输入姓名*/
if(scanf("%s",buf)==1)
{
len=strlen(buf)
spt->name=(char*)malloc(len+1)/*申请储存姓名的空间*/
strcpy(spt->name,buf)
}
else return 0/*CTRL+Z结束输入*/
printf("Scores : ")/*输入成绩*/
for(j=0j<SCORESj++)
if(scanf("%d",spt->scores+j)!=1)
break
if(j==0)/*一个成绩也没有输入*/
{
free(spt->name)/*释放存储姓名的空间*/
return 0
}
for(j<SCORESj++)/*少数未输入的成绩用0分代替*/
spt->scores[j]=0
return 1
}
/*[函数]输出一个学生信息的函数*/
int writeastu(struct std_type *spt)
{
int i
printf("Number : %s\n",spt->no)/*输出学号*/
printf("Name: %s\n",spt->name)/*输出姓名*/
printf("Scores : ")/*输出成绩*/
for(i=0i<SCORESi++)
printf("%4d",spt->scores[i])
printf("\n\n")
}
main()
{
int n,i,j,t
clrscr()
for(n=0readastu(students+n)n++)/*用冒泡法对学生信息数组排序*/
for(i=0i<ni++)
{
order[i]=i/*预置第i个输入的学生*/
for(t=0,j=0j<SCORESj++)/*求第i个学生的总分*/
t+=students[i].scores[j]
total[i]=t
}/*冒泡排序*/
for(i=0i<n-1i++)/*共扫视n-1遍*/
for(j=0j<n-1-ij++)
if(total[order[j]]<total[order[j+1]])
{/*交换名次*/
t=order[j]
order[j]=order[j+1]
order[j+1]=t
}
for(j=0j<nj++)/*输出*/
writeastu(students+order[j])
printf("\n Press any key to quit...\n")
getch()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)