Skip to main content
LibreTexts - Ukrayinska

1.6: Написання коду для наукових обчислень

  • Page ID
    67008
  • \( \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}}\)

    Озирніться назад на список вимог до проектів Scientific Computing. Загальне правило полягає у використанні обчислювальної мови, яка, як ви знаєте, буде добре працювати для цих завдань. Як правило, більшість студентів вивчили одну або дві мови і не зовсім впевнені, що використовувати. У більшості випадків неважливо, що використовувати, але для складних завдань це буде мати значення.

    Однією з кращих мов для наукових обчислень був Matlab протягом останніх 3 або 4 десятиліть. Він широко використовується в інжинірингових фірмах по всьому світу (а штаб-квартира знаходиться в сусідньому Натік, штат Массачусетс). Ми не будемо використовувати Matlab тут, хоча. Однією з приємних речей про заняття є вивчення нових мов. Тут ми будемо використовувати Юлію, яка є дуже новою мовою, що багато людей в наукових обчислювальних системах схвильовані. Ми наведемо приклади з використанням Юлії, але ідеї тут повинні бути застосовні і до інших мов.

    Юлія була розроблена як наукова обчислювальна мова, але коротше - сучасна мова. Є ряд аспектів, які роблять Джулію гарною мовою для цього. Юлія є

    • мова сценаріїв з динамічними типами. Це означає, що ви можете розпочати роботу відразу - немає необхідності дізнаватися про компіляцію - і ви можете швидко прототип речей.
    • мова з точно в часі компіляції. Більшу частину часу мови сценаріїв повільні, однак за допомогою сучасних інструментів під капотом мови можна компілювати на льоту, щоб створити дуже швидке виконання. Існує веб-сторінка на бенчмарках, що порівнюють Джулію з іншими стандартними мовами.
    • з відкритим вихідним кодом. Хоча часто з відкритим вихідним кодом передбачає безкоштовну, але не якісну, вільну частину тримає, але важливіше те, що кожен може внести свій внесок у код. Спільнота Julia прагне створити високоякісне програмне забезпечення, і багато дискусій обертаються навколо написання коду, який покращить швидкість або інші аспекти. Це дуже непрозоро і незрозуміло, якщо це відбувається з комерційним програмним забезпеченням.
    • простий у використанні. Синтаксис julia схожий на синтаксис python, дуже популярної мови, і часто інтуїтивно зрозумілий.
    • радість у використанні. Крім того, структура мови дозволяє легко почати з, але оскільки проекти стають більш складними, його можна написати простим способом.