Vì trong vùng chọn ‘Chon chất phóng xạ ' popupmenul’ , chúng ta đã xác định rd các chất phóng xa được xét đến trong chương trình này. ‘ham’ sẽ xác định
thứ tự của trường hợp cụ thể được chọn từ giao điện. Sau đó, chúng ta sé qui
định những vị trí ứng với chất nào thì chu kỳ là ngày, tháng hay năm. Tương tự
từ dòng 59 — 86 thì ta xác định giá trị chu ký bán rã trong các trường hợp cu
thể.
Dong 103 và 104 xác định số hạt nhân mẹ ban đầu. Dòng 103 lấy giá trị
từ thanh trượt trong giao diện. Nhưng trong chương trình Gui mặc định thanh
trượt có giá trị từ 0 -› 1, vì thế ta phải nhân thêm 10000 để có lượng hạt nhân
mẹ ban đầu như mong muốn.
Dòng 112 xác định khỏang thời gian khảo sát là bốn chu kỳ.
Dòng I19—>131 kí hiệu trục cho trục x, và y trong các trường hợp cụ thể.
Lệnh ‘xlabel’, ‘ylabel’ dùng để kí hiệu các trục x, y. Trong chương trình, Matlab có hỗ trợ cho phin đánh tiếng Việt và tóan (ngôn ngữ Latex).
Phu tục: Chiteng trinh phanrahainhan Trang 184
Ung dụng Matlab kiuảo vit mot vế bài toán “(lột lý nguyen tử - hat nhan
‘fontname’ qui định dang chữ, ‘fontsize’ qui định cỡ chữ. Các chữ *Phuùt,
*Ngày'... được đánh từ Microsoft Word sau đĩ paste qua.
Dong 134-140 kí hiệu chu kỳ bán rã lên trục x. Matlab cho phép ta kí
hiệu trén trục x thay vào các giá trị của x. ta sẻ xác định các vị trí cẩn thay bằng các dòng 134 -> 137. Lệnh find để tìm trong ma trân t(thời gian) các giá trị ứng với giá trị các chu kỳ bán ra. Lệnh set dùng để xác định vị trí các điểm t ứng với giá trị chu kỳ bán rã. Dòng 138 -› 140 để để xuất các text lên
những vị trí đã chọn trên trục x. Ta thực hiện công đọan trên nhờ vào lệnh
text. Cấu trúc lệnh này như sau text(toa độ x, tọa độ y, ‘ddng text’). O phan này ‘dong text’ được đưa vào dấu [] để có thể kết hợp ‘dong text’ và giá tri
n lấy từ vòng lặp.
Dòng 142 —› 150 để kí hiệu text lên trục y. Dòng 143 xác định các giá trị
của N ứng với các giá trị tg đã xác định ở dòng 135.
Dòng 196 -› 220 biến đổi các giá trị thời gian ngày, thang nim... về giây.
2Wtụ lục: Chiteng trinh phanrahatnhan Trang 1835
đững dang Matlab kdido sat mot vế bai todn Odl lý nguyên từ - hat châm
Ì ftunmetion haidongxu
2 4M = 10000; #So lan thu 3 HH ô= 0:
4 TH ô 0;
S Tre 90;
6 RT = 0:
7 torn = 16
8 x = rand;
9 af O<ô x & x<0.25 10 HH = HH + 1;
11 @leaif 9.25<ôx & x<0.5 12 HT = HT + i;
13 e@leeif 0.5 <ôx & x<0.75 14 TH + TH + 1;
15 else
16 TT ô TT + 1;
17 end 18 end
19 disp('So lan xuat hien cac bien co HH, HT, TH, TT’) 20 HH ô HH
22 HT ô HT 22 TH = TH 23 TT ô TT
Phu tục : Uutong triHÍt haidongxru Trang 186
đứng dung Maltab khéo sit chật xố bài toán “Đột lý nguyên từ - hat nhan
1 function varargout ô pxmppso(varargin)
2
3 ttt?han chuong trớnh viet cho giao điứnttt 4 gui 9lngleton ô 1;
Š gui 6State ô= struct({'guớ Name’, mfiilename, ...
6 *gui_Singleton’, gui Singleton, ...
7 *qui_Opening?cn', @pxmppso Openingfcn, .-.- 8 *gui_OutputPcn', ®@pxmppeo ©Outputfcn, ..- 9 *qui LayootFcn', (} , ..ô‹
10 *gui_Callback', ds
l1 if margin & isứtr(varargin{1})
12 qui_State.gui Callback ô str2fuac (varargin{1)) ;
13 end 14
15 4f nargout
16 (varargout(1:margout)} = gui mainfcn(gui State, varargin(:));
17 else
18 qui_mainfon(gui State, varargin{:));
19 end
QQ Gacsacsccceancanscnccnascesasaccss sa asaowae š(S[GÀGGGG5666G6ssseœ=
21 funetion px=ppso Openingfcn(hObject, eventdata, handles, varargin) 22 handìeu.output = hOblect;
23
24 guidata(hobject, handles);
i. 2 On d9 Y000100000000000%/290/70700 90100058 m90004Geuxsge
26 fanetion varargout = pxmppeo_OutputPen (hObject, eventdata, handles)
27 varargout{1)} = handles.output;
28
29 đeô-ô- ...s...see -....-.s.s-seseeeeseeeseseeresensessmessesese.s.s..e --
30 t8Phan chuong trinh viet cho thanh truot ‘So hat ban dau‘
31 fumetion sliderl_CreateFen(hObject, eventdata, handles) 32 weewhitebs + 1;
33 if usewhitebg
34 set (hObject, ‘BackgroundColor’, [.9 .9 .9]);
35 size
36 set (hObject, ‘BackgroundColor’, get (0, ‘defaultUicontro]l BackgroundColor')),;
37 end
JB @sesseacsbesssssesaàsssesesssae onadmuaeccancces ce.eueadseeeeeeẳeseeee
39 ftumetion slider] Callback (hObject, eventdata, handles) 40 hat ô get (handles.sliderl, 'Value');
41 W = hat*le*s;
42 set (hanđìes.text2,'6@tring',M);
43
đã 9 --=<=====ccseweeenmsoedeeeeeeexosOested0366161G 000 052 SHSCSEiR32Z0SSS202<ESS=
45 tffPhan chuong trính viet cho thanh truot ‘Xac suat hac bi phan ra'ttf 46 function #iider2 Creatofcn(hoblect, eventdata, handles)
47 usexhitebg ô 1;
48 if usewhítebg
49 set (hObject, ‘Backgroundcolor',(.9 .9 .91);
50 ôlee
51 set (hObject, ‘BackgroundColor’ ,get (0, 'đefaultUicoacroìBackgrounỏColor ! ) ) ;
‘Pha tae : Uutong trink pamppse rang 187
Ung dung Maltah khảo sit mgt số bài toán “Oật lộ nguyen tử - hat uhan
52 s3 S4
55 S56 57 58 59 60 6ì 62
63 64 65 66 67 68 69
70 71 72 73 74
75 76 77 78
79
80
81
82 83 84
85 86 87 88
89 99 91 92 93
34 95 96 97
function slider2 Callback(hobject, eventdata, handles) P ~ get (handles.slider2?, 'Value');
set (handles.text4, 'String’,p);
tt#Phan chuong trinh duoc viet cho nut ‘Thuc hien’tts
function pushbutton) Callback(hObject, eventdata, handles)
thay các gia trí ban đâu tu giao dien ty la go hat nhan
tp la xac suat phan ra cua hat chan
p = get (hanđlen.ứ1iđer2, 'Value')
N = str2double (get (handles.text2, *String'));
l7ao ta ma tran de chua cac gia tri ban dau
ẹ ô (N);
t= l0);
D = (0);
tTien hanh vong lap de tim so hat nhan phan ra va so hat nhan con ducc tao tra
while (N(ead) z0)
†---Ti= luong hat nhan phan ra---t
M + N(endl ¡
lMa tran x la ma tran co 1 hang va M cot(M la so hat nhan me con lai tsau moi lan phan ra). Cac gia tri cua x la ngau nhien va nho hon 1 xerand(1,M);
tTrong ma tran x bao nhieu gia tri <p cho biet co bay nhieu so hat nhan tbi phan ra
n=length(find(x<p)) ;tee hat nhan me phan ra
tSo hat ahan me va con sau đtô1 W ô [N Niend)-n};
Ð + [D P(enở)ìen];
t ằ Ít tlend) +1};
end
plotit,N,t,D)
títle('đoÀ thờ biedu điện sof hait nhain me! phan rab‘, 'fontnawe',...
*vni-times','fontsize’,13
ylabel(‘So hait sau khi phadt xei{ N/D', 'fontname’, ‘vni-times', 'fontaize’,12 xlabel('Théei gian phaẫn rad’, 'foatname', 'vni-times', 'fontsize’,12)
tChu thích hinh ve
legend ('Mat nhan me’, 'Hat nhan con’)
tttPhan chuong trính viet cho nut ‘Thoat‘tt?
function puứhbuttoa2_ Callback(hObject, eventdata, handles) closereg
Phu tục : Auteng trinkh prmppio Trang 188
Ung dụng Matlab kíuáe uit một vế bài todn “Cột lý nguyên tử - hat nhin
Giải thích chương trình:
Giao điện _ tao ra tif Gui
fe Ch Wow Lo Todh Heb
OSM kB o|FB gi -
Vì độ rộng ct của ma trận ngẫu nhiên có giới hạn là ul x 10° Inên ta chi xét
tối đa 10^5 lan thử. Và ta xem donvi đang xét là 10°.
Dòng lệnh 67 +69 tạo ra ma trận chứa các giá trị ban đầu của N, t, D. Vì
lệnh plot trong Matlab chỉ có thể vẽ những giá trị là một vectơ (ma trận hàng
hay ma trận cột), nên ta phải lưu các giá trị N, t và D vào ma trận.
Dòng lệnh 93-+97 tạo vòng lap tính số hạt nhân mẹ bị phân rã và số hạt nhân con được tạo thành. Điều kiện dừng vòng lặp là giá trị cuối trong ma
trận N <0. Nội dung vòng lặp như sau:
o Giá trị N là số hạt nhân mẹ còn lại —N(end). Ta tạo ra ma trận ngẫu
nhiên [IxN(end)]. Trong ma trận này, ta tìm những giá trị nhỏ hơn xác
suất p bằng lệnh find, sau đó ta xác định có bao nhiêu số thỏa mãn điều kiện trên bằng lệnh length (dòng 80).
© Số hạt nhân con có trong một đơn vị thời gian bằng số hạt nhân mẹ phân
rã.
Dòng lệnh 93 +97 tạo mũi tên và dòng text xác định đường biểu diễn
hạt nhân mẹ và hạt nhân con.
Phu lục: Ontong trinh prmppio Trang 188
ding dụng Matlab kitáo sat mgt xố bai todn “Đột lệ nguyên tứ - hạt nhan
1 fumetion varargout ô= pxmvcppso (varargin) 2
3 tttPhan chuong trính viet cho giao dienttt 4 gui_Singleton ô 1;
S qui 8tate ~ struct('gqui Mame', mfilename, ...
6 "quí 6iíngleton', guiSingleton, ...
7 'qui Openingfcn', @pzxrcppso Opsaingfcn, ..‹
8 "gui Outputfcn', #@pxevcppso OutputFfcn, ...
9 "gui_tayoutPen', [] , --- 10 *qgui_Callback", (J);
11 4Â nargin & iứatr (varargin(1))
12 guớ_6tate.gui_Cailbackx ô str2fune (varargớn{1}) ; 13 an#
14
15 ‡tf nargout
16 [varargout(1:nargout}] ô gui_mainfcnigui State, varargin{:;}) ;
17 eles
18 gui_mainfcn (gui State, varargin{|:}) ; 19 and
Gd 'Scndeshacacnmuancendescbeaneeeukeianeas cakcanab oammncnen oman acce momen
21 tumetion pxeveppec_ OpeningPen (hObject, eventdata, handles, varargin) 22 handles .cutput = hObject;
23
24 guidata(hObject, handles);
25 tđ.--- ..e=sôs — ces”eseseesesee=eeeseaee=e oes vcwacsessen= ..e..eeeseee
30 ttữPhan chuong trính viet cho thanh truot ‘So hat ban dau'ttt 31 function slider! CreateFcn(hobject, eventdata, handles)
32 weewhitebg ô 1;
33 4 usewhitebg
34 set (hObject, 'BackgroundColor',(.? .9 .9}};
35 elee
36 set (hObject, ‘BackgroundColor’ ,get (0, 'đefaultUícontrol5ackgroundColor ' Ì } ; 37 end
5B Esenene ee mi b ee oe es -=-——-.——
39 ftwumction slider] Caliback(hObject, eventdata, handles) 40 hat = get (handles.slideri, Value’);
41 We hat*°10^S;
42 set (handles.text2, '9triíng',NW)
45 tttPhan chuong trính viet cho thanh truot ‘Xac suat phan ra hat nhan me“ttt 46 ftumction slider? Createfcn(hObject, eventdata, handles)
47 usewhitebg ô 1;
48 if usewhitebg
49 set (hObject, '®ackgrounđColor',Í.9 .9 .®});
50 eles
S1 set (hObject, 'BackgroundColor ', set (0, 'defaultUícoentrclBackgrounađColor *}) } ;
Phuc lụe: Chitong trinÍt prmvoeppio rang 190
Ung dụng Matlab khảo sat mot vế bài toán él lý nguyen từ - hat nhdin
52 53 54 55 56
57
58 59
60
61 62 63 64 65
66 67 68 69
70 T1 72
73 74
75 76 77 78 79
80 81
82 83 94 85
86 87 88 89 90 91
92 93
%4 95 96 97 98 99 100 101 102
function slider2_Callback(hObject, eventdata, handles) p = get (handles .slider2, ‘Value')
set (handles.texté, '#tríng',p)
tetPhan chuong trinh viet cho thanh truot ‘Xac suat phan ra hat nhan con'eet
function slider} CreateFcen(hObject. eventdata, handles) usewhitebg ~ 1;
4 usewhitedg
set (hObject, ‘BackgroundColor',[.9 .9 .%}]};
eles
set (hObject , ‘BackgroundColor’ , get (0, 'đefaultUicontrolBackgroundColor ') ) ¿
function slider3 Callbackx(h©bject, eventdata, handles)
pd = get (handles elider3, 'Value')
set (handles.textio, ‘String’ ,pd)
| Pee ee ...
tetPhan chuong trínÀ viet cho nut ‘Thuc hein‘ttt
function pushbutton] Callback (hObject, eventdata, handles) tlay cac gia trí ban dua tu giao dien
tN 1a so hat nhan se
tp la xac suat phan ra hat shan me
tpd la xac suat phan ra hat nahn con
Pp * get (handlos,slider2, 'Value ')
M + str2đoœubÌle (get (handlee.text2, '§tring!' )ì ; pd ô get (handles .elider3, 'Value ' ỡ
tTao ma tran chua cac gia tri ban đua N= IN);
tô(0];
Ð = (0l;
0= (0);
while (N|esđ) >0}
t---Tim luong hat nhan me phan ra---†
M ô N(ead) ;
lMA tran x la ma tran co 1 hang va M cot(M la #0 hat nhan me cóc lai teau moi lan phan ra). Cac gia trí cua x la ngau nhien va nho hon 1 xerand(1,M) ;
tTrong ma tran x bao nhieu gia tri <p cho biet co bay nhieu so hat nhan tme bi phan ra
nelength(find(x<p)) ;tứeo hat nhan me phan ra tSo hat nhan me va com sau dtel
M ô (8 M(enở) -n} ; De (D> Diend)+n),
*---Tim luong hat nhan con sau khí phan ra---t
*Tao ra ma tran y gom 1 hang va so cot bang voi gia tri cua hat nhan
lcoa. Cac gia trí cua y la ngau nhien va nho hon 1.
tTromg ma tran y bao nhieu gia trí <pd cho biet co bay nhieu so hat nhan
Dhu lục: Chitong tinh pxmoeppso Trang 197
ling dung Matlab khio vắt một số bài toán Oat lý nguyên tử - hat nhan
103 tcoa bí phan ra 104 yôrar4 (1,0 (end) ) ;
105 kelength (fíod(y‹<pđ)i, teo bát nhan con phat xa 106 D(eed)ô Diend) -k;
107 Ge (0 Glend) +k), 108 tele t(endl +1};
109 end
110 plot(t,#,t,D,t,a)
111 title('fộ thd phân rad phodng xai cuda hait nhaẫn sel và hait nhadn coo',...
112 *fontname’, 'vni-times’, 'fontsize',14 113 ylabel(‘So4 haft sau khí phadt xal M/D', 'fontname’,*wni-times’, 'fonteize’, 12)
114 xiabsl(' ThÔei gian phadt xal’, ‘fontname', 'vni-times’, 'fonteize’,12) 115
116 #Chu thích jen hinh ve
117 leqgend('Sat nhan me', ‘Rat nhan con', 'Hat nhan chau")
S10} Wf ôa0 ocnyorcranszr reo an sa cj=nrraroaonnncdean A Ee <Ãsằ
119 tttPhac chuong trính duce viet cho nut ‘Thoac'eet
120 function pushbutton? Caliback(hObject, eventdata, handles) 121 cloeereg
122
Pha lục: Chutong trink prmoeppso Trang 192
Ung dung Matlab hảo sit ruột số bài toán “Oật lý nguyên tử - het nhan
F yc. SO
Giao diện tao ra từ Gui
Lzhe a Esesen=
Dœm :+£<-. PM 906% >
Phu lục: Ontong trinkh premoeppso Frang 193