Учебник MATLAB для начинающих
MATLAB — стандарт инженерных и научных вычислений в вузах и индустрии. Этот курс учит главному навыку: думать матрицами и писать векторизованный код вместо циклов. Вы освоите интерфейс, создание и индексацию матриц, матричные операции, построение 2D/3D-графиков, линейную алгебру, численные методы (интегрирование, ОДУ, аппроксимацию), обзор Simulink и тулбоксов, а также увидите, чем MATLAB отличается от Python/NumPy и Julia. Аудитория — студенты технических специальностей.
Курс «MATLAB: инженерные и научные вычисления» состоит из 8 разделов и 26 уроков: Что такое MATLAB и зачем он нужен, Создание и индексация матриц, Матричные операции, Векторизация, функции и управление потоком, Функции и структуры данных, Построение графиков и работа с данными, Линейная алгебра и численные методы и Экосистема: символика, Simulink, отладка и сравнение. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Что такое MATLAB и зачем он нужен
- MATLAB как матричная лаборатория
Что такое MATLAB, откуда название, где он стандарт и почему вокруг матриц построен весь язык.
- Интерфейс: Command Window, рабочая область, редактор
Окна MATLAB: командная строка, Workspace, редактор и скрипты .m — как устроена среда и где что лежит.
- Всё — матрица: фундамент модели данных
Ключевая идея MATLAB: скаляр — это матрица 1×1, вектор — n×1 или 1×n, размерности через size и length.
- MATLAB как матричная лаборатория
2 Создание и индексация матриц
- Создание матриц: литералы и генераторы
Как задать матрицу вручную и автоматически: литералы, zeros, ones, eye, rand и конкатенация блоков.
- Диапазоны: двоеточие и linspace
Оператор-диапазон start:step:stop и функция linspace — как быстро создавать упорядоченные векторы.
- Индексация: с единицы, end и срезы
Индексация в MATLAB начинается с 1: доступ к элементам, ключевое слово end, срезы A(:,2) и подматрицы.
- Логическая индексация
Логическая индексация в MATLAB: выбор элементов по условию через маски, find и присваивание по условию.
- Создание матриц: литералы и генераторы
3 Матричные операции
- Матричное умножение * и поэлементное .*
Главное различие MATLAB: * — матричное умножение по правилу строка на столбец, .* — поэлементное.
- Транспонирование и обратная матрица
Транспонирование апострофом, разница ' и .', обратная матрица inv и почему её редко считают напрямую.
- Решение СЛАУ оператором A\b
Оператор обратного деления A\b — флагманская возможность MATLAB для решения систем линейных уравнений.
- Матричное умножение * и поэлементное .*
4 Векторизация, функции и управление потоком
- Векторизация: думать матрицами вместо циклов
Главный навык MATLAB: заменять циклы операциями над целыми массивами — почему это быстрее и чище.
- Встроенные функции: sum, mean, max по столбцам
Агрегирующие функции MATLAB sum, mean, max, min, sort работают по столбцам — и как управлять измерением.
- Управление потоком: if, for, while
Условия и циклы в MATLAB: синтаксис if/elseif/else, for, while — и когда они всё же нужны.
- Векторизация: думать матрицами вместо циклов
5 Функции и структуры данных
- Функции: файлы-функции и анонимные @
Функции в MATLAB: объявление function, несколько выходов, анонимные функции через @ и их применение.
- Строки: char, string и форматный вывод
Текст в MATLAB: символьные массивы char, современный тип string, конкатенация и форматирование sprintf.
- Ячейки cell и структуры struct
Гетерогенные данные в MATLAB: cell-массивы для разнородных значений и struct с именованными полями.
- Функции: файлы-функции и анонимные @
6 Построение графиков и работа с данными
- Построение 2D-графиков: plot
Главная сила MATLAB — графики: команда plot, оси, заголовки, легенда, несколько кривых и hold on.
- subplot, 3D-графики и оформление
Несколько графиков в одном окне через subplot, трёхмерные surf и mesh, оформление и сохранение фигур.
- Импорт данных: CSV, Excel и таблицы table
Загрузка данных в MATLAB: readtable для CSV и Excel, тип table с именованными столбцами и его обработка.
- Построение 2D-графиков: plot
7 Линейная алгебра и численные методы
- Линейная алгебра: собственные значения и разложения
Линейная алгебра в MATLAB: определитель, ранг, собственные значения eig, разложения LU, QR и SVD.
- Численное интегрирование и решение ОДУ
Численные методы MATLAB: интеграл функции через integral и решение обыкновенных дифференциальных уравнений ode45.
- Аппроксимация: polyfit, интерполяция, оптимизация
Подгонка данных в MATLAB: полиномы polyfit/polyval, интерполяция interp1 и поиск минимума функции.
- Линейная алгебра: собственные значения и разложения
8 Экосистема: символика, Simulink, отладка и сравнение
- Символьные вычисления: Symbolic Toolbox
Обзор Symbolic Math Toolbox: символьные переменные syms, упрощение, производные diff и интегралы int.
- Simulink и тулбоксы: экосистема MATLAB
Обзор экосистемы: Simulink для блочного моделирования и тулбоксы для сигналов, изображений, ML и управления.
- Отладка, профилирование и хороший стиль
Поиск ошибок и ускорение кода в MATLAB: точки останова, dbstop, профайлер profile и приёмы чистого кода.
- MATLAB против Python/NumPy и Julia: выбор и миграция
Сравнение MATLAB с Python/NumPy и Julia: синтаксис матриц, лицензия, экосистема, когда что выбирать и Octave.
- Символьные вычисления: Symbolic Toolbox