Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

MATLAB


Matlab Logo.png

План:


Введення

MATLAB (скорочення від англ. "Matrix Laboratory" ) - Пакет прикладних програм для вирішення задач технічних обчислень і однойменний мова програмування, що використовується в цьому пакеті. MATLAB використовують більше 1 000 000 інженерних і наукових працівників, він працює на більшості сучасних операційних систем, включаючи Linux, Mac OS, Solaris (починаючи з версії R2010b підтримка Solaris припинена [2]) і Microsoft Windows [3].


1. Історія

MATLAB як мова програмування був розроблений Клів Моулером ( англ. Cleve Moler ) Наприкінці 1970-х років, коли він був деканом факультету комп'ютерних наук в Університеті Нью-Мексико. Метою розробки служила задача дати студентам факультету можливість використання програмних бібліотек Linpack і EISPACK без необхідності вивчення Фортрану. Незабаром новий мова поширилася серед інших університетів і був з великим інтересом зустрінутий вченими, що працюють в області прикладної математики. До цих пір в Інтернеті можна знайти версію 1982, написану на Фортрані, поширювану з відкритим вихідним кодом. Інженер Джон Літтл ( англ. John N. (Jack) Little ) Познайомився з цією мовою під час візиту Клива Моулера в Стенфордський університет в 1983. Зрозумівши, що нова мова володіє великим комерційним потенціалом, він об'єднався з Клів Моулером і Стівом Бангертом ( англ. Steve Bangert ). Спільними зусиллями вони переписали MATLAB на C і заснували в 1984 компанію The MathWorks для подальшого розвитку. Ці переписані на С бібліотеки довгий час були відомі під ім'ям JACKPAC. Спочатку MATLAB призначався для проектування систем управління (основна спеціальність Джона Літтла), але швидко завоював популярність у багатьох інших наукових і інженерних областях. Він також широко використовувався і в освіті, зокрема, для викладання лінійної алгебри і чисельних методів.


2. Мова MATLAB

2.1. Опис мови

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

Програми, написані на MATLAB, бувають двох типів - функції і скрипти. Функції мають вхідні і вихідні аргументи, а також власний робочий простір для зберігання проміжних результатів обчислень і змінних. Скрипти ж використовують загальний робочий простір. Як скрипти, так і функції не компілюються в машинний код і зберігаються у вигляді текстових файлів. Існує також можливість зберігати так звані pre-parsed програми - функції і скрипти, оброблені у вигляд, зручний для машинного виконання. У загальному випадку такі програми виконуються швидше звичайних, особливо якщо функція містить команди побудови графіків.

Основною особливістю мови MATLAB є його широкі можливості по роботі з матрицями, які творці мови висловили в гаслі "думай векторно" ( англ. Think vectorized ).


2.2. Приклади

Приклад коду, що є частиною функції magic.m, що генерує магічний квадрат M для непарних значень розміру сторони n:

 [  J  ,  I  ]  =  meshgrid  (  1  : N  )  ; A =  mod  (  I  + J-  (  n +  3  )  /  2  , N  )  ; B =  mod  (  I  +  2  * J-  2  , N  )  ; M = n * A + B +  1  ; 

Приклад коду, що завантажує одновимірний масив A значеннями масиву B у зворотному порядку (тільки якщо вектор A визначений, і число його елементів збігається з числом елементів вектора B):

 A  (  1  :  end  )  = B  (  end  : -  1  :  1  )  ; 
Графік sinc-функції, намальований за допомогою MATLAB

Приклад коду, яка малює графік sinc-функції {\ Sin R \ over R} :

 [  X, Y  ]  =  meshgrid  (  -  8  : .5:  8  )  ; R =  sqrt  (  X. ^  2  + Y. ^  2  )  ; Z =  sin  (  R  )  . / R; Z  (  R ==  0  )  =  1  ;  mesh  (  X, Y, Z  )  ; 

Приклад векторизации коду. Код

 ww =  repmat  (  w,  [  size  (  b,  1  )  1  ]  )  ; A = b. * ww * b '; 

виконується значно швидше, ніж вимагає менше пам'яті і арифметичних операцій код

 for  i  =  1  :  size  (  b,  1  )  for  j  =  i  :  size  (  b,  1  )  A  (  i  ,  j  )  =  sum  (  b  (  i  ,:  )  .* B  (  j  ,:  )  .* W  )  ;  end  for  j  =  1  :  i  A  (  i  ,  j  )  = A  (  j  ,  i  )  ;  end  end 

який робить те ж саме.


3. Застосування

3.1. Математика і обчислення

MATLAB надає користувачеві велику кількість (кілька сотень) функцій для аналізу даних, що покривають практично всі області математики, зокрема:

  • Розріджені матриці - спеціальний клас даних пакету MATLAB, що використовується в спеціалізованих програмах.
  • Цілочисельна арифметика - виконання операцій целочисленной арифметики в середовищі MATLAB.

3.2. Розробка алгоритмів

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


3.3. Візуалізація даних

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

Вбудована середовище розробки дозволяє створювати графічні інтерфейси користувача з різними елементами управління, такими як кнопки, поля введення і іншими. За допомогою компонента MATLAB Compiler ці графічні інтерфейси можуть бути перетворені в самостійні додатки, для запуску яких на інших комп'ютерах необхідна встановлена ​​бібліотека MATLAB Component Runtime.


3.4. Зовнішні інтерфейси

Пакет MATLAB включає різні інтерфейси для отримання доступу до зовнішніх підпрограм, написаним на інших мовах програмування, даним, клієнтам і серверів, що спілкуються через технології Component Object Model або Dynamic Data Exchange, а також периферійних пристроїв, які взаємодіють безпосередньо з MATLAB. Багато хто з цих можливостей відомі під назвою MATLAB API.

3.4.1. COM

Пакет MATLAB надає доступ до функцій, що дозволяє створювати, маніпулювати і видаляти COM-об'єкти (як клієнти, так і сервери). Підтримується також технологія ActiveX. Всі COM-об'єкти належать до спеціального COM-класу пакета MATLAB. Всі програми, що мають функції контролера автоматизації ( англ. Automation controller ) Можуть мати доступ до MATLAB як до сервера автоматизації ( англ. Automation server ).


3.4.2. . NET

Пакет MATLAB в Microsoft Windows надає доступ до програмної платформи. NET Framework. Є можливість завантажувати. NET збірки (Assemblies) і працювати з об'єктами. NET класів із середовища MATLAB. У версії MATLAB 7.11 (R2010b) підтримується. NET Framework версій 2.0, 3.0, 3.5 і 4.0.

3.4.3. DDE

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

3.4.4. Веб-сервіси

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

MATLAB взаємодіє з клієнтом веб-сервісу за допомогою прийняття від нього посилок, їх обробки і посилок відповіді. Підтримуються наступні технології: Simple Object Access Protocol (SOAP) і Web Services Description Language (WSDL).


3.4.5. COM-порт

Інтерфейс для послідовного порту пакету MATLAB забезпечує прямий доступ до периферійних пристроїв, таким як модеми, принтери і наукове обладнання, підключається до комп'ютера через послідовний порт (COM-порт). Інтерфейс працює шляхом створення об'єкта спеціального класу для послідовного порту. Наявні методи цього класу дозволяють прочитувати і записувати дані в послідовний порт, використовувати події і обробники подій, а також записувати інформацію на диск комп'ютера в режимі реального часу. Це буває необхідно при проведенні експериментів, симуляції систем реального часу і для інших додатків.


3.4.6. MEX-файли

Пакет MATLAB включає інтерфейс взаємодії із зовнішніми додатками, написаними на мовах C і Фортран. Здійснюється це взаємодія через MEX-файли. Існує можливість зателефонувати підпрограм, написаних на C або Фортране з MATLAB, як ніби це вбудовані функції пакета. MEX-файли являють собою спільні бібліотеки, які можуть бути завантажені і виконані інтерпретатором, вбудованим в MATLAB. MEX-процедури мають також можливість викликати вбудовані команди MATLAB.


3.4.7. DLL

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

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

4. Набори інструментів

Для MATLAB є можливість створювати спеціальні набори інструментів ( англ. toolbox ), Що розширюють його функціональність. Набори інструментів є колекції функцій, написаних мовою MATLAB для вирішення певного класу задач. Компанія Mathworks поставляє набори інструментів, які використовуються в багатьох областях, включаючи наступні:

  • Цифрова обробка сигналів, зображень і даних: DSP Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communication Toolbox, Filter Design Toolbox - набори функцій, що дозволяють вирішувати широкий спектр завдань обробки сигналів, зображень, проектування цифрових фільтрів і систем зв'язку.
  • Фінансовий аналіз: GARCH Toolbox, Fixed-Income Toolbox, Financial Time Series Toolbox, Financial Derivatives Toolbox, Financial Toolbox, Datafeed Toolbox - набори функцій, що дозволяють швидко і ефективно збирати, обробляти і передавати різну фінансову інформацію.
  • Аналіз і синтез географічних карт, включаючи тривимірні: Mapping Toolbox.
  • Збір та аналіз експериментальних даних: Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox, Link for Code Composer Studio - набори функцій, що дозволяють зберігати й обробляти дані, отримані в ході експериментів, у тому числі в реальному часі. Підтримується широкий спектр наукового та інженерного вимірювального обладнання.
  • Візуалізація та уявлення даних: Virtual Reality Toolbox - дозволяє створювати інтерактивні світи і візуалізувати наукову інформацію за допомогою технологій віртуальної реальності та мови VRML.
  • Засоби розробки: MATLAB Builder for COM, MATLAB Builder for Excel, MATLAB Builder for NET, MATLAB Compiler, Filter Design HDL Coder - набори функцій, що дозволяють створювати незалежні програми з середовища MATLAB.
  • Взаємодія з зовнішніми програмними продуктами: MATLAB Report Generator, Excel Link, Database Toolbox, MATLAB Web Server, Link for ModelSim - набори функцій, що дозволяють зберігати дані в різних видів таким чином, щоб інші програми могли з ними працювати.
  • Бази даних: Database Toolbox - інструменти роботи з базами даних.
  • Наукові та математичні пакети: Bioinformatics Toolbox, Curve Fitting Toolbox, Fixed-Point Toolbox, Fuzzy Logic Toolbox, Genetic Algorithm and Direct Search Toolbox, OPC Toolbox, Optimization Toolbox, Partial Differential Equation Toolbox, Spline Toolbox, Statistic Toolbox, RF Toolbox - набори спеціалізованих математичних функцій, що дозволяють вирішувати широкий спектр наукових і інженерних задач, включаючи розробку генетичних алгоритмів, вирішення завдань в приватних похідних, цілочисельні проблеми, оптимізацію систем та інші.
  • Нейронні мережі : Neural Network Toolbox - інструменти для синтезу і аналіз нейронних мереж.
  • Нечітка логіка : Fuzzy Logic Toolbox - інструменти для побудови і аналізу нечітких множин.
  • Символьні обчислення : Symbolic Math Toolbox - інструменти для символьних обчислень з можливістю взаємодії з символьним процесором програми Maple.

Крім перерахованих вище, існують тисячі інших наборів інструментів для MATLAB, написаних іншими компаніями і ентузіастами.


5. Цікаві факти

  • Якщо надрукувати в командному рядку MATLAB слово "toilet" (туалет), буде запущена система, що моделює динаміку роботи зливного бачка туалету.
  • Якщо в командному рядку надрукувати "why" (чому), MATLAB відповість на це питання. Відповіді вибираються з обмеженого безлічі відповідей випадковим чином щоразу, коли вводиться ця команда.
  • В MATLAB вбудована програма віртуальної машини vrcar.

6. Альтернативні пакети

Існує велика кількість програмних пакетів для вирішення задач чисельного аналізу. Багато хто з таких пакетів є вільним програмним забезпеченням.

6.1. Сумісні з MATLAB на рівні мови програмування

6.2. Близькі за функціональністю

  • R, S і SPlus.
  • APL і його нащадки: наприклад J
  • Python, при використанні пакета програм Python (x, y), а так само з такими бібліотеками як NumPy, SciPy і matplotlib реалізує подібні можливості.
  • IDL ( англ. Interactive Data Language , Інтерактивний мова опису даних), колись був комерційним конкурентом MATLAB, зараз залишається серйозним конкурентом у багатьох прикладних областях, хоча його частка на ринку програмних продуктів для чисельного аналізу різко впала.
  • Fortress, мова програмування, створена Sun Microsystems, є спадкоємцем Фортрану, але з ним не сумісний.
  • При необхідності розробки великих проектів для чисельного аналізу можливе використання мов програмування загального призначення, що підтримують статичну типізацію і модульну структуру. Прикладами можуть служити Modula-3, Haskell, Ада, Java. При цьому рекомендується використовувати відомі в науково-інженерної середовищі спеціалізовані бібліотеки (див. посилання).

Примітки

  1. Connecting C and Matlab - www.cs.yale.edu / homes / spielman / ECC / cMatlab.html
  2. Platform Road Map for MATLAB and Simulink Product Families - www.mathworks.link13
  3. MATLAB - Requirements - www.mathworks.link13

Цей текст може містити помилки.

Схожі роботи | скачати
© Усі права захищені
написати до нас