Иллюстрированный самоучитель по MatLab

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

В этом разделе приведены функции вычисления коэффициентов характеристического полинома, значения полинома в точке и матричного полинома.

  • poly(A) – для квадратной матрицы А размера пхп возвращает вектор-строку размером n+1, элементы которой являются коэффициентами характеристического полинома det(A-sI), где I – единичная матрица, as – оператор Лапласа. Коэффициенты упорядочены по убыванию степеней. Если вектор состоит из п+1 компонентов, то ему соответствует полином вида c 1 s^n+…+c n s+c n+1 ;
  • poly (г) – для вектора г возвращает вектор-строку р с элементами, представляющими собой коэффициенты полинома, корнями которого являются элементы вектора г. Функция roots(p) является обратной, ее результаты, умноженные на целое число, дают poly (r).
A =
2 3 6
3 8 6
1 7 4
>> d=poly(A)
d =
1.0000-14.0000-1.0000-40.0000
>> A=[3.6.8:12.23.5:11.12.32]
A =
3 6 8
1223 5
1112 32
>> poly(A)
ans =
1.0000-58.0000 681.0000 818.0000

Приведенная ниже функция вычисляет корни (в том числе комплексные) для полинома вида:

Иллюстрированный самоучитель по MatLab › Численные методы › Вычисление полиномов. Вычисление производной полинома.

Иллюстрированный самоучитель по MatLab › Численные методы › Вычисление полиномов. Вычисление производной полинома.

  • roots (с) – возвращает вектор-столбец, чьи элементы являются корнями полинома с.

Вектор-строка с содержит коэффициенты полинома, упорядоченные по убыванию степеней. Если с имеет n+1 компонентов, то полином, представленный этим вектором, имеет вид. Пример:

>> x=[7.45.12.23];d=roots(x)
d =
-6.2382
-0.0952+0.7195i
-0.0952-0.7195i
A=[-6.2382-0.0952+0.71951-0.0952-0.71951]:
B=Poly (A)
B=[1.0000 6.4286 1.7145 3.2859]
B*7
ans =
7.0000 45.000212.001523.0013

С погрешностью округления получили тот же вектор.

  • polyval (p,x) – возвращает значения полинома р, вычисленные в точках, заданных в массиве х. Полином р – вектор, элементы которого являются коэффициентами полинома в порядке уменьшения степеней, х может быть матрицей или вектором. В любом случае функция polyval вычисляет значения полинома р для каждого элемента х;
  • [у.delta] = polyval (p .x.S) или [у,delta] = polyval (p.x.S.mu) – использует структуру S, возвращенную функцией polyfit, и данные о среднем значении (mu(l)) и стандартном отклонении (mu(2)) генеральной совокупности для оценки пр-грешности аппроксимации (y+delta).

Пример:

>> p=[3.0.4.3]; d=polyval(p,[2.6])
d =
35 675
  • polyvalm(p.X) – вычисляет значения полинома для матрицы. Это эквивалентно подстановке матрицы X в полином р. Полином р – вектор, чьи элементы являются коэффициентами полинома в порядке уменьшения степеней, а X – квадратная матрица.

Пример:

>> D=pascal(5)
D =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
f=poly(d)
f =
1.0000-99.0000 626.0000-626.0000 99.0000-1.0000
>> polyvalm(f.D)
ans =
1.0e-006*
-0.0003-0.0011-0.0038-0.0059-0.0162
-0.0012-0.0048-0.0163-0.0253-0.0692
-0.0034-0.0131-0.0447-0.0696-0.1897
-0.0076-0.0288-0.0983-0.1529-0.4169
-0.0145-0.0551-0.1883-0.2929-0.7984

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

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

Ниже приведена функция, возвращающая производную полинома р:

  • polyder(p) – возвращает производную полинома р;
  • polyder(a.b) – возвращает производную от произведения полиномов а и b;
  • [q,d] = polyder(b.a) – возвращает числитель q и знаменатель d производной от отношения полиномов b/а.

Примеры:

>> a=[3.5.8]:b=[5.3.8]:dp=polyder(a)
dp =
6 5
>> dt=polyder(a,b)
dt =
60102 158 64
>> [q.p]=polyder(b.a)
q =
1632-16
p =
9 30 73 80 64
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.