• Главная <
  • Галерея
  • Карта сайта
  • Наши контакты
  • Обратная связь

НОУ ІНТУЇТ | лекція | Робота з графікою: візуалізація функцій однієї змінної

  1. 6.0. Вступ
  2. 6.1. Візуалізація безперервних математичних функцій

Анотація: Mathematica містить широкий набір інструментів для візуалізації результатів розрахунків. Mathematica дозволяє будувати двох- і тривимірні графіки функцій і масивів даних, гістограми, і т.д. У даній лекції ми наведемо опис найбільш затребуваних функцій, службовців для графічного представлення функцій і дискретних наборів даних від однієї змінної та познайомимося з основними графічними примітивами, використовуваними програмою.

Мета лекції: познайомитися з принципами створення в Mathematica двовимірних графічних об'єктів і роботи з ними.

6.0. Вступ

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

Будь-яка математична залежність однієї величини від іншої може бути описана в Mathematica засобами двовимірної графіки. Саме з цими засобами ми познайомимося в даній лекції, побудованої на основі книги Е. М. Воробйова [1] .

Вбудовані функції Mathematica, призначені для роботи з двовимірної графікою, закінчуються на Plot, тому для отримання інформації про всі них безпосередньо в Mathematica можна скористатися командою? * Plot - Мал. 6.1 . Якщо ми порівняємо таблицю графічних функцій в осередку Out [1] на рис. 6.1 з отриманої аналогічним способом таблицею в книзі Е. М. Воробйова [1, с. 70] , Ми побачимо, що в таблиці в цій лекції міститься значно більше функцій. Оскільки даний курс писався з використанням пакета Mathematica новішої версії, наведене порівняння виявляється як не можна кращої наочною ілюстрацією того, наскільки динамічно розвивається Mathematica, шириться її функціональна палітра, ростуть можливості.

Безумовно, в рамках однієї лекції ми не встигнемо познайомитися з усіма функціями, представленими на малюнку 6.1 . Але ми і не ставимо це своїм завданням. Ми розберемо функції, які використовуються в Mathematica набагато частіше за інших, а також, зважаючи на свою універсальність, можуть взяти на себе виконання завдань, для яких є свої вузькоспеціалізовані функції.


Мал.6.1.

Функції Mathematica для створення двовимірної графіки

Всі зазначені на Мал. 6.1 функції мають чітко визначену структуру. Вони мають два обов'язкових аргументу і один необов'язковий. Перший обов'язковий аргумент є вираз Mathematica, яке визначає залежність (або залежності), яку (які) потрібно побудувати. Другий аргумент, итератор, визначає аргументи функцій і межі їх зміни. У тривимірному випадку вказуються два ітератора. Необов'язкові аргументи графічних функцій - опцій. Опцій привласнені значення за замовчуванням, але якщо виникає необхідність, користувач може задавати їм власні значення. Опції визначають стиль оформлення, додаткові параметри і елементи малюнків для підвищення їх більшої наочності і інформативності.

6.1. Візуалізація безперервних математичних функцій

Перша функція, з якою ми познайомимося в цій лекції, що є також найбільш часто використовується при роботі з графікою, - це функція Plot. Задана в найпростішому вигляді Plot [func, {x, xmin, xmax}] вона будує залежність функції func від аргументу x, мінливого в межах від xmin до xmax. За допомогою цієї функції можна будувати залежно від одного аргументу відразу декількох функцій, для чого в якості першого аргументу слід вказати їх список у вигляді {func1, func2, ...}. У прикладі In [1] на Мал. 6.2 ми побудували на одному графіку залежності тригонометричної функції Перша функція, з якою ми познайомимося в цій лекції, що є також найбільш часто використовується при роботі з графікою, - це функція Plot і параболи від мінливого в межах від -1 до 3 аргументу x, а також паралельну осі абсцис пряму, що характеризує постійне значення Pi.

Детальніше про функції Plot см. Книги Е. М. Воробйова [1, с. 71, 76-77] і А. Н. Прокопені і А. В. Чічуріна [5, с. 43-46] .

За замовчуванням Mathematica малює все графіки суцільними лініями однакової товщини, розрізняються лише кольору: графік першої в списку функції будується синім, другий - фіолетовим, третій - бежевим і т.д. Для того щоб розрізняти графіки, використовується спеціальна опція, яка, як і всі опції графічних функцій, задається за допомогою правил перетворення у вигляді PlotStyle -> {{set1}, {set2}, ...}, де set1, set2, .. . - набір графічних директив (відмінних властивостей) для графіка з відповідним номером 1,2, .... Під графічними директивами розуміються вираження, що впливають на характеристики графічних об'єктів. Директивами можуть виступати товщина лінії, тип лінії (лінія може бути суцільна, штрихова, точкова і т.д.), колір. У прикладі In [2] побудуємо ті ж графіки, що і в In [1], але зобразимо їх відмінним один від одного чином: перший графік зробимо пунктирним за допомогою директиви Dashed, червоним за допомогою Red і задамо за допомогою директиви Thickness [d] відносну товщину лінії d рівну, наприклад, 0.01; другий графік зробимо зеленим, Green, штрихпунктирною, DotDashed, і більш тонким (0.006); третій графік залишимо суцільним, не ставлячи для типу лінії ніяких додаткових директив, але зробимо його синім, Blue, і найтоншим з трьох (0.002). Порівняння прикладів Out [1] і Out [2] дає яскраве уявлення впливу опції PlotStyle на повертається функцією Plot зображення.

Якщо опція PlotStyle задана у вигляді одновимірного списку, PlotStyle -> {dir1, dir2, ...}, то кожна директива, незалежно від її типу, буде ставитися тільки до залежності з відповідним номером. Тобто, зовнішній вигляд першого графіка буде визначатися тільки директивою dir1, другого - тільки директивою dir2 і т.д.

Якщо для якогось графіка не потрібно вказувати додаткових директив, то на місці відповідного елемента вкладеного списку в опції PlotStyle вказується порожній список {}.

Якщо в опції PlotStyle вказано тільки один набір графічних директив (PlotStyle задана як вкладений список, який містить лише один елемент), то він відноситься до всіх графіків. Так в прикладі In [3] на рис 6.2 ми зробили лінії всіх графіків червоними, штриховими, товщини 0.01.

Детальніше про опції PlotStyle см. Книги Е. М. Воробйова [1, с. 76-77] і А. Н. Прокопені і А. В. Чічуріна [5, с. 50-51] .

Е. М. Воробйов [1, с. 77] зазначає, що до побудови графіків функцій можливі два підходу, "дві стратегії". Перший підхід полягає в тому, що спочатку визначаються характерні точки графіка, а потім обчислюються функції в цих точках. Саме цим підходом зазвичай користується Mathematica.

У другому підході спочатку виходить найбільш просте наближення для функції в заданому інтервалі, а потім обчислюються наближені значення в деякому наборі точок з цього інтервалу. Змусити програму другим шляхом можна, застосувавши до обчислюваному висловом func функцію Evaluate [func]. Вона змушує програму обчислювати вираз func навіть в разі, якщо воно є аргументом функції, атрибути якої встановлюють, що цей вислів має залишатися невичісленним. Наочно представимо дію цієї функції. В якості опції для візуалізації, як і Е. М. Воробйов [1, с. 79] , Візьмемо поліном Чебишева. на Мал. 6.3 побудуємо графіки перших десяти полиномов Чебишева, при цьому в прикладі In [1] обійдемося без функції Evaluate [func], а в прикладі In [2] застосуємо її до поліномами. Як ми бачимо, в першому випадку Mathematica зобразила графіки всіх залежностей одним кольором, тобто, при обчисленні вона вважала точки всіх залежностей належать одному графіку. У другому випадку графіки залежностей для всіх поліномів різні, оскільки, згідно з другим підходу, Mathematica спочатку визначилася з функціями, залежно яких будуватиме, і тільки потім вирахувала їх значення в деяких точках інтервалу. Таким чином, всі залежності розглядалися програмою окремо один від одного.


Мал.6.3.

Функція Evaluate: зміна підходу до побудови графіків

Часто потрібне будувати не залежність функції від її аргументу, а залежність однієї функції від іншої, яка залежить від того ж аргументу, тобто, будувати параметричну залежність. Для цього в Mathematica є функція ParametricPlot. Її опис повністю збігається з описом функції Plot за винятком наступного моменту: для побудови графіка однієї залежності перший аргумент задається у вигляді списку {funcarg, func}, при цьому при побудові значення функції funcarg відкладаються по осі абсцис, а func - по осі ординат; при побудові графіків декількох залежностей аргумент задається в вигляді вкладеного списку {{funcarg1, func1}, {funcarg2, finc2}, ...}. на Мал. 6.4 ми наводимо параметричну залежність Часто потрібне будувати не залежність функції від її аргументу, а залежність однієї функції від іншої, яка залежить від того ж аргументу, тобто, будувати параметричну залежність від , Що характеризує поведінку точки, що здійснює одночасно два гармонійних коливання в двох взаємно перпендикулярних напрямках - прокреслюють так звані фігури Ліссажу (див. Схожий приклад в роботі Е. М. Воробйова [1, с. 79] ).

Детальніше про функції ParametricPlot см. Книги Е. М. Воробйова [1, с. 79] і А. Н. Прокопені і А. В. Чічуріна [5, с. 55-56] .


Мал.6.4.

Побудова графіків параметричних залежностей за допомогою функції ParametricPlot

У прикладі на Мал. 6.4 ми знову скористалися опцією PlotStyle, зробивши лінії на графіку червоними за допомогою вже відомої нам директиви Red і товстими за допомогою директиви Thickness [0.03].

Крім того, ми проілюстрували той факт, що якщо в списку директив, які стосуються одного і того ж зображення, містяться директиви, що суперечать один одному (в нашому випадку це директиви Thickness [0.001] і Thickness [0.03], що встановлюють різну товщину ліній), то при побудові застосовується та, яка вказана в списку останньої (Thickness [0.03]).

Детальніше про описані директивах см. Книгу А. Н. Прокопені і А. В. Чічуріна [5, с. 50-51] .

З іншими опціями двовимірних графічних функцій ми познайомимося в наступному пункті цій лекції.

Якщо функція задана не в декартових, а в полярних координатах, то адекватно зобразити її дозволить функція PolarPlot [r, {teta, tetamin, tetamax}], де r - характеризує криву радіус, що залежить від кута teta; кут змінюється в межах від tetamin до tetamax. Якщо потрібно зобразити кілька кривих, то в якості першого аргументу вказується список радіусів, що описують криві, {r1, r2, ...}. Зовнішній вигляд генеруються цією функцією малюнків можна міняти за допомогою опцій, аналогічних опцій функцій Plot і ParametricPlot. на Мал. 6.5 наведено приклад побудови залежності в полярних координатах за допомогою функції PolarPlot.

Детальніше про функції PolarPlot см. Е. М. Воробйова [1, с. 76] .


Мал.6.5.

Візуалізація безперервної залежності в полярних координатах

Вбудовані функції Mathematica, призначені для роботи з двовимірної графікою, закінчуються на Plot, тому для отримання інформації про всі них безпосередньо в Mathematica можна скористатися командою?
Новости