"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) ; |
|
|