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

lection_matlab_all / matlab_4

.pdf
Скачиваний:
19
Добавлен:
27.05.2015
Размер:
186.94 Кб
Скачать

Управление потоком команд

Для написания нелинейного кода со сложной структурой в языках программирования обычно используются операторы управления, такие как циклы и условные ветвления. Они имеются и в MatLab и могут быть использованы как при написании программ, так и при работе с командной строкой.

Выполнение повторяющихся блоков кода в MatLab производится с помощью двух видов опереаторов циклов for и while. for выполняет строго фиксированное число повторений операций блока, а while выполняется до тех пор, пока верно некоторое условие. while реализован сходно с другими языками программирования, как и операторы ветвления if и switch.

Цикл for осуществляется следующим образом

for count = start:step:final <операторы>

end

count — счётчик цикла

start — его стартовое значение step — шаг счётчика

final — конечное значение

Пример:

>>figure(12345)

>>x = linspace(0, 2*pi, 100);

>>for a = -0.1:.02:0.1, y = exp(-a*x).*sin(x); hold on; plot(x, y), end

Синтаксис цикла while while <условие>

<операторы>

end

Синтаксис условного оператора if if <условие>

<операторы>

end

или

if <условие> <операторы>

elseif <условие> <операторы>

else

<операторы>

end

Синтаксис оператора switch switch <выражение>

case <значение_1> <операторы_1> case <значение_2> <операторы_2>

otherwise <операторы>

end

Средства решения типовых задач алгебры и анализа

Решение систем линейных уравнений

1. Оператор «\» - деление слева

Ax = b — СЛАУ, А — квадратная матрица n x n, b и x — векторы длины n.

>>a = [3 2 1; -1 2 0; 4 0 -2]; b = [2 -1 6]';

>>x = a\b

x = 1 0 -1

>> norm(a*x-b) ans =

0

Решение систем линейных уравнений

2. Оператор «/» - деление справа

XA = B — матричное уравнение, А, B и Х— квадратные матрицы n x n.

>>a = [3 2 1; -1 2 0; 4 0 -2]; b = [7 2 -1; -4 0 -1; -4 0 2];

>>x = a/b

x =

 

 

1

0

1

1

1

1

0

0

-1

Вычисление нормы матриц и векторов Функция norm()

Для матриц

norm(X) — наибольшее из сингулярных чисел X, max(svd(X)) norm(X,2) <=> norm(X)

norm(X,1) — наибольшая сумма по столбцам = max(sum(abs(X))).

norm(X,inf) — наибольшая сумма по строкам = max(sum(abs(X'))).

norm(X,'fro') норма Фробениуса = sqrt(sum(diag(X'*X))).

Соседние файлы в папке lection_matlab_all