Khi thay fB(z) = fA(z) =zd−1, N = 1, Q(z) = 0, V(z) ≡ V11(z) = z2 vào phương trình ban đầu (1.1) ta thu được phương trình Schrodinger cho dao động tử điều hòa d – chiều ở trạng thái liên kết :
(D−Em)Φm(z) =
− 1 zd−1
d
dzzd−1 d
dz +z2−Em
Φm(z) = 0. (2.1) Ứng với d = 1 phương trình (2.1) có nghiệm giải tích - trị riêng Emexact và hàm riêng Φexactm (z) thỏa mãn điều kiện chuẩn hóa và trực giao trên khoảng vô hạn z ∈ (−∞,+∞):
< Φ(m)|Φ(m0) > =
Z zmax zmin
fB(z)(Φ(m)(z))†Φ(m0)(z)dz = δmm0. Biểu thức hàm riêng giải tích đã biết:
Φexactm (z) = exp(−z2/2)Hm(z)
√4
π√
2m√m! với trị riêng tương ứng
Emexact = 2m+ 1, m = 0,1, . . . .
trong đó: Hm(z) là đa thức Hermite có dạng và tính chất như sau:
Hm(z) = (−1)mexp(z2)d
mexp(−z2) dzm Hm+1(z) = 2zHm(z)−2mHm−1(z)
Code của chương trình KANTBP 4M để giải bài toán trị riêng với phương trình Schrodinger cho dao động tử điều hòa d = 1 chiều có dạng như sau:
restart;read "kantbp4m.mwt"; 1
psubint:=3;kappamax:=2; 2
vpot:=(z)^2; 3
ngrid:=16;zmin:=-8;zmax:=8; 4
numberf:=6;;filenamew:="1dosc.dat"; 5
hermites(); 6
7
read "1dosc.dat": 8
oscfun1(0):=0; 9
for ii from 1 to numberf do oscfun1(ii):=‘if‘(ii=1 10
,exp(-z^2/2)/sqrt(sqrt(Pi)) 11
,sqrt(2)*z/sqrt(ii-1)*oscfun1(ii-1) 12
-sqrt(ii-2)/sqrt(ii-1)*oscfun1(ii-2)); 13
plots[logplot]([abs(abs(eigf||ii)-abs(oscfun1(ii)))] 14 ,z=zmin..zmax,title=cat("1d osc: test by comparison with 15
",convert(ii,string),"-th exact w.f."));print(%); 16
plots[logplot]([abs(-diff(eigf||ii,z,z) 17
+z^2*eigf||ii-Re(eigv||ii)*eigf||ii)] 18
,z=zmin..zmax,title=cat("1d osc: test by substitution of 19
",convert(ii,string),"-th solution to ODE"));print(%); 20
od: 21
Giải thích các dòng lệnh tương ứng:
Dòng 1−2: Khởi động chu trình và chọn các tham số ban đầu cho mạng lưới phần tử hữu hạn.
Dòng 3: Thế năng hiệu dụng của dao động tử điều hòa.
Dòng 4: Chọn khoảng lấy tích phân và chia nó thành 16 khoảng bằng nhau.
Dòng5: Tính toán6hàm riêng đầu tiên và trị riêng tương ứng của dao động tử điều hòa d= 1 chiều, sau đó kết quả thu được lưu vào file "1dosc.dat".
Dòng 8: Đọc file "1dosc.dat" chứa hàm riêng và trị riêng tương ứng được tính toán bằng chương trình KATNBP 4M của các trạng thái thứ 1, . . . ,6.
Dòng 9−11: Công thức truy hồi biễu diễn hàm riêng giải tích ứng với các trạng thái thứ 1, . . . ,6 của dao động tử điều hòa d = 1 chiều.
Dòng12−14: Vẽ đồ thị biểu diễn sai sốεm(z)vớiεm(z) = Φhm(z)−Φexactm (z), z ∈ [zmin, zmax], m = 1,2, . . . ,numberf khi so sánh hàm riêng được tính toán bằng chương trình và hàm riêng giải tích.
Dòng 15 − 18: Vẽ đồ thị biểu diễn độ chính xác của nghiệm số thu được, khi thay vào phương trình (2.1) εm(z) = |(D(z) − Emh)Φhm(z)|, z ∈ [zmin, zmax], m= 1,2, . . . ,numberf.
Kết quả thu được:
Chương trình KANTBP 4M giải bài toán dao động tử điều hòa d = 1 chiều ứng với các tham số p = 3, κmax = 2, p0 = 7 trong khoảng z ∈ [−8,8]
ta thu được bộ gồm 6 hàm riêng đầu tiên và trị riêng tương ứng của các trạng thái 1, . . . ,6. Trong đó, hàm riêng được biểu diễn thông qua đồ thị.
Tiếp theo là đồ thị biểu diễn sai số εm(z) được tính bằng giá trị tuyệt đối hiệu hàm riêng giải tích và hàm riêng số của các trạng thái 1, . . .6. Ngoài ra còn có đồ thị biểu diễn sai số εm(z), khi thay nghiệm số (hàm riêng và trị riêng số) của bài toán được tính toán bằng chương trình KANTBP 4M ứng với các trạng thái 1, . . . ,6 vào phương trình (2.1). Các đồ thị biểu diễn sai số đều nhằm mục đích kiểm tra độ chính xác của nghiệm số được tính toán bởi chương trình KANTBP 4M.
Hình 2.1:Bộ hàm riêng và trị riêng tương ứng của các trạng thái thứ 1, . . . ,6 của dao động tử điều hòa d = 1 chiều được tính toán bằng chương trình KANTBP 4M với p = 3, κmax = 2, p0 = 7.
Hình 2.2: Đồ thị biểu diễn sai số của hàm riêng εm(z) với m = 1,2, . . . ,numberf khi so sánh hàm riêng được tính bằng chương trình KANTBP 4M với hàm riêng giải tích ứng với các trạng thái thứ 1, . . . ,6.
Hình 2.3: Đồ thị biểu diễn sai số εm(z) với m= 1,2, . . . ,numberf bằng cách thay nghiệm thu được bằng chương trình KANTBP 4M vào phương trình (2.1) tương ứng của các trạng thái 1, . . . ,6.
Với d≥ 2phương trình (2.1) có nghiệm giải tích – trị riêng Emexact và hàm riêng Φexactm (z) thỏa mãn điều kiện chuẩn hóa và trực giao trên khoảng nửa vô hạn z ∈ [0,+∞):
< Φ(m)|Φ(m0) > =
Z zmax zmin
fB(z)(Φ(m)(z))†Φ(m0)(z)dz = δmm0 Ngoài ra, tại z = zmin bài toán phải thỏa thêm điều kiện biên loại I
Φ(zt) = 0, t=min Biểu thức hàm riêng giải tích đã biết:
Φexactm (z) =
p2Γ(m+d/2)/Γ(m+ 1)
Γ(d/2) exp (−z2/2)1F1(−m, d/2, z2) ứng với trị riêng
Emexact = d+ 4m, m= 0,1, . . .
Code của chương trình để giải bài toán trị riêng và bài toán biên với phương trình xuyên tâm (hay phương trình bán kính) cho dao động tử điều hòa d – chiều có dạng như sau:
Trường hợp: d= 3
restart;read "kantbp4m.mwt"; 1
psubint:=3;kappamax:=2; 2
intprep:=1;ddim:=3; 3
vpot:=(z)^2; ngrid:=8; 4
FFA:=(z)^(ddim-1);FFB:=(z)^(ddim-1); 5
zmin:=0;zmax:=8;numberf:=6;filenamew:="3docs.dat"; 6
hermites(); 7
8
read "3dosc.dat": 9
for ii from 1 to numberf do 10
oscfun(ii):=sqrt(2*GAMMA(ii-1+(ddim)/2)/GAMMA((ii-1) +1)) 11 /GAMMA(ddim/2)*exp(-z^2/2)*hypergeom([-ii+1],[ddim/2],z^2); 12 plots[logplot]([abs(abs(eigf||ii)-abs(oscfun(ii)))] 13 ,z=zmin..zmax,title=cat(convert(ddim,string) 14 ,"d osc: test by comparison with " 15
,convert(ii,string),"-th exact w.f.")); 16
print(%); 17
plots[logplot]([abs(-1/FFB*diff(FFA*diff(eigf||ii,z),z)+z^2 18
*eigf||ii-Re(eigv||ii)*eigf||ii)] 19
,z=zmin..zmax,title=cat(convert(ddim,string) 20 ,"d osc: test by substitution of " 21 ,convert(ii,string),"-th solution to ODE")); 22
print(%); od: 23
Giải thích các dòng lệnh trên:
Dòng1−2: Khởi động quy trình và chọn các tham số ban đầu cho phương pháp phần tử hữu hạn.
Dòng 3−7: Chọn tham số phù hợp với bài toán, và tính 6 hàm riêng đầu tiên và trị riêng tương ứng của dao động tử điều hòa d = 3 chiều. Kết quả sau khi tính sẽ được lưu vào file "3docs.dat".
Dòng 9: Đọc file "3dosc.dat" chứa hàm riêng và trị riêng tương ứng được tính bằng chương trình của các trạng thái thứ 1, . . . ,6.
Dòng 10 −12: Công thức truy hồi biễu diễn hàm riêng giải tích ứng với các trạng thái thứ 1, . . . ,6 của dao động tử điều hòa d = 3 chiều.
Dòng13−17: Vẽ đồ thị biểu diễn sai sốεm(z)vớiεm(z) = Φhm(z)−Φexactm (z), z ∈ [zmin, zmax], m = 1,2, . . . ,numberf khi so sánh hàm riêng được tính toán bằng chương trình và hàm riêng giải tích.
Dòng 18 − 23: Vẽ đồ thị biểu diễn độ chính xác của nghiệm số thu được, khi thay vào phương trình (2.1) εm(z) = |(D(z) − Emh)Φhm(z)|, z ∈ [zmin, zmax], m= 1,2, . . . ,numberf.
Dựa vào biểu thức hàm riêng giải tích của dao động tử điều hòa d – chiều, ta thấy ứng với mỗi giá trị d khác nhau ta sẽ thu được một hàm riêng khác nhau, nhưng lại giống nhau về bản chất đồ thị.
Trường hợp: d = 6
restart;read "kantbp4m.mwt"; 1
psubint:=3;kappamax:=2; 2
intprep:=1;ddim:=6;filenamew:="6dosc.dat"; 3
vpot:=(z)^2; ngrid:=8; 4
FFA:=(z)^(ddim-1);FFB:=(z)^(ddim-1); 5
zmin:=0;zmax:=8;numberf:=6; 6
hermites(); 7
8
read "6dosc.dat": 9
for ii from 1 to numberf do 10
oscfun(ii):=sqrt(2*GAMMA(ii-1+(ddim)/2)/GAMMA((ii-1) +1)) 11 /GAMMA(ddim/2)*exp(-z^2/2)*hypergeom([-ii+1],[ddim/2],z^2); 12 plots[logplot]([abs(abs(eigf||ii)-abs(oscfun(ii)))] 13 ,z=zmin..zmax,title=cat(convert(ddim,string) 14 ,"d osc: test by comparison with " 15 ,convert(ii,string),"-th exact w.f.")); 16
print(%); 17
plots[logplot]([abs(-1/FFB*diff(FFA*diff(eigf||ii,z),z)+z^2 18
*eigf||ii-Re(eigv||ii)*eigf||ii)] 19
,z=zmin..zmax,title=cat(convert(ddim,string) 20 ,"d osc: test by substitution of " 21 ,convert(ii,string),"-th solution to ODE")); 22
print(%); 23
od: 24
Giải thích các dòng lệnh trên:
Dòng1−2: Khởi động quy trình và chọn các tham số ban đầu cho phương pháp phần tử hữu hạn.
Dòng 3−7: Chọn tham số phù hợp với bài toán, và tính 6 hàm riêng đầu tiên và trị riêng tương ứng của dao động tử điều hòa d = 6 chiều. Kết quả sau khi tính sẽ được lưu vào file "6docs.dat".
Dòng 9: Đọc file "6dosc.dat" chứa hàm riêng và trị riêng tương ứng được tính bằng chương trình của các trạng thái thứ 1, . . . ,6.
Dòng 10 −12: Công thức truy hồi biễu diễn hàm riêng giải tích ứng với các trạng thái thứ 1, . . . ,6 của dao động tử điều hòa d = 6 chiều.
Dòng13−17: Vẽ đồ thị biểu diễn sai sốεm(z)vớiεm(z) = Φhm(z)−Φexactm (z), z ∈ [zmin, zmax], m = 1,2, . . . ,numberf khi so sánh hàm riêng được tính toán bằng chương trình và hàm riêng giải tích.
Dòng 18 − 24: Vẽ đồ thị biểu diễn độ chính xác của nghiệm số thu
được, khi thay vào phương trình (2.1) εm(z) = |(D(z) − Emh)Φhm(z)|, z ∈ [zmin, zmax], m= 1,2, . . . ,numberf.
Kết quả thu được tương tự trường hợp d= 1, cụ thể như sau:
Hình 2.4: Bộ trị riêng và hàm riêng tương ứng của các trạng thái 1, . . . ,6 của dao động tử điều hòa d = 6 chiều được tính toán bằng chương trình KANTBP 4M với p = 3, κmax = 2, p0 = 7.
Hình 2.5: Đồ thị biểu diễn sai số εm(z) của hàm riêng với m = 1,2, . . . ,numberf khi so sánh hàm riêng được tính bằng chương trình KANTBP 4M với hàm riêng giải tích của các trạng thái tương ứng 1, . . . ,6.
Hình 2.6: Đồ thị biểu diễn sai số εm(z) với m= 1,2, . . . ,numberf bằng cách thay nghiệm thu được bằng chương trình KANTBP 4M vào phương trình ban đầu (2.1) tương ứng với các trạng thái 1, . . . ,6.
Nhận xét:
Từ đồ thị hình vẽ 2.2 và 2.5 ta thấy nghiệm của bài toán trị riêng với phương trình Schrodinger cho dao động tử điều hòa một chiều và phương trình xuyên tâm cho dao động tử điều hòad – chiều, được tính bằng chương trình KANTBP 4M có độ chính xác lên đến 10−9 so với nghiệm giải tích.