- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
3. Базовые объекты системы matlab
Особенностью системы MATLAB является то, что ее базовый объект – это матрица или вектор. Теория матриц – раздел высшей алгебры, являющейся обобщением и развитием школьного курса алгебры, наряду с математическим анализом и аналитической геометрией, составляет фундамент математической науки, входит в программу подготовки современного специалиста. Высшая алгебра разделяется на линейную алгебру, в основе которой лежит задача решения систем уравнений первой степени, и алгебру многочленов, которая изучает уравнения произвольной степени относительно одной неизвестной.
В связи с необходимостью решения систем линейных уравнений разработан аппарат матриц и определителей. С другой стороны, изучение систем линейных уравнений потребовало введения и изучения многомерных (векторных) пространств. Этот математический аппарат позволяет получать эффективные и компактные решения многих теоретических и прикладных задач, в которых фигурируют не только алгебраические, но и дифференциальные уравнения.
В настоящее время существует вычислительная линейная алгебра: коэффициенты уравнений, решаемых в прикладных (инженерных) задачах, обычно получаются в результате измерений и известны приближенно – поэтому и корни обычно находят с некоторой заданной точностью. В инженерном деле исключительно высока роль различных численных методов, которые успешно реализуются с помощью ЭВМ. Важным инструментом решения данного круга задач является, в частности, и система MATLAB.
3.1. Способы формирования матриц и векторов
Матрицы представляют собой системы чисел, расположенных в прямоугольных таблицах из m строк и n столбцов (матрица, имеющая размер m x n); в системе MATLAB матрицы обозначаются квадратными скобками, т.е. :
,
где . Числа являются элементами матрицы. Если , имеем квадратную матрицу порядка n. Диагональной является квадратная матрица, у которой при , т.е.
;
элементы расположены на главной диагонали. Если все эти элементы равны друг другу (), получаем скалярную матрицу; при – единичную (ее обозначают через Е). Матрица, состоящая из одного числа, отождествляется с этим числом. Матрица, все члены которой равны нулю, называется нулевой и обозначается 0.
Вводится также понятие многомерного векторного пространства, элементы которого называются векторами; n-мерный вектор – это упорядоченная система n чисел , где – компоненты вектора а. Векторами являются матрица-столбец и матрица-строка ; скаляр – это матрица с размерами . Примеры векторов: отрезки, выходящие из начала системы координат (двух- и трехмерной); коэффициенты линейного уравнения или решение системы линейных уравнений с n неизвестными составляют n-мерный вектор. Положение твердого тела в пространстве определяется упорядоченной системой из шести действительных чисел.
Матрицы в системе MATLAB формируются одним из следующих способов: прямой ввод значений элементов (заполнение строк и столбцов); генерирование с помощью встроенных операторов или функций; создание в процессе работы программ (m-файлов); загрузка из внешнего файла.
При прямом вводе матрицы ее элементы отделяются друг от друга пробелами или запятыми; строки – символом (;):
» A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
или
» A=[1 2 3
4 5 6
7 8 9]
A =
1 2 3
4 5 6
7 8 9
» A=[1,2,3
4,5,6
7,8,9]
A =
1 2 3
4 5 6
7 8 9
Введенная матрица хранится в памяти как соответствующая переменная и может быть использована в последующих вычислениях:
» format long, exp(A)
ans =
1.0e+003 *
0.00271828182846 0.00738905609893 0.02008553692319
0.05459815003314 0.14841315910258 0.40342879349274
1.09663315842846 2.98095798704173 8.10308392757538
Элементы новой матрицы равны и имеют общий множитель , что придает результату компактный вид.
Элементами матриц могут быть любые выражения, допустимые в среде MATLAB:
» a=5; B=[-1.3 sqrt(-3) 24/a]
B =
-1.3000 0 + 1.7321i 4.8000
Возможна вставка дополнительных элементов:
» B(5)=abs(B(2)); B
B =
Columns 1 through 4
-1.3000 0 + 1.7321i 4.8000 0
Column 5
1.7321
В этом примере вставлен пятый элемент; четвертый по умолчанию принят равным нулю; надписи появляются, если выводимые элементы не помещаются в пределах экрана. Дополнительная строка может быть вставлена в исходную матрицу так:
» C=[A;[10 11 12]]
C =
1 2 3
4 5 6
7 8 9
10 11 12
В примере, приведенном ниже, удерживаются первые три строки, т.е. восстанавливается матрица А:
» C=C(1:3,:)
C =
1 2 3
4 5 6
7 8 9
Здесь в операции присваивания: прежней буквой С обозначена новая матрица. Если элементы целочисленные, то их упорядоченную последовательность можно задать в упрощенной форме (квадратные скобки могут быть опущены):
» A=1:4, B=[5:8]
A =
1 2 3 4
B =
5 6 7 8
Можно также задать вектор с элементами, отделенными друг от друга произвольным шагом:
» C=0:0.1:1.0
C =
Columns 1 through 7
0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
Columns 8 through 11
0.7000 0.8000 0.9000 1.0000
» C=0:pi/4:2*pi
C =
Columns 1 through 7
0 0.7854 1.5708 2.3562 3.1416 3.9270 4.7124
Columns 8 through 9
5.4978 6.2832
Так задают диапазон аргумента функции при построении графика последней.
Создадим квадратную матрицу с нормальными случайными элементами:
» a=randn(4)
a =
1.1650 -0.6965 0.2641 1.2460
0.6268 1.6961 0.8717 -0.6390
0.0751 0.0591 -1.4462 0.5774
0.3516 1.7971 -0.7012 -0.3600
и определим элементы на ее главной диагонали:
» diag(a)
ans =
1.1650
1.6961
-1.4462
-0.3600
Примеры создания ряда стандартных матриц: нулевой
» zeros(3)
ans =
0 0 0
0 0 0
0 0 0
единичной
» eye(3)
ans =
1 0 0
0 1 0
0 0 1
с единичными элементами:
» ones(3)
ans =
1 1 1
1 1 1
1 1 1