Pendahuluan
Persamaan tipe elips yang paling umum adalah persamaan Poisson.
Banyak masalah fisika matematika direduksi menjadi solusi dari persamaan ini, misalnya, masalah distribusi suhu stasioner dalam masalah, difusi padat, masalah distribusi medan elektrostatik dalam media non-konduktor di hadapan muatan listrik, dan banyak lainnya.
Untuk menyelesaikan persamaan eliptik dalam kasus beberapa pengukuran, metode numerik digunakan untuk mengubah persamaan diferensial atau sistem mereka menjadi sistem persamaan aljabar. Keakuratan solusi ditentukan oleh langkah kisi koordinat, jumlah iterasi, dan kisi bit komputer [1]
Tujuan publikasi ini adalah untuk mendapatkan solusi persamaan Poisson untuk kondisi batas Dirichlet dan Neumann, untuk menyelidiki konvergensi metode relaksasi solusi menggunakan contoh.
Persamaan Poisson mengacu pada persamaan tipe elips dan dalam kasus satu dimensi memiliki bentuk [1]:

(1)
di mana x adalah koordinat; u (x) adalah fungsi yang diinginkan; A (x), f (x) adalah beberapa fungsi koordinat kontinu.
Kami memecahkan persamaan Poisson satu dimensi untuk kasus A = 1, yang dalam kasus ini berbentuk:

(2)
Pada interval [xmin, xmax] kita mendefinisikan grid koordinat seragam dengan langkah ::

(3)
Kondisi batas jenis pertama (Kondisi Dirichlet) untuk masalah yang dipertimbangkan dapat direpresentasikan sebagai:

(4)
di mana x1, xn adalah koordinat titik batas wilayah [xmin, xmax]; g1, g2 - beberapa
konstanta.
Kondisi batas jenis kedua (kondisi Neumann) untuk masalah yang dipertimbangkan dapat direpresentasikan sebagai:

(5)
Mendiskritisasi kondisi batas Dirichlet pada kisi koordinat yang seragam (3) menggunakan metode beda hingga, kami memperoleh:

(6)
di mana u1, un adalah nilai fungsi u (x) pada titik x1, xn, masing-masing.
Mendiskritkan kondisi batas Neumann pada grid (3), kami memperoleh:

(7)
Persamaan diskritisasi (2) untuk titik-titik grid internal, kita memperoleh:

(8)
di mana ui, fi adalah nilai-nilai fungsi u (x), f (x) pada titik grid dengan koordinat xi.
Dengan demikian, sebagai hasil diskritisasi, kami memperoleh sistem persamaan aljabar linier dari dimensi n yang mengandung persamaan n - 2 dari bentuk (8) untuk titik internal wilayah dan persamaan (6) dan (7) untuk dua titik batas [1].
Berikut ini adalah daftar Python dari solusi numerik untuk persamaan (2) dengan kondisi batas (4) - (5) di grid (3).
Solusi Pencatatanfrom numpy import* from numpy.linalg import solve import matplotlib.pyplot as plt x0=0
Kami mendapatkan:




Program yang saya kembangkan dalam Python nyaman untuk menganalisis kondisi batas Algoritma solusi Python di atas menggunakan fungsi Numpy - u = linalg.solve (a, bT) .T untuk menyelesaikan sistem persamaan aljabar, yang meningkatkan kecepatan dengan matriks kuadrat {a}. Namun, dengan peningkatan jumlah pengukuran, perlu untuk beralih ke penggunaan tiga matriks diagonal, solusi yang rumit bahkan untuk tugas yang sangat sederhana, saya menemukan contoh di forum:
Contoh solusi dengan tiga matriks diagonal from __future__ import print_function from __future__ import division import numpy as np import time ti = time.clock() m = 1000 A = np.zeros((m, m)) B = np.zeros((m, 1)) A[0, 0] = 1 A[0, 1] = 2 B[0, 0] = 1 for i in range(1, m-1): A[i, i-1] = 7 A[i, i] = 8 A[i, i+1] = 9 B[i, 0] = 2 A[m-1, m-2] = 3 A[m-1, m-1] = 4 B[m-1, 0] = 3 print('A \n', A) print('B \n', B) x = np.linalg.solve(A, B)
Program solusi numerik pada seragam di setiap arah masalah Dirichlet grid untuk persamaan konveksi-difusi
[2]

(9)
Kami menggunakan pendekatan dengan perbedaan pusat untuk istilah konvektif dan metode relaksasi iteratif Untuk ketergantungan tingkat konvergensi pada parameter relaksasi untuk solusi numerik dari masalah dengan f (x) = 1 dan 6 (x) = 0,10. Dalam tugas grid:

(10)
Kami mewakili matriks A sebagai jumlah dari matriks segitiga diagonal, segitiga bawah dan atas:

(10)
Metode relaksasi sesuai dengan penggunaan metode iteratif :

(11)
Di

\ Bicara tentang relaksasi atas, kapan

- tentang relaksasi yang lebih rendah.
Daftar Program from numpy import * """ - . .""" def relaxation(b, f, I1, I2, n1, n2, omega, tol = 1.e-8): h1 = I1 / n1 h2 = I2 / n2 d = 2. / h1**2 + 2. / h2**2 y = zeros([n1+1, n2+1]) ff = zeros([n1+1, n2+1]) bb = zeros([n1+1, n2+1]) for j in arange(1,n2,1): for i in arange(1,n1,1): ff [i,j] = f(i*h1, j*h2) bb[i,j] = b(i*h1, j*h2)
)
Kami mendapatkan:

Grafik menunjukkan ketergantungan jumlah iterasi pada parameter relaksasi untuk persamaan Poisson (b (x) = 0) dan persamaan difusi konveksi (b (x) = 10). Untuk persamaan grid Poisson, nilai optimal dari parameter relaksasi ditemukan secara analitis, dan metode iteratif bertemu di

.
Kesimpulan:
- Solusi dari masalah elips di Python dengan sistem yang fleksibel untuk menetapkan kondisi batas
- Terlihat bahwa metode relaksasi memiliki rentang optimal (
) parameter relaksasi.
Referensi:
- Ryndin E.A. Metode untuk memecahkan masalah fisika matematika. - Taganrog:
Rumah penerbitan TRTU, 2003 .-- 120 hal. - Vabishchevich P.N. Metode Numerik: Workshop Komputasi. - M .: Rumah buku
Librocom, 2010. - 320 hal.