ПР_MATLAB_2
.doc1. Создание М-файлов.
Для создания М-файла открываем меню File основного окна MatLab и в пункте New выбираем подпункт M-file. На экране открывается новое окно редактора М-файлов.
Набираем в этом окне команды, например, создаем из двух матриц одну расширенную.
Сохраним файл с именем, например, list_1.m в личном каталоге, выбирая при этом пункт Save as меню File редактора.
Для запуска на выполнение всех команд М-файла, следует выбрать пункт Run в меню Debug (или нажать F5). Результат работы программы будет отображен в командном окне.
2. Основы программирования в MatLab.
Комментарии.
Отдельные блоки М-файла можно снабжать комментариями, которые начинаются со знака процента %. Например, редактируем уже существующий файл list_1.m:
Сохраним и запустим снова этот файл.
Оператор цикла for.
for count = start:step:final
команды MatLab
end
Здесь count – переменная цикла; start – её начальное значение; final – конечное значение; step – шаг, на который увеличивается (или уменьшатся) переменная count. Если шаг равен 1, то его можно не указывать.
Например, создадим матрицу Q, размера , элементы которой вычисляются по формуле: , для этого создадим М-файл list_2.m:
Команда disp предназначена для вывода на экран как переменных disp(Q), так и комментариев, ограниченных апострофами disp(‘Матрица Q = ‘).
Оператор ветвления if.
Оператор if может применяться в простом виде
if условие
Операторы 1
else
Операторы 2
end
Здесь условие – отношение или логическое выражение, Операторы 1, Операторы 2 – команды или встроенные функции MATLAB .
В условии используются операции отношения или логические операторы:
Обозначение |
Операции отношения |
== |
равенство |
< (>) |
Меньше (больше) |
<= (>=) |
Меньше или рано (больше или равно) |
~= |
Не равно |
Логические операторы |
Условие |
Запись в MatLab |
Логическое « и » |
(x < 3) & (k == 4) |
|
Логическое « или » |
(x == 1) | (x == 2) |
|
Логическое « нет » |
~(x == 2) |
Например, напишем программу list_3.m, проверяющую значение аргумента функции
для любого .
В данном примере используется команда интерактивного ввода input, позволяющая осуществить ввод данных с клавиатуры.
В общем виде оператор ветвления представляет конструкцию
if...elseif...else
Напишем программу list_4.m, демонстрирующую работу if...elseif...else.
В зависимости от выполнения того или иного условия работает соответствующая ветвь программы, если все условия неверны, то выполняются команды, размещенные после else.
При организации циклических вычислений следует, позаботиться о том, чтобы внутри цикла не возникало ошибок, и не было зацикливания программы. Для досрочного прерывания цикла можно использовать команду break. Оператор break прерывает цикл и происходит выполнение операторов, расположенных в строках, следующих за последним end. Прервать не только цикл, но и программу можно также оператором error.
Для удаления переменных из памяти используется команда clear и имя переменной (например, clear x), для удаления всех переменных используется команда clear all.
Для очистки командного окна используется команда clc.
3. Решение некоторых задач линейной алгебры в MatLab
Пусть A – квадратная матрица.
Для вычисления определителя предназначена встроенная функция det:
D = det(A)
Для нахождения обратной матрицы служит встроенная функция inv:
A1 = inv(A)
Для того чтобы задать в MATLAB систему линейных уравнений необходимо ввести основную матрицу системы и вектор правой части , например, для системы
основная матрица системы:
>> A = [1 2 1 4; 2 0 4 3; 4 2 2 1; -3 1 3 2]
вектор правой части:
>> B = [13; 28; 20; 6]
Решение системы линейных алгебраических уравнений в MATLAB можно выполнить при помощи символа \ .
Решение системы:
>> X = A\B
X =
3
-1
4
2
Проверка
>> A *X
В результате должны получить вектор B.
ans =
13.0000
28.0000
20.0000
6.0000
Собственные числа и собственные векторы квадратной матрицы удовлетворяют равенствам . Функция eig с входным аргументом матрицей и выходным – вектором записывает в него все собственные числа матрицы:
lam = eig(A)
Для одновременного вычисления всех собственных векторов и чисел следует вызвать eig с двумя выходными аргументами:
[U, lam] = eig(A)
Первым выходным аргументом является матрица U, столбцами которой являются собственные векторы. Вторым выходным аргументом lam возвращается диагональная матрица, содержащая собственные числа.
3. Задания
1). Написать М-файл, создающий матрицу размера , элементы которой вычисляются по формулам
а) , б) .
2). Написать М-файл для вычисления значений кусочно-заданной функции
,
в котором значение x запрашивается для ввода с клавиатуры, а результат содержит текст: «значение функции y(x) в точке x равно: ».
Найти значения в точках , , , .
3) Выполнить действия в отдельном М-файле.
а) Найти обратную матрицу , если
.
Сделать проверку.
б) Решить матричное уравнение
,
сделать проверку
в) Решить систему уравнений:
.
методом обратной матрицы;
по формулам Крамера;
с помощью оператора « \ » MatLab.
г) Найти собственные значения матрицы А: