Основы работы в matlab
33
М ИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение
высшего профессионального образования
САМАРСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Филиал в г. Сызрани
Методические указания к лабораторной работе
Составители: Митришкина М.Е.,
Тамьярова М.В., Тамьяров А.В.
Сызрань 2006
ОСНОВЫ РАБОТЫ В MATLAB
Цель работы – изучение функциональных возможностей математического пакета MATLAB и приобретение навыков практической работы по вводу и редактированию формул и выполнению элементарных вычислений.
Окно программы
Запуск программы MATLAB производится нажатием кнопки Пуск/Программы/MATLAB Release 12/MATLAB R 12.
!! Запустите программу MATLAB.
При запуске MATLAB на экране появляется командное окно MATLAB Command Window.Окно MATLAB Command Window состоит из следующих основных элементов:
меню;
панели с кнопками;
рабочей области с командной строкой, в которой находится мигающий вертикальный курсор;
строки состояния.
Рабочее пространство и численные расчеты в МАТLАВ
Рабочее пространство МАТLАВ
Общение пользователя с программой происходит с помощью команд, набираемых в командной строке. Командная строка системы МАТLАВ начинается со знака приглашения »(рrоmpt), после которого можно записать любое алгебраическое выражение, т.е. выражение, состоящее из чисел, имен переменных и знаков операций. Для того чтобы увидеть результат вычисления математического выражения, которое вводится после знака », нужно нажать клавишу Еntеr. После вычисления в нижней части экрана появится строка для ввода новых данных, которая также начинается со знака приглашения.
!! Введите на поле нового документа 3+5 и нажмите Еntеr.
Что сделала программа MATLAB? Сначала она вычислила сумму 3+5, затем записала результат в специальную системную переменную ans и вывела ее значение, равное 8, в командное окно. Ниже ответа расположена командная строка с мигающим курсором, обозначающая, что MATLAB готова к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения.
Если требуется продолжить работу с предыдущим выражением, например, вычислить (3+5)/4, то проще всего воспользоваться уже имеющимся результатом, который хранится в переменной ans.
!! Наберите в командной строке ans/4 и нажмите Enter.
!! Присвойте переменной a полученный результат.
Для того чтобы ввести в строке ввода значения нескольких переменных подряд, между выражениями ставится знак “;”. Необходимо отметить, что знак “;” используется также для того, чтобы система не выводила на экран результат после нажатия клавиши Enter.
!! Введите в одной строке b=5, c=10, k=2.
Вся информация, которая набирается в строке ввода, запоминается в специальной области памяти, называемой стеком команд. С помощью нажатия клавиш управления курсором ↑или ↓ можно вернуть в строку ввода ранее набранные команды.
!! Попробуйте просмотреть ранее введенные команды с помощью этих клавиш, а затем вернитесь к чистой командной строке.
Расположение информации, которая отображена в рабочем окне МАТLАВ, можно условно разделить на две зоны: зону просмотра и зону ввода (или редактирования) информации. В зоне просмотра можно выделять (с помощью мыши) любую информацию и копировать ее в буфер обмена, однако в ней ничего нельзя исправлять. В свою очередь, зона ввода занимает последнюю строку рабочего окна. В ней можно вводить и редактировать набранные выражения.
Для просмотра рабочей области удобно использовать полосы скроллинга или клавиши Ноmе, Еnd для перемещения влево или вправо и Page Up и Page Down для перемещения вверх или вниз. Если вдруг после перемещения по рабочей области командного окна пропала командная строка с мигающим курсором, просто нажмите Еnter.
Важно запомнить, что набор любой команды или выражения должен заканчиваться нажатием на Enter, для того, чтобы программа MATLAB выполнила эту команду или вычислила выражение.
Иногда работа в системе МАТLАВ существенно замедляется. Это происходит из-за того, что в специальной области памяти компьютера запоминается огромное количество значений всех переменных, вычисленных в течение текущего сеанса работы. Данная область называется рабочим пространством системы МАТLАВ. Для того чтобы скорость работы не замедлялась, переменные, которые уже не нужны для работы, необходимо стирать из памяти компьютера. Это делается с помощью команды
сlеаг(‘имя1′ ,’имя2’ ,…) .
Указанная команда удаляет из рабочего пространства переменные с именами имя1, имя2 и т.д.
Выполнив команду who, можно узнать, какие переменные остались в рабочем пространстве.
!! Удалите из памяти переменные b и c.
!! Проверьте результат.
Команда whos позволяет получить более подробную информацию о переменных в виде таблицы.
Первый столбик Name состоит из имен используемых переменных. То, что содержится в столбике Size, по существу, определяется основным принципом работы MATLAB. Программа MATLAB все данные представляет в виде массивов. Переменные а1, а2 и а3 являются двумерными массивами размера один на один. Каждая из переменных занимает по восемь байтов, как указано в столбике Bytes. Наконец, в последнем столбике Class указан тип переменных — double array, т. е. массив, состоящий из чисел двойной точности. В строке под таблицей написано, что в итоге три элемента, т. е. переменные, занимают двадцать четыре байта. Оказывается, что представление всех данных в виде массивов дает определенные преимущества.
Удалить из памяти компьютера все ранее использованные переменные можно, выполнив команду clear без указания их имен и без скобок.
Команда сlс очищает видимую часть рабочего пространства.
Для просмотра значения какой-либо переменной, содержащейся в рабочем пространстве, достаточно набрать ее имя и нажать кнопку Еntеr.
!! Попробуйте просмотреть значение переменной b.
Система MATLAB выведет сообщение о неопределенности переменной.
В MATLAB имеется другое удобное средство для просмотра переменных рабочей среды – окно Workspace, для перехода к которому следует активизировать одноименную закладку в меню Veiw.
!! Откройте окно Workspace.
Двойной щелчок по строке соответствующей, каждой переменной приводит к отображению её содержимого в отдельном окне, что особенно полезно при работе с массивами. Панель инструментов окна Workspace позволяет удалить лишние переменные, сохранить и открыть рабочую среду.
studfiles.net
Оставьте свой комментарий Добавить комментарий
|
pro-spo.ru
Как мы использовали MATLAB. История одного фейла / Хабрахабр
Имена изменены, все совпадения случайны.
Увертюра
Сразу оговорюсь, MATLAB — отличный инструмент. Отличный инструмент, который мы использовали не по назначению.
Взгляните на нашу компанию. Наша сфера деятельности — разработка ПО для промышленности и много чего еще. В компании работает около 100 человек, а я в этой компании — один из сотрудников, занимающийся разработкой алгоритмов. Есть у нас и Флагманский продукт, приносящий основную прибыль.
Флагманский продукт — бизнес-приложение. В нем много формочек и отчетиков, своя база данных и вычислительное ядро. Вычислительное ядро написано на C# без привлечения нативного кода. Такое решение было принято разработчиками осознанно. Parallel.For был так соблазнителен, а C++ все хотели забыть как страшный сон.
Реальность, как это нередко бывает, не прислушалась к нашим пожеланиям, и скорости C# вскоре стало не хватать. Другая проблема, что, как выяснилось, программисты, какой бы хороший код не писали, в линейной алгебре разбираются слабо.
Тогда наш Главный Алгоритмист предложил идею. Описание этой идеи и того, что из нее вышло и составляет суть данной статьи.
Идея
Идея была проста. Вместо того, чтобы платить зарплату одному умному программисту (который бы умел писать хороший код на C# и разбирался в тонкостях нашего «матана», а такого непросто найти), можно взять двух «полуумных». Первый будет писать прототипы на MATLAB, второй — переносить решение на C#.
MATLAB в таком случае преподносился как инструмент для документирования алгоритма. У такого решения были озвучены следующие преимущества:
- MATLAB — простой язык, который опытный программист может выучить за 1 день
- Все математики пишут на MATLAB
Стоит отметить, что ранее для документирования алгоритма использовался Mathcad, UML-диаграммы и даже просто лист бумаги.
С идеей спорили, ее не принимали. Но в итоге Главный Алгоритмист всех убедил, и была создана команда алгоритмистов, пишущих на матлабе. В эту команду вошел и я. В нашу команду также вошел Один Программист из числа разработчиков, который должен был бы, не думая, переносить наши матлаб-экзерсисы на C#.
Замечу, что кроме предложений отказаться от этой затеи, было и предложение использовать, по крайней мере, python+numpy. Хотя бы той причине, что сколько-нибудь значительного опыта разработки на MATLAB ни у кого не было (я раньше писал на python и R, остальные были математики и инженеры, использующие MATLAB как продвинутый калькулятор). Предложения, как можно понять, отклонили.
Прошел год…
Прошел год и сейчас уже можно подвести некоторые итоги:
- Математики не умеют писать код. А в той лапше, что выходит из-под их пера не могут разобраться и они сами. Нет ни специфических знаний, ни опыта, ни культуры программирования
- Раз уж мы отказались от схем и Mathcad, то появилось желание использовать для наших MATLAB программ реальные источники данных. В итоге мы немало времени занимались дублированием части функционала Флагманского продукта на Матлабе
- Пока мы занимались программированием, времени на работу над собственно алгоритмом оставалось немного
- MATLAB не подходит для разработки больших программ. По крайней мере, не подходит нам. Динамическая нестрогая типизация, медленные циклы, ооочень-медленный ООП (настолько, что пришлось частично отказаться от использования ООП), неполная поддержка разреженных матриц
- Переносить код с MATLAB на C# непросто. Еще сложнее бэкпортировать рефакторинги и оптимизации
В результате мы не можем заранее оценить, сколько времени потребуется на реализацию той или иной фичи. Неделя или может быть месяц?
Вместо заключения
В самом начале статьи я немного слукавил, т.к. история продолжается до сих пор. Мы продолжаем писать на MATLAB, наш код продолжают переносить на C#. Хотя теперь уже все согласны, что у идеи Главного Алгоритмиста есть изъяны. Но менять уже что-либо слишком поздно.
А тем временем начинают поговаривать о дополнительном перекодировании решений с MATLAB уже на С++…
habr.com
Матлаб как пользоваться
Клацніть, щоб переглянути тэги: matlab, матлаб, функции можно определить как внешние (по сути это подпрограммы, вызываемые так же, как и стандартные библиотечные)Как ей пользоваться? Расширение 2
1
Основы работы с Компилятором MATLAB Основные · Отметим, что функцией mexCallMATLAB() можно пользоваться вперемешку с собственными вычислениями в расширении MATLAB, так же, как и остальными функциями библиотек MATLAB
MATLAB В МАТЕМАТИЧЕСКИХ ИССЛЕДОВАНИЯХ Внимание: если Вы дали переменной такое же имя, как и функции, Вы больше не сможете использовать эту функцию
У переменной и … Что это и как им пользоваться? Обработка изображений оптического источника матлаб и прочее при большой нагрузке начинают сдавать
Язык выбираете любой близкий Вам
Никого не слушайте · Файл PDF Натуральный логарифм matlab Наиболее используемая студентами, так как позволяет работать не только с векторами и матрицами, но и с аналитической формой подынтегральной функции
а не пользоваться стандартными kon boot как пользоваться Must Have Windows 7 Active@ 2012 Full Edition Boot Disk | 230 MB Active@ Boot Disk based on lightweight Windows 7 (WinPE 3
0) operating environment and contains
матлаб скачать бесплатно без регистрации Таблица символов Windows – YouTube · Файл PDF 10/24/2007 · Я предпочитаю пользоваться математикой
Like Show likes
а матлаб я лично использую для отладки основного фортрановского кода – когда нужно найти в нем ошибки, а они не находятся 🙂
так как с 12/11/2011 · В своё время (лет так 14 назад) пытался научиться пользоваться этой программой
Раза 3 запустил – и забыл как страшный сон
Дополнительные возможности системы MATLAB Тривалість відео: 2 хв
-
Сначала его поставим – как всегда: #apt-get install gnuplot Если его теперь запустить, вызвав в консольке десктоп железо изображение интернет интерфейс камера КПК ЛаТеХ матлаб
Численные методы
Использование Matlab Маткад скачать бесплатно русская версия, скачать … Автор: MATLABinRussia А
Б
Сергиенко
Signal Processing Toolbox – обзор – … Лицензия на matlab mobile | unn
ru MatLab
Руководство для начинающих Этой монструозной программой можно пользоваться как инженерам, биологам и т
д
Как можно видеть из скриншотов, тут нет легких путей, которые используются во многих программах, мол “потыкай (25) Как мы использовали MATLAB
История одного … структурные блоки, такие как Mux (Мультиплексор), Switch (Переключатель), Bus Selector (Селектор Шины)
Конкурсная работа “Вводный курс работы с системой МАТЛАБ для студентов” Интегрирование в Matlab – CodeTown
ru 11/26/2015 · такой лицензии нет, ты можешь пользоваться мобильным матлабом, только если у тебя есть твоя личная лицензия на стационарный матлаб как самую дешевую из всех (она стоит порядка $100), и ещё Если Вы задаетесь вопросом, как пользоваться натуральным логарифмом matlab, то далее в статье вы найдете ответ на интересующий Вас вопрос
Логарифм матлаб реализован оператором log: log(1) ans = 0
Как использовать? а) поставлять матлаб с вашим ПО б) поставлять Maxima или аналог с вашим ПО (если цена матлаба окажется неподходящей) в) дать клиентам возможность выбора математического · Файл PDF
1
1) и к строке меню MATLAB добавляется элемент меню Mathcad — Википедия Simulink – моделирование и и симуляция … 4-е занятие по MATLAB – apeshnik
narod
ru Переглядів: 114 тис
команды, перед тем как ввести Enter, можно поставить знак ¾;¿ (точка с запятой)
В этом случае отклика системы мы не получим
Критерий Фишера Языки интерфейса: 10 языков Несколько сообщений о МАТЛАБ и о том, как им пользоваться
Комментарии, критика и восторженное рукоплескание приветствуются в самой … Как уже упоминалось в главе 1, в новой версии matlab повышена надежность вычислений с числами двойной точности (double) и …
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью
- Читать полностью PR.RU™ Contacts: [email protected]
-
Главная » Рейтинг сайтов » Mtwintools как пользоваться
· Файл PDF
Разработчик: PTC
Matlab: конвертация матрицы в – IMHO
WS Основы моделирования систем в Simulink Распознавание регистрационных номеров с … MATLAB: Начало работы – YouTube 9/4/2007 · то производная от а это 5*5*cos(5*t) и если дано t то можно получит результат как число 09
04
2007, 19:02 # 4 В теме МатЛаб 2017 кто-то дал ссылку, по ней и скачивал) Я запилил небольшую инструкцию
Попробуйте, только не забудьте отписаться Строим научные графики с помощью GNUplot – … · Файл PDF ООП в МАТЛАБ
Раздел 1
Общие соображения
– … Операционная система: Microsoft Windows Как создать функцию в матлабе?
-
2/24/2015 · Как уже упоминалось выше, в программу встроен текстовый редактор с достаточным набором возможностей
Но с помощью него можно редактировать и форматировать формулы
Dynamic Factor Models in Real Time: A New Approach and an Implementation in Matlab Jan Br uha Modern n astroje pro nan cn anal yzu a modelov an ЛаТеХ для продвинутых
Как подружить LaTeX и … Дополнительные возможности системы MATLAB Самоучитель по MatLab – lib
qrz
ru Как пользоваться keygen, crack, patch Dynamic Factor Models in Real Time: A New Approach … 6/7/2012 · Как быстро печатать вслепую на клавиатуре? – Ответ профессионала (~450 символов в минуту) – Duration: 7:41
Хауди Хо Рассмотрим теперь, как передавать в рабочую среду информацию о приближениях, построенных в приложении Basic Fitting, и дальнейшие возможные действия с ней
поэтому мы будем ими пользоваться
MatLab | физика твёрдого тела | VK Примечание: символ бесконечность в MATLAB записывается как inf
Неопределенное значение в MATLAB записывается как NaN
Основы программы MATLAB Пока что не понятно, как здесь можно что- Лучше научимся пользоваться переменными
Матлаб в командной строке выдал жалобу, производная в mathlab – Программирование – … Обзор средств MATLAB и ToolBox’ов для … Руководство пользователя Mathcad Но пользоваться мы будем конечно не самой разностью
Ее мы обрубим по некоторому порогу, потом хорошенько раскроем и получим маску, которую наложим на текущий кадр
Если Вы задаетесь вопросом, как пользоваться натуральным логарифмом matlab, то далее в статье вы найдете ответ на интересующий Вас вопрос
Матлаб нейронные сети LVQ; Введение в MATLAB применение конструирования …
- Как уже было указано, многие операции в matlab могут быть Пользоваться этим следует лишь в исключительных ситуациях
МЕТОДИЧЕСКОЕ ПОСОБИЕ по программированию в …
Тип: Система компьютерной алгебры
· Файл PDF
2/8/2011 · Приветствуем Вас на нашем Youtube канале! Краткий обзор плейлистов: 1
Анонсы/приглашения При работе с моделью целесообразно пользоваться кнопками панели инструментов, основные из которых пронумерованы (рис
3)
как выполняется выбор времени и шага моделирования
Предположим MathWorks MATLAB R2018a Update 5 + Linux + MacOSX Как пользоваться сайтом
Как находить книги
Форматы книг, как читать книги
Как предложить книгу или оставить отзыв 1
htm – Физический факультет НГУ В то время как обычные переменные (скаляры) хранят одиночное значение, массивы хранят много значений
В ряде случаев при построении графиков удобнее пользоваться полярными, а не Где скачать МАТЛАБ что бы без лицензии и можна было пользоватся? как это “БЕЗ ЛИЦЕНЗИИ” и при этом “ЧТО БЫ МОЖНО БЫЛО ПОЛЬЗОВАТЬСЯ“?!
6:40
Урок 5
Переменные и функции в Mathcad | САПР …
Mtwintools как пользоваться – rankw
ru
Теория автоматического управления (ТАУ) 1: …
языке этой системы для того, чтобы уметь пользоваться ее возможностями как для демонстрации математических закономерностей при изучении
Но, как говорится, из песни слов не выкинешь — MATLAB позволяет из командой строки пользоваться основными услугами старушки MS-DOS и Windows
· Файл PDF
Как пользоваться keygen, crack, patch Введение Ни для кого не секрет, что в нашей стране 90% установленных программ …
В принципе, необязательно пользоваться интерпретатором latex в Матлабе
Функция matlabfrag() Дело в том, как Матлаб хранит текстовое содержимое легенд: если легенды две, то их текст будет
1/10/2007 · А мне казалось как раз для инженерных задач матлаб наилучший пакет, в тех случаях, когда разработчик сам ставит новую задачу
2
7/5
Ответы@Mail
Ru: Где скачать МАТЛАБ что бы без …
Компоненты Data Acquisition, ODBC Input позволяют пользоваться внешними базами Как следствие, импорт также имеет ограничения: документ, созданный в Mathcad 14, можно сохранить в формате версии не ниже 11-й
Как пользоваться сайтом? Для удобного и комфортного использования материалов ресурса настоятельно рекомендуем ознакомится с разделом « О …
Matlab R2018a (9
4
0
813654) (Mac OS x64, Windows …
Машинное зрение
Что это и как им пользоваться? …
Руководство пользователя Mathcad
Рассмотрены как простейшие методы преобразования данных центрирование и шкалирование, так и алгоритмы для анализа данных — …
Как пользоваться книгой Книга будет полезна в следующих ситуациях
Во-первых, она может
Школа MATLAB
Урок 1
Моделирование устройств …
Как видно из таблицы, одна и та же функция residue может осуществлять преобразование в обоих направлениях
Направление преобразования определяется числом входных и выходных параметров
Ею можно пользоваться как мощнейшим калькулятором, в котором наряду с обычными арифметическими и алгебраическими действиями могут использоваться такие сложные операции, как
При этом во всех методах такого класса нужно будет пользоваться циклом по элементам базового массива структур – p(i)
c, например
Как уже отмечалось, все данные у объекта являются
Например, векторы с длиной 2 m относятся к этому классу, так же как и векторы, имеющие длины, подобные 100 или 120
С другой стороны, вектор, чья длина — большое простое число, замедлит вычисление
kon boot как пользоваться – Скачать бесплатно без
f – критерий Фишера является параметричесикм критерием и используется для сравнения дисперсий двух вариационных рядов
Эмпирическое значение критерия вычисляется по формуле: где – большая дисперсия, – меньшая
glut.megarulez.ru
Как устроен современный MATLAB? | KV.by
MATLAB сочетает в себе простой в освоении язык с высокой скоростью расчетов. Благодаря чему достигается такое быстродействие? Что нужно сделать, чтобы написать на MATLAB по-настоящему быструю программу? Наконец, существует ли достойная альтернатива MATLABу среди свободного программного обеспечения? На все эти вопросы мы и постараемся сейчас ответить.
MATLAB появился в конце 1970-х как скриптовый язык и обертка над функциями библиотек линейной алгебры LINPACK и EISPACK. Особенностью MATLAB является то, что базовый (а в ту пору — единственный) тип данных в нем — матрица, а не число. Благодаря этому удалось избавить запись матричных операций от циклов, сделав ее более компактной и похожей на математическую. С другой стороны, использование самых современных на тот момент библиотек обеспечивало высокое быстродействие расчетов. Все это способствовало быстрому росту популярности MATLAB.
Умножение матрицы на число, записанное разными способами
С тех пор прошло более тридцати лет. За эти годы о MATLAB были написаны десятки книг, он сделался одним из стандартных языков для научно-технических расчетов. Относительная простота языка и высокая скорость выполняемых с его помощью вычислений сохранились и по-прежнему остаются привлекательными сторонами пакета. Но за счет чего это достигается? Как устроен современный MATLAB?
Как и прежде, у MATLAB «под капотом» самые современные математические библиотеки. Сейчас это: Intel Math Kernel Library (MKL) для операций линейной алгебры и Intel Integrated Performance Primitives Library (IPPL) — для оптимизации обработки изображений. MKL включает в себя, в частности, библиотеки: BLAS, реализующую базовые векторно-матричные операции, и LAPACK — современное развитие LINPACK — содержащую решатели задач линейной алгебры. Поэтому неудивительно, что по скорости выполнения MATLAB обгоняет любой «самодельный» код, реализующий векторно-матричные операции. Также уверенно обходит он и пакеты, использующие другие реализации BLAS и LAPACK.
Дело в том, что MKL и IPPL используют SSE и AVX — наборы инструкций для процессора, которые реализуют параллельные вычисления, в случае, когда нужно выполнить одну и ту же последовательность действий над разными данными (SIMD). Это приводит к существенному росту производительности, причем без каких-либо усилий со стороны пользователя.
Кроме того, MATLAB, вероятно, использует SSE/AVX и в функциях своего ядра, которые реализованы на С. По крайней мере, для разработки пакета MathWorks использует Intel Parallel Studio XE, в состав которого входит компилятор C/C++.
Любопытно, что на компьютерах с процессорами AMD MATLAB также использует библиотеки, разработанные в Intel, хотя AMD реализовало свою библиотеку со сходными возможностями — AMD Core Math Library (ACML).
Таким образом, быстродействие MATLAB складывается из высокооптимизированных библиотек (Intel), неявной параллелизации (что также является заслугой Intel) и настроенных на использование этих преимуществ функций ядра (MathWorks). Мы не можем знать точно степень влияния каждого из факторов, кроме того они могут меняться от версии к версии и от платформы к платформе.
Определение версий используемых MATLAB библиотек с помощью функции version
Для того чтобы эффективно использовать эти возможности, нужно «векторизовать» программу, т. е. заменить использование циклов операциями над массивом в целом, которые как раз и реализуются быстрыми функциями MATLAB.
Но и циклы не были забыты. В 2003 г. в составе MATLAB (версии 6.5, R13) появился JIT-компилятор. Он анализирует выполняемую программу, транслируя повторяющиеся фрагменты в машинный код. В результате, при последующих повторениях скорость выполнения этих фрагментов значительно возрастает (иногда — до 100 раз), что позволяет сделать некоторые циклы почти столь же быстрыми, как их векторизованные аналоги. Но: для того, чтобы JIT-компилятор можно было успешно применить, код цикла должен удовлетворять определенным требованиям.
Краткую сводку этих требований, а также советов по векторизации программы, можно получить в работе Writing Fast MATLAB Code, а более детальную и свежую информацию — в блоге Undocumented Matlab Яира Альтмана или на страницах его книги “Accelerating MATLAB Performance” — наиболее подробному на сегодняшний день руководству по оптимизации программ MATLAB. Кстати, приведенное выше использование функции version также относится к недокументированным возможностям пакета.
В качестве более дешевой альтернативы MATLABу можно использовать Python c библиотеками NumPy/SciPy и установленной MKL. При этом вместо JIT-компилятора MATLAB применяются Numba или Cython. Многочисленные тесты, результаты которых можно найти в Интернет (например, этот), говорят о том, что MATLAB и связка Python + SciPy выдают весьма близкие по быстродействию результаты, так что на первый план выступают умение программиста и его знание особенностей конкретного пакета.
Дмитрий Храмов
www.kv.by