Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

2.23.4. Дифференцирование и интегрирование полиномов.

Для нахождения производной от полинома можно использовать функцию polyder, к которой можно обратиться различными способами (в зависимости от необходимого результата):

q=polyder(p) – выполняется вычисление вектора коэффициентов полинома-производной (q) от исходного полинома, заданного вектором коэффициентов (p);

c=polyder(a,b) – выполняется вычисление производной от произведения двух полиномов, заданных векторами коэффициентов (a и b);

[q,d]=polyder(a,b) – выполняется вычисление производной от отношения двух полиномов, заданных векторами коэффициентов (a и b), причем результат выдается в виде отношения полиномов (q и d, т.е. q/d).

Пусть, например, требуется вычислить производную от уже рассматривавшегося выше полинома . Имеем:

>> p=[5 -4 2 -1 8];

>> q=polyder(p)

q =

20 -12 4 -1

Вычислим теперь производную от произведения двух полиномов:

>> a=[1 2 9];

>> b=[-4 7];

>> c=polyder(a,b)

c =

-12 -2 -22

Заметим, что тот же результат можно получить, если предварительно перемножить полиномы с использованием функции conv, после чего определить производную от этого произведения:

>> p=conv(a,b)

p =

-4 -1 -22 63

>> c=polyder(p)

c =

-12 -2 -22

Для интегрирования полиномов служит функция polyint, имеющая следующий синтаксис:

q=polyint(p,k)

где k – константа (постоянная) интегрирования, которая может быть опущена (по умолчанию принимается равной нулю).

Приведем пример:

>> p=[2 5 7 -4];

>> q=polyint(p)

q =

0.5000 1.6667 3.5000 -4.0000 0

§ 2.24. Интерполяция и аппроксимация данных

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

2.24.1. Полиномиальная аппроксимация.

Для построения аппроксимирующего полинома заданной степени, приближающего функцию одной переменной, заданную соответствующими массивами значений, в системе MATLAB может использоваться функция polyfit, реализующая метод наименьших квадратов. Имеем:

q=polyfit(x,y,n)

где y – вектор значений функции; x – вектор значений аргумента; n – порядок аппроксимирующего полинома; p – полученный в результате вектор коэффициентов аппроксимирующего полинома длиной n+1.

Пусть имеется массив значений аргументов

x=[1 2 3 4 4 5 3 6 10 8 9 7];

и массив соответствующих им значений измеряемой величины:

y=[2 2.5 2 4 4.5 5 4 5 9 7 8 7];

Примерим к этим данным функцию polyfit при n=1, n=2 и n=3:

>> x=[1 2 3 4 4 5 3 6 10 8 9 7];

>> y=[2 2.5 2 4 4.5 5 4 5 9 7 8 7];

>> p1=polyfit(x,y,1)

p1 =

0.7918 0.9089

>> p2=polyfit(x,y,2)

p2 =

0.0107 0.6724 1.1593

>> p3=polyfit(x,y,3)

p3 =

-0.0017 0.0392 0.5421 1.3132

В результате получили три вектора p1, p2, и p3, первый из которых содержит коэффициенты аппроксимирующей прямой , второй вектор – коэффициенты аппроксимирующей квадратной параболы , а третий – коэффициенты аппроксимирующей кубической параболы . Аналогичным образом можно аппроксимировать данные параболой четвертой степени, пятой, шестой, седьмой и т.д. На рис. 2.24.1 представлены построенные для наглядности графики исходной зависимости и аппроксимирующих полиномов (для вычисления полиномов использовалась функция polyval):

>> x=[1 2 3 4 4 5 3 6 10 8 9 7];

>> y=[2 2.5 2 4 4.5 5 4 5 9 7 8 7];

>> title('Полиномиальная аппроксимация')

>> xlabel('x'); ylabel('y'); hold on

>> plot(x,y,'ko')

>> p1=polyfit(x,y,1);

>> p2=polyfit(x,y,2);

>> p3=polyfit(x,y,3);

>> t=0:0.05:10;

>> y1=polyval(p1,t);

>> y2=polyval(p2,t);

>> y3=polyval(p3,t);

>> plot(t,y1,'k-',t,y2,'k--',t,y3,'k:'), grid on

>> legend('Данные эксперимента',...

'Аппроксимирующая прямая',...

'Аппроксимирующая квадратная парабола',...

'Аппроксимирующая кубическая парабола',2)

Заметим, что поиск оптимальной по методу наименьших квадратов функции не всегда позволяет получить хороший результат. Более того, при увеличении степени полинома качество приближения может ухудшаться.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]