matlab如何提高运算速速,如何提高以下程序的运算速度及有选择性的保存数据?...

多谢管理员math的关注。

“空位随机游走过程”有英语我也不知道如何说。只知道“空位”叫做:vacancy

我解解释一下整个过程。不过过程比较长一些!

为了说明问题,我就举个例子

如:Fe-Mg二元合金,其中Mg占3%,空位点2%,其余的都是Fe。初始状态,Fe,Mg,空位的分布是随机的。

我们用数据表示元素:Fe=1,Mg=2,空位=3.

x=zeros(n,n);

ind = randperm(n^2);

x(ind(1:3))=2;   %Mg占3%

x(ind(4:5))=3;   %空位点2%

x(ind(6:n^2))=1;  %其余的都是Fe

取N=10;

得初始矩阵:x=

1 1 1 1 1 1 1 1 1 1

3 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 2 1 1 1 1 1 1 2

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1 1 1

3 1 1 1 1 1 2 1 1 1

在x矩阵中,任意一点都只和其4周的点(即前,后,左,右4点)有相互作用。

已知:1和1之间的相互作用能为:-54;

1和2之间的相互作用能为:-40;

1和3之间的相互作用能为:-12;

2和2之间的相互作用能为:-24;

2和3之间的相互作用能为:-15;

3和3之间的相互作用能为:0

用矩阵表示为:en=[-54,-40,-12;-40,-24,-15;-12,-15,0];

在计算的过程中:要采用周期边界条件,即

横坐标x(m+10)=x(m); 纵坐标y(m+10)=y(m);

如第一行,行一列元素(1,1):

它的左边就是: ( 1,10)  %利用周期性边界条件,它就是同行的最右边一个元素。

它的右边就是: ( 1,2)

它的上边就是: ( 10,1)  %利用周期性边界条件,它就是同列的最下面一个元素。

它的下边就是: ( 2,1)

周期性边界的原理:

在周期性边界条件下,任何一个点都与其4周最近邻的4个点发生作用,包括边界上的点。

当这个点取在边界时,它某一边或两边就没有相邻点,利用周期边界条件,就取其对应的同行,或同列 另一边的最边上的点作为其最近邻点。

举例如:

在矩阵X=

a b c d

e f g h

i j k l

m n o p

第一个元素a,它4周最近邻的元素分别为:

下面为 e;

右边为 b;

上边为 m;

左边为 d;

左边为 d (因为a在边界上,它左边没有元素了,利用周期边界条件,就取a所在行的最右边一个d)

上边为 m (因为a在边界上,它上边没有元素了,利用周期边界条件,就取a所在列的最下边一个元素m)

又如最后一个元素p,它4周最近邻的元素分别为:

下面为 d;

右边为 m;

上边为 l;

左边为 o;

又如最后一个元素n,它4周最近邻的元素分别为:

下面为 b;

右边为 o;

上边为 j;

左边为 m;

[本帖最后由 小兰花 于 2008-2-23 21:23 编辑]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值