Задание 2: (действия с матрицами)
РАБОТА В РЕЖИМЕ ПРЯМЫХ ВЫЧИСЛЕНИЙ 1) Вычисляемое выражение набирается, редактируется (если нужно) в командной строке, ввод завершается нажатием клавиши ENTER. Средства для редактирования в командной строке: клавиши ← и → - перевод курсора вдоль строки, Home, End – быстрый переход к началу и концу строки, ↑ и ↓ - клавиши перелистывания строк (с их помощью в командной строке можно восстановить для редактирования и выполнения ранее выполнявшиеся операторы), клавиши Delete и Backspace (← в верхней строке клавиатуры) – для удаления символа над курсором и слева от него. Кроме того, в командном окне имеется сверху панель инструментов, позволяющая делать стандартные операции копирования, удаления, вставки из буфера обмена и др. 2) Для переноса длинного выражения на другую строку используется многоточие (… - три или более точек в конце строки). При нажатии ENTER курсор переместится в начало следующей строки, где можно продолжать набор оператора. 3) Основные системные переменные: pi – значение числа π ans – хранит результат последней выполненной операции (в том числе и если этот результат – массив чисел). К ней можно обращаться по имени, что бывает удобно при программировании. inf - символ машинной бесконечности. Положительная величина, которая больше чем любое представимое в оперативной памяти компьютера положительное число, что так же бывает удобно иметь при составлении алгоритмов. i- мнимая единица – sqrt(-1). MATLAB выполняет действия в алгебре комплексных чисел вида z = x+ i*y, где x – вещественная часть, y – мнимая часть числа. 4) Знаки основных арифметических операций: ‘+ ‘- сложение, ‘-‘ – вычитание , ‘*’ – умножение, ‘/’ – деление слева направо, ’\’ – деление справа – налево, ‘^’ – возведение в степень. Знаки операций применимы к векторным и матричным операндам. Так, результаты операций A/B и B\A могут быть различны. Кроме того, одна из этих операций может быть возможна, в то время как другая – нет. Первая: A/B выполняется как A*inv(B), а вторая: B\A – как inv(B)*A. Вспомним, что умножение матриц не обладает свойством коммутативности. Знак умножения, примененный к матричным операндам, выполняет операцию умножения матриц по правилам матричной алгебры. 5) Постановка знака ‘;’в конце вычисляемого выражения не обязательна, его присутствие блокирует вывод на экран компьютера результата выполнения выражения, после которого он поставлен. Установка точки с запятой в конце каждого оператора желательна при написании М-программ, особенно – когда промежуточными результатами являются массивы чисел. (Заметим, правда, что иногда полезно умышленно опустить точку с запятой, если вывод вычисленного значения оператора желателен). Действия с векторами и матрицами в MATLAB
Перейдем теперь в командное окно MATLAB. Выполните в командном окне предлагаемые далее действия с матрицами. При этом данный текст лучше не закрывать, а свернуть его, нажав на кнопку “-“ в правом верхнем углу окна Microsoft Word. (В этом случае вы сможете восстановить этот текст в процессе работы, активизируя его нажатием левой клавиши мыши на нижней панели) Задание 1: (действия с векторами)
1) Введите вектор 'a' из 9 элементов. С экрана элементы вектора вводятся в квадратных скобках, разделяемые пробелом.
a = [1 2 3 4 6 4 3 4 5] % Вводите свой вектор с другими значениями.
Нажмите ENTER, посмотрите на сообщение на экране. 2) Теперь выполните то же но с точкой с запятой:
a = [1 2 3 4 6 4 3 4 5]; % Используйте клавиши перелистывания ↑ и ↓, чтобы не % повторять набор заново!! Нажмите ENTER, посмотрите на сообщение на экране.
3) Прибавьте число 2 к элементам вектора а : Выполните оператор:
b = a + 2 % Сейчас мы умышленно не ставим точку с запятой, чтобы % посмотреть на результат 4) Транспонируем вектор b: C=b’ % Знак транспонирования матрицы – апостроф ‘ (соответствует % клавише буквы Э на нижнем регистре латиницы)
5) Попробуйте выполнить операцию
D= a+C % убедитесь, что она невозможна, поймите почему (?).
Выполните
D=a’+C
Выполните слияние:
E=[a;b] E=[E;b]
6) Постройте график значений элементов вектора b относительно номера компоненты:
plot(b) grid on
Постройте гистограмму: bar(b)
ГЕНЕРАЦИЯ ВЕКТОРОВ (ранжированных переменных, т.е. массивов с постоянным шагом)
Выполните операторы:
X=1:10 % шаг 1 % не ставьте точки с запятой, наблюдайте результаты Y=0:0.25:1 % шаг 0.25 Z=0:pi/4:2*pi % шаг pi/4
X1=0:0.1*pi:4*pi Y1=sin(X1)
Постройте графики: plot(X1,Y1,X1,cos(X1))
Команда plot позволяет задать стиль и цвет линий. Выполните: plot(X1, Y1, 'g-', X1, cos(X1), ‘k:’)
Некоторые свойства линий:
Задание 2: (действия с матрицами)
% Создание матриц производится так же как и создание векторов, при этом % используется знак (;) , чтобы отделить вводимые строки матрицы. Введите матрицу размерности (3,3):
A = [1 2 0; 2 5 -1; 4 10 -1] % Введите свои значения. Не ставьте блокировку (;), % чтобы следить за результатами.
Транспонируйте матрицу 'A' :
B = A'
Выполните умножение
C = A * B
Возведите квадратную матрицу в 5 степень:
F=A^5
Найдите обратную матрицу:
X = inv(A)
Вычислите матрицу
I =A*inv(A) % ясно, что должна получиться единичная матрица Вычислите определитель матрицы:
D=det(A)
% В любой момент мы можем получить список значений переменных, хранящихся в памяти % используя команды "who" или "whos".
Выполните:
who whos
% Вы можете получить на экране значение любой переменной, набрав в командной строке имя переменной и нажав вслед за тем ENTER.
Выполните:
A % ENTER
X % ENTER
F % ENTER
ПОЭЛЕМЕНТНОЕ ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ
Арифметические операции умножения, деления и возведения в степень имеют своих двойников с поэлементным выполнением. Поясним: пусть x=[1 2 3 4]иy=[5 6 7 8]. Предположим, что вам хотелось бы перемножить (поделить, возвести в степень) элементы векторов x и y. Если мы напишем x*y или x/y или x^3, то получим сообщение об ошибке, так как строки нельзя перемножить, разделить друг на друга по правилам матричной алгебры (несоответствие размерностей). Однако для получения желаемого результата в MATLAB есть дубли арифметических операций. Они имеют те же значки, что и основные операции, но с точкой перед знаком операции.
Выполните в командном окне:
x=[1 2 3 4] y=[5 6 7 8] x.*y % Результат – вектор, элементы которого равны произведениям соответствующих элементов векторов x и y x./y % Элементы x будут поделены на соответствующие элементы y x.^3 % Элементы вектора x будут возведены в 3-ю степень. MATLAB работает с комплексными числами и бесконечными величинами. ВЫПОЛНИТЕ:
sqrt(-1)
log(0)
ГЕНЕРАЦИЯ СПЕЦИАЛЬНЫХ МАТРИЦ:
Для создания специальных матриц существуют функции:
zeros – создание матрицы с нулевыми элементами, ones - создание матрицы с единичными элементами, rand – создание матрицы со случайными элементами (равномерно на [0,1] распределенными случайными числами), eye – создание единичной матрицы
Выполните операции:
A = zeros(3,2) B = ones(1,10) C=rand(2,5) E=eye(5)
МЕТОД ГАУССА
В заключение, решите систему 5-и линейных алгебраических уравнений с 5 неизвестными методом Гаусса. Введите матрицу системы
A=rand(5,5) % здесь коэффициенты системы – случайные числа. Введите свои % конкретные значения B=rand(5,1) % вектор-столбец – правая часть системы уравнений, которая в % матричной форме может быть записана как A*X=B, где X – % столбец неизвестных. Решение системы, как известно, % X=A^(-1)*B, где A^(-1) – обратная матрица для матрицы A
РЕШЕНИЕ СИСТЕМЫ:
X=A\B % Оператор выполняется как inv(A)*B, что и требуется для решения % системы. Отметим, что в действительности этот оператор % выполняется путем реализации метода Гаусса для решения исходной % системы линейных алгебраических уравнений.
Таким образом, для того, чтобы решить систему линейных алгебраических уравнений методом Гаусса в MATLAB, достаточно выполнить всего один оператор – оператор деления (справа – налево) правой части системы на матрицу системы уравнений.
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (313)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |