Advertisement
mechanica

monte carlos

Mar 9th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. %Monte Carlo Metodu ile Laplace Denkleminin Çözümü
  2. % T = sıcaklık matrisi, i: satır nod indisi, j: sütun nod indisi
  3. %Program iki aşamadan oluşuyor. İlk aşama tüm i, j noktalarını tararken
  4. %ikinci aşama bu taranan noktalara Monte Carlo Yöntemi ile elde edilen
  5. %Sıcaklık değerini atıyor
  6. imax = 10;
  7. jmax = 70; %iki düzlemdeki maksimum nod sayıları
  8.  
  9. T = zeros(imax, jmax);
  10.  
  11. Ts1 = 20; %birinci sınır şartı, j = 1 yüzeyi
  12. Ts2 = 70; %ikinci sınır şartı, j = jmax yüzeyi
  13.  
  14. T(:,1) = Ts1 ;
  15. T(:, jmax) = Ts2 ; %Matrise sınır yüzey sıcaklıkları atanması
  16.  
  17.  
  18. i = 5;
  19. j = 38;
  20.  
  21.  
  22.  
  23.  
  24. %Random yürüme işlemi buradan başlıyor
  25. lmax = imax;
  26. gmax = jmax;
  27. p = zeros(lmax,gmax); %rastgele yürüme matrisi
  28.  
  29. l = i;
  30. g = j; %l satır nodu, g sütun nodu
  31. k = 1;
  32. S=0;
  33. for i = 1:1000
  34. while g > 1 && g < gmax; %g=1 ve g=gmax sınır şartları bu değerlere
  35. %ulaştığı zaman döngü durup ilgili nodun sıcaklığı kaydedilecek
  36. r = rand(1);
  37. if r<= 0.25
  38. if g==gmax
  39. g = g+0;
  40. k = k+1;
  41. else
  42. g = g+1;
  43. k = k+1;
  44. p(l,g)= k;
  45. end
  46. elseif r<=0.5
  47. if l == lmax
  48. l = l+0;
  49. k = k+1;
  50. p(l,g)= k;
  51. else
  52. l = l+1;
  53. k = k+1;
  54. p(l,g)= k;
  55. end
  56. elseif r<=0.75
  57. if g==1
  58. g = g-0;
  59. else
  60. g = g-1;
  61. k = k+1;
  62. p(l,g)= k;
  63. end
  64. else
  65. if l == 1
  66. l = l-0;
  67. k = k+1;
  68. p(l,g)= k;
  69. else
  70. l = l-1;
  71. k = k+1;
  72. p(l,g)= k;
  73. end
  74. end
  75. end
  76. if g==1 %Sınır yüzeyine ulaşıldı, sıcaklığı kaydet.
  77. S = S + Ts1;
  78. elseif g== gmax
  79. S = S + Ts2;
  80. end
  81. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement