Khi fA(z) = fB(z) = 1,Q(z) = 0, phương trình (1.1) được viết lại như sau:
−I d2
dz2 +V(z)−EI
Φ(z) = 0 (2.2)
với V(z) − là hàm thế không đổi và liên tục từng phần có kích thước N ×N và có dạng:
Vij(z) = Vji(z) =
{Vij;1, z ≤ z1;Vij;2, z ≤ z2;. . .;Vij;k−1, z ≤ zk−1;Vij;k, z > zk−1} Đây là bài toán mô tả mô hình sóng ngang của dạng ống dẫn sóng [15]. Bài toán ban đầu cho trạng thái biên được trình bày dưới dạng hệ phương trình phi tuyến trên khoảng vô hạn z ∈ (−∞,+∞).
−d2Φ1(z)
dz2 +V11(z)Φ1(z) +V12(z)Φ2(z) +. . .+V1N(z)ΦN(z)−EΦ1(z) = 0
−d2Φ2(z)
dz2 +V21(z)Φ1(z) +V22(z)Φ2(z) +. . .+V2N(z)ΦN(z)−EΦ2(z) = 0 ...
−d2ΦN(z)
dz2 +VN1(z)Φ1(z) +VN2(z)Φ2(z) +. . .+VN N(z)ΦN(z)−EΦN(z) = 0 Bộ hàm riêng Φex1 (z),Φex2 (z), . . .Φexm(z) với trị riêng tương ứng E1ex <
E2ex < . . . < Emex được chuẩn hóa bằng điều kiện (1.15) khi zmin → −∞ và zmax →+∞,
< Φ(m)|Φ(m0) > =
Z zmax zmin
fB(z)(Φ(m)(z))†Φ(m0)(z)dz = δmm0.
Hàm riêng của phổ rời rạc giảm theo hàm mũ khi z → ∞, khi đó bài toán ban đầu được đưa về bài toán biên (1.1) trong khoảng z ∈ [zmin, zmax] (zmin < z1 và zmax > zk−1),
Khi k = 3 và N = 3, hàm thế V(z) được cho ở dạng như sau:
V(z) =
0 0 0 0 5 0 0 0 10
, z < −2;
−5 4 4 4 0 4 4 4 10
,−2≤ z ≤ 2;
0 0 0 0 0 0 0 0 0
, z > 2
Trong trường hợp này code của chương trình có dạng:
restart;read "kantbp4m.mwt";Digits:=12; 1
eqs:=3;psubint:=3;kappamax:=2; 2
keypot:=1;DirL:=1;DirR:=1; 3
4 nmesh:=3; ngrid(1):=10;ngrid(2):=10;ngrid(3):=10; 5 zmesh(0):=-12;zmesh(1):=-2;zmesh(2):=2;zmesh(3):=12; 6 7 vpot(1,1,1):=0;vpot(2,2,1):=5;vpot(3,3,1):=10; 8 vpot(1,2,1):=0;vpot(1,3,1):=0;vpot(2,3,1):=0; 9 vpot(2,1,1):=0;vpot(3,1,1):=0;vpot(3,2,1):=0; 10
11 vpot(1,1,2):=-5;vpot(2,2,2):=0;vpot(3,3,2):=10; 12 vpot(1,2,2):=4;vpot(1,3,2):=4;vpot(2,3,2):=4; 13 vpot(2,1,2):=4;vpot(3,1,2):=4;vpot(3,2,2):=4; 14 15 vpot(1,1,3):=0;vpot(2,2,3):=0;vpot(3,3,3):=0; 16 vpot(1,2,3):=0;vpot(1,3,3):=0;vpot(2,3,3):=0; 17 vpot(2,1,3):=0;vpot(3,1,3):=0;vpot(3,2,3):=0; 18 19
numberf:=5; hermites(); 20
21
read "example10test.txt"; 22
Giải thích các dòng lệnh tương ứng:
Dòng 1−3: Khởi động quy trình, chọn các tùy chọn để giải bài toán trị riêng cho 3 phương trình với điều kiện biên loại I và chọn các tham số cho phương pháp phần tử hữu hạn.
Dòng 4−5: Bài toán được giải trong mạng lưới gần như đồng nhất Ωz = {−12(10) −2(10) 2(10) 12(10)} trong đó trong dấu ngoặc là số phần tử hữu hạn của khoảng con.
Dòng 8−18: Cài đặt thế hiệu dụng.
Dòng 20: Tính toán, biểu diễn và lưu vào file "wfuncts1.dat" 5 hàm riêng Φh1(z), . . . ,Φh5(z) và đạo hàm của nó E1h < E2h < . . . < E5h.
Dòng 22: Đọc file "example10test.
Nội dung của file "example10test.txt" cụ thể sau đây:
xmin:=zmesh(1):xmax:=zmesh(2):
for i1 from 1 to 3 do for i from 1 to eqs do
eqts(i,i1):=-diff(Psi||i(x),x,x)
+add(vpot(i,ii,i1)*Psi||ii(x),ii=1..eqs)-Eh*Psi||i(x);
od;
od:
sol:=dsolve({seq(eqts(ii1,2),ii1=1..eqs)}):
for i from 1 to eqs do
Fun(i):=evalf(subs(sol,Psi||i(x)));
dFun(i):=evalf(diff(Fun(i),x));
od:
for i from 1 to eqs do
Fun(i+3):=subs(x=xmax,Fun(i))-A||(i+3)
*exp(-sqrt(-Eh+vpot(i,i,3))*xmax);
dFun(i+3):=subs(x=xmax,dFun(i))+A||(i+3)
*exp(-sqrt(-Eh+vpot(i,i,3))*xmax)*sqrt(-Eh+vpot(i,i,3));
Fun(i):=subs(x=xmin,Fun(i))-(A||i)
*exp(sqrt(-Eh+vpot(i,i,1))*xmin);
dFun(i):=subs(x=xmin,dFun(i))-(A||i)
*exp(sqrt(-Eh+vpot(i,i,1))*xmin)*sqrt(-Eh+vpot(i,i,1));
od:
"Eigenvalues given by solution of set of exact equations:";
"if not all, please repeat command <<read ""example10test.
txt"">>"; xx:=rand(0..10^5):
for i from 1 to 2*numberf do
SS(1):=fsolve({seq(Fun(ii),ii=1..6),seq(dFun(ii),ii=1..6) ,add((A||(ii))^2,ii=1..6)-1}
,{seq(_C||(ii)=xx()*1e-5,ii=1..6),seq(A||(ii)=xx()*1e-5,ii=1..6) ,Eh=xx()*1e-5*min(seq(vpot(ii,ii,2),ii=1..eqs))}):
print(subs(SS(1),Eh));
od:
Kết quả thu được:
Hình 2.7:Bộ trị riêng và hàm riêng tương ứng của các trạng thái thứ 1, . . . ,5 thỏa mãn điều kiện biên loại I được tính toán bằng chương trình KANTBP 4M với p = 3, κmax = 2, p0 = 7.
Như vậy, chương trình KANTBP 4M đã giải bài toán trên ứng với điều kiện biên loại I.
Nếu thay bằng điều kiện biên loại II thì code dành cho bài toán trên và kết quả thu được có sự thay đổi như sau:
restart;read "kantbp4m.mwt";Digits:=12; 1
eqs:=3;psubint:=3;kappamax:=2; 2
keypot:=1; 3
4 nmesh:=3; ngrid(1):=10;ngrid(2):=10;ngrid(3):=10; 5 zmesh(0):=-12;zmesh(1):=-2;zmesh(2):=2;zmesh(3):=12; 6 7 vpot(1,1,1):=0;vpot(2,2,1):=5;vpot(3,3,1):=10; 8 vpot(1,2,1):=0;vpot(1,3,1):=0;vpot(2,3,1):=0; 9 vpot(2,1,1):=0;vpot(3,1,1):=0;vpot(3,2,1):=0; 10
11 vpot(1,1,2):=-5;vpot(2,2,2):=0;vpot(3,3,2):=10; 12 vpot(1,2,2):=4;vpot(1,3,2):=4;vpot(2,3,2):=4; 13 vpot(2,1,2):=4;vpot(3,1,2):=4;vpot(3,2,2):=4; 14 15 vpot(1,1,3):=0;vpot(2,2,3):=0;vpot(3,3,3):=0; 16 vpot(1,2,3):=0;vpot(1,3,3):=0;vpot(2,3,3):=0; 17 vpot(2,1,3):=0;vpot(3,1,3):=0;vpot(3,2,3):=0; 18 19
numberf:=5; hermites(); 20
21
read "example10test.txt"; 22
Các dòng lệnh cũng có ý nghĩa tương ứng như trên, nhưng ở dòng thứ 3 khi keypot= 1 chương trình mặc định DirL= 2 và DirR= 2.
Kết quả thu được:
Hình 2.8:Bộ trị riêng và hàm riêng tương ứng của các trạng thái thứ 1, . . . ,5 thỏa mãn điều kiện biên loại II được tính toán bằng chương trình KANTBP 4M với p = 3, κmax = 2, p0 = 7.
Nhận xét:
Từ các hình 2.7 và 2.8 ta thấy rằng, đồ thị biễu diễn nghiệm của bài toán trị riêng cho hệ phương trình với hàm thế không đổi liên tục từng phần thỏa mãn điều kiện biên loại I và loại II được tính toán bằng chương trình KANTBP 4M thì ngược nhau. Trị riêng tương ứng trong từng trường hợp xấp xỉ bằng nhau.