matlab如何提高运算速速,如何提高以下程序的运算速度及有选择性的保存数据?...
多謝管理員math的關注。
“空位隨機游走過程”有英語我也不知道如何說。只知道“空位”叫做:vacancy
我解解釋一下整個過程。不過過程比較長一些!
為了說明問題,我就舉個例子
如:Fe-Mg二元合金,其中Mg占3%,空位點2%,其余的都是Fe。初始狀態(tài),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個點發(fā)生作用,包括邊界上的點。
當這個點取在邊界時,它某一邊或兩邊就沒有相鄰點,利用周期邊界條件,就取其對應的同行,或同列 另一邊的最邊上的點作為其最近鄰點。
舉例如:
在矩陣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 編輯]
總結
以上是生活随笔為你收集整理的matlab如何提高运算速速,如何提高以下程序的运算速度及有选择性的保存数据?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《怪物猎人:崛起》Steam国区基础售价
- 下一篇: matlab sort descend,