"MATLAB 7 (Наиболее полное руководство в подлиннике)" - читать интересную книгу автора (Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н.)

Обратите внимание, что при попытке использования операций возведения в степень Л, деления / и умножения * (которые не относятся к поэлементным) выводится сообщение об ошибке уже при возведении 5tn(,v) в квадрат:
» у = sin(x)~2/(l + cos(x)) + exp[-x)*log(x) ??? Error using ==> A Matrix must be square,
Дело в том, что в MATLAB операции * и Л применяются для перемножения матриц соответствующих размеров и возведения квадратной матрицы в степень, о чем написано в разделах, посвященных работе с матрицами.
Таблице можно придать более удобный для чтения вид, расположив значения функции непосредственно под значениями аргумента:
» х
X =
0.2000 0.3000 0.5000 0.8000 1.3000 1.7000 2.5000 » у
У = -1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2258 1.8764
Часто требуегся вывести значение функции в точках отрезка, отстоящих друг от друга на равное расстояние (шаг). Предположим, что необходимо вывести
Глава 2. Работа с массивами
67
таблицу значений функции _у(*)на отрезке [1, 2] с шагом 0.2. Можно, конечно, ввести вектор-строку значений аргумента jc — [l, 1.2,1.4, 1.6,1.8, 2.0] из
командной строки и вычислить все значения функции так, как описано выше. Однако если шаг будет не 0.2, а, например, 0.01, то предстоит большая работа по вводу вектора х.
В MATLAB предусмотрено простое создание векторов, каждый элемент которых отличается от предшествующего на постоянную величину, т, е. шаг. Для ввода таких векторов служит двоеточие. Следующие два оператора приводят к одинаковым вектор-строкам:
» х = [1, 1.2, 1.4, 1.6, 1.8, 2.0] х =
1.0000 1.2000 1.4000 1.600.0 1.8000 2.0000 » х = 1:0.2:2 х =
1.0000 1.2000 1.4000 1.6000 1.6000 2.0000
Условно можно записать
х = начальное значение : шаг : конечное значение
Необязательно заботиться о том, чтобы сумма предпоследнего значения и шага равнялась бы конечному значению; например, при выполнении следующего оператора присваивания
» х => 1:0.2:1.9 х =
1.0000 1.2000 1.4000 1.6000 1.8000
вектор-строка заполнится до элемента, не превосходящего определенное нами конечное значение. Шаг может быть и отрицательным:
» х = 1.9:-0.2:1 х =
1.5000 1ЛОО0 1.5000 1.3000 1.1000
В случае отрицательного шага начальное значение должно быть больше или равно конечному для получения непустой вектор-строки.
Попробуйте самостоятельно заполнить вектор-столбец элементами, начинающимися с нуля и заканчивающимися 0.5, с шагом 0.1. Для этого следует заполнить вектор-строку, а затем использовать операцию транспонирования:
» х = (0:0.1:0.5)' х =
0
ев
Часть I, Основы работы в MATLAB
O.L0OO 0.2000 0.3000
0.4000 0.5000
Обратите внимание, что элементы вектора, заполняемого при помощи двоеточия, могут быть только вещественные, поэтому для транспонирования можно набрать знак апострофа вместо точки с апострофом. Круглые скобки использованы не случайно, без них операция транспонирования применилась бы только к числу 0.5, и в результате вектор х был бы строкой.
Шаг. равный единице, допускается не указывать при автоматическом заполнении:
» х = 1:5
х '=
12 3 4 5
^ Примечание J%
Выше мы рассмотрели индексацию при помощи двоеточия. Очевидно, что при этом создается вектор индексов с постоянным шагом, который используется для выделения нужных элементов вектора.
Выведите теперь таблицу значений функции
Fv(x) = e~'TsinI0jc
на отрезке [0, l] с шагом 0.05, произведя следующие действия:
1. Сформируйте вектор-строку х при помощи двоеточия.
2 . Вычислите значения у(х) от элементов х (не забудьте использовать поэлементное умножение).
3. Запишите результат в вектор-строку у.
4. Выведите к и у.
Результат, отображенный на экране, не очень напоминает таблицу:
» х = 0:0.05:1;
» у - ехр(-х).*sin(10*x) ;