КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Аппроксимация кривых полиномами
4 16 40 48 36 8 30 56 38 3 0 - 2 Вычисление производных от полиномов 0 0 0 0 0 4 5 6 4 13 28 27 18 Умножение и деление полиномов 490 253 639 111 81 136 377 179 439 Polyval(p,5) ans =
Можно также вычислить значение матричного полинома. Так, вместо полинома Валлиса мо-жно записать:
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 =
Для умножения и деления полиномов предназначены соответственно функции 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 = Для получения из с полинома b воспользуемся функцией deconv:
[q, r] = deconv(c, a) q = r =
где r – остаток после деления (в данном случае нулевой вектор). В общем случае для поли-номов q, r, c, a в функции deconv справедливо соотношение
c = conv(q, a) + r
Функция polyder вычисляет производную любого полинома. Для получения производной от нашего полинома p = [1 0 -2 -5], введем q = polyder(p) q = Функция polyder вычисляет также производные от произведения или частного двух полино-мов. Например, создадим два полинома a и b:
a = [1 3 5]; b = [2 4 6]; Вычислим производную произведения a*b вводом функции polyder с двумя входными аргу-ментами a и b и одним выходным: c = polyder(a, b) c = Вычислим производную от частного a/b путем ввода функции polyder с двумя выходными аргументами:
[q, d] = polyder(a, b) q = -2 -8 -2 d = где отношение двух полиномов 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 служит для нанесения координатной сетки, а экспериментальные дан-ные на графике отмечены маркерами о. . Как видно из рисунка, полином третьего порядка достаточно хорошо аппроксимирует наши данные.
Дата добавления: 2014-10-15; Просмотров: 549; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |