Skip to main content
LibreTexts - Ukrayinska

1.2: Початок роботи

1.2.1: Постановка проблеми: Обчислення електричних потенціалів

Давайте тепер пройдемося по етапах написання програми для виконання простого завдання: обчислення і побудова графіка електричного потенціалу сукупності точкових зарядів, розташованих в одновимірному (1D) просторі.

Припустимо, у нас є набірN точкових зарядів, розподілених в 1D. Позначимо положення частинок по{x0,x1,,xN1}, а їх електричні заряди по{q0,q1,,qN1. Зверніть увагу, що ми вирішили почати відлік з нуля, так щоx0 це перша позиція іxN1 є останньою позицією. Ця практика називається «нульовою індексацією»; докладніше про неї пізніше.

Знаючи{xj} і{qj}, ми можемо обчислитиϕ(x) в будь-якій довільній точціx, скориставшись формулою

ϕ(x)=N1j=0qj4πϵ0|xxj|

Фактор4πϵ0 в знаменнику дратує тримати навколо, тому ми будемо приймати «обчислювальні одиниці». Це означає, що ми змінимо масштаб потенціалу, позицій та/або зарядів таким чином, щоб у нових одиницях виміру4πϵ0=1. Тоді формула потенціалу спрощує

ϕ(x)=N1j=0qj|xxj|

Нашою метою зараз є написання комп'ютерної програми, яка приймає набір позицій і зарядів як свій вхід, і графіки отриманого електричного потенціалу.

1.2.2: Запис у файл вихідного коду Python

Перш ніж писати будь-який код Python, ми повинні створити файл для введення коду. У GNU/Linux запустіть бажаний текстовий редактор і відкрийте порожній файл, назвавши його potentials.py. У Windows, у вікні, яке відкрила програма IDLE (графічний інтерфейс Python), натисніть пункт меню Файл → Новий файл; потім введіть Ctrl-s (або натисніть кнопку ФайлНовий файл) і збережіть порожній файл як potentials.py.

Розширення файлу.py позначає його як файл вихідного коду Python. Ви повинні зберегти файл у відповідному каталозі.

Тепер давайте зробимо дуже грубий «перший прохід» в програмі. Замість того, щоб обробляти довільну кількість частинок, давайте припустимо, що є одна частинка з певним положеннямx0 і зарядомq0. Тоді ми намітимо його потенціал. Введіть у файл наступне:

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 (або натисніть кнопку ВиконатиВиконати модуль). У будь-якому випадку ви повинні побачити спливаючу фігуру:

clipboard_e6120dd343c40da2a9f196b15f7d3f111.png
Малюнок1.2.1

Це майже те, що ми очікуємо: потенціал досяг максимуму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 ().