Ngoài việc giúp người học tính toán, giải các phương trình một cách nhanhchóng, máy tính còn giúp chúng ta mô phỏng các vấn đề, hiện tượng… Trong quá trình học tập ở giảng đường đại học,
Trang 1BÀI TẬP LỚN Môn: Tin học ứng dụng
Đề tài:
SỬ DỤNG PHẦN MỀM MATHEMATICA
MÔ PHỎNG BÀI TOÁN HIỆU ỨNG XUYÊN NGẦM
Giảng viên: TS Nguyễn Chính Cương
Trang 2MỤC LỤC
Phần 1: Lí do chọn đề tài
Phần 2: Cơ sở lí thuyết
I Khối sóng Gaussian
II Phương pháp sai phân hữu hạn và áp dụng
Phần 3: Mô phỏng bài toán hiệu ứng xuyên ngầm
I Code mô phỏng bài toán hiệu ứng xuyên ngầm
II Kết quả
III Kết luận
Phần 4: Tài liệu tham khảo
Phần 1 Lí do chọn đề tài
Trang 3Trong những năm gần đây, khoa học – kĨ thuật phát triển hết sức nhanh chóng, đặc biệt làtrong lĩnh vực truyền thông và tin học ứng dụng Những thiết bị nghe nhìn, thiết bị kĩthuật số, máy tính… đã trở thành những phương tiện hết sức phổ biến trong xã hội, nhất
là máy tính Có thể nói máy tính là một trong những phương tiện thiết yếu đối với tất cảmọi người Ngoài việc giúp người học tính toán, giải các phương trình một cách nhanhchóng, máy tính còn giúp chúng ta mô phỏng các vấn đề, hiện tượng…
Trong quá trình học tập ở giảng đường đại học, ngoài các môn học quen thuộc như cơ,nhiệt, điện, quang với các hiện tượng quen thuộc và dễ tưởng tượng, chúng tôi còn tiếpxúc với với môn học cơ lượng tử với rất nhiều các công thức phức tạp, các bài toán lượng
tử như: chuyển động của electrong, lan truyền sóng trong hố thế… chưa từng biết đến.Các hiện tượng trong cơ học lượng tử chỉ đơn thuần được trình bày dưới các công thức,thiếu những ví dụ thực tế trong cuộc sống gây ra khó khăn cho sinh viên Vì vậy, chúngtôi thực sự mong muốn có những video thực tế, hoặc những hình ảnh mô phỏng các bàitoán trên Công việc mô phỏng các bài toán trên có thể được thực hiện bởi sinh viên vớicông cụ máy tính
Hiện nay có rất nhiều các phần mềm hỗ trợ tính toán với nhiều tính năng ứng dụng khácnhau như: Mapple, Matlab, Mathematica… trong đó Mathematica là phần mềm có khảnăng ứng dụng lớn
Việc mô phỏng bài toán lượng tử bằng máy tính sẽ giúp sinh viên chúng tôi có cái nhìntrực quan về các hiện tượng lượng tử Từ đó, giúp chúng tôi hiểu sâu sắc thêm nội dungkiến thức, phát triển tư duy sáng tạo
Vì những lí do trên, chúng tôi quyết định nghiên cứu đề tài “Sử dụng phần mềmMathematica Mô phỏng Bài toán Hiệu ứng xuyên ngầm”
Đề tài được trình bày và mô phỏng không thể tránh khỏi việc còn những điểm hạn chế,
rất mong người đọc cho ý kiến đóng góp Xin chân thành cảm ơn!
Phần 2: Cơ sở lí thuyết
Trang 4I KHỐI SÓNG GAUSSIAN
Để đơn giản chúng ta chỉ xét sự lan truyền sóng theo một chiều
Hàm sóng 1 chiều có dạng:
Ψ(x, t)= φ(x) f(t)Tiến triển theo thời gian của hàm sóng tuân theo phương trình Schrodinger:
Xét trong hố thế có chiều cao V(x,t) ta có
Khi đó ta có các biểu thức
Thay vào phương trình Schrodinger ta được:
Chia 2 vế cho ta có
Trang 5Mà vế trái là hàm của t và vế phải là hàm của x, do đó
Khi đó ta được hệ 2 phương trình sau:
Tức là năng lượng riêng là đại lượng bảo toàn theo thời gian
Hàm sóng tiến triển theo thời gian
Tại t=0 ta có:
Với t>0:
Trang 7Đặt , ta viết lại biểu thức của như sau:
Với chú ý:
Từ đó ta thu được biểu thức cuối cùng của :
II Phương pháp sai phân hữu hạn
1 Xấp xỉ đạo hàm của hàm bằng sai phân hữu hạn.
Trang 8Ta đã biết rằng đạo hàm của một hàm được xác định bằng giới hạn cảu một thương số saiphân:
Để giải phương trình vi phân, chúng ta thay thế các đạo hàm bằng các xấp xỉ thương sốsai phân Nếu một hàm được vi phân nhiều lần, chúng ta có thể sử dụng khai triển Taylor
để xác định các xấp xỉ sai phân Ví dụ:
Viết lại phương trình (2) ta được:
Khi lấy giới hạn ta thu được xấp xỉ sau:
Trang 9Chú ý rằng thương số sai phân ở phương trình (3) không phải là cách duy nhất để xấp xỉ Thật vậy, chúng ta xét khai triển của :
Từ 2 phương trình (4) và (2), trừ vế với vế ta được:
Với chú ý rằng phần sai số ở trong phương trình trên là bậc của , kí hiệu , sai
số này sẽ tiến rất nhanh tới 0 khi
Để thu được xấp xỉ của cũng từ phương trình (2) và phương trình (4) ta thu được:
Do tính đối xứng trong các xấp xỉ ở (5) và (6) nên chúng được gọi là các xấp xỉ sai phântâm Xấp xỉ sai phân (3) được gọi là xấp xỉ sai phân tiến
2 Giải phương trình truyền nhiệt bằng việc sử dụng sai phân hữu hạn
Ban đầu ta xem xét các điều kiện biên ban đầu của phương trình truyền nhiệt
Trang 10Ý tưởng căn bản là thay thế các đạo hàm trong phương trình truyền nhiệt bằng cácthương số sai phân Chúng ta xem xét mối liên hệ giữa tại và các lân cận của với khoảng cách và khoảng thời gian
Sử dụng các xấp xỉ thương số sai phân trong phần 1 ta thu được các xấp xỉ sai phân thànhphần dưới đây:
• Sai phân tiến theo thời gian:
Viết lại phương trình trên ta được:
• Sai phân tâm theo không gian:
Biến đổi 2 phương trình trên ta được:
Thay (2) và (3) vào (1a) ta đươc:
Trang 11Viết lại :
Chúng ta chia nhỏ đoạn [0,1] thành N +1 điểm như sau Đoạn [0,T] được chiathành M + 1 điểm như sau Tại các điểm không thời gian như trên, chúng ta cóxấp xỉ như sau :
Được thực hiên trong bảng tính [0,T]
Thực hiện đạo hàm điều kiện biên :
Trang 12Giả sử điều kiện biên (1b) được chuyển thành :
Xét xấp xỉ sai phân tâm đến , nơi mà
Sắp xếp lại ta được :
Tại chúng ta quan sát thấy rằng là nằm ngoài đoạn [0,1] do đó chúng tađưa thêm vào có các giá trị giống với từ đó ta thu được phương trình :
khi từ cột được sao chép sang cột Chú ý rằng điều kiện biên này
có thể được thực hiện theo con đường khác mà không cần đến việc đưa thêm cột bổ sungbằng việc loại bỏ
Nếu phương trình cuối được thực hiện tại nó không cần cho thêm hoặc là thựchiện phương trình sai phân được cho ở (**) vì điều kiện biên của đạo hàm được xác định
Trang 133 Sử dụng phương pháp Sai phân hữu hạn để giải phương trình Schrodiger phụ thuộc thời gian với hàng rào thế khác không
Trong phần này chúng ta trình bày cách giải phương trình Schrodinger phụ thuộc thờigian của khối sóng Gaussian bằng phương pháp sai phân hữu hạn
Khối sóng Gaussian một chiều được định xứ trong đoạn [0 , xmax], khoảng thời gian là[0,t]
Sự lan truyền sóng theo thời gian là nghiệm của phương trình Schrodinger:
trong đó
Với chú ý , ta viết lại phương trình Schrodinger như sau:
Trang 14Ta sử dụng phương pháp sai phân hữu hạn như sau:
Chia đoạn [0 , xmax] thành N điểm , chia đoạn [0, t] thành M điểm
Ta áp dụng phương pháp sai phân Crank – Nichelson cho phương trình (1) như sau:Đặt:
Và kí hiệu c, tương ứng ta cũng có
Áp dụng sai phân tiến cho ta được:
Áp dụng sai phân lùi cho ta được:
Do đó:
Với chú ý áp dụng sai phân tâm cho ta có biểu thức của và như sau:
Trang 15Do đó, phương trình (1) viết lại dưới dạng tính số như sau:
Ta viết lại phương trình trên dưới dạng sau:
Ta chuyển các phương trình trên về phương trình ma trận như sau:
Giải phương trình ma trận trên với bước nhảy thời gian M cho trước, ta sẽ thu được tiếntriển theo thời gian của khối sóng Gaussian khi chuyển động qua hàng rào thế
Trang 16Phần 3: Mô phỏng bài toán hiệu ứng xuyên ngầm
I Code
Bước 1: Chia điểm gián đoạn
TimeSteps = 150; (bước nhảy thời gian)
n = 1000; (số các điểm gián đoạn)
xmax = 1.5; (bề rộng của hộp :0<x<xmax)
dx = xmax/(n-1); (độ dài bước nhảy)
Bước 2: Định nghĩa khối sóng Gaussian
(Sóng phẳng ban đầu với định xứ Gaussian)
x0 = 0.3; (Vị trí đỉnh ban đầu của khối sóng Gaussian) sig = 0.05; (Bề rộng của khối sóng)
kx = 150; (Xung lượng ban đầu)
psi = Table[Exp[I kx (x-x0)-(x-x0)^2/(2*sig^2)],{x,0,xmax,dx}];
Bước 3: Tham số tiến triển theo thời gian
dt = 5000; (dt càng lớn, tiến triển theo thời gian càng nhanh, psi (t)=psi Exp[Idt])
Trang 17*Chú ý *
Bước 4: Rào thế hình chữ nhật với độ cao xác định
xPotInit = xmax/2;
xPotFinal= xPotInit + xmax/30;
potH = 1000; (Độ cao rào thế)
* Thế năng có dạng sau *:
V = Table[If[ x>xPotInit && x<xPotFinal, potH UnitStep[x],0],{x,0,xmax,dx}];
Bước 5: Lời giải sai phân hữu hạn
Bước 6: Mô phỏng tiến triển theo thời gian của mật độ xác xuất
pr = 0.02; (plotrange)
Manipulate[Show[ListLinePlot[Abs[PsiN[t]]^2, PlotRange →{{0,n}, {-pr,pr}}, Axes
→ {True,False}, Ticks → None], ListLinePlot[0.95 pr*V/Max[V], PlotStyle →
{Red,Thick}]], {t,1,TimeSteps,1}];
Bước 7: Xuất video mô phỏng hiệu ứng xuyên ngầm
plots = Table[Show[ListLinePlot[Abs[PsiN[ii]], PlotRange → {{0,n}, {-.2,.2}}, Axes
→ {True,False}, Ticks → None, PlotStyle → {Thick,Black}],
Trang 18ListLinePlot[Re[PsiN[ii]], PlotRange →{{0,n}, {-1,1}}, Axes → {True,False}, Ticks
→ None, PlotStyle → {Thick,Blue}], ListLinePlot[.95*.2*V/Max[V], PlotStyle → {Red,Thick}]], {ii,1,TimeSteps}];
Export["Hieu ung xuyen ngam.avi",plots];
* Chú ý vào Document trong Computer tìm file “hieu ung xuyen ngam.avi”, nhấn open
và theo dõi mô phỏng
II Kết quả
Xuất file video ta thu được video “hieu ung xuyen ngam”:
Trang 19Dưới đây là ảnh chụp màn hình Video:
Trang 25Phần 4: Tài liệu tham khảo