Oleh :
Jurusan Fisika
Fakultas Matematika dan Ilmu Pengetahuan Alam
Universitas Riau
Pekanbaru
2017
Abstrak
Metode Split Step Fourier menyediakan metodologi yang sangat baik untuk belajar dan
mengajar bagaimana memecahkan persamaan diferensial parsial bergantung waktu. Metode ini
di mana-mana digunakan dalam aplikasi teknik dan fisika. Dalam artikel ini, kami menyajikan
kesederhanaan metode ini dengan memecahkan Persamaan Linear dan Nonlinier Schrodinger
dan dengan bantuan MATLAB, kami menunjukkan implementasi langsung. Perluasan untuk
jenis masalah lain juga dibahas dengan kode yang sesuai. Artikel ini menggambarkan teknik
numerik yang sangat kuat yang dapat diimplementasikan dengan mudah..
I. PENDAHULUAN
Metode Split Step Fourier (SSFM) adalah bagian dari keluarga metode pseudo-spektral
yang digunakan untuk menyelesaikan persamaan diferensial parsial nonliner bergantung waktu.
Pendekatan yang diikuti oleh SSFM mengikuti strategi lama dari devide dan conquer. PDE
nonlinear dibagi menjadi sub-masalah terkait dari persamaan aslinya. Metode ini mudah
dimengerti dan dengan penggunaan MATLAB implementasinya sangat mudah. Pada artikel ini,
kita akan menggambarkan implementasi Metode Fourier Split menggunakan MATLAB. Kami
akan membahas solusi numerik varietas contoh. Kita mulai dengan persamaan Schrodinger linear
satu dimensi, persamaan Schrodinger nonliner, sistem Schrodinger dan persamaan Schrodinger
2D.
𝜕𝑢 2
1 𝜕𝑢
𝑖 =− + 𝑉(𝑥)𝑢, −∞<𝑥 <∞ (1)
𝜕𝑡 2 𝜕𝑥 2
𝑢(𝑥, 0) = 𝑢0 (𝑥)
Di sini u adalah fungsi bernilai kompleks, V (x) fungsi nyata dan i² = -1. Dalam menyelesaikan
PDE non-linier ini, mengharuskan syarat batas masuk ke 0.
Diketahui bahwa untuk nilai yang berbeda dari "potensial", V (x), tidak dapat
menemukan solusi umum. Sebagai gantinya, perlu menggunakan metode numerik untuk
menyelesaikan PDE ini.
Memisahkan LSE Sangatlah mudah untuk menulis ulang persamaan (1) sebagai:
𝜕𝑢
= 𝑖ℒ𝑢 + 𝑖𝒩𝑢, −∞ < 𝑥 < ∞, (2)
𝜕𝑡
1 𝜕2
ℒ=− dan 𝓝= -V(x) (3)
2 𝜕𝑥 2
Pertimbangkan interval waktu yang kecil, katakan [τ, τ + ∆t]. Sekarang asumsikan bahwa u (τ, x)
diketahui dan menganggap bahwa ℒ dapat diabaikan, yaitu 𝑢𝑥𝑥 ≈ 0. Kemudian (1) direduksi
menjadi :
𝜕𝑢
𝑖 = 𝒩𝑢 (4)
𝜕𝑡
Perkiraan ini mengarah ke persamaan diferensial biasa (ODE) dalam waktu. Solusi untuk ODE
ini diketahui dan solusi pada waktu t = τ + ∆t diberikan oleh :
Selanjutnya, kami mengulangi masalah tetapi mengabaikan kontribusi 𝓝. Untuk kasus ini, PDE
adalah linier tanpa koefisien variable :
𝜕𝑢
= 𝑖ℒ𝑢. (6)
𝜕𝑡
Persamaan ini akan diselesaikan dalam interval [τ, τ + ∆t] dan menggunakan u (x, τ + ∆t) sebagai
kondisi awal. Solusi analitik untuk persamaan ini dapat dengan mengambil Transformasi Fourier
̂
𝜕𝑢 2
𝜕𝑢
𝜕𝑡
= 𝑖ℱ(ℒ𝑢) = 𝑖ℱ (
𝜕𝑥 2
) = −𝑖𝑘 2 𝑢̂. (7)
Dalam hal ini kami menggunakan definisi Fourier dan Inverse Fourier Transform berikut :
∞
ℎ̂(𝑘) = ℱ(ℎ) = ∫−∞ ℎ (𝑥)𝑒 −2𝜋𝑖𝑘𝑥 𝑑𝑥 (8)
∞
ℎ(𝑥) = ℱ(ℎ̂) = ∫−∞ ℎ̂ (𝑘)𝑒 2𝜋𝑖𝑘𝑥 𝑑𝑘 (9)
Derivatif parsial hilang dan persamaannya menjadi ODE. Solusi analitik dapat dihitung dan nilai
𝑢̂(x, τ + ∆t) diberikan oleh :
Solusi dalam domain x dapat dihitung dengan kebalikan dari Transformasi Fourier :
Inti dari metode split adalah berpikir untuk maju dalam waktu dan penerapan L dan N satu per
satu untuk menyelesaikan setiap langkah waktu.
III. IMPLEMENTASI
Dalam bahasa komputer, u (n) adalah vektor yang diperbarui lebih dulu dengan
mengalikannya dengan expontensial a. Analog diskrit dari Fourier Transform dan kebalikannya
adalah apa yang disebut Discrete Fourier Transforms (FDT) dan Inverse Discrete Fourier
Transform (IFDT). MATLAB dapat dengan mudah memanipulasi operasi array dan DFT dan
IFDT dihitung oleh fungsi bulitin Fast Fourier Transform (fft) dan Inverse Fast Fourier
Transform (ifft). Algoritma (3.1) menyarankan bagaimana prosedur ini akan berjalan.
𝑢(𝑛) ← 𝑢0
2𝜋 𝑁 𝑁
𝑘← (− ∶ 1 ∶ − 1)
𝐿 2 2
untuk 𝑛 ← 1 𝐡𝐢𝐧𝐠𝐠𝐚 𝑀
1
𝑢(𝑛+2) ← 𝑒𝑥𝑝(𝑖∆𝑡𝑉(𝑥))𝑢𝑛
1
1 (𝑛+ )
maka (𝑛+ )←ℱ(𝑢 2 )
𝑢̂ 2
1
{𝑢̂
(𝑛+1)
← exp(−𝑖∆𝑡𝑘 2 )𝑢̂(𝑛+2)
𝑢(𝑛+1) ← ℱ −1 (𝑢̂(𝑛+1) )
maka {
𝑢𝑛 ← 𝑢(𝑛+1)
kembali (𝒖𝒏 )
Dalam algoritma (3.1) kita harus memahami bahwa u (n) adalah vektor dan dengan demikian
semua operasi adalah operasi vektor komponen bijaksana. Algoritma ini dapat dipahami oleh
pemula dalam pemrograman komputasi ilmiah. Versi yang lebih pendek dari Algoritma (3.2)
dapat diperoleh berdasarkan (12).
𝑢(𝑛) ← 𝑢0
Untuk 𝑗 ← 1 𝑢𝑛𝑡𝑢𝑘 𝑀
𝐤𝐞𝐦𝐛𝐚𝐥𝐢 (𝑢𝑛 )
Untuk meyakinkan pembaca bahwa SSFM adalah skema numerik yang akurat, kami
menyajikan beberapa contoh numerik. Kami membandingkan hasil analitik Schr¨odinger yang
diketahui dengan hasil yang diperoleh SSFM. Perlu dicatat bahwa ada argumen keras yang
secara konkret membuktikan bahwa metode ini stabil secara numerik dan urutan kedua akurat.
Kami tidak melakukan analisis ini karena memerlukan kedalaman matematis lebih yang
mungkin tidak cocok untuk sarjana, pembaca yang tertarik dapat melihat kutipan yang
diperlukan dan referensi di dalamnya.
Dalam subbab ini kami membahas kinerja SSFM untuk Persamaan Schr¨ordinger 1 Dimensi.
Kami membandingkan hasil numerik dengan solusi analitik yang diketahui dan solusi numerik
yang dihitung.
𝜕𝑢 2
1 𝜕𝑢
𝑖 =− − |𝑢|2 𝑢 (13)
𝜕𝑡 2 𝜕𝑥 2
Persamaan ini dapat ditulis sebagai persamaan evolusi bentuk umum nonlinier :
𝜕𝑢
𝑖 = (ℒ + 𝒩)𝑢, (15)
𝜕𝑡
2
1 𝜕𝑢
Dimana ℒ = − 2 2 dan 𝒩 = −|𝑢|2 𝑢 adalah waktu yang bebas linear dan nonlinear masing-
𝜕𝑥
masing operator. Untuk mengatasi masalah ini, kami mengikuti prosedur yang sama seperti
sebelumnya dan membagi masalah menjadi dua bagian. Langkah "nonlinear" diberikan oleh
𝜕𝑢
𝑖 = 𝒩𝑢 (17)
𝜕𝑡
Untuk memajukan bagian nonlinear, ambil 𝓝 = q |𝑢(x, τ + ∆t)|² ≈ q |𝑢(x, τ)|² dan dengan
demikian solusi analitis diberikan oleh :
(a) Solusi Numerik (b) Kesalahan maksimum pada setiap langkah waktu
Gambar 2: Solusi dan Kesalahan Schr¨odinger Non-Linier
Bagian linier untuk kasus ini tidak berubah dan dapat ditangani lagi dengan mengambil Fourier
Transform. Jika operator diferensial hanya dengan koefisien konstan maka kita miliki
𝜕𝑢 1 𝜕2 𝜕2
𝑖 = − ( 2 + 2 ) 𝑢 + 𝑉(𝑥, 𝑦)𝑢 (21)
𝜕𝑡 2 𝜕𝑥 𝜕𝑦
𝒩 = 𝑉(𝑥, 𝑦) (23)
Diskusi di sini hanya terbatas pada persamaan Schrodinger [2, 7] nonlinear. Namun masalah
nonlinear / linear tergantung waktu lainnya dapat diselesaikan dengan metode ini.
Dalam contoh terakhir ini kita menggunakan persamaan Benjamin Ono untuk
menunjukkan bagaimana SSFM diterapkan. Contoh ini mungkin tampak eksotis untuk
mahasiswa sarjana.
𝜕𝑢 𝜕𝑢 2
𝜕𝑢
+𝑢 +ℋ{ } = 0, −∞ < 𝑥 < ∞, 𝑡 > 0 (24)
𝜕𝑡 𝜕𝑥 𝜕𝑥 2
1 ∞ 𝑓(𝑦)
𝓗{𝑓}(𝑥) = 𝜋 ∫−∞ 𝑦−𝑥 𝑑𝑦
𝜕𝑢
𝑢(𝑥, 0) = 𝑓(𝑥)𝑑𝑎𝑛 𝑢, → 0 sebagai |𝑥| → ∞
𝜕𝑥
VI. KESIMPULAN
Dalam artikel ini kami menyajikan SSFM untuk menyelesaikan persamaan Schr¨odinger
linear dan nonlinear. Algoritma dan implementasi MATLAB disajikan untuk SSFM untuk kedua
persamaan ini. Algoritma menunjukkan kesederhanaan metode untuk kedua kasus dan berkat
MATLAB implementasinya terbukti langsung. Contoh numerik juga ditunjukkan untuk
menunjukkan efisiensi metode. Kami berharap artikel ini dapat berfungsi sebagai batu loncatan
untuk pengantar SSFM untuk mahasiswa sarjana dalam kursus komputasi ilmiah atau sebagai
tutorial belajar mandiri untuk mahasiswa tingkat sarjana / pemula yang sedang melakukan
penelitian.
DAFTAR PUSTAKA
[1] K-C Ang. Introducing the boundary element method with Matlab. Inter-
national Journal of Mathematical Education in Science and Technology,
39(4):505–519, 2008.
[3] J Boyd. Chebyshev and Fourier Spectral Methods. Dover, New York, 2001.
[4] Y W Kwon and H Bang. The Finite Element Method using Matlab. CRC Press,
New York, 1st edition, 1996.
[5] G M Muslu and H A Erbay. Higher-order split-step fourier schemes for the
generalized nonlinear schrödinger equation. Mathematics and Computers in
simulation, 67:581–595, 2005.
[6] T R Taha and M J Ablowitz. Analytical and numerical aspects of cer- tain
nonlinear evolution equations. II. Numerical, nonlinear Schrödinger equation.
Journal of Computational Physics, 55(2):203–230, 1984.
[7] T R Taha and X Xu. Parallel Split-Step Fourier Methods for the coupled
nonlinear Schrö dinger type equations. The Journal of Supercomputing,
5:5–23, 2005.
[8] JAC Weideman and B M Herbst. Split-step methods for the solution of the
nonlinear Schrödinger equation. SIAM Journal on Numerical Analy- sis,
23:485–507, 1986.