Skip to main content
LibreTexts - Ukrayinska

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

  • Page ID
    79644
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

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

    clipboard_e6120dd343c40da2a9f196b15f7d3f111.png
    Малюнок\(\PageIndex{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 ().