1.2: Початок роботи
- Page ID
- 79644
1.2.1: Постановка проблеми: Обчислення електричних потенціалів
Давайте тепер пройдемося по етапах написання програми для виконання простого завдання: обчислення і побудова графіка електричного потенціалу сукупності точкових зарядів, розташованих в одновимірному (1D) просторі.
Припустимо, у нас є набір\(N\) точкових зарядів, розподілених в 1D. Позначимо положення частинок по\(\{x_{0}, x_{1}, \cdots, x_{N-1}\}\), а їх електричні заряди по\(\{q_{0},q_{1},\cdots, q_{N-1}\). Зверніть увагу, що ми вирішили почати відлік з нуля, так що\(x_{0}\) це перша позиція і\(x_{N-1}\) є останньою позицією. Ця практика називається «нульовою індексацією»; докладніше про неї пізніше.
Знаючи\(\{x_{j}\}\) і\(\{q_{j}\}\), ми можемо обчислити\(\phi(x)\) в будь-якій довільній точці\(x\), скориставшись формулою
\[\phi (x)=\sum_{j=0}^{N-1}\frac{q_{j}}{4\pi\epsilon_{0}|x-x_{j}|}\]
Фактор\(4\pi\epsilon_{0}\) в знаменнику дратує тримати навколо, тому ми будемо приймати «обчислювальні одиниці». Це означає, що ми змінимо масштаб потенціалу, позицій та/або зарядів таким чином, щоб у нових одиницях виміру\(4\pi\epsilon_{0}=1\). Тоді формула потенціалу спрощує
\[\phi(x)=\sum_{j=0}^{N-1}\frac{q_{j}}{|x-x_{j}|}\]
Нашою метою зараз є написання комп'ютерної програми, яка приймає набір позицій і зарядів як свій вхід, і графіки отриманого електричного потенціалу.
1.2.2: Запис у файл вихідного коду Python
Перш ніж писати будь-який код Python, ми повинні створити файл для введення коду. У GNU/Linux запустіть бажаний текстовий редактор і відкрийте порожній файл, назвавши його potentials.py
. У Windows, у вікні, яке відкрила програма IDLE (графічний інтерфейс Python)
, натисніть пункт меню Файл →
; потім введіть Новий файл
Ctrl-s
(або натисніть кнопку Файл
→ Новий файл
) і збережіть порожній файл як potentials.py
.
Розширення файлу.py
позначає його як файл вихідного коду Python. Ви повинні зберегти файл у відповідному каталозі.
Тепер давайте зробимо дуже грубий «перший прохід» в програмі. Замість того, щоб обробляти довільну кількість частинок, давайте припустимо, що є одна частинка з певним положенням\(x_{0}\) і зарядом\(q_{0}\). Тоді ми намітимо його потенціал. Введіть у файл наступне:
from scipy import * import matplotlib.pyplot as plt x0 = 1.5 q0 = 1.0 X = linspace(-5, 5, 500) phi = q0 / abs(X - x0) plt.plot(X, phi) plt.show()
Збережіть файл. Тепер будемо запускати програму. У GNU/Linux відкрийте текстовий термінал і компакт-диск
до каталогу, де знаходиться файл, а потім введіть python -i potentials.py
. У Windows, перебуваючи у вікні редагування файлів, введіть F5
(або натисніть кнопку Виконати
→ Виконати модуль
). У будь-якому випадку ви повинні побачити спливаючу фігуру:
Це майже те, що ми очікуємо: потенціал досяг максимуму\(X=1.5\), який є позицією частинки, яку ми вказали в програмі (через змінну з ім'ям x0
). Заряд частинки задається змінною з ім'ям q0
, і ми присвоїли це значення\(1.0\). Значить, потенціал позитивний.
Тепер закрийте фігуру і поверніться до командного рядка Python. Зверніть увагу, що Python все ще працює, навіть якщо ваша програма завершена. З командного рядка ви також можете вивчити значення змінних, які були створені вашою програмою, просто ввівши їх імена в командний рядок:
>>> x0 1.5 >>> phi array([ 0.15384615 0.15432194 0.15480068 0.1552824 .... .... 0.28902404 0.28735963 0.28571429 ])
Значення x0
- це число\(1.5\), яке було присвоєно йому при запуску нашої програми. Значення phi
складніше: це масив, який представляє собою спеціальну структуру даних, що містить послідовність чисел. З командного рядка можна оглянути окремі елементи цього масиву. Наприклад, щоб побачити значення першого елемента масиву, введіть це:
>>> phi[0] 0.153846153846
Як ми вже згадували, індекс 0 відноситься до першого елементу масиву. Це так зване нульове індексування є звичайною практикою в обчислювальній техніці. Аналогічно індекс 1 відноситься до другого елементу масиву, індекс 2 відноситься до третього елементу і т.д.
Також можна подивитися довжину масиву, викликавши функцію len
. Ця функція приймає вхідний масив і повертає його довжину, як ціле число.
>>> len(phi) 500
Ви можете вийти з командного рядка Python в будь-який час, ввівши Ctrl-d
або exit ()
.