
- •Начала программирования в среде MatLab
- •Содержание
- •Предисловие
- •Введение
- •1. MatLAB как научный калькулятор
- •1.1. Командное окно
- •1.2. Операции с числами
- •1.2.1. Ввод действительных чисел
- •1.2.2. Простейшие арифметические действия
- •1.2.3. Ввод комплексных чисел
- •1.2.4. Элементарные математические функции
- •1.2.5. Специальные математические функции
- •1.2.6. Элементарные действия с комплексными числами
- •1.2.7. Функции комплексного аргумента
- •1.2.8. Задания
- •1.2.9. Вопросы
- •1.3. Простейшие операции с векторами и матрицами
- •1.3.1. Ввод векторов и матриц
- •1.3.2. Формирование векторов и матриц
- •1.3.3. Извлечение и вставка частей матриц
- •1.3.4. Действия над векторами
- •1.3.5. Поэлементное преобразование матриц
- •1.3.6. Матричные действия над матрицами
- •1.3.7. Матричные функции
- •1.3.8. Задания
- •1.3.9. Вопросы
- •1.4. Функции прикладной численной математики
- •1.4.1. Операции с полиномами
- •1.4.2. Обработка данных измерений
- •1.4.3. Функции линейной алгебры
- •1.4.4. Аппроксимация и интерполяция данных
- •1.4.5. Векторная фильтрация и спектральный анализ
- •1.4.6. Задания
- •1.4.7. Вопросы
- •1.5. Построение простейших графиков
- •1.5.1. Процедура plot
- •1.5.2. Специальные графики
- •1.5.3. Дополнительные функции графического окна
- •1.5.5. Задания
- •1.5.6. Вопросы
- •1.6. Операторы управления вычислительным процессом
- •1.6.1. Оператор условного перехода
- •1.6.2. Оператор переключения
- •1.6.3. Операторы цикла
- •1.6.4. Задания
- •1.6.5. Вопросы
- •2. Программирование в среде MatLAB
- •2.1. Функции функций
- •2.2. Создание М-файлов
- •2.2.1. Особенности создания М-файлов
- •2.3.1. Общие требования к построению
- •2.3.2. Типовое оформление процедуры-функции
- •2.3.3. Задания
- •2.3.4. Вопросы
- •2.4. Создание Script-файлов
- •2.4.1. Основные особенности Script-файлов
- •2.4.2. Ввод и вывод информации в диалоговом режиме
- •2.4.3. Организация повторения действий
- •2.4.4. Организация изменения данных в диалоговом режиме
- •2.4.5. Типовая структура и оформление Script-файла
- •2.5. Графическое оформление результатов
- •2.5.1. Общие требования к представлению графической информации
- •2.5.2. Разбивка графического окна на подокна
- •2.5.3. Вывод текста в графическое окно (подокно)
- •2.6. Создание функций от функций
- •2.6.1. Процедура feval
- •2.6.2. Примеры создания процедур от функций
- •2.6.3. Задания
- •2.7. Пример создания сложной программы
- •2.7.1. Программа моделирования движения маятника
- •2.7.2. Задания
- •3.1. Функции меню командного окна
- •3.1.2. Другие меню командного окна
- •3.1.3. Панель инструментов
- •3.2. Команды общего назначения
- •3.3. Создание М-книги
- •3.3.1. Начало новой М-книги
- •3.3.2. Написание М-книги
- •3.3.3. Редактирование М-книги
- •3.3.4. Преобразование документа WORD в М-книгу
- •3.3.6. Изменение параметров вывода результатов
- •4. Классы вычислительных объектов
- •4.1. Основные классы объектов
- •4.1.1. Класс символьных строк (char)
- •4.1.2. Класс записей (struct)
- •4.1.3. Класс ячеек (cell)
- •4.2. Производные классы MatLAB
- •4.2.1. Класс объектов Inline
- •4.2.2. Классы пакета CONTROL
- •4.3. Пример создания нового класса polynom
- •4.3.1. Создание подкаталога @polynom
- •4.3.2. Создание конструктора
- •4.3.3. Создание процедуры символьного представления polynom-объекта.
- •4.4. Создание методов нового класса
- •5.1. Формирование типовых процессов
- •5.1.1. Формирование одиночных импульных процессов
- •5.1.2. Формирование колебаний
- •5.2.1. Основы линейной фильтрации
- •5.2.2. Формирование случайных процессов
- •5.3. Процедуры спектрального (частотного) и статистического анализа процессов
- •5.3.1. Основы спектрального и статистического анализа
- •5.3.2. Примеры спектрального анализа
- •5.3.3. Статистический анализ
- •5.4. Проектирование фильтров
- •5.4.1. Формы представления фильтров и их преобразования
- •5.4.2. Разработка аналоговых фильтров
- •5.4.3. Проектирование БИХ-фильтров
- •5.5. Графические и интерактивные средства
- •5.5.1. Графические средства пакета SIGNAL
- •5.5.2. Интерактивная оболочка SPTOOL
- •6.1. Ввод и преобразование моделей
- •6.2. Получение информации о модели
- •6.3. Анализ системы
- •6.4. Интерактивный "обозреватель" ltiview
- •6.5. Синтез системы
- •7.1. Общая характеристика пакета SimuLink
- •7.1.1. Запуск SimuLink
- •7.1.2. Библиотека модулей (блоков)
- •7.1.3. Раздел Sinks (приемники)
- •7.1.4. Раздел Sources (Источники)
- •7.1.5. Раздел Сontinuous
- •7.1.6. Раздел Discrete
- •7.1.7. Раздел Math
- •7.1.8. Раздел Functions & Tables
- •7.1.9. Раздел Nonlinear
- •7.1.10. Раздел Signals & Systems
- •7.2. Построение блок-схем
- •7.2.1. Выделение объектов
- •7.2.2. Оперирование с блоками
- •7.2.3. Проведение соединительных линий
- •7.2.4. Проставление меток сигналов и комментариев
- •7.2.5. Создание подсистем
- •7.2.6. Запись и распечатка блок-схемы S-модели
- •7.3. Примеры моделирования
- •7.3.1. Моделирование поведения физического маятника
- •7.3.2. Моделирование поведения гироскопа в кардановом подвесе
- •7.4. Объединение S-моделей с программами MatLAB
- •7.4.2. Функции пересечения нуля
- •7.4.5. Образование S-блоков путем использования программ MatLab. S-функции
- •7.4.6. Пример создания S-функции
- •7.5.1. Создание библиотеки
- •7.5.2. Маскировка блоков
- •7.5.3. Моделирование процесса ориентации космического аппарата
- •Послесловие
- •Предметный указатель
- •Указатель операторов, команд, функций и функциональных блоков MatLAB

1. 2. Операции с числами |
16 |
символом ' ; ', после нажатия клавиши <Enter> в командном окне возникнет результат выполнения в виде :
<Имя переменной> = <результат>.
|
|
|
|
|
Рис. 1.7 |
|
Рис. 1.8 |
||
|
|
|
|
|
|
|
|
|
|
Рис. 1.9
Например, если ввести в командное окно строку 'x = 25 + 17', на экране появится запись (рис. 1.9) :
Система MatLAB имеет несколько имен переменных, которые используются самой системой и входят в состав зарезервированных:
i, j - мнимая единица (корень квадратный из -1); pi - число π (сохраняется в виде 3.141592653589793); inf - обозначение машинной бесконечности; Na- обозначение неопределенного результата (например, типа 0/0 или inf/inf); eps - погрешность операций над числами с плавающей запятой; ans- результат последней операции без знака присваивания; realmax и realmin – максимально и минимально возможные величины числа, которое может быть использованы.
Эти переменные можно использовать в математических выражениях.
1.2.3. Ввод комплексных чисел
Язык системы MatLAB, в отличие от многих языков программирования высокого уровня, содержит в себе очень простую в пользовании встроенную арифметику комплексных чисел. Большинство элементарных математических функций допускают в качестве аргументов комплексные числа, а результаты формируются

1. 2. Операции с числами |
17 |
как комплексные числа. Эта особенность языка делает его очень удобным и полезным для инженеров и научных работников.
Для обозначения мнимой единицы в языке MatLAB зарезервированы два имени i и j. Ввод с клавиатуры значения комплексного числа осуществляется путем записи в командное окно строки вида:
<имя комплексной переменной> = <значение ДЧ> + i [j] *<значение МЧ>,
где ДЧ - действительная часть комплексного числа, МЧ - мнимая часть. Например:
Рис. 1.10
Из приведенного примера видно, в каком виде система выводит комплексные числа на экран (и на печать).
1.2.4. Элементарные математические функции
Общая форма использования функции в MatLAB такова:
<имя результата> = <имя функции>(<перечень аргументов или их значений>).
В языке MatLAB предусмотрены следующие элементарные арифметические функции.
sin(Z) |
Тригонометрические и гиперболические функции |
- синус числа Z; |
|
sinh(Z) |
- гиперболический синус; |
asin(Z) |
- арксинус (в радианах, в диапазоне от -π /2 к +π /2); |
asinh(Z) |
- обратный гиперболический синус; |
cos(Z) |
- косинус; |
cosh(Z) |
- гиперболический косинус; |
acos(Z) |
- арккосинус (в диапазоне от 0 к π ); |
acosh(Z) |
- обратный гиперболический косинус; |
tan(Z) |
- тангенс; |
tanh(Z) |
- гиперболический тангенс; |
atan(Z) |
- арктангенс (в диапазоне от -π /2 к +π /2); |
1. 2. Операции с числами |
18 |
atan2(X,Y) - четырехквадрантный арктангенс (угол в диапазоне от -π до +π между горизонтальным правым лучом и лучом, который проходит через точку с координатами X и Y);
atanh(Z) |
- обратный гиперболический тангенс; |
|
sec(Z) |
- секанс; |
|
sech(Z) |
- гиперболический секанс; |
|
asec(Z) |
- арксеканс; |
|
asech(Z) |
- обратный гиперболический секанс; |
|
csc(Z) |
- косеканс; |
|
csch(Z) |
- гиперболический косеканс; |
|
acsc(Z) |
- арккосеканс; |
|
acsch(Z) |
- обратный гиперболический косеканс; |
|
cot(Z) |
- котангенс; |
|
coth(Z) |
- гиперболический котангенс; |
|
acot(Z) |
- арккотангенс; |
|
acoth(Z) |
- обратный гиперболический котангенс. |
|
exp(Z) |
|
Экспоненциальные функции |
- экспонента числа Z; |
||
log(Z) |
- натуральный логарифм; |
|
log10(Z) |
- десятичный логарифм; |
|
sqrt(Z) |
- |
квадратный корень из числа Z; |
abs(Z) |
- |
модуль числа Z. |
fix(Z) |
|
Целочисленные функции |
- округление к ближайшему целому в сторону нуля; |
||
floor(Z) |
- округление к ближайшему целому в сторону отрицательной бес- |
|
конечности; |
|
|
ceil(Z) |
- |
округление к ближайшему целому в сторону положительной |
бесконечности; |
|
|
round(Z) |
- обычное округление числа Z к ближайшему целому; |
|
mod(X,Y) |
- целочисленное деление X на Y; |
|
rem(X,Y) |
- вычисление остатка от деления X на Y; |
|
sign(Z) |
- вычисление сигнум-функції числа Z |
|
|
|
(0 при Z=0, -1 при Z<0, 1 при Z>0). |
1.2.5. Специальные математические функции
Кроме элементарных в языке MatLAB предусмотрен целый ряд специальных математических функций. Ниже приведен перечень и краткое содержание этих функций. Правила обращения к ним и использования пользователь может отыскать в описаниях этих функций, которые выводятся на экран, если набрать команду help и указать в той же строке имя функции.
Функции преобразования координат
1. 2. Операции с числами |
19 |
cart2sph |
- преобразование декартовых координат в сферические; |
cart2pol |
- преобразование декартовых координат в полярные; |
pol2cart |
- преобразование полярных координат в декартовые; |
sph2cart |
- преобразование сферических координат в декартовые. |
besselj |
Функции Бесселя |
- функция Бесселя первого рода; |
|
bessely |
- функция Бесселя второго рода; |
besseli |
- модифицированная функция Бесселя первого рода; |
besselk |
- модифицированная функция Бесселя второго рода. |
beta |
Бета-функции |
- бета-функция; |
|
betainc |
- неполная бета-функция; |
betaln |
- логарифм бета-функции. |
gamma |
Гамма-функции |
- гамма-функция; |
|
gammainc - неполная гамма-функция; |
|
gammaln |
- логарифм гамма-функции. |
ellipj |
Эллиптические функции и интегралы |
- эллиптические функции Якобе; |
|
ellipke |
- полный эллиптический интеграл; |
expint |
- функция экспоненциального интеграла. |
erf |
Функции ошибок |
- функция ошибок; |
|
erfc |
- дополнительная функция ошибок; |
erfcx |
- масштабированная дополнительная функция ошибок; |
erfinv |
- обратная функция ошибок. |
gcd |
Другие функции |
- наибольший общий делитель; |
|
lcm |
- наименьшее общее кратное; |
legendre |
- обобщенная функция Лежандра; |
log2 |
- логарифм по основанию 2; |
pow2 |
- возведение 2 в указанную степень; |
rat |
- представление числа в виде рациональной дроби; |
rats |
- представление чисел в виде рациональной дроби. |