Реферати українською » Информатика, программирование » Основи графічної візуалізації обчислень


Реферат Основи графічної візуалізації обчислень

Страница 1 из 2 | Следующая страница

Основи графічної візуалізації обчислень

 


Особливості графіки системиMATLAB

 

· Побудова графіка функцій однієї перемінної

· Побудова графіків точками і відрізками прямих

· Графіки влогарифмическом іполулогарифмическом масштабі

·Гистограмми і діаграми

· Графіки спеціальних типів

· Створення масивів даних для тривимірної графіки

· Побудова графіків тривимірних поверхонь, перетинів і контурів

· Засоби управління підсвічуванням і оглядом постатей

· Кошти оформлення графіків

· Одночасний висновок кількох графіків

· Управління колірної палітрою

· Забарвлення тривимірних поверхонь

·Двумерние і тривимірні графічні об'єкти

 

Основні відмінності графікиMATLAB

 

· істотно поліпшений інтерфейс графічних вікон;

· запровадження нової панелі інструментів Camera для інтерактивного зміни умов видимості об'єкта;

· розширені можливості форматування графіки;

· можливість створення графіки окремими вікнах;

· можливість виведення кількох графічних вікон;

· можливість переміщення вікон екраном та їх розмірів;

· можливість переміщення області графіки всередині графічного вікна;

· завдання різних координатних систем і осей;

· високу якість графіки;

· широкі можливості використання кольору;

· легкість установки графічних ознак - атрибутів;

· зняття обмежень на число квітів;

· безліч параметрів команд графіки;

· можливість отримання природновиглядящих тривимірних лідерів та їх поєднань;

· простота побудови тривимірних графіків зі своїми проекцією на площину;

· можливість побудови перетинів тривимірних лідерів та поверхонь площинами;

· функціональна різнокольорова й напівтонова забарвлення;

· можливість імітації світлових ефектів при висвітленні постатей точковим джерелом світла;

· можливість створення анімаційної графіки;

· можливість створення об'єктів для типового інтерфейсу користувача.

 

Побудова графіка функцій однієї перемінної

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


Розглянемо найпростіший приклад - побудова графіка синусоїди.MATLAB будує графіки функцій за низкою точок, поєднуючи відрізками прямих, т. е. здійснюючи лінійну інтерполяцію функції в інтервалі між суміжними точками. Поставимо інтервал зміни аргументу x від 0 до 10 з кроком 0.1. Для побудови графіка досить спочатку поставити векторх=0:0.1:10, та був використовувати команду побудови графіківplot (>sin(x)).

Вектор x задає інтервал зміни незалежної перемінної від 0 до 10 з кроком 0.1. Функціяplot будує правдивий графік функціїsin(x), а лише заданий числом елементів вектора x число точок. Ці точки потім просто з'єднуються відрізками прямих, т. е. здійснюєтьсякусочно-линейная інтерполяція даних графіка. При 100 точках отримана крива оком сприймається як цілком плавна, але за 10 - 20 точках вона виглядати що з відрізків прямих.

>MATLAB будує графіки окремими вікнах, званих графічними вікнами. У головному меню вікна команди пункту менюTools (Інструменти), дозволяють вивести чи приховати інструментальну панель. Кошти цієї панелі дозволяють легко управляти параметрами графіків і наносити ними текстові коментарі будь-де.

 

Побудова щодо одного вікні графіків кількох функцій

Побудуємо графіки відразу трьохфункций:sin(x),cos(x) іsin(x)/х. Насамперед, відзначимо, що це функції може бути є такі перемінними, які мають явного вказівки аргументу як у (x):

>>>y1=sin(x);y2=cos(x);y3=sin(x)/x;

Таку можливість йому зумовлена тим, що це перемінні є векторами - як і змінна x. Нині можна використовувати жодну з низки форм команди

>plot:plot(a1,f1,a2,f2,a3,f3,...).

деa1,a2,a3,…- вектори аргументів функцій, аf1,f2,f3,... - вектори значень функцій, графіки яких будуються щодо одного вікні. У нашому випадку для побудови графіків зазначених функцій ми повинні записати таке:

>>plot (x,y1, x,y2, x,y3)

Очікується, щоMATLAB у разі побудує, звісно ж, точки графіків цих функцій і з'єднає їх відрізками ліній. Але, коли ми виконаємо ці команди, то ніякого графіка не одержимо взагалі. Можливий навіть збій у роботі програми. Причина цього казусу виникне при обчисленні функціїy3=sin(x)/x, якщо x є масив (вектор), не можна використовувати оператор матричного розподілу /.

Щоб самому отримати графік, треба обраховувати ставленняsin(x) до x з допомогою оператора поелементного розподілу масивів ./.

>>>y1=sin(x);y2=cos(x);y3=sin(x)./x;

>Warning:Dividebyzero.

(>Type ">warning offMATLAB:divideByZero" tosuppressthiswarning.)

>>plot(x,y1,x,y2,x,y3)

>MATLAB побудував графіки всіх трьох функцій, але у вікні командного режиму з'явилося попередження про розподіл на 0 - в останній момент, колих=0. Це засвідчує тому, щоplot «не знає» у тому, що невизначеністьsin(x)/x=0/0 подолати і дає 1. Це недолік практично всіх систем для про чисельні обчислень.

 

Графічна функція >fplot

>MATLAB має кошти на побудови графіків і такі функцій, якsin(x)/x, які мають переборні невизначеності. Це потрібно, з допомогою інший графічної команди –

>fplot:fplot('f(x)', [>xmin,xmax])


Вона дозволяє будувати функцію, задану в символьному вигляді, в інтервалі зміни аргументу x відxmin доxmax без фіксованого кроку зміни x. Хоча у процесі обчислень попередження про помилку (розподіл на 0) виводиться, графік будується правильно, прих=0sinx/x=1. Командаgrid on (сітка)- включає відображення сітки, побудована пунктирними лініями.

>>fplot('sin(x)/x', [-15,15]);grid on

 

Побудова графіків відрізками прямих

Для відображення функції однієї перемінної у (x) використовуються графіки вдекартовой (прямокутної) системі координат. У цьому зазвичай будуються дві осі: горизонтальна X і вертикальна Y, і визначають координати x і в, що визначають вузлові точки функціїу(x).

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

·plot (X, Y) — будує графік функціїу(х), координати точок (x, у) якої беруть із векторів однакового розміру Y і X. Якщо X чи Y — матриця, то будується сімейство графіків за даними, які мають колонках матриці.


Наведений нижче приклад ілюструє побудова графіків двох функцій —sin(x) іcos(x), значення, функції яких містяться у матриці Y, а значення аргументу x зберігаються у векторі X:

>>x=[0 1 2 3 4 5];

>>y1=sin(x);y2=cos(x);

>>plot(x,y1,x,y2)

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

·plot(Y) — будує графіку(x), де значення y беруть із вектора Y, а x є індекс відповідного елемента. Якщо Y містить комплексні елементи, то будується графікplot (real (Y),imag(Y)). У інших випадках мнима частина даних ігнорується.

Приклад використання командиplot(Y):

>>x=-2*pi:0.02*pi:2*pi;

>>y=sin(x)+i*cos(3*x);

>>plot(y)


>plot(X,Y,S) — аналогічна командіplot(X,Y), але тип лінії графіка можна ставити з допомогоюстроковой константи P.S.

 

>Значениями константи P.S можуть бути такими символи:

 

Колір лінії Тип точки Тип лінії
Жовтий y Крапка . Суцільна -
Фіолетовий >m >Окружность 0 Подвійний пунктир ;
Блакитний з Хрест x >Штрих-пунктир -.
Червоний >r Плюс + >Штриховая --
Зелений g Зірочка *
Синій b >Квадрат >s
Білий w >Ромб >d
Чорний >k Трикутник (вниз) v
Трикутник (вгору) ^
Трикутник (вліво)
Трикутник (вправо)
>Пятиугольник >p
>Шестиугольник h

Отже, з допомогоюстроковой константи P.S можна змінювати колір лінії, представляти вузлові точки різними оцінками (точка, окружність, хрест, трикутник з різною орієнтацією вершини тощо. буд.) і "змінювати тип лінії графіка.

·рlot (>X1,Y1,S1, Х2,Y2,S2,ХЗ,Y3,S3,...) - ця команда будує однією графіці ряд ліній, представлених даними виду (>X.,Y.,S.), де X. і Y. — вектори чи матриці, а P.S. — рядки. З допомогою такий конструкції можливо побудова, наприклад, графіка функції лінією, колір яким характеризується від кольору вузлових точок. Тож якщо вибудувати графік функції лінією синього кольору, з червоними точками, то спочатку треба поставити побудова графіка з точками червоного кольору (без лінії), та був графіка лише лінії синього кольору (без точок).

За відсутності свідчення про колір ліній і точок він вибирається автоматично з таблиці квітів (білий виключається). Якщо ліній понад шість, то вибір квітів повторюється. Для монохромних систем лінії виділяються стилем.

Розглянемо приклад побудови графіків трьох функцій з різними стилем уявлення кожної їх:

>>x=-2*pi:0.1*pi:2*pi;

>>y1=sin(x);y2=sin(x).^2;

>>y2=sin(x).^2;

>>y3=sin(x).^3;

>>>plot(x,y1,'-m',x,y2,'-.+r',x,y3,'--ok')

Тут графік функціїy1 будується суцільний фіолетовою лінією, графіку2 будується штрих пунктирною лінією з точками як знака «плюс» червоного кольору, а графікyЗ будується штрихової лінією з гуртками чорного кольору.

 

Графіки влогарифмическом масштабі

Для побудови графіків функцій зі значеннями x і в,изменяющимися в межах, нерідко використовуються логарифмічні масштаби. Розглянемо команди, які використовуються у такі випадки.


 

·loglogx(...) - синтаксис команди аналогічний раніше розглянутому для функціїplot(...).Логарифмический масштаб використовується для координатних осей X і Y. Нижче дано приклад застосування цієї команди:

>>x=logspace(-1,3);

>>loglog(x,exp(x)./x)grid on

Функція x =logspace(d1,d2) формуєвектор-строку, що містить 50равноотстоящих влогарифмическом масштабі точок, що покривають діапазон від 10>d1 до 10>d2 .

Функція x =>logspace(d1,d2, n) формуєвектор-строку, що містить nравноотстоящих влогарифмическом масштабі точок, що покривають діапазон від 10>d1 до 10>d2.

На малюнку представлений графік функціїехр(х)/х влогарифмическом масштабі. Командоюgrid on будується координатна мережа. Нерівномірний розташування ліній координатної сітки свідчить прологарифмический масштаб осей.

 

Графіки вполулогарифмическом масштабі

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

Для побудови графіків функцій вполулогарифмическом масштабі використовуються такі команди:semilogx(...) — будує графік функції влогарифмическом масштабі (підставу 10) по осі X і лінійному по осі Y;semilogy(...)— будує графік функції влогарифмическом масштабі по осі Y і лінійному по осі X.

Запис параметрів (...) виконується за аналогією з функцієюplot(...). наведемо приклад побудови графіка експоненційною функції:

>>x=0:0.5:10;

>>semilogy(x,exp(x))

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

 

>Столбцовие діаграми

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

·bar(x, Y) — будуєстолбцовий графік елементів вектора Y (чи групи шпальт для матриці Y) зіспецификацией становища шпальт, заданої значеннями елементів вектора x, які мають іти в монотонно зростаючу котячу порядку;

·bar(Y) — будує графік значень елементів матриці Y як і, як вище, але вони для побудови графіка використовується векторх=1:m;

·bar(x,Y,WIDTH) чиbar(Y,WIDTH) — команда аналогічна раніше розглянутим, але зспецификацией ширини шпальт (приWIDTH > 1 стовпчики лише у й тієї позиції перекриваються). За умовчанням поставленоWIDTH = 0.8.

Можливо застосування цих команд і наступного вигляді:bar(.... '>Спецификация') для завдання специфікації графіків, наприклад типу ліній, кольору та т. буд., за аналогією з командоюplot.Спецификация '>stacked' задає малювання всіх n шпальт в позиціїm друг на одному.

Приклад побудовистолбцовой діаграми матриці розміром12x3 наводиться нижче:

>> %>Столбцовая діаграма

>>subplot(2,1,1),bar(rand(12,3),stacked'),colormap(cool)

Крім командиbar(...) існує аналогічна їй за синтаксису командаbarh(...), яка" будуєстолбцовие діаграми з горизонтальним розташуванням шпальт.

>>subplot(2,1,1),barh(rand(5,3), '>stacked'),colormap(cool)


Який саме розташування шпальт вибрати, залежить від користувача, котрий використовує ці команди до подання своїх даних.

 

Побудова гістограм

Класичнагистограмма характеризує числа влучень значень елементів вектора Y в М інтервалів з наданням цих чисел якстолбцовой діаграми. Для отримання даних длягистограмми служить функціяhist, записувана наступного вигляді:

·N=hist(Y) — повертає вектор чисел влучень для 10 інтервалів,вибираемих автоматично. Якщо Y — матриця, то видається масив даних про кількість влучень кожного з її шпальт;

·N=hist(Y,M) — аналогічнавишерассмотренной, але використовується М інтервалів (М-скаляр);

·N=hist(Y,X) — повертає числа влучень елементів вектора Y в інтервали, центри яких задано елементами вектора X;

· [>N,X]=HIST(...) — повертає числа передбачень у інтервали і такі про центрах інтервалів.

Командаhist(...) з синтаксисом, аналогічним наведеному вище, будує графікгистограмми. Наступного прикладі будуєтьсягистограмма для 1000 випадкових чисел і виводиться вектор з цими про числах їх передбачень у інтервали, задані вектором x:


>>x=-3:0.2:3;

>>y=randn(1000,1);

>>hist(y,x)

>>h=hist(y,x)

h =

>Columns 1through 9

0 0 3 7 8 9 11 23 33

>Columns 10through 18

43 57 55 70 62 83 87 93 68

>Columns 19through 27

70 65 41 35 27 21 12 5 6

>Columns 28through 31

3 2 1 0

Цілком ймовірно, що розподіл випадкових чисел близько до нормальному закону.Увеличив їх кількість, можна спостерігати ще більше відповідність цим законом.

 

Створення масивів даних для тривимірної графіки

>Трехмерние поверхні зазвичай описуються функцією двох зміннихz(x,y). Специфіка побудови тривимірних графіків вимагає непросто завдання низки значень x і в, тобто векторів x і в. Вона потребує визначення для X і Y двовимірні масивів - матриць. Для таких масивів служить функціяmeshgrid. Здебільшого вона використовується що з функціями побудови графіків тривимірних поверхонь. Функціяmeshgrid записується у таких формах:

· [>X,Y] =meshgrid(x) - аналогічна [>X,Y] =meshgrid(x, x);

· [>X,Y,Z] =meshgrid(x, y,z) - повертає тривимірні масиви, використовувані для обчислення функцій три змінні і побудови тривимірних графіків;

· [>X,Y] =meshgrid(x,y) - перетворює область, задану векторами x і в, в масиви X і Y, які можна використовуватимуться обчислення функції двох змінних і побудови тривимірних графіків. Рядки вихідного масиву X є копіями вектора x; а стовпчики Y — копіями вектора у.

Приклад:

>> [>X,Y]=meshgrid(1:4, 13:17)

X =

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

Y =

13 13 13 13

14 14 14 14

15 15 15 15

16 16 16 16

17 17 17 17

Наведемо іще одна приклад застосування функціїmeshgrid:


>> [>X,Y]=meshgrid(-2:0.2:2, -2:0.2:2);

Такий виклик функції дозволяє поставити опорну площину для побудови тривимірної поверхні за зміни x і yот-2 до2с кроком 0.2.

Функціяndgrid є багатовимірним аналогом функціїmeshgrid:

· [>Х1,Х2,ХЗ,...] =ndgrid(x1,x2,x3....) — перетворює область, задану векторамиx1,.x,x3..., в масивиХ1,Х2,ХЗ..., які можна використовуватимуться обчислення функцій кількох змінних і багатовимірної інтерполяції,i-я розмірність вихідного масивуXi є копією вектораxi;

[>XI,Х2....] =ndgrid(x) - аналогічна [>XI,Х2....] =ndgrid(x,x,...).

Приклад застосування функціїndgrid представлений нижче:

>> [>X1,X2]=ndgrid(-2:0.2:2,-2:0.2:2);

>>Z=X1.*exp(-X1.^2-X2.^2);

>>mesh(Z)

Побудова

Страница 1 из 2 | Следующая страница

Схожі реферати:

Навігація