Система математических расчетов MATLAB

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

9 439

111 81 136

490 253 639

 

 

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

 

Для умножения и деления полиномов предназначены соответственно функции conv и deconv. Рассмотрим полиномы a(s) = s2 + 2s + 3 и b(s) = 4s2 + 5s + 6. Для вычисления их произведения следует ввести

a = [1 2 3]; b = [4 5 6];

c = conv(a,b)

 

MATLAB возвращает

c =

4 13 28 27 18

 

Для получения из с полинома b воспользуемся функцией deconv:

 

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

q =

4 5 6

r =

0 0 0 0 0

 

где r остаток после деления (в данном случае нулевой вектор). В общем случае для поли-номов q, r , c, a в функции deconv справедливо соотношение

c = conv(q, a) + r

 

 

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

 

Функция polyder вычисляет производную любого полинома. Для получения производной от нашего полинома p = [1 0 -2 -5], введем

 

q = polyder(p)

q =

3 0 - 2

 

Функция polyder вычисляет также производные от произведения или частного двух полино-мов. Например, создадим два полинома a и b:

 

a = [1 3 5]; b = [2 4 6];

 

Вычислим производную произведения a*b вводом функции polyder с двумя входными аргу-ментами a и b и одним выходным:

c = polyder(a, b)

 

c =

8 30 56 38

 

Вычислим производную от частного a/b путем ввода функции polyder с двумя выходными аргументами:

 

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

 

q =

-2 -8 -2

d =

4 16 40 48 36

где отношение двух полиномов q/d является результатом операции дифференцирования.

 

 

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

 

Функция polyfit находит коэффициенты полинома заданной степени n , который аппрокси-мирует данные (или функцию y(x)) в смысле метода наименьших квадратов:

 

p = polyfit(x, y, n)

 

где x и y есть векторы, содержащие данные x и y, которые нужно аппроксимировать полино-мом. Например, рассмотрим совокупность данных x-y, полученную экспериментальным пу-тем

 

x = [1 2 3 4 5]; y = [5.5 43.1 128 290.7 498.4].

 

Аппроксимация функциональной зависимости y(x) в виде полинома третьего порядка

 

p = polyfit(x,y,3)

 

дает коэффициенты полинома

 

p =

-0.1917 31.5821 -60.3262 35.3400

 

Рассчитаем теперь значения полинома, полученного при помощи функции polyfit, на более мелкой шкале (с шагом 0.1) и построим для сравнения графики (это делает функция plot) реальных данных и аппроксимирующей кривой.

 

x2 = 1 : 0.1 : 5;

y2 = polyval(p, x2);

plot(x, y, o, x2, y2); grid on

 

где функция grid on служит для нанесения координатной сетки, а экспериментальные дан-ные на графике отмечены маркерами о.

.

Как видно из рисунка, полином третьего порядка достаточно хорошо аппроксимирует наши данные.

 

 

Разложение на простые дроби

 

 

Функция residue вычисляет вычеты, полюса и многочлен целой части отношения двух поли-номов. Это особенно полезно при представлении систем управления в виде передаточных функций. Для полиномов a(s) и b(s), при отсутствии кратных корней имеем

 

 

где r есть вектор-столбец вычетов, p есть вектор-столбец полюсов, а k есть вектор-строка це-лой части дробно-рациональной функции. Рассмотрим передаточную функцию

 

Для полиномов числителя и знаменателя этой функции имеем:

 

b = [-4 8]; a = [1 6 8].

Введя

 

[r, p, k] = residue(b, a)

 

получим

r =

-12

8

p =

-4

-2

k =

[ ]

 

Функция residue с тремя входными (r, p, и k) и двумя выходными (b2, a2) аргументами вы-полняет обратную функцию свертки имеющегося разложения на простые дроби, в дробно-рациональную функцию отношения двух полиномов.

 

[b2, a2] = residue(r, p, k)

b2 =

-4 8

a2 =

1 6 8

 

т.е. из данных предыдущего примера мы восстановили исходную передаточную функцию.

В случае кратных корней процедура несколько усложняется, но остается разрешимой.

 

 

 

 

Интерполяция

 

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

 

 

Обзор функций интерполяцииФункцииОписание griddataДвумерная интерполяция на неравномерной сетке. griddata3Трехмерная интерполяция на неравномерной сетке. griddatanМногомерная интерполяци?/p>