Рефераты. Система математических расчетов MATLAB

 polyder

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

 polyfit

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

 polyval

Вычисление значений полиномов в заданных точках.

 polyvalm

Вычисление значений матричного полинома.

 residue

Разложение на простые дроби  (вычисление вычетов).

 roots

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



Представление полиномов

 

MATLAB представляет полиномы как векторы-строки, содержащие коэффициенты полино-мов по убывающим степеням. Например, рассмотрим следующее уравнение

p(x) = x3 – 2x – 5

Это известный пример Валлиса (Wallis), использованный при первом представлении метода Ньютона во Французкой Академии. Мы будем использовать его в дальнейшем при рассмот-рении примеров использования различных функций. Для ввода данного полинома в MATLAB, следует записать

 

p = [1   0   -2   -5].

 

 

Корни полинома


Корни полинома вычисляются при помощи функци roots :


r = roots(p)

                                                         r =

2.0946

-1.0473 + 1.1359i

-1.0473 - 1.1359i

 

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


p2 = poly(r)

                                                          p2 =

1    8.8818e-16   -2   -5

Функции poly и roots являются взаимно-обратными функциями, с точностью до упорядоче- ния коэффициентов, масштабирования и ошибок округления.


Характеристические полиномы

 

Функция poly вычисляет также коэффициенты характеристического полинома матрицы:


A = [1.2   3   -0.9; 5   1.75   6; 9   0   1];

 

poly(A)

                                         ans =

1.0000   -3.9500   -1.8500   -163.2750

 

Корни данного полинома, вычисленные при помощи функции roots, являются собственными значениями (характеристическими числами) матрицы А. (При практических расчетах, для вычисления собственных значений матриц целесообразно вычислять их посредством функ-ции eig.)

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

 

Функция polyval вычисляет значение полинома в заданных точках. Для вычисления p в точ-ке s = 5, следует записать


polyval(p,5)

                                                             

                                                               ans =

110


Можно также вычислить значение матричного полинома. Так, вместо полинома Валлиса мо-жно записать:


p(X)  = X3 - 2X – 5I


где X является квадратной матрицей, а I - единичной матрицей. Например, сформируем сле-дующую квадратную матрицу X


X = [2  4  5; -1  0  3; 7  1  5];


и вычислим значение заданного выше полинома p(X) на данной матрице.

Y = polyvalm(p, X)

 

                                                      Y =

377   179   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) аргументами  вы-полняет обратную функцию свертки имеющегося разложения на простые дроби, в дробно-рациональную функцию отношения двух полиномов.

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.