Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %Monte Carlo Metodu ile Laplace Denkleminin Çözümü
- % T = sıcaklık matrisi, i: satır nod indisi, j: sütun nod indisi
- %Program iki aşamadan oluşuyor. İlk aşama tüm i, j noktalarını tararken
- %ikinci aşama bu taranan noktalara Monte Carlo Yöntemi ile elde edilen
- %Sıcaklık değerini atıyor
- imax = 10;
- jmax = 70; %iki düzlemdeki maksimum nod sayıları
- T = zeros(imax, jmax);
- Ts1 = 20; %birinci sınır şartı, j = 1 yüzeyi
- Ts2 = 70; %ikinci sınır şartı, j = jmax yüzeyi
- T(:,1) = Ts1 ;
- T(:, jmax) = Ts2 ; %Matrise sınır yüzey sıcaklıkları atanması
- i = 1;
- j = 1;
- while i <= imax && j <= jmax; %Son nodda işlem sonlanacak
- if j == 1
- j = j+1; %İlk sütun sınır şartı olduğundan işlem yapılmıyor
- elseif j < jmax
- %Random yürüme işlemi buradan başlıyor
- lmax = imax;
- gmax = jmax;
- p = zeros(lmax,gmax); %rastgele yürüme matrisi
- l = i;
- g = j; %l satır nodu, g sütun nodu
- S = 0;
- while g ~= 1 || g ~= gmax; %g=1 ve g=gmax sınır şartları bu değerlere
- %ulaştığı zaman döngü durup ilgili nodun sıcaklığı kaydedilecek
- r = rand(1);
- if r<= 0.25
- g = g+1;
- elseif r<=0.5
- if l == 1
- l = l+0;
- else
- l = l+1;
- end
- elseif r<=0.75
- g = g-1;
- else
- if l == lmax
- l = l-0;
- else
- l = l-1;
- end
- end
- end
- if g==1 %Sınır yüzeyine ulaşıldı, sıcaklığı kaydet.
- S = S+Ts1;
- elseif g== gmax
- S = S+Ts2;
- end
- j = j+1;
- elseif j == jmax; %Son sütun sınır şartı olduğundan işlem yapılmıyor
- i = i+1;
- j = 1;
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement