1. Двовимірна графіка
1.1. Основні можливості двовимірної графіки
Лідером за графічним можливостям серед математичних систем для персональних комп'ютерів довгий час вважалася система Mathematics 2. Однак у реалізації Maple V R4 можливості графіки системи Maple V наблизилися до таких у системи Mathematica 2 і навіть Mathematica 3. Вони настільки великі, що, будь математична графіка Maple V єдиним призначенням системи, воно цілком виправдало б її розробку.
Графіка Maple V реалізує всі мислимі (і навіть «немислимі») варіанти математичних графіків - від побудови графіків простих функцій у Декартовой і в полярній системах координат до створення реалістичних образів складних перетинання у просторі фігур з їх функціональної забарвленням. Можливі наочні графічні ілюстрації рішень найрізноманітніших рівнянь, включаючи системи диференціальних рівнянь.
У саме ядро Maple V вбудовано обмежене число функцій графіки. Це перш за все функція для побудови двовимірних графіків (20-типу) - plot і функція для побудови тривимірних графіків (ЗО-типу) - plot3d. Вони дозволяють будувати графіки найбільш поширених типів. Для побудови графіків спеціального типу (наприклад, у вигляді векторних полів градієнтів, рішення диференціальних рівнянь, побудови фазових портретів і т.д.) в пакети розширення системи Maple V включена велика кількість різних графічних функцій. Для їх виклику необхідні відповідні вказівки.
Взагалі кажучи, засоби для побудови графіків прийнято вважати графічними процедурами або операторами. Однак ми збережемо за ними найменування функцій в силу двох принципово важливих властивостей:
• графічні засоби Maple V повертають деякі графічні об'єкти, які розміщуються у вікні документа в рядку виводу або в окремому графічному об'єкті;
• ці об'єкти можна використовувати в якості значень змінних, тобто змінним можна присвоювати значення графічних об'єктів і виконувати над ними відповідні операції (наприклад, за допомогою функції show виводити на екран кілька графіків).
Графічні функції задані таким чином, що забезпечують побудову типових графіків без будь-якої особливої підготовки. Все, що для цього потрібно, це вказати функцію, графік якої будується, і межі зміни незалежних змінних. Однак за допомогою додаткових необов'язкових параметрів - опцій можна істотно змінити вигляд графіків, наприклад, змінити стиль і колір ліній, вивести титульну напис, змінити вид координатних осей і т.д.
13.1.2. Основна функція двовимірної графіки - plot
Для побудови двовимірних графіків служить функція plot. Вона задається у вигляді:
plot (f, h, v) або plot (f, h, v, о),
де f - функція (або функції), чий (чиї) графік (і) будуються, h - змінна з зазначенням області її зміни по горизонталі, v - задана опціонально змінна з зазначенням області зміни по вертикалі, про - опція або набір опцій, які задають стиль побудови графіка (товщину і колір кривих, тип кривих, позначки на них тощо).
Самими простими формами завдання цієї функції є:
plot (i, xmin .. xmax) - побудова графіка функції f, заданої тільки ім'ям;
plot (f (x), x = xrnin .. xmax) - побудова графіка функції f (x).
Діапазон зміни незалежної змінної х задається як xmin .. xmax, де xmin і гпах - мінімальне та максимальне значення х, .. (Дві крапки) - складової символ, який вказує на зміну незалежної змінної. Зрозуміло, ім'я х тут дано умовно - незалежна змінна може мати будь-яке припустиме ім'я.
Для двовимірної графіки можливі наступні опції:
axes | Висновок різних типів координат (axes = NORMAL - звичайні осі, виводяться за замовчуванням, axes = BOXES - графік полягає в рамку з оцифрованими осями, axes = FRAME - осі у вигляді перехрещених ліній і axes = NONE - осі • не виводяться). |
color | Встановлює колір кривих (див. далі). |
coords | Завдання типу координатних систем (див. далі). |
numpoints | Задає мінімальну кількість точок графіка (за замовчуванням numpoints = 49). |
resolutions | Задає горизонтальне дозвіл пристрою виводу (за замовчуванням resolutions-200, параметр використовується при відключеному адаптивному методі побудови графіків). |
scaling | Задає масштаб графіка CONSTRAINED (стиснутий) або UNCONSTRAINED (незжатий - за замовчуванням). |
size | Задає розмір шрифту в пунктах. |
style | Задає стиль побудови графіка (POINT - точковий, LINE - лініями). |
symbol | Визначає вид символу для точок графіка (можливі значення BOX - прямокутник, CROSS - хрест, CIRCLE - коло, POINT - точка, DIAMOND - ромб). |
title | Задає побудову заголовка графіка («string», де string - рядок). |
titlefont | Визначає шрифт для заголовка (так само як і для font). |
labelfont | Визначає шрифт для міток (labels) на осях координат (так само як і для font). |
thickness | Визначає товщину ліній графіків (0, 1,2,3, за умовчанням 0). |
view = [A, B] | Визначає максимальні і мінімальні координати, в межах яких графік буде відображатися на екрані, А = [xmin .. xmax], B = [ymin .. кутах] (за замовчуванням відображається вся крива). |
xtickmarks | Задає мінімальну кількість відміток по осі X. |
ytickmarks | Задає мінімальну кількість відміток по осі Y. |
В основному завдання параметрів особливих труднощів не викликає. За винятком завдання титульної написи з вибором шрифтів за умовчанням - в цьому випадку не завжди підтримується висновок символів кирилиці (російської мови). Підбором відповідного шрифту цю проблему вдається вирішити.
13.1.3. Завдання координатних систем 20-графіків та їх перерахунок
У версії Maple V R4 параметр coords задає 15 типів координатних систем для двовимірних графіків. За замовчуванням задана прямокутна (Декартова) система координат (coords = cartesian). При використанні інших координатних систем координати точок для них (u, v) перетворюються в координати (х, у) як (u, v) -> (x, у). Нижче наведено найменування систем координат (значенні параметра coords) і відповідні формули перетворення:
bipolar
х = sinh (v) / (cosh (v)-cos (u)) у = sin (u) / (cosh (v)-cos (u))
cardiod
х = [/ 2 * (u'2-v ~ 2} / (u'2 + v'2Y2 у = u * v / (ir2 + v "2) -2
cartesian
х = u у = v
cassinian
x = a * 2 «(l / 2) / 2 * ((exp (2 * u) +2 * exp (l ^) * cos (v) + l)« (l / 2) +
exp (u) * cos (v) + l) "(l / 2) у = a * 2» (l / 2) / 2 * ((exp (2 * u) +2 * exp (u) * cos ( v) + l) "(l / 2) -
exp (u) * ws (v)-l )'-(/ 2)}
elliptic
x = cosh (u) * cos (v) у = sinh (u) * sin (v)
hyperbolic
x = ((iT2 + v-2) - (l / 2) + u) - (l / 2) у = ((^ 2 + у'2Г (/ 2)-ІУ (1 / 2)
invcassinian
x = a * 2 ~ (l / 2) / 2 * ((exp (2 * u) +2 * exp (u) * cos (v) + l) "(l / 2) +
exp (u) * cos (v) + l) »(l / 2) / (exp (2 * u) +2 * exp (u) * cos (v) + l) - (l / 2) у = a * 2 »(l / 2) / 2 * ((exp (2 * u) - ^ 2 * exp (u) * cos (v) + l) - (l / 2) -
exp (u) * cos (v)-l) »(l / 2) / (exp (2 * u) +2 * exp (u) * cos (v) + l) - (l / 2)
invelliptic
x = a * cosh (u) * cos (v) / (cosh (u) "2-sin (v) '2) у = a * sinh (u) * sin (v) / (cosh (u)" 2 -sin (v) »2)
logarithmic
x = ii / Pi * ln (u'2 + v'2) у = 2 * a / Pi * arctan (v / u)
logcosh
x = a / Pi * n (c.osh (uy2-sm (vy2} у = 2 * a / Pi * arctan (tanh (u) * tan (v))
maxwell
x = a / Pi * (u + l + exp (u) * cos (v)) у = a / Pi * (v + exp (u) * sin (v))
parabolic
x = (u'2-v ^ 2) / 2 у = u * v
I'I-
polar
x = u * cos (v) у = u * sin (v)
rose
x = ((u'2 + v'2Y (/ 2) + ur (/ 2) / (u ~ 2 + v'2) - (i / 2) у = ((^ 2 + v'2) - ( / 2)-u) - (/ 2) / (u'2 + ^ 2r (/ 2)
tangent
x = u / tu ^ + v ^) у = v / (iT2 + v'2)
13.1.4. Управління стилем і кольором ліній 20-графіків
Maple V R4 дозволяє відтворювати на одному графіку безліч кривих. При цьому виникає необхідність з виділення. Для цього можна використовувати побудова лінії різними стилями і різними кольорами і різною товщиною ліній. Набір засобів виділення кривих дозволяє впевнено розрізняти їх як на екрані кольорового дисплея і роздруківках кольоровим струменевим принтером, так і при друці монохромними принтерами.
Параметр style дозволяє задавати такі стилі для ліній графіків:
SPISV = POINT або point - графік виводиться по точках;
LINE або line - графік виводиться лінією.
Якщо задано побудова графіка точками то параметр symbol дозволяє представити точки у вигляді різних символів, наприклад, прямокутника, хреста, кола або ромба.
Інший параметр color дозволяє встановити великий набір квітів ліній графіків:
aquamarine black blue navy coral cyan brown gold green gray grey khaki magenta maroon orange pink plum red sienna tan turquoise violet wheat white yellow
Різні колірні відтінки виходять використанням RGB-комбінацій базових квітів: red - червоний, green - зелений, blue - синій. Наведемо переведення низки інших комбінованих квітів: black - чорний, white - білий, khaki - колір «хакі», gold - золотистий, orange - помаранчевий, violet - фіолетовий, yellow - жовтий і т.д. Переклад квітів деяких відтінків на російську мову не завжди однозначний і тому не наводиться. Засоби управління стилем графіків дають можливість легко виділяти різні криві на одному малюнку, навіть якщо для виділення не використовуються кольори.
13.2. Приклади побудови основних типів 20-графіків
13.2.1. Побудова графіків однієї функції
При побудові графіка однієї функції вона записується в явному вигляді на місце шаблону f. Приклади побудови графіка однієї функції представлені на рис. 13.1. Зверніть увагу на те, що графік функції sin (x) / x будується без
характерного провалу в точці х = 0, який спостерігається при побудові графіків цієї функції багатьма програмами. Він пов'язаний з використовуваним в них правилом - функція задається рівною нулю, якщо її чисельник дорівнює нулю. Дана функція в цій точці дає переборні невизначеність 0/0-> 1, що і враховує графічний процесор системи Maple V.
Рис. 13.1. Приклади побудови графіків однієї функції.
При побудові графіків однієї функції можуть бути введені покажчики масштабів і різні опції, наприклад завдання кольору кривої, товщини лінії, якої будується графік функції та інші параметри. Наприклад, запис у списку параметрів со1ог = 0 (не документована можливість) або запис color = black задають висновок кривих чорним кольором, а запис thinkness = 2 задає у другому прикладі рис. 13.1 побудова графіка лінією, подвоєною в порівнянні зі звичайною товщиною.
13.2.2. Управління масштабом графіків
Для керування масштабом графіків служать покажчики масштабів. У ряді випадків їх можна не застосовувати і система автоматично задає прийнятні масштаби. Проте їх явне застосування дозволяє змінити масштаб «вручну». Іноді відповідне завдання масштабу випадково або цілеспрямовано веде до відсіканню частині графіка - наприклад на рис. 13.2 в першому прикладі відсічена верхня частина графіка.
Правильний вибір масштабу підвищує показність графіків функцій. Рекомендується спочатку пробувати будувати такі графіки з автоматичним масштабуванням, а вже потім використовувати покажчики масштабів.
13.2.3. Графіки функцій у необмеженій масштабі
Зрідка зустрічаються графіки функцій ЦХ), які треба побудувати при зміні значення х від нуля до нескінченності або навіть від мінус нескінченності до
Рис. 13.2. Побудова графіків функції з явною вказівкою масштабу.
плюс нескінченності. Нескінченність в таких випадках задається в покажчиках масштабу як особлива константа infinity. У цьому випадку масштаб автоматично змінюється по ходу побудови графіка. Рис. 13.2 (другий приклад) ілюструє сказане. Перерахунок значенні координати х, спрямовується в нескінченність, виконується за допомогою функції для арктангенс.
13.2.4. Графіки функцій з розривами
Деякі функції, наприклад tan (x), мають при певних значеннях х розриви, причому трапляється що значення функції в цьому випадку спрямовуються в нескінченність. Функція tan (x), наприклад, в точках розривів спрямовується до + ° ° і - ° °. Побудова графіків таких функцій нерідко дає погано передбачені результати. Графічний процесор Maple V не завжди в змозі визначити оптимальний масштаб по осі ординат, а графік функції виглядає вельми непредставницька - якщо не сказати потворно (див. рис. 13.3 - перший приклад).
Серед параметрів функції plot є спеціальний параметр discont. Якщо задати його значення рівним true, то якість графіків істотно поліпшується - див. рис. 13.3 - другий приклад. Поліпшення досягається розбивкою графіка на кілька ділянок, в яких функція неперервна, і більше ретельним контролем за масштабом.
13.2.5. Побудова графіків декількох функцій на одному малюнку
Важливе значення має можливість побудови на одному малюнку графіків декількох функцій. У найпростішому випадку (рис. 13.4 перший приклад) для побудови таких графіків достатньо перерахувати потрібні функції і встановити для них загальні масштаби.
Рис. 13.3. Побудова графіків функції з розривами.
Зазвичай графіки різних функцій автоматично будуються різними кольорами. Але вони не завжди задовольняють користувача - наприклад, при роздруківці графіків монохромним принтером деякі криві можуть виглядати занадто бляклими або навіть не надрукувати взагалі. Використовуючи списки параметрів color (колір лінії) і style (стиль ліній) можна домогтися виразного виділення кривих - це показує другий приклад на рис. 13.4.
Рис. 13.4. Графіки трьох функції на одному малюнку.
На рис. 13.5 показаний ще один приклад такого роду. Тут побудовано графік функції sin (x) / x та графік її поліноміальної апроксимації. Вона виконується настільки просто, що відповідні функції записані прямо в списку параметрів функції plot.
Рис. 13.5. Графік функції sin (x) / x та її поліноміальної апроксимації.
У даному випадку сама функція побудована суцільною лінією, а графік полінома - хрестиками. Добре видно, що при малих х апроксимація дає високу точність, але потім із зростанням х похибка її різко зростає.
Рис. 13.6 показує побудова декількох цікавих функцій, отриманих за допомогою комбінацій елементарних функцій. Ці комбінації дозволяють отримувати періодичні функції, що моделюють сигнали стандартного виду в технічних пристроях: у вигляді напруги на виході двухполупериодного випрямляча, симетричних прямокутних коливань (меандр), пилкоподібних і трикутних імпульсів, трикутних імпульсів зі округленій вершиною.
У цьому малюнку запис axes = NONE прибирає координатні осі. Зверніть увагу, що зміщення графіків окремих функцій вниз з метою усунення їх накладення досягнуто просто додатком до запису кожної функції деякою константи.
13.2.6. Побудова графіків функцій, заданих окремими точками
Показаний на рис. 13.5 графік полінома, побудований хрестиками, не означає, що поліном представлений окремими точками. У даному випадку непросто обраний стиль лінії у вигляді точок, представлених хрестиками. Однак, часто виникає необхідність побудови графіків функції, які представлені просто сукупністю крапок. Вона може бути створена штучно, як на рис. 13.7, або просто задаватися списком координат х і значень функції.
Рис. 13.6. Побудова графіків декількох цікавих функції.
Рис. 137. Формування списку окремих точок функції та їх побудова на графіку.
У даному випадку змінна Р має вигляд списку, в якому попарно перераховані координати точок функції sin (x). У цьому неважко переконатися, замінивши знак «:» після висловлення, що задає Р на знак ";». Далі за списком Р побудований графік точок у вигляді хрестиків, які відображають окремі значення функції sin (x).
На рис. 13.8 показано побудова графіків функцій по точках при явному завданні функції списком координат її окремих точок. У першому прикладі ці
точки з'єднуються відрізками прямих, так що виходить кусково-лінійний графік. Видно також, що вказівка типу крапок після вказівки стилю лінії ігнорується, - а шкода, було б непогано, щоб поряд з кусково-лінійної лінією графіка будувалися і виділені окружністю точки.
Рис. 13.8. Побудова графіка функції явно заданої окремими точками.
У другому прикладі рис. 13.8 показано побудову тільки точок заданої функціональної залежності. Вони представлені маленькими гуртками.
Читачеві пропонується поєднати самому обидва підходи до побудови графіків по точках і створити графік у вигляді відрізків прямих, що з'єднують задані точки функції, представлені гуртками або хрестиками.
13.2.7. Побудова графіків функцій, заданих їх іменами
Здатність Maple V до спрощення роботи користувача просто вражаюча - шкода тільки, що багато можливостей цього стають ясними після грунтовного вивчення системи, на що йдуть на жаль не дні, а місяці, а то й роки. Стосовно до графіку однієї з таких можливостей є побудова графіків функцій, заданих тільки їх функціональними іменами - навіть без вказівки параметрів у круглих дужках. Таку можливість наочно демонструє рис. 13.9.
Цей приклад показує, що можлива побудова графіків функцій навіть без застосування в команді plot покажчиків масштабів. При цьому масштаб по горизонтальній осі встановлюється рівним за замовчуванням -10 .. 10, а по вертикальній осі встановлюється автоматично відповідно з екстремальними значеннями функцій у вказаному діапазоні зміни незалежної змінної - умовно х.
Рис. 13.9. Побудова графіків чотирьох функції, заданих тільки їх іменами.
13.2.8. Побудова графіків функції з ординатами, заданими вектором
Часто виникає необхідність побудови графіка точок, ординати яких є елементами деякого вектора. Зазвичай при цьому передбачається рівномірне розташування точок по горизонтальній осі.
Приклад побудови такого графіка даний на рис. 13.10.
З цього прикладу неважко помітити, що дана задача вирішується складанням списку парних значень координат початкових точок - до значень ординат точок, взятих з вектора додаються значення абсцис. Вони задаються чисто умовно, оскільки ніякої інформації про абсциси точок у вихідному векторі немає. Так що фактично будується графік залежності ординат точок від їх порядкового номера п.
13.2.9. Побудова графіків функцій, заданих процедурами
Деякі види функцій, наприклад кусково, зручно задавати процедурами. Побудова графіків функцій, заданих процедурами, не викликає ніяких труднощів і ілюструється рис. 13.11.
Тут, мабуть, корисно звернути увагу на те, що коли у функції plot вказується ім'я процедури без списку її параметрів, то покажчик масштабу повинен просто вказувати межі графічних побудов по осі х.
Рис. 13.10. Побудова графіка точок з ординатами, заданими елементами вектора.
Рис. 13.11. Побудова графіка функцій, заданих процедурами
13.2.10. Побудова графіків функцій, заданих функціональними операторами
Ще одна «екзотична» можливість функції plot - побудова графіків функцій, заданих функціональними операторами. Вона ілюструється рис. 13.12.
Рис. 13.12. Побудова графіків функції, заданої функціональними операторами.
Імена функції (без зазначення списку параметрів у круглих дужках теж по суті є функціональними операторами. Так що і вони можуть використовуватися при побудові графіків спрощеними способами.
13.2.11. Побудова графіків функцій, заданих параметрично
У ряді випадків для завдання деяких залежностей використовуються задані параметрично рівняння, наприклад x = fl (t) і y = f2 (t) при зміні змінної t в деяких межах. Точки (х, у) наносяться на графік у Декартовой системі координат і з'єднуються відрізками прямих. Для цього використовується функція plot в такій формі:
plot ([fl (t), f2 (t), t = tmin .. tmax], h, v, p)
Якщо функції fl (t) і f2 (t) містять періодичні функції (наприклад, тригонометричні), то для отримання замкнутих фігур діапазон зміни змінної t задається звичайно 0 .. 2 * Pi або-Pi .. Pi. Наприклад, якщо задати як функцій fl (t) і f2 (t) функції sin (t) і cos (t), то буде отриманий графік кола. Рис. 13.! 3 показує інші, трохи менш тривіальні приклади побудови графіків такого роду.
Завдання покажчиків масштабу h і v, а також параметрів р не обов'язково. Але, як і раніше, дозволяє отримати вигляд графіка, задовольняє всім вимогам користувача.
Рис. 13.13. Побудова функції, заданих параметрично.
13.2.12. Побудова графіків функцій в полярній системі координат
Графіки в полярній системі координат являють собою лінії, які описує кінець радіус вектора r (t) при зміні кута t в певних межах - від tmin до tmax. Побудова таких графіків проводиться також функцією plot, що записується в наступному вигляді:
plot ([r (t), theta (t), t = tmin .. tmax], h, v, p, coords = polar)
Тут суттєвим моментом є завдання полярної системи координат опцією coords = polar. Рис. 13.14 дає приклади побудови графіків функцій в полярній системі координат.
Графіки параметричних функцій і функцій в полярній системі координат відрізняються величезною різноманітністю. Сніжинки і візерунки морозу на склі, деякі види кристалів і багато інші фізичні об'єкти підкоряються математичним закономірностям, покладеним в основу побудови таких графіків.
13.3. Побудова ЗО-графіків за допомогою функція plot3d
13.3.1. Особливості застосування функції plot3d
Для побудови графіків тривимірних поверхонь Maple має вбудовану в ядро функцію plot3d. Вона може використовуватися в наступних форматах:
Рис. 13.14. Побудова графіків функцій в полярній системі координат.
plot3d (exprl, x = a.. b, y = c.. d, p) plot3d (f, a.. b, c.. d, p)
plot3d ([exprf, exprg, exprh], s = a.. b, t = c.. d, p) plot3d ([f, g, h], a.. b, c.. d, p).
У двох перших формах plot3d застосовується для побудови звичайного графіка однієї поверхні, в інших формах - для побудови графіка з параметричної формою завдання поверхні. У наведених формах: f, g і h - функції, expri - вираз, що відображає залежність від х і у, exprf, exprg і exprh - вирази, що задають поверхню параметрично, s, t, а і b - числові константи дійсного типу, end - числові константи або вирази дійсного типу, х, у, s і t - імена незалежних змінних і р - параметри-опції. Параметри функцій plot3d задаються аналогічно їх завданням для функції plot.
13.3.2. Параметри функції plot3d
За допомогою параметрів р можна в широких межах керувати виглядом тривимірних графіків, виводячи або прибираючи лінії каркасною сітки, вводячи функціональну забарвлення поверхонь, змінюючи кут їх огляду і параметри освітлення, змінюючи вид координатних осей і т.д.
Наступні параметри функції plot3d задаються аналогічно їх завданням для функції plot:
axesfont font color coords font labelfont linestyle numpoints scaling style symbol thickness title titlefont
Однак функція plot3d має ряд додаткових специфічних параметрів:
ambientlight = [r, g, o] | Задає інтенсивність червоного (red), зеленого (green) і синього (blue) квітів у відносних одиницях (від 0 до 1). |
axes = f | Визначає вид координатних осей (BOXED, NORMAL, FRAME і NONE, за замовчуванням NONE). |
grid = [m, nl | Задає число лінії каркаса поверхні. |
gridstyle = x | Задає стиль ліній каркаса х ('rectangular' або 'triangular'). |
labels = [x, y, z] | Визначає написи по осях (х, у і z - рядки, за замовчуванням порожні). |
light = [phi, theta, r, g, b] | Визначає кути, під якими розташована джерело освітлення поверхні та інтенсивності складових (р, g і b) кольору. |
lightmodel = x | Визначає режим яскравості (відповідно, none "," lightl ',' light2 ',' light3 'і' light4 '). |
orientation = [theta, phi] | Визначає кути орієнтації поверхні (за замовчуванням 45 градусів). |
projection = r | Задає перспективу при огляді поверхні (г може бути числом 0 або 1, що задає включення або виключення перспективи, а також одного з рядків 'FISHEYE', 'NORMAL', або 'ORTHOGONAL' (це відповідає чисельному значенню г 0, 0.5, або 1, відповідно, причому за умовчанням задано projection = ORTHOGONAL). |
shading = s | Визначає напрями, за якими змінюється колір функціональної забарвлення (значення s можуть бути XYZ, XY, Z, ZGREYSCALE, ZHUE, NONE). |
tickmarks = [l, n, m] | Визначає характер маркування по осях x, у і z (числа 1, п і m мають значення не менше 1). |
view = zmin .. zmax або Ixmin .. xmax, ymin .. ymax, zmin .. zmax] | Визначає мінімальні і максимальні координати поверхні для її видимих ділянок. |
13.3.3. Вибір і перерахунок координат ЗО-графіків
Для тривимірних графіків можливе завдання 31-го типу координатних систем за допомогою параметра соога5 = Тіп_коордінатноі_сістемь1. Оскільки на екрані дисплея поверхню відображається тільки в прямокутній системі координат і характеризується координатами х, у і z, то для представлення поверхні, заданої в іншій системі координат з координатами u, v і w використовуються відомі [46,47] формули для перетворення (u, v, w) -> (х, у, z). Нижче представлені типи координатних систем для тривимірної графіки і відповідні формули перетворення:
bipolarcylindrical
х = a * sinh (v) / (cosh (v)-cos (u)) у = a * sin (u) / (cosh (v)-cos (u)) z = w
bispherical
х = sin (u) * cos (w) / d у = sin (u) * sin (w) / dz = sinh (v) / d (де d = cosh (v) - cos (u))
cardiodal
x = u * v * cos (w) / (lГ2 + v »2) -2 у = u * v * sin (w) / (ir2 + v" 2r2 z = (u "2-v'2) / 2 / ^ 2 + v'2) -2
cardiodcylindrical
x = (u'2-v ~ 2) / 2 / (u'-2 + v ~ 2) '-2 у = u * v / (u'2 + v-2) "2 z = w
casscylindrical
x = a * 2 ~ (l / 2) / 2 * ((exp (2 * u) +2 * exp (u) * cos (v) + l) - (l / 2) + exp (u) * cos (v) + l) - (l / 2) y = a * 2 «(l / 2) / 2 * ((exp (2 * u) +2 * exp (u) * cos (v) + l)" (l / 2)-exp (u) * cos (v)-l) "(l / 2) z = w
confocalellip
x = ((a ~ 2-u) * {a'2-v) * (a "2-w) / {a'2-b''2) / (a-2-c-2) Y (l / 2) у = ((b »2-u) * (b ~ 2-v) * (b" 2-w) / (b "2-a» 2) / (b »2-c« 2)) '(l / 2) z = ((c''2-u) * (^ 2-v) * (c''2-w) / (c'2-a'2) / (c ^ 2 -) ''2)) ~ (l / 2)
confocalparab
x = ((a'2-u) * (si'2-v) * (a'2-w) / {V2-a'2)) '(l / 2) у = ((b »2-u ) * (b »2-v) * (b-2-w) / (b-2-a-2) Г (1 / 2) z = (a" 2 + b "2-uvw) / 2
conical
x = u * v * w / (a * b) у = u / b * ((v "2 - h ~ 2) * (b ~ 2-w''2) / (a ~ 2-V2) Y ( l / 2) z = u / a * ((a'2 - v'2) * (a'2 - w ~ 2) / (a-2-b »2))" (l / 2)
cylindrical
x = u * cos (y) у = u * sin (y) z = w
ellcylindrical
x = a * cosh (u) * cos (v) у = a * sinh (u) * sin (v) z = w
ellipsoidal
x = u * v * w / a / b в = ((u '^-b ^ Mv ^-b ^ ^ b ^-w ^ Aa ^-b ^ ^ l ^ / bz = ((u-2-a »2) * (a • 2-v" 2) * (a »2-w" 2) / (a • 2-b'2)) »(l / 2) / a
hypercylindrical
x = ((u "2 + v" 2Y (l / 2) + u) '(l / 2) y ^ u ^ + v ^ ni ^-iO-O / ^) z = w
invcasscylindrical
x = a * 2 - (l / 2) / 2 * ((exp (2 * u) +2 * exp (u) * cos (v) + l) - (l / 2) +
exp (u) * cos (v) + l) '(l / 2) / (exp (2 * u) +2 * exp (u) * cos (v) + l)' (l / 2) у = a * 2 - (l / 2) / 2 * ((exp (2 * u) +2 * exp (u) * cos (v) + l) - (l / 2) -
exp (u) * cos (v)-l) »(l / 2) / (exp (2 * u) +2 * exp (u) * cos (v) + l)« (l / 2) z = w
invellcylindrical
x = a * cosh (u) * cos (v) / (cosh (ur2-sin (v) "2) у = a * sinh (u) * sin (v) / (cosh (u)" 2-sin ( v) ~ 2) z = w
invoblspheroidal
x = a * cosh (u) * sin (v) * cos (w) / (cosh (u) "2-cos (v)" 2) у = a * cosh (u) * sin (v) * sin ( w) / (cosh (u) '2-cos (v) "2) z = a * sinh (u) * cos (v) / (cosh (u)« 2-cos (v) '2)
invprospheroidal
x = a * sinh (u) * sin (v) * cos (w) / (cosh (u) '2-sin (v) "2) у = a * sinh (u) * sin (v) * sin ( w) / (cosh (u) «2-sin (v)" 2) z = a * cosh (Ll) * cos (v) / (cosh (u) »2-s ^ n (v) • 2)
logcoshcylindrical
x =! i / Pi * n (cosh (uY2-sm (vY2} у = 2 * a / Pi * arctan (tanh (u) * tan (v)) z = w
maxwellcylindrical
x = a / Pi * (u + l + exp (u) * cos (v)) у = a / Pi * (v + exp (u) * sin (v)) z = w
oblatespheroidal
x = a * cosh (u) * sin (v) * cos (w) у = a * cosh (u) * sin (v) * sin (w) z = a * sinh (u) * cos (v)
paraboloidal
x = u * v * cos (w) у = u * v * sin (w) z = (u "2 - v'2) / 2
paraboloidal2
x = 2 * ((ua) * (av) * (aw) / (ab)) - (l / 2) у = 2 * ((ub) * (bv) * (bw) / (ab)) - ( l / 2) z = u + v + w-a-b
paracylindrical
x = (u'2 - v'2) / 2 у = u * vz = w
prolatespheroidal
x = a * sinh (u) * sin (v) * cos (w) y = a * sinh (u) * sin (v) * sin (w) z = a * cosh (u) * cos (v)
rectangular
x = і у = v • z = w
rosecylindrical
x = ((1Г2 + у-2) - (1 / 2) + і) - (1 / 2) / (1Г2 + у-2Г (1 / 2) у = ((u'2 + v'2y (l / 2)-uY (l / 2) / (u'2 + v'2V (/ 2) z = w
sixsphere
x = u / (u'2 + v'2 + w'2) у = v / (u'-2 + v'2 + v /''2) z = w / (u'2 + v'2 + w'2)
spherical
x = u * cos (v) * sin (w) у = u * sin (v) * sin (w) z = u * cos (w)
tangentcylindrical
x = u / (ir2 + v "2) у = v / (u" 2 + v »2) z = w
tangentsphere
x = u-costwVdj ^ + v ^) у = u * sin (w) / (ir2 + v "2) z = v / (u" 2 + v ~ 2)
toroidal
x = a * sinh (v) * cos (w) / d у = a * sinh (v) * sin (w) / dz = a * sin (u) / d (де d = cosh (v) - cos ( u))
Ці формули корисно знати, оскільки в літературі зустрічаються дещо відмінні формули перерахунку.
Вид графіків тривимірних поверхонь дуже сильно розрізняється в різних
координатних системах. За замовчуванням тривимірні графіки будуються в прямокутній системі координат - rectangular.
13.4. Приклади побудови тривимірних поверхонь за допомогою функції plot3d
13.4.1. Найпростіше побудова ЗО-поверхні з різним стилем
На рис. 13.15 показано два приклади найпростіших побудов графіків тривимірної поверхні. За замовчуванням будується каркасна поверхню з функціональної забарвленням тонких ліній каркаса і видаленням невидимих ліній. Щоб графік виглядав більш чітким, побудова в першому прикладі задано лініями чорного кольору з допомогою параметра color-black.
Рис. 13.15. Приклади найпростішого побудови тривимірних поверхонь.
У другому прикладі та ж поверхню побудована з параметром style = patch, що призводить до появи її функціональної забарвлення (на жаль, на малюнках у книзі сприймається як забарвлення відтінками сірого кольору). Функціональна забарвлення робить малюнки більш інформативними.
Крім значення path, можна задавати ряд інших стилів для побудови тривимірних поверхонь: point - крапками, contour - контурними лініями, line - лініями, hidden - лініями каркаса з видаленням невидимих ліній, wireframe - лініями каркаса з усіма видимими лініями, patchnogrid - з розфарбуванням, але без ліній каркаса, patchcontour - розфарбування з лініями рівного рівня.
Колір тривимірного графіка може задаватися (як і у двовимірного) опцією со1ог = с, де с - колір (відтінки кольору вказувалися вище). Можливо ще два алгоритми завдання кольору:
HUE - алгоритм із завданням кольору у вигляді color = f (x, y);
RGB - алгоритм із завданням кольору у вигляді color = [exprr, exprg, exprb], де вираження exprr, exprg і exprb - вирази, що задають відносну значимість (від Про до 1) основних кольорів (червоного - red, зеленого - green і синього - blue).
Вдалий вибір кутів огляду фігури і застосування функціональної забарвлення дозволяють додати побудов тривимірних фігур дуже ефектний і реалістичний вигляд.
13.4.2. Побудова фігур в різних системах координат
Як зазначалося, вигляд графіка тривимірної поверхні істотно залежить від вибору координатної системи. Рис. 13.16 показує приклад побудови нелінійного конуса в циліндричній системі координат. Для завдання такої системи координат використовується параметр coords = cylindrical.
Рис. 13.16. Нелінійна циліндрична поверхня.
При побудові цієї фігури також використано кольоровий функціональна забарвлення. Крім того, цей приклад ілюструє висновок над малюнком титульної написи.
Наведемо ще один приклад побудови тривимірної поверхні - на цей раз у сферичній системі координат (рис. 13.17). Тут функція задана взагалі елементарно просто - у вигляді числа 1. Але оскільки обрана сферична система координат, то будується поверхню кулі одиничного радіусу.
При цьому побудові також задана функціональна забарвлення поверхні і висновок титульної написи.
Про те, наскільки незвичайним може бути графік тієї чи іншої функції в різних системах координат свідчить рис. 13.18. На ньому зображений графік параметрично заданої функції від однієї координати t - sin (t "3), побудований у сферичній системі координат.
До речі, рис. 13.18 ілюструє можливість одночасного спостереження більше ніж одного вікна - в даному випадку двох вікон. В одному вікні задано побудова графіка, а в іншому - побудований сам графік. При побудові графіка в окремому
Рис. 13.17. Побудова кулястої поверхні в сферичній системі координат.
Рис. 13.18. Графік ще однієї поверхні в сферичній системі координат.
вікні з'являється панель форматування графіка. За допомогою її досить наочних кнопок-піктограм можна легко скоректувати допоміжні параметри графіка (забарвлення, наявність ліній каркаса, орієнтацію та ін.)
13.4.3. Побудова графіків параметрично заданих поверхонь
На рис. 13.19 показано побудову поверхні при повному її параметричному завданні. У цьому випадку поверхня задається трьома формулами, що містяться в списку.
Рис. 3.19. Графік ЗО-поверхні при повному параметричному її завданні.
У даному випадку функціональна забарвлення задана з меню, тому до складу функції відповідний параметр не введений.
13.4.4. ЗО-графік як графічний об'єкт
Належність функції plot і plot3D до функцій (у деяких книгах їх називають операторами, командами або процедурами) наочно виявляється при створенні графічних об'єктів.
Графічний об'єкт - це по суті звичайна змінна, якій присвоюється значення графічної функції. Після цього така мінлива, будучи викликаною, викликає побудова відповідного графіка. Приклад цього дано на рис. 13.20.
У даному випадку будується кільце Мебіуса, властивості якого (наприклад, плавний перехід з одного боку стрічки на іншу) вже багато століть розбурхують уяву людей.
13.4.5. Завдання 30-графіки у вигляді процедури
Мова програмування Maple V допускає використання у процедурах будь-яких внутрішніх функцій, в тому числі графічних. Приклад такого застосування дає рис. 13.21.
Рис. 13.20. Приклад завдання і виведення тривимірного графічного об'єкта
Рис. 13.21. Приклад створення та застосування процедури ЗО-графіки.
Цей приклад показує ще один спосіб завдання та побудови кільця Мебіуса. Практично будь-які графічні побудови можна оформляти у вигляді процедури і використовувати такі процедури у своїх документах. Докладно створення графічних процедур описано в книзі [38], що поставляється в складі комерційної реалізації системи.
13.4.6. Побудова ряду тривимірних фігур
Функція plot3d дозволяє будувати одночасно кілька фігур, що перетинаються у просторі. При цьому вона володіє унікальною можливістю - автоматично обчислює точки перетину фігур і показує тільки видимі частини відповідних фігур. Це створює графіки фігур, що виглядають цілком природно.
Для побудови таких графіків достатньо замість однієї функції вказати ряд функцій. Приклад такої побудови для двох функцій зображений на рис. 13.22.
Рис. 13.22. Приклад побудови двох SD-фігур, що перетинаються у просторі.
Фігура на рис. 13.22 показана після її корекції та функціональної забарвлення в «ручному» режимі - з застосуванням інструментальної панелі вікна графіки.
13.5. Графічні структури двовимірної і тривимірної графіки
13.5.1. Поняття про графічні структурах
Функції PLOT і PLOT3D, з іменами, набраними великими літерами, дозволяють створювати графічні структури, що містять ряд графічних об'єктів si, s2, s3 і т.д. Кожен об'єкт може представляти собою точку або фігуру, полігон, напис і т.д., позиціонувати з високою точністю в заданій системі координат. Координатні осі також відносяться до графічних об'єктів. Важливо зазначити, що функції PLOT і PLOT3D одночасно є даними, що описують графіки. Їх можна записувати у вигляді файлів і (після зчитування файлів) представляти у вигляді графіків. Особливі властивості цих функцій підкреслюються записом їх прописними буквами.
13.5.2. Графічні структури двовимірної графіки
Графічна структура двовимірної графіки задається у вигляді:
PLOT (sl, s2, s3 ,..., o);
де si, s2, s3 .... - Графічні об'єкти (або елементарні структури-примітиви), о - загальні для структури опції).
Основними об'єктами є:
POINTS ([xl, yl], [x2, y2 ),...[ xn, ynj) - побудова точок, заданих їх координатами;
CURVES ([[xll, yll ],...[ xln, yln ]],[[ x21, y21 ],...[ x2n, y2n ]],...[[ xml, yml] ".. [xmn , yrnn]]) - побудова кривих по точках;
POLYGONS ([[xll, yll |,...[ xln, yln ]],[[ x21, y2H ,...[ x2n, y2n ]],...[[ xml, yml ],... [xmn . ymn]]) - побудова замкнутої області - полігону (остання крапка повинна збігатися з першої);
ТЕХТ ([х, у], 'string', horizontal, vertical) - висновок текстової написи 'string', позиціонованої координатами [х, у] з горизонтальною або вертикальною орієнтацією. Опція horizontal може мати значення ALIGNLEFT або ALIGNRIGHT, вказують, в яку сторону (вліво або вправо) йде напис. Аналогічно опція vertical може мати значення ALIGNABOVE або ALIGNBELOW, вказують, в якому напрямку (нагору або вниз) йде напис.
При завданні графічних об'єктів (структур) si, s2, s3 і т.д. можна використовувати описані вище опції і параметри, наприклад, для завдання стилю STYLE-побудови (POINT, LINE, PATCH, PATCHNOGRID), товщини ліній THICKNESS (крім координатних осей), символу SYMBOL, якими будуються точки кривих (BOX, CROSS, CIRCLE, POINT , DIAMOND і DEFAULT), стилю ліній LINESTYLE, кольору COLOUR (наприклад, COLOUR (HUE.O) для зафарбовування безперервній області), типу шрифту FONT, виведення титульної написи TITLE (string), імені об'єкта NAME (string), стилю координатних осей AXESSTY -LE (BOX, FRAME, NORMAL, NONE, або DEFAULT) і т.д.
Слід зазначити, що опції в графічних структурах задаються дещо інакше - за допомогою круглих дужок. Наприклад, для завдання фонта TIMES ROMAN з розміром символів 16 треба записати FONT (TIMES, ROMAN, 16), а для завдання стилю координатних осей у вигляді ящика (прямокутника) - AXESSTYLE (BOX) і т.д.
На рис. 13.23 показаний приклад графічних побудов при використанні основних структур двовимірної графіки.
Як видно з цього прикладу, графічна двовимірна структура дозволяє задати практично будь-які двовимірні графіки і текстові написи в межах одного малюнка.
13.5.3. Графічні структури тривимірної графіки
Графічні структури тривимірної графіки будуються на основі функції plot3d:
PLOT3D (sl, s2, s3 ,...., o)
Як елементарних графічних структур можна використовувати вже описані вище об'єкти POINTS, CURVES, POLYGONS і TEXT - зрозуміло, з
додаванням до списків координат третьої координати. Приклад такої побудови даний на рис. 13.24.
Рис. 13.23. Приклад використання структур 20-графіки
Рис. 13.24. Приклад створення ЗО-структури.
Крім того, можуть використовуватися такі спеціальні тривимірні структури. Одна з них - структура:
GRID (a.. B, c.. D, listlist) - завдання поверхні над ділянкою координатної площини [a, b] ([c, d] за даними заданим списковій змінної listlist: = [[zll, ... zln], [z21, ... z2n ],...[ zml ... zmn]] з розмірністю nxm. Зауважимо, що ця змінна задає координату z для рівновіддалених точок поверхні.
На рис. 13.25 показаний приклад створення тривимірної графічної структури на базі GRID. Зображення являє собою лінії, що з'єднують задані точки.
Рис. 13.25. Приклад завдання графічної структури типу GRID.
Ще один тип тривимірної графічної структури це:
MESH (listlist) - завдання тривимірної поверхні за даними облікової змінної listlist, що містить повні координати всіх точок поверхні (завдання останньої можливо при нерівномірній сітці).
Звичайна форма завдання цієї структури наступна:
MESH ([[[xll, yll, zll ],...[ xln, yln, zln]], [[x21, y21, z21 ],...[ x2n, y2n, z2n]], ... [[ xml, yml, zml ]...[ xmn, ymn, zmn ]]]).
Приклад завдання такої структури представлений на рис. 13.26.
Описані структури можуть використовуватися і в програмних модулях. Багато прикладів їх описано в книзі [38].
Додаткові дані про можливості графічних структур можна знайти в довідковій базі даних системи Maple V.
Рис. 13.26. Приклад завдання графічної структури типу MESH.
13.6. Графіка пакету plots 13.6.1. Загальна характеристика пакета plots
Пакет plots містить майже півсотні графічних функції, що істотно розширюють можливості графіки системи Maple V. У реалізації R4 цей пакет містить наступні функції:
----------- Animate | Створює мультиплікацію 2D графіків функцій. |
animated | Створює мультиплікацію 3D графіків функції. |
changecoords | Зміна системи координат. |
compiexplot | Побудова 20-графіка на комплексній площині. |
complexplot3d | Побудова 30-графіка в комплексному просторі. |
conformal | Конформний графік комплексної функції. |
contourplot | Будує координатну систему контурші-м графіка. |
contourplot3d | Будує контурний 30-графік. |
coordplot | Будує координатну систему 20-графіків. |
coordplotSd | Будує координатну систему ЗО-графіків. |
cylinderplot | Будує графік 3D поверхні в циліндричних координатах. |
densityplot | Будує двовимірний графік щільності. |
display | Будує графік списку графічних об'єктів. |
display3d | Будує графік списку тривимірних графічних об'єктів. |
fieldplot | Будує графік 2D векторного поля. |
| |
fieldplot3d | Будує графік 3D векторного поля. |
gradplot | Будує графік 2D векторного поля градієнта. |
gradplot3d | Будує графік 3D векторного поля градієнта. |
implicitplot | Будує 2D-гpaфік неявної функції. |
implicitplot3d | Будує ЗО-графік неявної функції. |
inequal | Будує графік вирішення системи нерівностей. |
listcontplot | Будує 20-контурний графік для сітки значенні. |
listcontplot3d | Будує ЗО-контурниі графік для сітки значенні. |
listdensityplot | Будує 20-графік щільності для сітки значенні. |
listplot | Будує 20-графік для аркуша значень. |
listplot3d | Будує ЗО-графік для аркуша значенні. |
loglogplot | Будує логарифмічний 20-графік функції. |
logplot | Будує полулогарифмических 2D-графік функції. |
matrixplot | Будує ЗО-графік із значеннями Z, певними матрицею. |
odeplot | Будує 2D або 3D графік вирішення диференціальних рівнянь. |
pareto | Будує pareto-діаграми (гістограма + графік лініями). |
pointplot | Будує 2D точковий графік. |
pointplot3d | Будує 3D точковий графік. |
polarplot | Будує графік 2D кривої в полярній системі координат. |
polygonplot | Будує графік одного або більшої кількості багатокутників. |
polygonplot3d | Будує графік одного або більшої кількості багатокутників. |
polyhedraplot | Будує тривимірний графік багатогранника. |
replot | Перебудовує заново графік. |
rootlocus | Будує графік коренів рівняння з комплексними невідомими. |
semilogplot | Будує графік функції з логарифмічним масштабом по горизонталі. |
setoptions | Встановлює опції за умовчанням для 2D графіків. |
setoptions3d | Встановлює опції за замовчуванням для 3D графіків. |
spacecurve | Будує 3D просторові криві. |
sparsematrixplot | Будує ZD-графік відмінних від нуля значень матриці. |
sphereplot | Графік 3D-поверхні в сферичних координатах. |
surfdata | Будує ЗD-гpaфік поверхні з чисельних даними. |
textplot | Виводить на заданий місце 2D-гpaфікa текст. |
textplot3d | Виводить на заданий місце ЗD-rpaфікa текст. |
tubeplot | Будує ЗD-rpaфікі типу труби. |
Серед цих функцій треба відзначити перш за все засоби побудови графіків ряду нових типів (наприклад, у вигляді ліній однакового рівня, векторних полів і т.д.), а також кошти об'єднання різних графіків в один. Особливий інтерес представляють дві перші функції, що забезпечують пожвавлення (анімацію) як двовимірних графіків (animate), так і тривимірних (animate3d). Цей пакет цілком
заслуговує опису в окремій книзі. Але, враховуючи обмежений обсяг даної книги, ми розглянемо лише кілька характерних прикладів його застосування. Зауважимо, що для використання наведених функцій потрібен виклик пакету, наприклад, командою with (plots).
13.6.2. Побудова графіків функцій у двовимірній полярній системі координат
У пакеті plots є функція для побудови графіків в полярній системі координат. Вона має вигляд polarplot (L, o), де L - об'єкти для завдання функції, графік якої будується і о - необов'язкові опції. На рис. 13.27 представлений приклад побудови графіка за допомогою функції polarplot.
Рис. 13.27. Графік, побудований за допомогою функції polarplot.
У даному випадку для більшої виразності опущено побудова координатних осей, а графік виведений лінією подвоєною товщини. Графік дуже нагадує лист клена, вельми шанованого в Канаді і став емблемою системи Maple V.
13.6.3. Побудова графіків лініями рівного рівня
Графіки, побудовані за допомогою ліній рівного рівня (їх також називають контурними графіками) часто використовуються в картографії. Ці графіки виходять, якщо подумки провести через тривимірну поверхню низку рівновіддалених площин, паралельних площині, утвореної осями Х і Y графіка. Лінії рівних висот утворюються в результаті перетину цих площин з тривимірною поверхнею.
Для побудови таких графіків використовується функція contourplot, яка може використовуватися в декількох форматах:
contourplot (exprl, x = a.. b, y = c.. d)
contourplot (f, a.. b, c.. d)
contourplot ([exprf, exprg, exprh], s = a.. b, t = c.. d)
contourplot ([f, g, h], a.. b, c.. d)
contourplot3d (exprl, x = a.. b, y = c.. d)
contourplot3d (f, a.. b, c.. d)
contourplot3d ([exprf, exprg, exprh], s = a.. b, t = c.. d) »'
contourplot3d ([f, g, h], a.. b, c.. d)
Тут - f, g і h - функції, expri - вираз, що описує залежність висоти поверхні від координат х і у, exprf, exprg і exprh - вирази, що залежать від s і t, що описують поверхню в параметричній формі, а і b - константи речового типу, end - константи або вирази дійсного типу, х, y,, s і t - імена незалежних змінних.
На рис. 13.28 показано побудову графіка лініями рівного рівня для однієї функції. Опція filled = true забезпечує автоматичну функціональну забарвлення замкнутих фігур, утворених лініями рівного рівня. Часом це додає графіку велику виразність, ніж при побудові тільки ліній однакового рівня.
Рис. 13.28. Приклад побудови графіка функції лініями рівного рівня.
Функція contourplot дозволяє будувати і графіки ряду функцій. Приклад такої побудови зображений на рис. 13.29. Безліч кіл на цьому малюнку створюється чотирма поверхнями, заданими функціями с1, с2, СЗ і с4.
Слід зазначити, що, хоча графіки у вигляді ліній рівного рівня виглядають не так естетично і природно, як звичайні графіки тривимірних поверхонь (бо вимагають осмислення результатів), у них є один істотний плюс - екстремуми функцій на таких графіках виявляються часом більш чітко, ніж на звичайних графіках. Наприклад, невелика піднесеність або западина за великий «горою» на звичайному графіку може виявитися невидимою, оскільки заслоняється
«Горою» - на графіку ліній рівного рівня цього ефекту немає. Проте виразність таких графіків сильно залежить від числа ліній однакового рівня.
Рис. 13.29. Приклад побудови графіків багатьох функцій лініями рівного рівня.
13.6.4. Графік щільності
Іноді тривимірні поверхні відображаються на площині як графіки щільності забарвлення - чим вище висота поверхні, тим щільніше забарвлення. Такий вид графіків створюється функцією densityplot. Вона може записуватися у двох форматах:
densityplot (exprl, x = a.. b, y = c.. d) densityplot (f, a.. b, c.. d),
де призначення параметрів відповідає зазначеному вище для функції contour-plot.
На рис. 13.30 дано приклад побудови графіка такого типу. Неважко помітити, що в площині X, Y графік розбитий на квадрати, щільність забарвлення яких різна. У нашому випадку щільність забарвлення задається відтінками сірого кольору.
Зазвичай графіки такого типу не дуже виразні, але мають свої області застосування. Приміром, відтінки забарвлення напівпрозорої рідини можуть вказувати на рельєф поверхні дна ємності, в якій знаходиться ця рідина.
13.6.5. Графік векторного поля двовимірний
Ще один поширений спосіб представлення тривимірних поверхонь - графіки векторного поля. Вони часто застосовуються для відображення полів, наприклад, електричних зарядів. Особливість таких графіків в тому, що для їх побудови використовують стрілки, напрям яких відповідає напрямку зміни градієнта поля, а довжина - значенням градієнта.
Рис. 13.30. Графік щільності для заданої функції.
Для побудови таких графіків у двовимірній системі координат використовується функція fieldplot:
fieldplot (f, rl, r2) або fieldplot (f, rl, r2, ...),
де f - вектор або безліч векторів, які задають побудова, і rl і r2 - межі.
На рис. 13.31 показаний вигляд одного з таких графіків. Слід зазначити, що для отримання достатнього числа чітко видних стрілок треба попрацювати з форматуванням графіків. Інакше графіки цього типу можуть виявитися не дуже представницькими. Так, дуже короткі стрілки перетворюються на рисочки і навіть точки, що не мають вістря, що позбавляє графіки наочності.
Трохи пізніше ми розглянемо побудову на одному малюнку графіків щільності і векторного поля, а також створення більш наочних жирних стрілок.
13.6.6. Графіки в різних системах координат
У пакеті plots є безліч функцій для побудови графіків в різних системах координат. Обсяг книги не дозволяє відтворити приклади на всі види таких графіків, бо їх багато сотень. Та це й не треба - у вбудованих в довідкову систему прикладах можна знайти всі потрібні відомості. Так що обмежимося лише парою прикладів застосування функції tubeplot (C, options), що дозволяє будувати досить наочні фігури в просторі, нагадують труби або інші об'єкти, утворені фігурами обертання.
На рис. 13.32 показана одна з таких фігур. Вона разюче нагадує раковину равлика. Функціональна забарвлення досягнута доопрацюванням графіка за допомогою панелі форматування. Сенс параметра С (у документі Conchoid) легко зрозуміти з цього прикладу.
Рис. 13.31. Двовимірний графік типу векторного поля.
Рис. 13.32. Побудова графіка «равликів».
Ця функція може використовуватися і для побудови ряду трубчастих об'єктів у просторі. При цьому автоматично задається алгоритм видалення невидимих ліній навіть для досить складних фігур. Це наочно ілюструє приклад
на рис. 13.33, що показує фігуру «ланцюга». Чи не правда реалістичність цієї фігури вражає уяву?
Рис. 13.33. Фігура «ланцюга», побудована із застосуванням функції tubeplot.
Можна чимало розмірковувати про те, як природа «дізналася» про математичних закономірностях, покладених в основу тих чи інших геометричних об'єктів, або, можливо, про геніальність людей, які зуміли знайти такі закономірності для природних об'єктів. У наш час Maple V відкриває величезні можливості для таких людей.
13.6.7. Графіки типу тривимірного векторного поля
Наочність ряду графіків можна істотно збільшити, будуючи їх у тривимірному поданні. Наприклад, для такої побудови векторних полів можна використовувати графічну функцію fieldplot3d. На відміну від функції fieldplot, вона будує стрілки як би в тривимірному просторі (рис. 13.34).
Все сказане про особливості таких двовимірних графіків залишається справедливим і для графіків тривимірних. Зокрема, для отримання достатньої їх показності потрібно ретельно налагоджувати формати представлення таких графіків.
13.6.8. Контурні тривимірні графіки
На відміну від векторних графіків, контурні графіки тривимірних поверхонь, накладені на самі ці поверхні, нерідко підвищують сприйнятливість таких поверхонь - подібно зображенню ліній каркаса. Для одночасного побудови тривимірної поверхні і контурних ліній на них служить функція contourplot3d. Приклад її застосування зображений на рис. 13.35.
Рис. 13,34. Побудова векторного поля в тривимірному просторі.
Рис. 13.35. Графік тривимірної поверхні з контурними лініями.
Для підвищення наочності цей графік доопрацьований за допомогою панелі форматування графіків. Зокрема, включена функціональна забарвлення і підібрані кути огляду фігури, при яких чітко видно западина і пік фігури.
13.6.9. Техніка візуалізації складних просторових фігур
Наведені вище достатньо прості приклади дають уявлення про високий ступінь візуалізації геометричних фігур за допомогою пакету plots. Тут ми розглянемо ще кілька прикладів візуалізації тривимірних фігур. Багато хто бачив котушки індуктивності, у яких провід того чи іншого діаметра намотаний на тороїдальний магнітний сердечник. Математична абстракція такий котушки показана на рис. 13.36.
Рис. 13.36. Top з обмоткою - товстої спіраллю.
У документі (рис. 13.36) для функції tubeplot використано досить велике число параметрів-опцій. Не завжди їх дію очевидно. Тому на рис. 13.37 показано побудову трьох взаємно перетинаються торів з різними типами їх побудови. Цей малюнок дає також наочне уявлення про можливості побудови декількох графічних об'єктів (представлених функціями р1, р2 і РЗ) з допомогою функції tubeplot.
Нарешті, на рис. 13.38 показано побудову тора з тонкою обмоткою. Рекомендується уважно переглянути запис функції tubeplot в цьому прикладі і в прикладі, показаному на рис. 13.36. Можна також поекспериментувати з опціями графіка, від яких значною мірою залежить його наочність і наочність.
У ряді випадків наочно представлені фігури можна будувати із застосуванням об'єднання однотипних фігур. Приклад графіка подібного роду представлений на рис. 13.39. Тут готується список графічних об'єктів s, зміщених по вертикалі. За допомогою функції display вони відтворюються на одному графіку, що підвищує реалістичність зображення.
Останній приклад має ще одну важливу особливість - він ілюструє завдання графічної процедури, у тілі якої використовуються функції пакету
Рис. 13.37. Три пересічних тора з різним стилем побудови.
Рис. 13.38. Top з тонкої обмоткою.
plots. Параметр п цієї процедури задає число елементарних фігур, з яких будується повна фігура. Таким чином, висотою фігури (або шириною «шини») можна управляти. Можливість завдання практично будь-яких графічних процедур засобами Maple-мови істотно розширює можливості системи Maple.
Рис. 13.39. Побудова фігури, що нагадує шину автомобіля.
Наочність графіків типу графіка щільності і векторного поля може бути поліпшена їх спільним застосуванням. Приклад його зображений на рис. 13.40.
Рис. 13.40. Приклад спільного застосування графіків щільності і векторного поля.
Цей приклад ілюструє використання «жирних» стрілок для позначення векторного поля. Наочність графіка підвищується завдяки накладенню стрілок на графік щільності, який краще, ніж застосування стрілок, дає уявлення про плавності зміни висоти поверхні, заданої функцією f.
13.6.10. Побудова анімаційних 20-графіків
Візуалізація графічних побудові і результатів моделювання різних об'єктів і явище істотно підвищується при використанні коштів «оживлення» (анімації) зображень.
Пакет plots має дві прості функції для створення анімаційних графіків.
Перша з цих функцій служить для створення анімації графіків, що представляють функцію однієї змінної х - F:
anirnate (F, х, t) або animate (F, х, t, o)
При цьому параметр х задає межі зміни по змінній х, а параметр t - межі зміни додаткової змінної t. Суть анімації полягає в побудові серії картинок (як у мультфільмі), причому кожна картинка (фрейм) пов'язана із змінною в часі змінної t. Якщо треба явно задати число кадрів N анімації, то в якості опції о треба використовувати опцію frame = N. Рис. 13.41 показує застосування функції animate.
Рис. 13.41. Перший стоп-кадр анімації.
У документі рис. 13.41 будуються дві функції - не створює анімації функція sin (x) і створює анімацію функція sin (i * x) / (i * x), причому в якості змінної t задана мінлива i. Саме її зміна і створює ефект анімації.
При виконанні функції animate і виділення отриманого графіка з'являється панель програвання анімаційних кліпів. Вона має кнопки управління з позначеннями, прийнятими у сучасних магнітофонів. Пустивши кнопку пуску (з трикутником, вістрям зверненим вправо), можна спостерігати зміну виду кривої для функції sin (i * x) / (i * x).
На жаль, картинки в книгах завжди нерухомі і відтворити ефект анімації важко. Обмежимося приведенням ще одного стоп-кадру (мал. 13.42).
Неважко помітити, що на ньому показана функція sin (i * x) / (i * x) в іншій фазі, ніж на рис. 13.41.
Рис. 13.42. Другий стоп-кадр анімації.
Анімація графіків може знайти широке застосування при створенні навчальних матеріалів. З її допомогою можна акцентувати увагу на окремих параметрах графіків і утворюють їх функцій.
13.6.11. Побудова анімаційних ЗО-графіків
Аналогічним чином може здійснюватися і анімація тривимірних фігур. Для цього використовується функція animate3d:
animate3d (F, x, y, t, o)
Тут F - опис функції (або функцій), х, в і t - діапазони змін змінних х, у і t. Для завдання кількості кадрів N треба використовувати необов'язкову опцію про у вигляді frame = N.
На рис. 13.43 показано побудову анімаційного графіка. Після завдання функції, графік якої будується, необхідно виділити графік і запустити анімаційний програвач - як це описувалося для анімації двовимірної графіки.
На рис. 13.43 показано також контекстно-залежне меню, яке з'являється при натисканні правої клавіші миші в момент, коли курсор її знаходиться в поле виділеного графіка. Неважко помітити, що за допомогою цього меню (і які відчиняють їм підменю) можна отримати доступ до опцій тривимірної графіки і виконати необхідні операції форматування, такі, як включення колірної забарвлення, вибір орієнтації фігури і т.д.
Рис. 13.43. Підготовка анімаційного ЗО-графіка.
13.6.12. Використання для анімації опції insequence
Ще один шлях створення анімаційних малюнків - створення ряду графічних об'єктів р1, р2, РЗ і т.д. і їх послідовний висновок з допомогою функції:
display (pl, p2, p3 ,..., insequence = true) display3d (pl, p2, p3 ..., insequence = true)
Тут основним моментом є застосування опції insequence = true. Саме вона забезпечує виведення одного за іншим серії графічних об'єктів р1, р2, РЗ і т.д.
13.7. Графіка пакету plottools 13.7.1. Склад пакету plottools
Інструментальний пакет графіки plottools служить для створення графічних примітивів, що будують елементарні геометричні об'єкти на площині і в просторі: відрізки прямих і дуг, окружності, конуси, кубики і т.д. Його застосування дозволяє урізноманітнити графічні побудови і будувати багато графіків спеціального призначення. У пакет входять наступні графічні примітиви:
arc arrow circle cone cuboid curve cutin cutout cylinder disk dodecahedron ellipse ellipticArc hemisphere hexahedron hyperbola icosahedron line octahedron pieslice point polygon rectangle semitorus sphere tetrahedron torus
Виклик примітивів пакету здійснюється після завантаження пакета в пам'ять ПК командою with (plottools). Зазвичай примітиви використовуються для завдання графічних об'єктів, які потім виводяться функцією display. Можливо, застосування цих примітивів спільно з різними графіками.
13.7.2. Приклади застосування примітивів пакету plottools
Більшість примітивів пакету plottools має досить очевидний синтаксис. Наприклад, для завдання дуги використовується примітив
АГС (з, г, а .. Ь, ...),
де с - список з координатами центру кола, до якої належить дуга, м - радіус цього кола, а .. Ь - діапазон кутів. На місці трьох крапок можуть стояти звичайні опції, що задають колір дуги, товщину її лінії і т.д. Всі форми запису графічних примітивів та їх синтаксис можна знайти в довідковій системі.
На рис. 13.44 показано застосування декількох примітивів двовимірної графіки для побудови дуги, кола, зафарбованого червоним кольором еліпса і відрізка прямої. Крім того, на графіку показано побудову синусоїди. Щоб уникнути спотворень пропорцій фігур треба погоджувати діапазон зміни змінної х.
Рис. 13.44. Приклади застосування примітивів 20-графіки пакету plottools.
Аналогічним чином використовуються примітиви побудови тривимірних фігур. На рис. 13.45 показано спільне побудова двох пересічних кубів і сфери в просторі. Неважко помітити, що графіка пакету приблизно (з точністю до сегмента фігур) обчислює області перетину фігур. За допомогою контекстно-залежного меню правої клавіші миші (мал. 13.45) можна встановлювати умови огляду фігур, враховувати перспективу при побудові і т.д. Зокрема, фігури на рис. 13.45 показані в перспективі.
Рис. 13.45. Приклади застосування примітивів 30-графіки пакету plottools.
З іншими можливостями цього пакету читач тепер впорається самостійно або за допомогою даних довідкової системи.
13.7.3. Побудова графіків з безлічі фігур
У ряді випадків буває необхідно будувати графіки, що представляють собою безліч однотипних фігур. Для побудови таких графіків корисно використовувати функцію повторення seq (f, i = a.. B). На рис. 13.46 показано побудова фігури, утвореної обертанням прямокутника навколо однієї з вершин.
Рис. 13.46. Побудова фігури, утвореної обертанням прямокутника.
У цьому прикладі корисно звернути увагу ще й на функцію повороту фігури - rotate. Саме поєднання цих двох функцій (розширенні і повороту базової фігури - прямокутника) дозволяє отримати складну фігуру, показану на рис. 13.46.
13.8. Графічне представлення розв'язків диференціальних рівнянь
13.8.1. Застосування функції odeplot пакету plots
Для звичайного графічного представлення результатів рішення диференціальних рівнянь може використовуватися функція odeplot з описаного вище пакета plots. Ця функція використовується в наступному вигляді:
odeplot (s, vars, r, o),
де s - запис (у вихідний формі) диференціального рівняння або системи диференціальних рівнянь, отриманих при їх чисельному рішенні функцією dsolve, vars - змінні, r - параметр, що задає межі рішення (наприклад, а .. Ь) і про - не обов'язкові додаткові опції .
На рис. 13.47 представлений приклад рішення одного диференціального рівняння з висновком рішення у (х) за допомогою функції odeplot.
Рис. 13.47. Приклад рішення одного диференціального рівняння.
У цьому прикладі вирішується диференціальне рівняння y '(x) = cos (x "2 * y (x))
при в (0) = 2 і х, мінливому від -5 до 5. Ліва частина рівняння записана за допомогою функції обчислення похідної diff. Результатом побудови є графік вирішення у (х).
На іншому прикладі (рис. 13.48) представлено рішення системи з двох нелінійних диференціальних рівнянні. Тут за допомогою функції odeplot будуються графіки двох функцій - у (х) і z (x).
Рис. 13.48. Приклад рішення системи з двох диференціальних рівнянні
У цьому прикладі вирішується система:
y '(x) = z (x) z' (x) = 3 * sin (y (x))
при початкових умовах в (0) = 0, z (0) = l і х, мінливому від -4 до 4 при числі точок рішення, рівному 25.
Іноді рішення системи з двох диференціальних рівнянь (або одного диференціального рівняння другого порядку) представляється у вигляді фазового портрету - при цьому по осях графіка відкладаються значення у (х) і z (x) при зміні х в певних межах. Рис. 13.49 представляє побудова фазового портрету для системи, представленої вище.
Звичайне рішення, як правило, більш наочно, ніж фазовий портрет рішення. Проте для фахівців (наприклад, в теорії коливань) фазовий портрет часом дає більше інформації, ніж звичайне рішення. Він більш трудомісткий при побудовах, тому можливість Maple V швидко будувати фазові портрети важко переоцінити.
13.8.2. Функція DEplot з пакету DEtools
Спеціально для вирішення і візуалізації рішень диференціальних рівнянь і систем з диференціальними рівняннями служить інструментальний пакет DEtools. У нього входить ряд функцій для побудови найбільш складних і вишуканих графіків рішення диференціальних рівнянь. Основний з цих функцій є функція DEplot. '
Рис. 13.49. Представлення рішення системи диференціальних рівнянь у вигляді фазового портрету.
Функція DEplot може записуватися в декількох формах:
DEplot (deqns, vars, trange, eqns) DEplot (deqns, vars, trange, inits, eqns) DEplot (deqns, vars, trange, yrange, xrange, eqns) DEplot (deqns, vars, trange, inits, xrange, yrange, eqns)
Тут: deqns - лист (безліч) з системою диференціальних рівнянні першого порядку або одиночне рівняння будь-якого порядку, vars - залежна змінна (лист) або безліч залежних змінних, trange - область зміни незалежної змінної t, inits - початкові умови для вирішення, yrange - область зміни для першої залежною змінною, xrange - область зміни для другої залежної змінної, eqns - опція, що записується у вигляді keyword = value. Заміна імен змінних іншими в даному випадку не припустима.
Ця функція забезпечує чисельну рішення диференціальних рівнянь або їх систем при одній незалежної змінної t і будує графіки розв'язання. Для автономних систем ці графіки будуються у вигляді векторного поля напрямків, а для неавтономних систем тільки у вигляді кривих рішення. За замовчуванням реалізується метод Рунге-Кутта 4-го порядку, що відповідає опції method = classi-cal [rk4]. Можлива специфікація та інших методів (див. розділ 10). У каталозі EXAMPLE системи Maple V R4 можна знайти файл deplot.mws з численними прикладами застосування функції DEplot.
З функцією DEplot можуть використовуватися такі опції про:
arrows = type - тип стрілки векторного поля ('SMALL',
'MEDIUM', 'LARGE', 'LINE "або" NONE');
colour, color = arrowcolour - колір стрілок (задається 7 способами);
dirgrid = [integer, integer] - число ліній сітки (о замовчуванням 20 (20);
iterations = integer - кількість ітерацій, представлене цілим
числом;
linecolour, linecolor = line_info-колір лінії (задається 5 способами);
method = 'rk4' - задає метод решени 'euler', 'backeuler',
'Impeuler' і 'rk4';
obsrange = TRUE, FALSE - задає (при TRUE) переривання обчислень,
якщо крива рішення виходить з області огляду;
scene = [name, name] - задає імена залежних змінних, для
яких будується графік;
stepsize = h - крок рішення, за замовчуванням дорівнює
abs ((ba)) / 20, і представлений речовим
значенням.
На рис. 13.50 показаний розв'язок системи диференціальних рівнянь
х-(t) = x (t) * (ly (t)) у '(t) = 0,3 * y (t) * (x (t)-l),
описують модель Лотка-Вольтерра при заданих в документі зміни t, x (t) і y (t). Рішення представлено у вигляді векторного поля, стрілки якого стають дотичними до кривих рішення. Зверніть увагу на функціональну закраску стрілок векторного поля.
Рис. 13.50. Рішення системи диференціальних рівнянні Лотка-Вольтерра з виведенням у вигляді графіка векторного поля.
Ще цікавіше варіант графіків, представлений на рис. 13.51. Тут крім векторного поля побудовані фазові портрети рішення з використанням функціональної зафарбування їх ліній. Фазові портрети побудовані для двох наборів початкових умов: х (0) = в (0) = 1.2 і x (0) = 1 і в (0) = 0.7.
Слід зазначити, що функція DEplot може звертатися до інших функцій пакету DEtools для забезпечення спеціальних графічних можливостей, таких як побудова векторного поля або фазового портрету рішення.
Рис. 13.51. Приклад побудови двох фазових портретів на тлі векторного поля.
13.8.3. Функція DEplot3d з пакету DEtools
У ряді випадків рішення систем диференціальних рівнянь зручно представляти у вигляді просторових кривих - наприклад, ліній рівного рівня або просто у вигляді кривих у просторі. Для цього служить функція DEplot3d.
DEplot3d (deqns, vars, trange, initset, о) DEplot3d (deqns, vars, trange, yrange, xrange, initset, o)
Призначення параметрів і опцій цієї функції аналогічно зазначеному для функції DEplot.
Рис. 13.52 пояснює застосування функції DEplot3d для вирішення системи з двох диференціальних рівнянь з висновком фазового портрету коливань у вигляді параметрично заданої залежності x (t), y (t). У даному випадку фазовий портрет будується на площині за типом побудови графіків ліній рівної висоти.
Інший приклад (рис. 13.53) показує рішення системи з двох диференціальних рівнянь з побудовою об'ємного фазового портрету. У цьому випадку використовується координатна система ЗD-гpaфікі і графічні побудови відповідають параметричним залежностям x (t), y (t) і z (t). Вид фазового портрета нагадує яка розгортається в просторі об'ємну спіраль. Функціональна забарвлення її робить графік ефектним, що, на жаль, втрачається при чорно-білому відтворенні графіка.
Рис. 13.52. Приклад рішення системи з двох диференціальних рівнянні з допомогою функції DEplot3d.
Рис. 13.53. Приклад рішення системи з двох диференціальних рівнянні з побудовою тривимірного фазового портрету.
Можливості функції DEplot дозволяють вирішувати системи диференціальних рівнянні з числом останніх і більше двох - рис. 13.54, наприклад. Однак у цьому випадку число рішень, що подаються графічно, виходить за межі, допустимі ЗИ-графікоі. При цьому від користувача залежить, які з залежно-
стін опускаються при побудові, а які будуються. Так, на рис. 13.54 в просторі побудовані дві криві рішення.
Рис. 13.54. Рішення системи з чотирьох диференціальних рівнянні.
Нерідко таким чином можна вивести на побудову та інші залежності. Проте їхня кількість зазвичай доводиться обмежувати через втрату наочності графіка при великому числі ліній.
13.8.4. Функція PDEplot пакету DEtools
Ще одна функція пакету DEtools - DEtools [PDEplot] служить для побудови графіків рішення систем з квазілінійних диференціальних рівнянь першого порядку в приватних похідних:
Р (х, у, і) * D [l] (u) (x, y) + Q (x, y, u) * D [2] (u) (x, y) = R (x, yu) ,
так що
P їх + Q uy = R,
де P, Q і R залежать тільки від х, у і і (х, у), при цьому dx / dt = P, dy / dt = Q, du / dt = R.
Ця функція використовується в наступному вигляді:
PDEplot (pdiffeq, var, Lcurve, srange, о) PDEplot (pdiffeq, var, i_cLirve, srange, xrange, yrange, urange, o)
Тут, крім зазначених раніше параметрів, pdiffeq - квазілінійних диференціальних рівнянь першого порядку (PDE), vars - незалежна змінна і Lcurve - початкові умови для параметричних кривих ЗО-поверхні. Крім опцій, зазначених для функції DEplot, тут можуть використовуватися такі опції:
basechar = TRUE, FALSE, ONLY - встановлює показ базових характеристик кривих;
basecolour, basecolor = b_colour - встановлює колір базових характеристик;
initcolour, initcolor = Lcolour - ініціалізація квітів;
numchar = integer - задає число відрізків кривих, яке не
повинно бути менше 4 (за замовчуванням 20);
numsteps = [integerl, integer2] - задає число кроків інтегрування
(За замовчуванням [10,10]).
Рис. 13.55 показує застосування функції PDEplot. Цей приклад, взятий з довідкової системи Maple V R4, показує, наскільки незвичайним може бути рішення навіть простої системи диференціальних рівнянь в приватних похідних.
Рис. 13.55. Приклад застосування функції PDEplot.
У даному випадку рішення представлене тривимірної фігурою вельми нерегулярного вигляду.
Інший приклад використання функції PDEplot зображений на рис. 13.56. Він ілюструє комбіноване побудова графіків рішення різного типу із застосуванням функціональної зафарбовування, що реалізується за заданою формулою за допомогою опції initcolor.
Ще раз відзначимо, що, на жаль, малюнки в даній книзі не дають уявлення про колір. Тому наочність рішень, видимих на екрані дисплея, істотно вище.
13.8.5. Графічна функція dfieldplot
Графічна функція dfieldplot служить для побудови векторного поля (поля напрямку) за результатами рішення диференціальних рівнянь. Фактично ця функція як би входить в функцію DEplot і при необхідності викликається останньої. Але вона може використовуватися і самостійно, що показує
рис. 13.57, на якому показано приклад рішення наступної системи диференціальних рівнянь: x '(t) = x (t) * (ly (t)), y' (t) = 0.3 * y (t) * (x (t)-l ).
Рис. 13.56. Побудова комбінованого графіка за допомогою функції PDEplot.
Рис. 13.57. Побудова фазового портрета у вигляді графіка векторного поля.
Зверніть увагу на використання опцій в цьому прикладі, зокрема на висновок написи на малюнок російською мовою. В цілому список параметрів функції phaseportrait аналогічний такому для функції DEplot (відсутній лише завдання початкових умов).
13.8.6. Графічна функція phaseportrait
Графічна функція phaseportrait служить для побудови фазових портретів за результатами рішення одного диференціального рівняння або системи диференціальних рівнянь deqns. Вона задається у вигляді:
phaseportrait (deqns, vars, trange, inits, o)
При завданні рівнянь досить вказати їх праві частини. На рис. 13.58 представлений приклад застосування функції phaseportrait для вирішення системи з трьох диференціальних рівнянь першого порядку.
Рис. 13.58. Побудова фазового портрета за допомогою функції phaseportrait.
У цьому прикладі система диференціальних рівнянь задана із застосуванням оператора диференціювання D. Функціональна забарвлення лінії фазового портрету досягається використанням опції linecolor, в правій частині якої задана формула для кольору.
Ще більш цікавий приклад вирішення диференціального рівняння представлений на рис. 13.59. Тут побудовані фазові портрети для асимптотичних рішень.
У цілому треба відзначити, що можливості візуалізації рішень диференціальних рівнянь за допомогою системи Maple V вельми великі і наведені вище приклади лише частково ілюструють сказане. У довідковій системі можна знайти ряд інших дуже ефектних рішень систем диференціальних рівнянь з візуалізацією останніх.
13.9. Ілюстративна графіка пакету student
Пакет student має три графічні функції для ілюстрації інтегрування методом прямокутників:
leftbox (f (x), x = a.. b, о) чи leftbox (f (x), x = a.. b, n, 'shading' =, o) rightbox (f (x), x = a .. b, о) чи rightbox (f (x), x = a.. b, n, o) middlebox (f (x), x = a.. b, о) чи middlebox (f (x), x = a.. b, n, o),
Тут: f (x) - функція змінної х, х - змінна інтегрування, а - ліва межа області інтегрування, b - права межа області інтегрування, n - кількість показаних прямокутників, color - колір прямокутників, о - опції (див. plot, options ).
Рис. 13.59. Побудова асимптотичного рішення на тлі графіка векторного поля.
У цих функціях прямокутники будуються відповідно зліва, справа і посередині щодо вузлових точок функції f (x), графік якої також будується. Крім того, є функція для побудови дотичної до заданої точки х = а для лінії, що представляє f (x):
showtangent (f (x), x = а).
Рис. 13.60 показує всі ці можливості пакета student. Чотири види графіків тут побудовані в окремих вікнах.
Можливості графіки пакету student обмежені. Але вони дають якраз ті можливості, які відсутні в основних засобах графіки.
13.10. Графіка статистичного пакету stat
Статистичний пакет stat має свою "невеличку бібліотечку для побудови графіків. Вона викликається в наступному вигляді:
stats [statplots, function] (args) або statplots [function] (args)
Вид графіка задається описом function: boxplot, histogram, notchedbox, quantile, quantile2, scatterld, scatter2d і symmetry. Ці функції забезпечують побудову
типових графіків, що ілюструють статистичні розрахунки. В якості прикладу на рис. 13.61 показано завдання безлічі випадкових точок та їх побудова на площині в обмеженому прямокутником просторі.
Рис. 13.60. Приклади ілюстративної графіки пакету student,
Рис. 13.61. Створення випадкових точок і побудова їх на площині.
За рівномірності розподілу точок можна судити про якість програмного генератора випадкових чисел, вбудованого в Maple V.
Інший приклад застосування графічних засобів пакету stat зображений на рис. 13.62. Тут, крім зображень, заданих точками у вигляді маленьких ромбів (тип diamond), представлене зображення спеціальних об'єктів, з вигляду нагадують радіодеталі.
Рис. 13.62. Побудова за допомогою пакету stats.
Досить часто використовуються графіки гістограм. Для їх побудови пакет stat має функцію histogram:
statsfstatplots, histogramj (data) statplots [histogram] (data) statsfstatplots, histogram [scale] (data) statplots [histogram [scale] (data)
Тут: data - список даних, scale - число або описувач. Деталі застосування цієї простої функції пояснює рис. 13.63. На ньому дано два приклади - для побудови стовпців заданої ширини і висоти і побудови розподілу 100 випадкових чисел з нормальним розподілом.
Зверніть увагу на те, що в деталях гістограми для другого прикладу побудовані гістограми будуть дещо змінюватися від пуску до пуску. Це пов'язано з випадковістю генеруються чисел і невеликими розбіжностями в нормальному розподілі чисел.
13.11. Графічна візуалізація рішень та анімація
Вище вже не раз графіка використовувалася для візуалізації рішень математичних задач. Так, багато особливостей навіть функцій однієї змінної виду f (x) можуть бути виявлені за допомогою графіка функцій. Потім можна точно обчислити корені функції (точки переходу через 0), екстремуми, крутизну нахилу (вироб-
водний) в заданих точках і т.д. Ще більш інформативна в цьому відношенні тривимірна графіка - для більшості функцій двох змінних виду z (x, y) потрібно дуже багате математичне уяву, щоб представити їх вигляд - особливо в одній з багатьох десятків координатних систем.
Рис. 13.63. Побудова гістограм.
Однак деякі види графіків важко уявити собі навіть за наявності такого уяви. У цьому відношенні Maple V надає справді унікальні можливості в забезпеченні простий і швидкої візуалізації рішень. Нижче ми розглянемо декілька найбільш характерних прикладів такої візуалізації. У них немає найбільш показових прикладів візуалізації рішень диференціальних рівнянь, оскільки вони вже були розглянуті.
13.11.1. Ілюстрація рішення систем лінійних рівнянь
Системи лінійних рівнянь можуть вирішуватися як за допомогою функції solve, так і за допомогою матричних методів. Чудовою можливістю функції solve є можливість вирішення щодо обмеженого числа змінних. Наприклад, систему лінійних рівнянь із змінними х, у, z, t і v можна вирішити відносно тільки перших трьох змінних х, у і z. При цьому рішення будуть функціями щодо змінних t і v і можна побудувати наочний графік вирішення (рис. 13.64).
На рис. 13.64 система задана п'ятьма равенствами: е1, е2, ЕЗ, є4 і Е5. Потім функцією solve отримано спочатку рішення для всіх змінних (для ілюстрації), а потім для трьох змінних х, у і z. Для отримання рішення у вигляді списку, а не безлічі, як у першому випадку для всіх змінних, використана функція підстановки subs. Після цього функція plot3d будує площину рішення в просторі.
13.11.2. Графічна візуалізація рішення системи нерівностей
Мабуть, ще більш корисним і наочним є візуалізація рішення системи рівнянь у вигляді нерівностей. У пакеті розширення plots є спеціальна графічна функція inequal, яка будує всі граничні лінії нерівностей і дозволяє розфарбувати розділені ними області різними кольорами:
inequal (ineqs, xspec, yspec, options).
Параметри цієї функції: ineqs - одне або більше нерівність чи рівність або список нерівностей або рівностей, xspec - xvar == min_x .. max_x, yspec - yvar = min_y .. max_y і о - необов'язкові опції, наприклад вказують на кольори ліній, що представляють нерівності або рівності, і областей, утворених цими лініями і кордонами графіка. Приклад застосування цієї функції представлений на рис. 13.65.
Зверніть увагу на завдання опцій квітів: optionsfasfeasibly задає колір внутрішньої області, для якої задовольняються всі нерівності (рівності), optionsopen і optionsclose задають кольори відкритих і закритих областей графіка, optionsexcluded для кольору зовнішніх областей. Графік дає вельми наочну інтерпретацію дії ряду нерівностей (або рівностей).
13.11.3. Конформні відображення на комплексній площині
Обсяг даної книги не дозволяє пояснити настільки тонке поняття, як конформні відображення на комплексній площині. Обмежимося лише вказівкою на те, що в пакеті plots є функція для таких відображень:
conformal (F, rl, г2, о);
де F - комплексна процедура або вираз, rl, r2 - області, що задаються у вигляді а .. Ь або name = a.. b, о - опції. Таким чином, для побудови потрібного графіка досить задати потрібний вираз і області зміни rl і г2. Приклад побудови конформних зображень для трьох вираженні даний на рис. 13.66.
У даному випадку всі три графіки побудовані в окремих вікнах.
Рис. 13.65. Приклад графічної інтерпретації рішення системи нерівностей.
Рис. 13.66. Конформне відображення на комплексній площині графіків трьох залежностей.
13.11.4. Графічне представлення вмісту матриці
Багато обчислення мають результати, представлені у формі матриць. Іноді такі результати можна наочно уявити графічно, наприклад, у вигляді столбиковой діаграми. Вона являє собою безліч стовпчиків квадратного перетину, розташованих на площині, утвореної осями рядків (row) і стовпців (column) матриці. При цьому висота стовпців визначається вмістом комірок матриці.
Така побудова забезпечує графічна функція matrixplot з пакету розширення plots. На рис. 13.67 показано спільне застосування цієї функції з двома функціями пакета linalg, що формують дві досить екзотичні матриці А і В.
Рис. 13. 67. Графічне представлення матриці
На рис. 13.67 показана графічна візуалізація матриці, отриманої як різниця матриць А і В. Для посилення ефекту сприйняття застосовується колірна функціональна зафарбування. Для завдання кольору введена процедура F.
13.11.5. Візуалізація Ньютонови ітерацій
Тепер займемося досить ризикованим експериментом - спостереженням Ньютонови ітерацій з їх поданням на комплексній площині. На рис. 13.68 задана функція f (z) комплексного аргументу. Для цього використовується ітераційне вираз. Простежити за поведінкою функції на комплексній площині дозволяє графічна функція complexplot3d з пакету plots.
Спостерігається картина вельми незвичайна і свідчить про далеко не простому ході ітераційного процесу. Ризик роботи з цим прикладом полягає в тому, що іноді він веде до фатальних помилок, які ведуть до припинення роботи з системою. Зазвичай при пуску цього прикладу відразу після завантаження системи Maple V такого не відбувається, але коли пам'ять завантажена іншими прикладами, збій
цілком можливий. Рекомендується записувати подібні приклади на диск перед ік запуском. •
Рис. 13.68. Спостереження за процесом Ньютонови ітерації в ЗО-просторі.
13.11.6. Візуалізація коренів випадкових поліномів
Поряд з традиційною для математичних і статистичних комп'ютерних систем можливістю генерації випадкових чисел, Maple V надає досить «екзотичну» можливість генерації випадкових поліномів з високою максимальною ступенем. Для цього використовується функція:
ranpoly (var, o)
Вона повертає випадковий поліном змінної var, причому максимальний ступінь полінома птах може вказуватися опцією про виду degree = nmax.
Наведемо приклад генерації випадкового полінома з максимальним ступенем 50:
Оскільки отриманий поліном випадковий, то вам не вдасться повторити його генерацію - кожен запуск randpoly дає новий поліном. Так що важливо зрозуміти в принципі здійснювані далі дії. Перш за все знайдемо список коренів полінома S:
У цьому прикладі зверніть увагу на число нулів на початку списку - їх треба виключати з подальших обчислень. Це, та отримання коренів у вигляді звичайних
комплексних чисел, робиться за допомогою функції allvalues, в якій в якості
параметра треба використовувати S [5]. Нижче показано створення списку SA коренів отриманого вище полінома:
> SA: = [S [1], S [2], S [3], S [4], allvalues (S [5])];
ЗА: = [0, 0, 0, 0, -1.010550161 - .1475724933 I,
-1.010550161 + .1475724933 I, -. 9465649833,
-. 9003773676 - .5534775311, -. 9003773676 + .5534775311,
-. 8562982808 - .3789548397, -. 8562982808 + .3789548397,
-. 7320300364 - .6478720727, -. 7320300364 + .6478720727,
-. 5900687567 - .7989860949, -. 5900687567 + .7989860949.
-. 3987161272-.8962702262, -. 3987161272 + .8962702262,
-. 3642724499-.9481481280, -. 3642724499 + .9481481280,
-. 02839255705 - .9363196855 I, -. 02839255705 + .9363196855 I, .05710128939 -1.018443049 I, .05710128939 + 1.018443049 I, .2868399179 -. 9808645873, .2868399179 + .9808645873, .4149289767 -. 8396518590, .4149289767 +. 8396518590, .6775641178 -. 8099749786, .6775641178 + .8099749786, .6864940076 - .6957907203, .6864940076 + .6957907203, .8450577013 -. 4872509104, .8450577013 + .4872509104, .9089753119 -. 3749374155, .9089753119 + .3749374155, .9157897832, 1.019132014 - .2114677899 I, 1.019132014 + .21146778991]
Нагадуємо, що ці корені також є випадковими. Тепер можна побудувати комплексні корені отриманого випадкового полінома у вигляді точок на комплексній площині:
> With (plots): complexplot (SA, x ~ 1.2 .. 1.2, style = point);
Цей графік показаний на рис. 13.69.
Рис. 13.69. Розташування коренів випадкового полінома на комплексній площині.
Можна помітити цікаву закономірність - точки, що представляють коріння випадкового полінома укладаються поблизу окружності одиничного радіуса з центром в початку координат. Чи є це дійсно властивістю випадкових поліномів чи справа у специфіці їх генерації засобами Maple V - для більшості з нас неясно. Однак цей приклад, наведений в більшості книг по Maple V, показує, що часом обчислення можуть давати досить несподіваний-
ні результати. До речі кажучи, аналітично можна обчислювати корені полінома з максимальною ступенем не більше чотирьох.
Наведені приклади дають досить наочне уявлення про великі можливості візуалізації рішень самих різних завдань в системі Maple V. Можна значно підвищити її, ефектно використовуючи описані раніше прийоми анімації (оживлення) зображень. У цілому треба відзначити, що графічні можливості Maple V дають новий рівень якості графіки сучасних математичних систем, про який з десяток років тому можна було тільки мріяти.
13.11.7. Анімація розкладання імпульсу в ряд Фур'є
Анімація (пожвавлення) зображень є одним з найбільш потужних засобів візуалізації результатів моделювання тих чи інших залежностей або явищ. Часом зміна в часі одного з параметрів залежності дає наочне уявлення про його суть.
Тут ми розширимо уявлення про анімацію і розглянемо не цілком звичайний приклад, описаний в [38], - спостереження за синтезом імпульсного сигналу, розкладеного в ряд Фур'є з числом гармонік N. На рис. 13.70 представлений документ, який реалізує таке розкладання і синтез для числа гармонік О, 1, 2 ,..., N.
Рис. 13.70. Перший стоп-кадр анімації розкладання імпульсу в ряд Фур'є.
Треба думати, що читач вже може розібратися в деталях завдання прямокутного імпульсу - меандру за допомогою функції Хевісайда (Heaveside) і його синтезу за допомогою ряду Фур'є. Відповідні і досить прості вирази представлені на рис. 13.70.
Неважко помітити, що при виділенні малюнка рамкою з'являється анімаційних-ний програвач, який дозволяє запустити анімацію. Стоп-кадр на наведеному малюнку відповідає початку анімації.
поверхні cos (t * x * y / 3), представленої функцією трьох змінних t, x та у. При цьому зміна першої змінної створює фази поверхні.
Рис. 13.72. Ілюстрація отримання всіх фаз анімації 20-графіка.
Рис. 13.73. Анімація ЗО-поверхні.
Застосування анімації дає підвищений ступінь візуалізації рішень низки завдань, пов'язаних з побудовою двох-і тривимірних графіків. Слід зазначити, що анімаційні графіки для побудов вимагають додаткових і достатній-
але суттєвих витрат оперативної пам'яті. Тому зловживати числом стоп-кадрів таких графіків можна.
Рис. 13.74. Фази анімації ЗО-поверхні.
Глава 14. Математична система Maple V R5
14.1. Комплект поставки і установка системи
До моменту завершення рукопису даної книги новітня версія Maple V R5 з'явилася в комерційному варіанті, але на Internet-сторінці фірми Waterloo Maple по ній були приведені суворо дозовані дані. Очевидно, фірма поки побоювалася бурхливої реклами нового продукту - приклад цілком гідний наслідування, оскільки несвоєчасне опис програмного продукту, що проходить стадію, апробації загрожує серйозними помилками. Багато хто з нас стикався з цим - «поспішиш, людей насмішиш».
Тим не менш фірма Waterloo Maple no першому ж проханні автора надала йому нову реалізацію свого програмного продукту. Завдяки цьому з'явилася можливість познайомити читача з основними особливостями новітньої реалізації Maple V R5 ще до того, як Maple V R4 зійшла застаріла. Важливо відзначити, що ця реалізація R5 поки не реалізована на всіх платформах - наприклад, для ПК класу Macintosh поки останньої залишається реалізація R4.
У цій главі ви познайомитеся з основними достоїнствами нової реалізації і її відмінностями від попередньої. Тут доречно ще раз звернути увагу читача, що весь матеріал глав 2 - 13 в рівній мірі відноситься як до реалізацій R3 і R4, так і R5.
Перш за все відзначимо, що нова реалізація (Maple V R5) поставляється на двох CD-ROM (але в одній упаковці). У комплект поставки входять дві об'ємні книги - підручник по роботі з системою [37] і допомога по програмуванню [38]. Крім того, поставляються документи по реєстрації системи і брошура з переліком книг, виданих за системою Maple V за кордоном.
На першому CD-ROM розміщена власне система, а на іншому - бібліотека розширення SHARE. Вони встановлюються окремо - спочатку система, а потім бібліотека. Ніяких проблем з інсталяцією Maple V R5 в середовищі Windows 95 OSR 2 у автора не виникло. Треба лише врахувати, що для установки нової версії на жорсткому диску необхідно вільний простір близько 80 Мбайт. Після закінчення інсталяції в меню програм з'являється група, присвячена встановленій системі. Вона показана на рис. 14.1.
При запуску системи (позиція меню Maple V Release 5) спочатку з'являється тимчасове титульне вікно з короткими даними про систему та терміни її розробки. Це вікно на тлі робочого столу Windows 95 представлено на рис. 14.2. Неважко помітити, що випуск даної версії системи датований листопадом 1997 року, таким чином, ми описуємо програмний продукт, тільки-тільки з'явився на ринку (ці слова пишуться на початку квітня 1998 року).
Вид екрану при роботі з системою Maple V R5 із завантаженим демонстраційним документом зображений на рис. 14.3. З першого погляду він майже нічим не відрізняється від екрану, який видно при роботі з реалізацією R4. Хіба що можна відзначити
нову позицію Sdivadsheets в головному меню, та й ту поки видну в характерному «тумані» (тобто в даний момент недоступну).
Рис. 14.1. Папка з компонентами Maple V R5 на робочому столі Windows 95 OSR 2.
Рис. 14.2. Тимчасове титульне вікно системи на робочому столі Windows 95 OSR 2.
У цілому треба сказати, що нічого революційного в новій версії немає і її основні можливості цілком відповідають описаним раніше в розділах 1 - 13. Тим не менш ряд нових можливостей, природно, є, і ми зупинимося на їх описі нижче. Слід звернути увагу на те, що деякі з нових можливостей (електронні таблиці, перенесення об'єктів і трансформація графи-
А от замість знака "(лапки) для завдання еволюції попереднього виразу в Maple V R5 використовується знак% (відсоток). Можна застосовувати до трьох таких знаків. Ця тонкість в перший момент збиває з пантелику користувачів колишніх версій Maple V, але до цього швидко звикаєш .
Істотно підвищилася роль управління системою за допомогою миші. Тепер, як у всіх пристойних Windows-додатках, її права клавіша при натисненні виводить контекстно-залежне меню, що містить доступні на контекст операції (вони будуть розглянуті більш докладно нижче). Це дозволяє реалізувати метод роботи «ввів вираз - натиснув кнопку - отримав результат». Зокрема, можна виконати відразу доступні для заданого виразу символьні перетворення, швидко побудувати графік функції з титульними написами і т.д.
Реалізований у Maple V R5 і принцип «Drag and Drop» (Тягни і Відпускай). Для виділеного об'єкта, натиснувши ліву клавішу миші і утримуючи її натиснутою, можна перетягнути об'єкт на нове місце, наприклад на інший рядок в даному або в іншому документі (за умови, що вікна документів розгорнуті й видно одночасно на екрані). Для установки об'єкта на нове місце досить відпустити ліву кнопку миші. Таким чином, забезпечується механізм об'єктної зв'язку, відомий, як OLE 2. У процесі перетягування маркер миші перетворюється на жирну окружність, перекреслену символом у вихідному блоці, чи у звичайний курсор миші з туманним прямокутником біля основи при переході в інший блок (куди об'єкт переноситься).
Якщо ви хочете, перетягуючи об'єкт, залишити його і на колишньому місці, то робіть це при натиснутій клавіші Ctrl. У цьому випадку до згаданого туманному прямокутника додається позначення у вигляді маленького хрестика. Зауважимо, що об'єктом можуть бути не тільки цілі висловлювання, але і їх частини або навіть групи об'єктів - словом, все, що може бути виділено.
14.3. Робота з електронними таблицями
Одне з важливих відмінностей Maple V R5 від попередніх версій - це можливість роботи з електронними таблицями. Для завдання електронних таблиць в головному меню в позиції Insert з'явилася операція Sdivadsheets (вставка шаблону електронної таблиці). При виконанні цієї операції з'являється типовий шаблон таблиці (мал. 14.4).
Неважко помітити, що вид електронної таблиці цілком відповідає типовому для сучасних програм класу табличних процесорів, наприклад Exel з пакету Microsoft Office. Таким чином, відбулося зближення математичної системи Maple V з ще одним важливим класом програм.
Як завжди, в осередки таблиць можуть вводитися числові денние (рис. 14.4). Осередки характеризуються своєю адресою - буквою стовпця і номером рядка. Усередині таблиці курсор миші перетворюється на великий хрест і його можна використовувати для визначення потрібної клітинки і фіксації в ній введення. При цьому введення даних у виділену клітинку проводиться їх набором у спеціальній інструментальної рядку для роботи з таблицями (поле введення займає цбольшую частина цієї панелі). Натиснувши праву клавішу миші, можна вивести контекстно-залежне меню з низкою операцій, доступних для заданої комірки.
Рис. 14.4. Шаблон таблиці.
Для роботи з таблицями в головному меню Maple V R5 з'явилася окрема позиція Sdivadsheets (рис. 14.5). Вона містить набір операцій, які забезпечують роботу з табличними даними.
Рис. 14.5. Вид екрану Maple V R5 з відкритою позицією Sdivadsheets головного меню.
Як видно з рис. 14.5, до складу цієї позиції входять наступні операції:
Evaluate Selection | Еволюція вираження у виділеній клітинці. |
Evaluate Sdivadsheet | Еволюція висловів за всіх клітинок таблиці. |
Row | Робота з рядками (вставка, видалення і т.д.). |
Column | Робота зі стовпцями (вставка, видалення і т.д.). |
Fill | Заповнення комірок (у тому числі автоматичне в заданому напрямку). |
Properties | Перегляд властивостей клітинок. |
Show Border | Включення або виключення показу обрамлення таблиці. |
Resize to Grid | Виділення таблиці для зміни її розмірів. | |
Можливості Maple V R5 в обробці табличних даних набагато перевершують загальновідомі з досвіду роботи з звичайними табличними процесорами. Останні ми не будемо розглядати, тому що по них є багато літератури і зацікавлений користувач легко розбереться з відповідними можливостями Maple V R5. Відзначимо лише принципово нові можливості - роботи з символьними даними в елементах таблиці. Це ілюструється рис. 14.6.
Рис. 14.6. Робота з символьними даними в електронній таблиці.
Таблиця на рис. 14.6 містить три стовпці: з вихідними виразами, записом інертної форми інтеграла, в підінтегральної функції якого входить вихідне вираз і експонентний множник і виконувана запис інтеграла. Зверніть увагу на запис інтеграла в рядку введення і в самій таблиці.
Наприклад, для запису інертної форми інтеграла в рядок введення треба ввести такий запис:
Int (exp (x) * 'A5, x).
Це означає завдання виведення інтеграла з подинтегральной функцією у вигляді е "х, помноженої на вміст комірки А5, причому А - положення стовпця, а 5 - номер рядка. Таким чином, А5 є адреса клітинки, з якої (вказано символом ~) вибирається заданий вираз . Виконавши команду еволюції для цього осередку (чи для всієї таблиці), можна отримати вирази в наступних двох позиціях праворуч від вибраної клітинки.
14.4. Використання палітр математичних символів
Окремі палітри введення (або складальні панелі), що виводяться в будь-яке місце екрана за бажанням користувача, були введені в ряд сучасних математичних систем (наприклад, MathCAD 6.0/7.0 і Mathematica 3) і показали себе вельми зручними засобами для користувача інтерфейсу, що дозволяють вводити спеціальні знаки і символи (шаблони операцій) простим їхньою вказівкою курсором миші і натисканням її лівої кнопки. Тепер такі палітри придбала і система Maple V R5 (рис. 14.7).
Рис. 14.7. Робота з палітрами математичних символів і операції.
На жаль, заповнення шаблонів в операторах, обраних за допомогою палітр, константами й іменами змінних, все ж таки доводиться виконувати в полі введення, підтверджуючи їх введення натисканням клавіші Enter. Та й набір символів у палітрах обмежений, а самі вони виглядають дрібнувато навіть при стандартній роздільній здатності дисплея 640х480 пікселів. На рис. 14.8 показана окремо палітра введення математичних символів і операторів.
Рис. 14.8. Палітра введення математичних символів і операторів.
На рис. 14.9 показана ще одна палітра - на цей раз для введення великих і малих грецьких літер. Вона помітно полегшує введення таких літер, широко використовуваних для позначенні математичних констант і змінних. Раніше для введення грецьких літер доводилося застосовувати спеціальні комбінації клавіш, а в реалізації R5 тепер досить просто вказати потрібну букву курсором миші і клацнути її лівою клавішею.
Рис. 14.9. Палітра грецьких літер.
Є також палітра введення матриць. Вона показана на рис. 14.10. З її допомогою можна швидко вводити шаблони матриць різного розміру - від одного до шістнадцяти елементів в матриці. Можливо завдання також векторів різного типу - в рядок і в стовпець.
Рис. 14.10. Палітра введення шаблонів матриць.
Зручність застосування палітр пов'язано з тим, що їх можна помістити в будь-якому (зазвичай найбільш зручному) місці документа і вводити відповідні математичні знаки, символи або шаблони простими та зручними засобами (за допомогою миші). У верхньому лівому куті кожної палітри є єдина невелика кнопка зі знаком «-» у прямокутнику. Вона служить для закриття палітри після того, як відпала необхідність вводити наявні в її складі знаки. Закривати невикористані палітри доцільно, оскільки вони займають місце у вікні документа і можуть заважати його огляду.
Отже, можна зробити висновок, що альянс розробників MathCAD (фірма MathSoft Inc.) З фірмою Waterloo Maple для останньої виявився плідним - крім включення ядра Maple V в нові версії систем класу MathCAD, в нову реалізацію Maple V R5 були включені палітри для багатьох математичних символів і операцій.
14.5. Трансформація графіків у реальному масштабі часу
У Maple V R5 введена нова і безумовно важлива можливість - трансформація ЗО-графіків у реальному масштабі часу. У колишніх версіях виділений
графік замінювався параллелограммом, який можна було обертати мишею. Однак сам графік на час трансформації просто зникав і для його розбудови треба було запускати піктограму з буквою R (Redraw). Процес перебудови графіка навіть на досить продуктивних ПК (класу Pentium 200) йшов кілька секунд.
Схоже, розробникам нової реалізації системи вдалося істотно прискорити алгоритми перебудови ЗО-графіків, що дозволило реалізувати обертання фігур в просторі в реальному масштабі часу. Рис. 14.11 показує, як це відбувається.
Рис. 14.11. Трансформація SD-графіка в реальному масштабі часу.
Хоча деяка інерційність процесу перебудови помітна навіть при роботі на ПК з процесором Pentium 200 ММХ і з ОЗУ 32 МБ, відчуття від реального повороту фігури залишається цілком виразним. Ця можливість дозволяє швидко знайти оптимальний кут зору на фігуру, при якій її особливості, наприклад піки та западини, виявляються найбільш повною мірою. Помітно істотне поліпшення та алгоритму побудови ліній перетину складних фігур у просторі. Наочна і ефектна функціональна забарвлення фігур виконується тепер за замовчуванням.
На жаль, при використанні створених раніше в реалізації R4 складних графічних об'єктів (у вигляді декількох компонентів) цей алгоритм іноді дає збої. Приклад такого випадку показано на рис. 14.12. У даному випадку тор обертається сам по собі, в результаті обмотки виявляються не на ньому, а де-то в стороні.
Можливо, що це викликано саме тим, що вихідний документ готувався у попередній реалізації системи. До речі, при спробі завантаження файлу від попередньої реалізації системи виводиться вікно з попереджуючим написом і пропонує перетворити файл у формат, властивий нової реалізації. Це вікно показано на рис. 14.13.
Рис. 14.12. Збої трансформації складного ЗО-об'єкта.
Дайте відповідь «Так», якщо ви маєте намір перетворити файл, і «Ні» при відмові від цієї операції. У цілому можна вважати, що Maple V R5 цілком забезпечує сумісність файлів документів з попередньою версією системи.
Рис. 14.13. Вікно, що повідомляє про завантаження файлу попередньої реалізації і необхідності його перетворення.
14.6. Контекстно-залежне меню операцій
Прихильників легкої роботи з системою (сподіваємося, що і ви, читачу, ставитеся до таких) порадує ще одна, хоча і не принципова, але дуже корисна можливість - контекстно-залежне меню операцій (у тому числі математичних). Вона реалізується натисканням правої клавіші миші при вказівці маркером миші заданого об'єкта.
На рис. 14.14 показаний екран системи і контекстно-залежне меню, що відноситься до введеного висловом sin (x) / x, що знаходиться в рядку виводу. При цьому меню дає перелік операцій, які можна робити з цим виразом - наприклад, диференціювати, інтегрувати, будувати графік і т.д.
Рис. 14.14. Контекстно-залежне меню для математичних вираженні.
Якщо маркер миші стоїть у рядку введення, то з'являється меню, що представляє основні операції по роботі з текстами. Вікно цього меню показано на рис. 14.15. Запроваджувані ним операції не потребують особливих коментарів.
Рис. 14.15. Меню для роботи з текстами
Застосування контекстно-залежних меню полегшує роботу з системою і робить її схожою на роботу в середовищі сучасних програмних засобів під Windows 95. В цілому воно реалізує принцип «ввів вираз - натиснув кнопку - отримав результат».
14.7. Швидка побудова графіків
Швидка побудова 2D-і ЗО-графіків - ще одна приємна «дрібниця» нової реалізації Maple V R4, полегшує візуалізацію обчислень. Її теж можна реалізувати за допомогою контекстно-залежного меню. Досить викликати його для обраного виразу, як за допомогою операції Plot можна побудувати графік. При цьому система Maple V R5 сама визначає (по виду вираження), який же графік треба будувати.
Рис. 14.16 показує швидку побудову графіка функції sin (x) / x зазначеним способом. При цьому вам навіть не треба пам'ятати, якою функцією забезпечується побудова графіка. Надалі оформлення графіка можна змінити операціями форматування.
Рис. 14.16. Швидка побудова 20-графіка функції однієї змінної.
До речі кажучи, в позиції головного меню Options з'явилася нова операція Print Quality - якість друку (мал. 14.16). Вона дозволяє вибрати три ступені якості друку: High (вища). Normal (нормальне) і Draft (чорнове).
Настільки ж просто йде справа з побудовою інших графіків. Так, на рис. 14.17 представлено побудова ЗО-графіка функції двох змінних - sin (x * y / 5). При цьому можна скористатися описаним раніше прийомом - трансформацією графіка в реальному масштабі часу для отримання найвищої виразності графіка.
Maple V R5 має ряд додаткових функцій для такого роду побудов. Дві з них видно на рис. 14.16 і 14.17. Це функції smartplot і smartplot3d. З іншими можна ознайомитися за допомогою довідкової системи.
Рис. 14.17. Швидка побудова SD-графіка функції двох змінних.
14.8. Розширюване меню довідкової системи
Вже зазначалося, що довідкова система реалізації R5 знову набула характеру розширюваного тематичного пошуку, реалізованого за допомогою меню, що містить до п'яти рівнів пошуку. Це добре видно при перегляді рис. 14.18, на якому показано сеанс роботи з довідковою системою.
Рис. 14.18. Робота з довідковою системою Maple V R5.
Maple V R5 має також навчальну систему і довідку за новим можливостям. Вони реалізовані аналогічно основний довідці. Опис всіх довідкових компонентів дано англійською мовою, але воно настільки лаконічно,
що багато деталей опису цілком зрозумілі навіть для користувачів, що мають початкові і середні рівні володіння англійською мовою.
14.9. Підготовка HTML-файлів для передачі по мережі Internet
Мабуть, одним з найважливіших відмінностей реалізації R5 стала можливість підготовки в ній повноцінних HTML-файлів, які можна передавати по мережі Internet. Maple V і раніше дозволяв використовувати у своїх документах гіперпосилання, які є основою формату файлів HTML. Однак кошти запису (експорту) файлів у цьому форматі з'явилися лише в реалізації Maple V R5.
Для підготовки HTML-файлів спочатку в середовищі Maple V R5 готується звичайний документ. Потім для запису його використовується операція Export As ... (Рис. 14. 19). У підменю, що треба вибрати позицію HTML.
Рис. 14.19. Підготовка до запису документа у форматі HTML.
Після вибору зазначеної позиції з'являється вікно для вибору місця запису файлу (диску, папки) і завдання імені файлу. Виконавши ці операції, треба активізувати кнопку ОК у вікні (рис. 14.20).
У процесі запису HTML файлів Maple переводить малюнки у формат GIF з 256 квітами. Текст файлів (включаючи математичні вирази) перетворюється у формати, що застосовуються у мові HTML опису файлів для мережі Internet. Зауважимо, що цей формат підтримує деякі з можливостей Maple-документів, такі, як гіпертекстові посилання і вказівки на взаємне розташування різних об'єктів документів.
На рис. 14.20 показаний вигляд створеного таким чином документа у вікні одного з найпоширеніших Internet-браузерів - Microsoft Internet Explorer. Неважко помітити, що всі елементи документа відтворюються нормально без спотворень і порушень взаємного розташування.
Якщо документ містить гіперпосилання або має так звану електронну форму (з заголовками в окремому вікні), то ці елементи зберігаються і формуються електронні заголовки документа. При відсутності заголовків у цьому вікні відображається ім'я файлу. Підготовка документів у форматі HTML значно розширює можливості обміну документами з мережі Internet і організації спільної роботи над складними математичними проектами.
Рис. 14.20. Вікно для зазначення місця запису та імені файлу.
Рис. 14.21. Вид Maple-документа у вікні браузера Microsoft Internet Explorer.
14.10. Інтеграція з системою MatLAB 5.0
Багатьом користувачам математичних систем добре знайома інтерактивна система MatLAB фірми MathWorks, Inc. (США, м. Нейтік, штат Массачусетс) [13,14,36]. Її назва походить від слів Matrix Laboratory - матрична лабораторія. За багато років свого розвитку ця система стала світовим лідером серед систем, орієнтованих на чисельні розрахунки, які вона виконує помітно швидше багатьох інших систем. Нова версія MatLAB 5.0 це шедевр обчислювальної математики. Вона має величезне число шанувальників у всьому світі, незважаючи на те, що її вартість (у варіанті під Windows) наближається до трьох тисяч доларів!
Було б нерозумно намагатися обійти цю потужну систему в частині ефективності виконання чисельних розрахунків - особливо матричних. Тому розробники ряду інших математичних систем обрали більш тонкий і розумний шлях - інтеграції з MatLAB.Так і система Maple V R5 автоматично інтегрується з MatLAB 5.0 при встановленні обох систем на ваш ПК.
Maple V R5 має досить велике число функцій системи MatLAB 5.0, які викликаються як бібліотечні функції пакету matlab. Після цього вони стають доступними для застосування в документах Maple V R5 - спільно з наявними в останній системі функціями.
14.11. Internet-сторінка фірми Waterloo Maple
Internet - глобальна мережа світового значення, своєї електронної павутиною WWW (World Wide Web) охопила всю земну кулю. По суті це сукупність величезної кількості комп'ютерних мереж, робота в яких відбувається за спеціальними узгодженим протоколах, що забезпечує високу ймовірність передачі інформації кінцевому абоненту при виході з ладу багатьох гілок зв'язку. Для підключення до мережі Internet власник сучасного ПК повинен встановити на ньому модем і через нього підключитися до звичайної телефонної мережі. Це робиться за допомогою організації - провайдера, що надає за певну плату послуги Internet. Для огляду мережі Internet і організації зв'язку (наприклад, електронної пошти E-mail) служать спеціальні програми - брадж-рiзнi браузери, приклади роботи з якими вже наводилися.
Отримавши доступ до Internet користувач долучається до величезного океану різноманітної інформації. Вона зазвичай має вигляд гіпертекстових сторінок (сайтів). Кожна сторінка має свою унікальну адресу. Тут ми коротко розглянемо лише сторінку фірми Waterloo Maple - розробника систем класу Maple V. На рис. 14.22 показана так звана домашня сторінка цієї маститої фірми. Зверніть увагу, що в рядку адреси браузера Microsoft Internet Explorer 4.0 (до речі іменованого вже браузером) вказана адреса цієї сторінки.
Ця сторінка дає доступ до іншим підлеглим їй сторінкам, наприклад безкоштовного програмного забезпечення (Download), серійних продуктів (Products), повідомлень преси (Press), відомості про корпорацію Maple Software (Corporate), даних про книжки по системі (Library) і ін Ці сторінки несуть величезний об'єм інформації - наприклад, у сторінці Library можна знайти дані і анотації по сотнях книг за системою Maple V, виданих за кордоном і розбитим на ряд розділів (математика, фізика, електротехніка, механіка, астрономія і
т.д.). На рис. 14.23 показаний результат пошуку інформації про систему Maple V R5 на сторінці Products (продукти).
Рис. 14.22. Домашня сторінка фірми Maple Software.
Рис. 14.23. Початок розділу з даними про новітню реалізації системи Maple V R5.
Багатьох користувачів (особливо наших) особливо зацікавить розділ з назвою Download. Він відкриває доступ до так званого файлового сервера FTP, за якого можна цілком легально (а головне безкоштовно!) Переписати найрізноманітніше програмне забезпечення: демонстраційні та робочі версії різних програмних продуктів, бібліотеки їх розширення, інструментали-
засоби для налагодження та багато іншого. На рис. 14.24 представлена одна з сторінок FTP сервера фірми Maple.
Рис. 14.24. Одна зі сторінок FTP-сервера фірми Maple Software.
Унизу цієї сторінки, до речі, добре видно пропозицію про копіювання Maple V R4, що займає в упакованому вигляді 2348 Кбайт. Ми звертаємо увагу на це у зв'язку з тим, що (на жаль) далеко не всяка електронна пошта в Internet здатна «перекачати» на жорсткий диск ПК файл такого розміру. Та й час «перекачування» сягає близько години навіть при цілком пристойному модемі. Сам процес перекачування дуже наочний і зображений на рис. 14.25. Файл, який перекачується на диск, асоціюється з листком паперу, що перелітають з папки в FTP-сервсрс в папку на жорсткому диску ПК.
Рис. 14.25. Ілюстрація перекачування файлу з FTP-сервера на жорсткий диск ПК.
Сторінки фірми Maple містять адреси електронної пошти як самої фірми, так і співпрацюють з нею фірм і навіть окремих осіб. Так що ви, маючи доступ в Internet, можете налагодити корисні зв'язки із зарубіжними прихильниками системи Maple V і приступити до спільного виконання цікавих і корисних проектів.
На сторінках фірми можна знайти останні новини про модернізацію випущених програмних продуктів та про розробку нових, дані про проведені семінарах та інших заходах. Можна навіть знайти пропозиції про роботу на фірмі в якості розробника програмних продуктів або менеджера по їх реалізації.