Как пользоваться матлаб – Обзор и описание программы Матлаб (Matlab). Как создать Функции, построить графики

Основы работы в 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еаr, имеющей следующий синтаксис:

сlеаг('имя1' ,'имя2' ,...) .

Указанная команда удаляет из рабочего пространства пере­менные с именами имя1, имя2 и т.д.

Выполнив команду who

, можно узнать, какие переменные ос­тались в рабочем пространстве.

!! Выполните команду 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

установка и настройка, подробная инструкция

 Для того, чтобы установить Matlab на компьютер клиента, вставьте инсталляционный DVD диск пакета Matlab в DVD-привод компьютера. Автоматически запустится мастер установки данного продукта. Если этого не произошло, запустите Setup.exe, расположенный в корневой директории инсталляционного диска Matlab.

  • После запуска некоторое время будут распаковываться нужные для установки файлы и в итоге откроется следующее окно:


 

  • В этом окне выберите пункт «Install manually without using the Internet» (выборочная установка без использования Интернет), нажмите кнопку «Next>». Откроется окно лицензионного соглашения:


 

  • В этом окне согласитесь с условиями лицензии, выбрав пункт «Yes», нажмите кнопку «Next>». Откроется окно ввода инсталляционного ключа (файл с ключом получите вместе с инсталляционным диском, он называется fik.txt):


 

  • В этом окне выберите пункт «I have the File Installation Key for my license» (У меня есть файл с инсталляционным ключом для моей лицензии) и скопируйте этот ключ из полученного файла в поле, расположенное под этим пунктом. Нажмите кнопку «Next>». Откроется окно выбора установки: либо по умолчанию (Typical), либо настраиваемая (Custom):


 

  • В этом окне лучше выберите пункт Typical, нажмите кнопку «Next>». Откроется окно выбора папки для установки:


 

  • В этом окне задайте полный путь для установки данного продукта, нажмите кнопку «Next>». Откроется окно выбора лицензионного файла (этот файл также будет выдан вместе инсталляционным диском, он называется – license.dat)


 

  • В этом окне задайте полный путь до этого файла с лицензией, включая и название самого файла. Нажмите кнопку «Next>». Откроется окно процесса установки продукта:


 

  • После завершения процесса установки откроется окно:


 

  • Нажмите кнопку «Finish» для закрытия этого окна и завершения установки данного продукта.

Оставьте свой комментарий

Добавить комментарий
< Предыдущая   Следующая >

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 [email protected] 2012 Full Edition Boot Disk | 230 MB [email protected] 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
MatLab, Mathcad, Mathematica, Maple - что лучше Операторы и функции системы MATLAB Среда разработки открывается как присоединяемое окно справа от командно го окна MATLAB (рис 2
1
1) и к строке меню MATLAB добавляется элемент меню Mathcad — Википедия Simulink - моделирование и и симуляция … 4-е занятие по MATLAB - apeshnik
narod
ru Переглядів: 114 тис
команды, перед тем как ввести Enter, можно поставить знак ¾;¿ (точка с запятой)
В этом случае отклика системы мы не получим
Критерий Фишера Языки интерфейса: 10 языков Несколько сообщений о МАТЛАБ и о том, как им пользоваться
Комментарии, критика и восторженное рукоплескание приветствуются в самой … Как уже упоминалось в главе 1, в новой версии matlab повышена надежность вычислений с числами двойной точности (double) и …
        Главная » Рейтинг сайтов » 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 - критерий Фишера является параметричесикм критерием и используется для сравнения дисперсий двух вариационных рядов
            Эмпирическое значение критерия вычисляется по формуле: где - большая дисперсия, - меньшая

            pey.giftsbutik.ru
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          • Читать полностью
          •     PR.RU™  Contacts: [email protected]

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