Раздел: Документация
0 ... 30 31 32 33 34 35 36 ... 365 3 7 1 3 7 1 -10 2 -10 2 Сопряжение и транспонирование матриц, содержащих комплексные числа, приведут к разным матрицам: » К = [1 - i, 2 + 3i; 3 - 5i, 1 - 9i] К = 1.0000 - l.OOOOi 2.0000 + 3.0000i 3.0000 - 5.0000i 1.0000 - 9.0000i » K ans •= 1.0000 + l.OOOOi 3.0000 + S.OOOOi 2.0000 - 3.0OOOi 1.0000 + 9.0000i » K. ans = 1.0000 - l.OOOOi 3.0000 - 5.0000i 2.0000 + 3.0000i 1.0000 - 9.0000i Вспомните, что при вводе вектор-строк их элементы можно разделять или пробелами, или запятыми. При вводе матрицы К применены запятые для более наглядного разделения комплексных чисел в строке. Возведение квадратной матрицы в целую степень производится с использованием оператора Л: » В2 = вл2 В2 = 27 32 -6 22 55 -2 -28 -6 9 Проверьте полученный результат, умножив матрицу на саму себя. Убедитесь, что вы освоили простейшие операции с матрицами в MATI АВ. Найдите значение следующего выражения Учтите приоритет операций, сначала выполняется транспонирование, потом возведение в степень, затем умножение, а сложение и вычитание производятся в последнюю очередь. » (А + С)*ВЛ3*(А - о 1 (А + С)В3(А-С)Т. ans - 1848 1914 10290 3612 Перемножение матрицы и вектора Поскольку вектор-столбец или вектор-строка в MATLAB являются матрицами, у которых один из размеров равен единице, то все вышеописанные операции применимы и для умножения матрицы на вектор, или вектор-строки на матрицу. Например, вычисление выражения 20 -4 8 ,0 9 [1 3 -2] -1 2
можно осуществить следующим образом: » а = [13 -2] ; » В = [2 0 1; -4 8 -1; 0 9 2]; » с = [-8,-3,-4] ; » а*В*с ans = 74 В математике не определена операция деления для матриц и векторов, однако в MATLAB символ \ используется для решения систем линейных уравнений. Решение систем линейных уравнений Решите небольшую систему, состоящую из трех уравнений с тремя неизвестными: 1.2х+0.3*2-0.2л:з = 1.3; 0.5*,+2.1*2+ 1.3*з =3.9; -0.9*, +0.7*2 +5.6*з =5.4. Введите матрицу системы в массив а, для вектора правой части используйте массив Ь. Решите систему при помощи символа \ » х = А\Ь X = 1.0000 1.0000 1.0000 Проверьте, правильный ли получился ответ, умножив а на х. j Примечание л Алгоритм решения систем линейных уравнений при помощи оператора \ определяется структурой матрицы коэффициентов системы. В частности, MATLAB исследует, является ли матрица треугольной, или может быть приведена перестановками строк и столбцов к треугольному виду, симметричная матрица или нет, квадратная или прямоугольная (MATLAB умеет решать системы с прямоугольными матрицами — переопределенные . или недоопределенные). Поэтому решать системы при помощи \ разумно, когда выбор алгоритма решения поручается MATLAB. Если же имеется информация о свойствах матрицы системы, то следует использовать специальные методы (подробнее о решении систем линейных уравнений сказано в главе 6). Решение систем небольшой размерности можно выполнить, введя матрицу системы и вектор правой части непосредственно из командной строки. Однако часто требуется найти решение системы, состоящей из большого числа линейных уравнений. Для ввода данных можно воспользоваться редактором массивов, который предоставляет удобный способ ввода и дает возможность легко проверить введенные данные на наличие ошибок. Вот один из возможных способов. Создайте в рабочей среде два пустых массива размера ноль на ноль при помощи квадратных скобок: » а - [ ] ; » b = [ ]; Откройте в редакторе массив а и определите нужный размер в строках ввода Size:. Затем введите элементы матрицы в ячейки таблицы. Обратите внимание, что при нажатии <Enter> происходит переход к ячейке, расположенной под текущей. Это хорошо, если матрица вводится по столбцам. Если предпочтительнее заносить значения элементов по строкам, то следует выбрать пункт Preferences... в меню File редактора массивов и в появившемся окне Array Editor Preferences задать желаемое направление перехода в раскрывающемся списке Direction. Флаг Move selection after Enter должен быть включен. Аналогичным способом вводится вектор правой части системы. Матрица и вектор правой части системы могут .храниться в файлах. В следующем разделе на примере решения системы показано, как считать данные из текстового файла, получить результат и записать его в файл. Считывание и запись данных Перед нами стоит задача — решить систему линейных уравнений, матрица и вектор правой части которой хранятся в текстовых файлах matr.txt, 0 ... 30 31 32 33 34 35 36 ... 365
|