Материал: MATLAB 5. Анализ технических систем. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

…

otherwise

инструкции % выполняются если <выражение> не совпало ни с одним из значений end

Оператор переключения switch выполняет ветвления, в зависимости от значений некоторой переменной или выражения.

Оператор переключения включает:

заголовок switch, за которым следует вычисляемое выражение (скаляр или строка);

произвольное количество групп case. Заголовки групп состоят из слова case, за которым следует возможное значение выражения, расположенное на одной строке. Последующие строки содержат инструкции, которые выполняются для данного значения выражения. Выполнение продолжается до тех пор, пока не встретится следующий оператор case или оператор otherwise. На этом выполнение блока switch завершается;

группа otherwise. Заголовок включает только слово otherwise, начиная со следующей строки размещаются инструкции, которые выполняются, если значение выражения оказалось не обработанным ни одной из групп case. Выполнение завершается оператором end;

оператор end - является последним в блоке переключателя.

Оператор переключения switch работает, сравнивая значение вычисленного выражения со значениями групп case. Для числовых выражений оператор case выполняется, если <значение>= =<выражение>. Для строковых выражений оператор case истинен, если strcmp(значение, выражение) истинно.

Оператор switch может использовать множественное условие в единственной группе case посредством включения выражения case, если выражение для этого условия записано в виде массива ячеек:

switch var case 1

disp(‗1‘) case (2, 3, 4)

disp(‗2 или 3 или 4‘)

case 5

disp(‗5‘)

end;

while … end

Оператор с неопределенным числом операций

Синтаксис:

while <выражение> инструкции

end

Оператор цикла с неопределенным числом операций while ... end многократно выполняет инструкцию или группу инструкций, пока управляющее выражение истинно.

Если выражение использует массив, то все его элементы должны быть истинны, чтобы продолжить выполнение. Чтобы привести матрицу к скалярному значению, следует использовать функции any и all.

Выход из while-цикла может быть реализован с помощью оператора

break.

Если в операторе while управляющее условие является пустым массивом, то такое условие ложно, то есть оператор вида while A, SI, end никогда не выполнит инструкции SI. если А - пустой массив.

Пример:

Этот цикл с неопределенным числом операций находит первое целое число п, для которого n! записывается числом, содержащим 100 знаков:

n = 1;

while prod(1:n) < 1e100 n = n + 1;

end

for … end Оператор цикла с определенным числом операций

Синтаксис:

for <переменная цикла> = <начальное значение>:<приращение>:<конечное значение>

инструкции end

Оператор цикла for ... end выполняет инструкцию или группу инструкций предопределенное число раз. По умолчанию приращение равно 1. Можно задавать любое приращение, в том числе отрицательное. Для положительных индексов выполнение завершается, когда значение индекса превышает <конечное значение>; для отрицательных приращений выполнение завершается, когда индекс становится меньше чем <конечное значение>.

Допустимы вложенные циклы типа: for i = 1 : m

for j = 1 : n

A(i, j)=1/( i + j - 1);

end

end

Использование массива в качестве переменной цикла. В качестве переменной цикла for могут использоваться массивы.

Пример: рассмотрим массив А размера m n. Оператор цикла for i = A

инструкции

end

определяет переменную цикла i как вектор А(:, k). Для первого шага цикла k равно 1; для второго - k равно 2 и так далее, пока k не достигнет значения n. То есть цикл выполняется столько раз, сколько столбцов в матрице А. Для каждого шага i - это вектор, содержащий один из столбцов массива А.

1.8. Полиномы и операции над ними

Полиномы (многочлены) задаются в среде MATLAB в виде вектора, хранящего коэффициенты от an до a0 : Р = [an … a2 a1 a0].

polyval

Вычисление полинома

Синтаксис:

y = polyval(p, s) Y = polyval(p, S)

y = polyval(p, s) вычисляет значение полинома, вектор значений коэффициентов которого p = [an … a2 a1 a0], в точке s.

Y = polyval(p, S) вычисляет значение полинома для каждого элемента одномерного или двумерного массива S.

conv

Умножение полиномов

 

 

Синтаксис: c = conv(a, b)

Если заданы полиномы a и b степеней m и n соответственно, то их произведение – это полином с степени m+n.

Пример: Найдем произведение полиномов x3 + 2x2 + 3x + 4 и 10x2 + 20x + 30. Для этого сформируем векторы a = [1 2 3 4] и b = [10 20 30] и вычислим

c = conv(a, b)

с = 10 40 100 160 170 120.

deconv

Деление полиномов

 

 

Синтаксис:

[q, r] = deconv(c, a)

Функция [q, r] = deconv(c, a) реализует деление полинома с на полином a; частное от деления возвращается в виде вектора q, а остаток – в виде вектора r, так что выполняется соотношение c = conv(q, a) + r.

polyder Вычисление производных

Синтаксис:

dp = polyder(p) dp = polyder(a, b)

[q, p] = polyder(b, a)

dp = polyder(p) возвращает производную полинома dp(x) / dx.

dp = polyder(a, b) возвращает производную от произведения полиномов a(x) b(x).

[q, p] = polyder(b, a) возвращает производную от отношения полиномов b(x) / a(x) в виде отношения полиномов q(x) / p(x).

Пример: вычислим производную полинома p(x) = 3x2 + 6x + 1. P = [3 6 1]; dp = polyder(p)

dp = 6 6

roots Вычисление корней полинома

Синтаксис: r = roots(p)

Функция r = roots(p) вычисляет вектор-столбец корней полинома p. Пример: Вычислим корни полинома p(x) = x3 + 6x2 +12x + 18.

p = [1 6 12 18]; r = roots(p) r =

-4.1544

 

-0.9228 + 1.8658i

 

-0.9228 - 1.8658i.

poly

Вычисление характеристического полинома

Синтаксис: p = poly(A) p = poly( r)

p = poly(A) вычисляет вектор-строку коэффициентов характеристического полинома матрицы А.

p = poly( r) вычисляет вектор строку коэффициентов полинома по значениям вектора-столбеца его корней.

Рассмотрим пример действий функции над матрицей А.

A = [-5/3 -1

-2/3;

-5/6 1/4

11/12;

1/6 -17/4 -19/12];

p = poly(A)

 

 

 

 

p =

1.0000

3.0000

5.0000

7.0000

 

r = roots(p)

 

 

 

 

r =

 

 

 

 

 

 

-2.1795

 

 

 

 

 

-0.4102

+ 1.7445i

 

 

 

-0.4102

- 1.7445i

 

 

 

p = poly(r)

 

 

 

 

p =

1.0000

3.0000

5.0000

7.0000.

 

polyfit

Аппроксимация данных полиномом

 

 

Синтаксис:

p = polyfit(x, y, n)

Функция p = polyfit(x, y, n) находит коэффициенты полинома p(x) степени n, который аппроксимирует функцию y(x) в смысле метода наименьших квадратов. Выходом является строка p длины n +1, содержащая коэффициенты аппроксимирующего полинома.

Пример:

»x = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1];

»y = [6 6.3 6.7 6.5 6.2 6 6.2 6.5 6.7 6.3 6];

»p = polyfit(x,y,5)

p =

0.0000 -33.2168 66.4336 -42.3834 9.1667 5.9406

Ниже приводится краткое описание ряда функций системы MATLAB (все возможные формы синтаксиса можно посмотреть в справочной системе), которые могут оказаться полезными при обработке массивов экспериментальных данных.

sum(X)

Суммирование

элементов

массива.

В

случает

 

двумерного массива

это вектор-строка, содержащая суммы

 

элементов каждого столбца

 

 

 

prod(X)

Аналогична предыдущей функции, но

вместо суммы

 

возвращает произведение

 

 

 

sort(x)

Упорядочение

элементов массива по возрастанию. В

 

случае двумерного массива происходит упорядочивание

 

элементов каждого столбца. Функция может также возвратить

 

массив индексов,

позволяющий

восстановить

структуру

Источник: https://studfile.net/preview/16565812/