Раздел: Документация
0 ... 35 36 37 38 39 40 41 ... 365 0.4286 -1.3333 -1.8000 » R2 = алв R2 = -0.5000 0.4000 -8.0000 2.3333 -0.7500 -0.5556 Поэлементное возведение в степень осуществляется при помощи .Л » р = а.Л2 р - 4 25 1 9 16 81 Показатель степени может быть матрицей того же размера, что и матрица, возводимая в степень. При этом элементы первой матрицы возводятся в степени, равные элементам второй матрицы: » рв = а.лб рв = 1.0е+003 * 0.0005 0.0250 6.0010 2.1870 0.0000 0.0000 Обратите внимание на форму вывода результата. Во-первых, выделен общий множитель 1. Ое+003 для всех элементов результирующей матрицы, т. е. ответ выглядит так: РВ = 103 (0.0005 0.0250 0.0010 2.1870 0.0000 0.0000 0.5 25 О 2187 0 0 Во-вторых, при возведении 4 и 9 получились нули, т. е. произошла потеря точности из-за того, что использовался формат short. Дело в том, что 4 3 =0.0156, 9~5 = 0.000016935, а эти числа малы по сравнению с остальными, и допустимого числа знаков формата short не хватает для их отображения на экране. Если мы хотим получить более точный результат поэлементного возведения в степень, то мы должны задать формат long, и затем вывести РВ снова: » format long » рв рв = 1.0е+003 * 0.00050000000000 0.02500000000000 0.00100000000000 2.18700000000000 0.00001562500000 0.00000001693509 Заметьте, что повторного вычисления элементов матрицы РВ не потребовалось. Вне зависимости от установленного формата вывода все вычисления производятся с двойной точностью (в предположении, что данные типа single не участвуют в операциях). Перейдем теперь к вычислению математических функций от элементов матриц. Вычисление математических функций от элементов матриц Очень важно сразу понять, что в книгах по теории матриц формула cos А, где А — квадратная матрица, означает вычисление косинуса от матрицы, которое осуществляется при помощи разложения в ряд. в MATLAB имеется возможность вычисления функций от матриц (вычисление функций от матриц описано в разд. "Собственные числа и векторы, матрицы, функции матриц" главы 6). Запись с - cos (й) в MATLAB приводит к вычислению косинусов от элементов массива а и записи их в массив с того же размера, что и а. Нахождение, например, косинусов от элементов матрицы я/2 -тс/2 0 > А= Я -Я 2я 0 2я л/3 V. J производится при помощи следующих команд » А = [pi/2 -pi/2 0; pi -pi 2*pi; 0 2*pi pi/3]; » С = cos (A) С = 0.0000 0.0000 1.0000 -1.0000 -1.0000 1.0000 1.0000 1.0000 0.5000 Аналогично вычисляются и другие математические функции. Использование функций обработки данных для матриц (нахождение максимума, минимума, суммы и др.) несколько отличается от их применения при работе с векторами. Применение функций обработки данных к матрицам Функция sum вычисляет сумму элементов вектора. С другой стороны, векторы в MATLAB, так же как и матрицы, хранятся в двумерных массивах. Возникает вопрос: что же будет, если в качестве аргумента sum использовать не вектор, а матрицу. Оказывается, MATLAB вычислит вектор-строку, длина которой равна числу столбцов матрицы, а каждый элемент является суммой соответствующего столбца матрицы, например: » м = [1 -2 -4 3-6 4 2 -2 0]; » s = sum(M) s = б -10 0 Функция sum по умолчанию вычисляет сумму по столбцам, изменяя первый индекс массива при фиксированном втором. Для того чтобы производить суммирование по строкам, необходимо вызвать sum с двумя аргументами, указав место индекса, по которому следует суммировать » s2 = sum(M, 2) S2 = -5 1 о Заметьте, что sum(M) и sum(M, 1) приводят к одинаковым результатам. Итак, функция sum суммирует или по строкам, или по столбцам, выдавая результат в виде вектора или вектор-строки. Аналогично работает и функция prod: » р = prod(M)» р2 = prod(M, 2) Р =р2 = 6 -24 ое -72 0 Функция sort упорядочивает элементы каждого из столбцов матрицы в порядке возрастания. Вызов sort со вторым аргументом, равным двум, приводит к упорядочению элементов строк: » МС = sort(M)» MR = sort(M, 2) МС =MR = 0 ... 35 36 37 38 39 40 41 ... 365
|