Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПР_MATLAB_2

.doc
Скачиваний:
20
Добавлен:
28.03.2015
Размер:
235.01 Кб
Скачать

1. Создание М-файлов.

Для создания М-файла открываем меню 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.

г) Найти собственные значения матрицы А:

6