4584

Знайомство з системою комп’ютерної математики - математичною матричною лабораторією MATLAB

Лабораторная работа

Информатика, кибернетика и программирование

Знайомство з системою комп’ютерної математики - математичною матричною лабораторією MATLAB. Мета роботи: Ознайомитися з основними елементами і складовими частинами системи комп’ютерної математики MatLab® і її робочим і програмним середовищ...

Украинкский

2012-11-22

232.5 KB

6 чел.

Знайомство з системою комп’ютерної математики - математичною матричною лабораторією MATLAB.

Мета роботи:

Ознайомитися з основними елементами і складовими частинами системи комп’ютерної математики MatLab® і її робочим і програмним середовищем.

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

 

Робоче середовище системи MATLAB

При запуску даного програмного продукту на екрані відкривається робоче вікно програми, зображене на рис. 1.

Рис. 1. Робоче середовище системи MATLAB.

 

Основними елементами робочого середовища є:

  •  меню;
  •  панель інструментів з кнопками і випадаючим меню;
  •  вікна з вкладками Workspace і Current Directory для перегляду змінних та для встановлення робочого каталогу з використовуваними файлами-сценаріями і функціями;
  •  вікно Command Window (аналог командної стрічки), призначене для введення команд і виведення результатів;
  •  вікно Command Hisory - для перегляду і повторного виконання раніше введених команд;
  •  рядок стану та кнопка Start.

При натисненні на кнопку Start відкривається меню, приклад якого зображено на рис. 2, з його допомогою забезпечується доступ до усіх основних засобів системи.

Рис. 2. Меню, яке відкривається при натисненні на кнопку Start.

 

Вікно Command Window складається з наступних елементів:

  •  заголовка з назвою вікна і двома кнопками справа;
  •  робочої області з командною стрічкою, в якій знаходиться мигаючий вертикальний курсор;
  •  смуг прокрутки.

В полі назви кожного вікна, поряд з кнопкою закривання, знаходиться кнопка «Undock...» для витягування вікна з робочого середовища (якщо воно вбудовано), або кнопка «Dock…» для вбудовування окремого вікна в робоче середовище MATLAB.

При запуску пакету в робочій області вікна Command Window з’являються два посилання: MATLAB Help і Demos - для виклику довідкової системи або демонстраційних прикладів.

 

Арифметичні обчислення

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

Також система MATLAB® надає можливість управління форматом виведення результатів.

 

Найпростіші обчислення

Виберіть вигляд робочого середовища „по замовчуванню”, наберіть в командному рядку 1+2 і натисніть <Enter>.

В результаті в командному вікні MATLAB® відобразиться наступне:

>> 1 + 2

ans =

3

>> |

 

Якщо обчислюваний вираз не присвоюється змінній, то створюється зміннаans (від слова answer - відповідь). Інформація про змінну ans відразу з’явилася у вікні Workspace (рис. 3.).

В першому стовпці Name записано ім’я змінної.

Наступний стовпець Value показує значення змінної у вибраному для її відображення форматі.

Вміст стовпця Size, по суті, демонструє основний принцип роботи MATLAB®, яка всі дані представляє у вигляді масивів.

Змінна ans є двовимірним масивом розміром один на один і займає 8 байт пам’яті, про що свідчить стовпець Bytes.

І в останньому стовпці Class вказаний тип змінної – double array, тобто масив, що складається з чисел подвійної точності.

Будь-який стовпець можна сховати або відобразити, якщо на назві вікна натиснути правою кнопкою мишки і викликати контекстне меню.

Рис. 3. Вікно Workspace з інформацією

про використання змінних середовища.

 

Якщо необхідно продовжити роботу з попереднім виразом, наприклад, обчислити (1+2)/4.5, то найпростіше скористатися існуючим результатом, який зберігається в змінній ans. Після набору в командній стрічці ans/4.5 і натисніення клавіші <Enter>, отримаємо:

>> ans/4.5

ans =

0.6667

>> |

 

Значення змінної ans автоматично замінюється результатом обчислень.

 

Формат виведення результатів обчислень

Потрібний формат виведення результату визначається користувачем з меню робочого середовища MATLAB®.

Виберіть в меню File пункт Preferences.

На екрані з’явиться діалогове вікно Preferences, зображене на рис. 4. В пунктіCommand Window задається формат із списку, що розкривається, Numeric format панелі Text display.

Рис. 4. Діалогове вікно Preferences.

 

Використання елементарних функцій

Наприклад, необхідно обчислити наступний вираз:

Для цього в командній стрічці потрібно ввести даний вираз і натиснути <Enter>:

>> exp(-2.5)*log(11.3)^0.3-sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

 

Результат виводиться в командне вікно:

ans =

-3.2105

 

Арифметичні операції в MATLAB® виконуються в звичайному порядку, властивому для більшості мов програмування.

При проведенні обчислень з комплексними числами в командній стрічці MATLAB® можна використовувати i або j, а самі числа при множенні, діленні або піднесенні до степеня необхідно братии у круглі дужки:

>> (2.1 + 3.2i)*2 + (4.2 + 1.7i)^2

ans =

18.9500 + 20.6800i

 

Побудова графіків

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

Виведення відображення функції

у вигляді графіка складається з наступних етапів:

  •  задання вектора значень аргумента x;
  •  обчислення вектора y значень функції y(x);
  •  виклик команди plot для побудови графіка.

Команди для задання вектора x і обчислення функції краще завершувати крапкою з комою, що дозволяє уникнути виведення в командне вікно їх значень:

>> x=0:0.01:1;

>> y=exp(-x).*sin(10*x);

>> plot(x,y)

 

Для побудови графіка функції в робочому середовищі MATLAB® повинні бути визначені два вектори однакових розмірів, наприклад x та y. Вектор x містить значення аргументів, а y – значення функції цих аргументів.

Команда plot з’єднує точки з координатами (x(i), y(i)) прямими лініями, автоматично масштабуючи осі для найкращого візуального розміщення графіка по осях.

Рис. 5. Графік функції .

 

Якщо ж відображення графічного результату в системі за замовчуванням користувачу не підходить, можна параметри візуалізації задати індивідуально для кожного графіка, або налаштувати їх вже після відображення результату. Використовуючи кнопку Dock Figure (справа в стрічці меню вікна) можна вмонтувати графічне вікно в робоче середовище так, як це показано на рис. 6.

Порівняння декількох функцій зручно виконувати, якщо їх графіки відобразити в одній системі координат.

Для побудови графіків функцій  і  потрібно набрати наступну послідовність команд:

>> x  = -1:0.005:-0.3;

>> f = sin(x.^-2);

>> g = sin(1.2*x.^-2);

>> plot(x, f, x, g)

 

Також з допомогою команди plot можна задати стиль та колір ліній, наприклад:

>> plot(x, t, ‘k-‘, x, g, ‘k:’)

 

Аргументи ‘k-‘ і ‘k:’ задають стиль і колір першої та другої ліній. Тут k означає чорний колір, а дефіс або двокрапка – неперервну або пунктикну лінію.

Рис. 6. Розміщення вікна з графіком у середовищі MATLAB

Рис. 7. Два графіка на одних осях

 

Файли-функції

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

 

Файли-функції з одним аргументом

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

Відкрийте в редакторі М-файлів новий файл і наберіть наступне:

function f = myfun(x)

f = exp(-x)*sqrt((x^2 + 1)/(x^4 +0.1));

 

Слово function в першій стрічці визначає, що даний файл містить функцію. Перша стрічка є заголовком функції, в якій знаходяться ім'я функції і списки вхідних і вихідних аргументів. Вхідні аргументи записуються в круглих дужках після імені функції. Вихідний аргумент f вказується зліва від знаку «рівне» в заголовку функції. При виборі імені файла необхідно пам’ятати, що воно повинне співпадати із назвою функції, для якої цей файл реалізовано. Також потрібно потурбуватися про уникнення конфліктів з зайнятими іменами функцій системи MATLAB®.

Після заголовку розміщується тіло функції - один або декілька операторів, які реалізовують алгоритм отримання значення вихідних змінних з вхідних. Перед запуском файлу потрібно його зберегти в робочому каталозі (File → Save абоFile → Save as...).

Тепер створену функцію можна використовувати так само, як і вмонтованіsincos і інші, наприклад:

>> y=myfun(5)

y =

0.0014

 

Робота файл-функції з масивом даних

Якщо записати:

function f = myfun(x)

f = exp(-x).*sqrt((x.^2 + 1)./(x.^4 +0.1));

 

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

>> x=[1.3 7.2];

>> y=myfun(x)

y =

0.2600    0.0001

 

Змінна y, в яку записується результат виклику функції myfun, автоматично стає вектором потрібного розміру.

Для того, щоб побудувати графік на відрізку [0, 4] з допомогою файлу-сценарію програми або з командної стрічки необхідно набрати:

>> x=0:0.5:4;

>> y=myfun(x);

>> plot(x,y)

або

fplot('myfun',[0 4])

 

Отримаємо результат, зображений на рис. 8.

а)

б)

Рис. 8. Порівняння plot і fplot

 

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

 

Файл-функція з декількома вхідними аргументами

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

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

function r=radius3(x,y,z)

r=sqrt(x.^2+y.^2+z.^2);

 

Для обчислення радіус-вектора точки тривимірного простору можна скористатися функцією radius3:

>> R=radius3(1,1,1)

R =

1.7321

 

Оператори циклу

Схожі і повторювані дії виконуються з допомогою операторів циклу for таwhile. Цикл for призначений для виконання заданої кількості дій, що повторюються, while  - для дій, кількість яких наперед невідома, але відома умова виконання і закінчення циклу.

 

Цикл for

Використання for здійснюється наступним чином:

for count = start:step:final

команди MATLAB

end

 

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

Цикл закінчується, як тільки значення count стає більше ніж final. Змінна циклу може приймати не тільки цілі числа, а й дійсні значення з будь-яким знаком. Наприклад, для виводу графіків кривих для , яке задано функцією , що залежить віл параметра а, для значень параметра а від -0,1 до 0,1 з кроком 0,002. В редакторі М-файлів потрібно набрати код:

figure %

x = 0:pi/30:2*pi; %

for a = -0.1:0.02:0.1

y = exp(-a*x).*sin(x); %

hold on;

plot(x, y);

end

 

В результаті виконання даного фрагменту коду з’явиться графічне вікно, яке зображене на рис. 9.

Рис. 9. Сімейство кривих

 

Цикл while

Використання while здійснюється наступним чином:

while (умова повторення циклу)

команди MATLAB®

end

 

Команди системи MATLAB® виконуються, поки виконується умова повторення циклу.

 

Умовний оператор if

Умовний оператор if в загальному вигляді записується таким чином:

if  Умова1

Інструкція_1

else іf  Умова2

Інструкція_2

else

Інструкція_3

end

 

Наприклад, поки Умова1 повертає логічне значення 1 (тобто «істина»), виконується Інструкція_1, що складає тіло структури if...else if.

Оператор end вказує на кінець переліку інструкцій. Інструкції в списку розділяються оператором , (кома) або ; (крапка з комою). Якщо Умова не виконується (дає логічне значення 0, «не істина»), то виконуються інструкції, що записані після ключового слова else.

Ще  одна конструкція:

if Умова

Інструкція_1

else

Інструкція_2

end

 

Вконується Інструкція_1, якщо виконується Умова, або Інструкція_2 в протилежному випадку.

Умова записується у вигляді:

Вираз_1 Оператор_відношення Вираз_2, в якості Операторів_відношення використовуються наступні оператори:

Позначення

Операція відношення

==

Дорівнює

<

Менше

>

Більше

<=

Менше-рівне

>=

Більше-рівне

~=

Не дорівнює

 

Завдання.

Запустити на виконання програму MATLAB®, послідовно виконати у робочому середовищі всі пункти, розглянуті в даній теоретичній частині. Оформити звіт за результатами навчання. 


 

А также другие работы, которые могут Вас заинтересовать

23318. Измерение параметров сигнала с помощью осциллографа 2.72 MB
  Определять параметры сигнала помощью осциллографа. Техническое описание осциллографа С165. Изучить повторить Теоретический материал об измерении параметров электрических сигналов с помощью осциллографа. Ознакомиться с устройством и особенностями осциллографа С165.
23319. СОСТАВ НЕЙТРОННОЙ ДОЗЫ В ВЕЩЕСТВЕ И ФАКТОР НАКОПЛЕНИЯЯ НЕЙТРОНОВ 144.5 KB
  Широко применяемые в реакторной технике активационные детекторы вносят минимальные возмущения в измеряемую величину плотности потока нейтронов и поэтому обладают наибольшей точностью по сравнению с другими методами. В частности последнее имеет важное значение при определении как общей так и парциальной дозы нейтронов в веществе. Целью работы является освоение основ методики экспериментального определения плотностей потоков быстрых резонансных и тепловых нейтронов с помощью индиевых детекторовфольг в водородсодержащей среде парафин и...
23320. МОДЕЛИРОВАНИЕ НЕЙТРОННОЙ ЗАЩИТЫ РЕАКТОРА 134 KB
  От состава материалов защиты зависит также и разбиение спектра нейтронов на энергетические группы при расчётах. Чем тяжелее защита когда в ней преобладают тяжёлые материалы тем она более материалоёмка тем на большее число групп нейтронов разбивается спектр и сложнее расчёты. Целью работы является расчёт поглощения нейтронов по программе NEUTRON2 и исследование распределений быстрых и тепловых нейтронов по глубине однородных поглотителей из различных материалов. Рассматривается прохождение через защиту быстрых нейтронов источники...
23321. Коэффициент ослабления - квантов в свинце и алюминии 361.5 KB
  ЦЕЛЬЮ НАСТОЯЩЕЙ РАБОТЫ ЯВЛЯЕТСЯ измерение линейного коэффициента поглощения гаммаквантов в различных поглотителях оценка энергии гамма излучения источника и определения вклада каждого эффекта в процесс поглощения. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Расчет защиты от ионизирующих излучений в частности гаммаквантов основывается на физике взаимодействия излучения с веществом. Практическое значение при изучении ослабления потока гаммаквантов в веществе имеют только три вида взаимодействия: а фотоэффект на одном из связанных электронов атома...
23322. Защита от быстрых нейтронов 209 KB
  ЦЕЛЬЮ НАСТОЯЩЕЙ РАБОТЫ является исследование железоводной защиты от быстрых нейтронов и измерение величины сечения выведения для железного поглотителя. ОСНОВНЫЕ ТОРЕТИЧЕСКИЕ СВЕДЕНИЯ При проектировании защиты от нейтронного излучения необходимо что процесс захвата и поглощения эффективен для тепловых медленных и резонансных нейтронов благодаря большому десятки сотни барн сечению их взаимодействия с веществом см. Энергетический спектр нейтронов деления ядра тепловыми нейтронами.
23323. Установка отношений между базами данных 86 KB
  Лабораторная работа №4: Установка отношений между базами данных По дисциплине: Базы данных. Цели работы: освоить технологию установки отношений между 23мя базами данных; выполнить просмотр связанных баз данных. Задание: Проверьте проект базы данных на предмет проектирования связей ключи первичные вторичные. В проекте базы данных предметной области выделите 23 связанные таблицы родственные таблицы.