Читайте также: |
|
Кусочно-линейная интерполяция состоит в представлении таблично заданной функции на каждом отрезке между абсциссами узловых точек линейной зависимостью y = a 1+ a 2 x так, как это показано на рис.2. Коэффициенты a 1 и a 2 определяются для каждого отрезка [ xi –1, xi ] в отдельности из условий
.
В результате кусочно-линейная приближающая функция на отрезке [ xi –1, xi ] имеет вид
и является непрерывной, однако её первая производная оказывается уже кусочно-непрерывной функцией, которая в каждом узле интерполяции имеет точку разрыва первого рода. Это часто накладывает существенные ограничения на её дальнейшее использование.
x | |||||
y | 0.5 | 4.5 |
Рассмотрим работу метода на примере кусочно-линейной интерполяции таблично заданной функции и поиска её значения при аргументе х = 1.5.
Для решения этой задачи строятся линейные функции для каждого отрезка между узловыми точками таблицы:
для отрезка [0, 1] между первой и второй точками
,
для отрезка [1, 2] между второй и третьей точками
,
для отрезка [2, 3] между третьей и четвёртой точками
,
для отрезка [3, 4] между четвёртой и пятой точками
.
Таким образом, табличная функция в случае кусочно-линейной интерполяции представляется в виде функции
Значение интерполирующей функции в заданной точке x = 1.5, принадлежащей отрезку [1, 2], будет y (1.5) = 0.5 + 0.5(1.5 – 1) = 0.75.
Многочлен Лагранжа (J.L.Lagrange, 1795)
Представляет собой случай полиномиального представления приближающей функции. Она ищется в виде линейной комбинации базисных функций jk (x), которые должны быть определены для всего отрезка интерполяции [ x 1, xn ] и линейно независимы, а их количество должно быть равно числу узлов таблично заданной функции
.
Коэффициенты a 1, a 2,..., an определяются исходя из условий равенства значений приближающей и исходной функций при табличных значениях аргумента, что сводит задачу к системе n линейных алгебраических уравнений относительно них, а в качестве функций jk (x) используются полиномы (n –1)-й степени
,
которые для пяти узловых точек записываются в виде
,
…………………………………………
.
Графики этих полиномов представлены на рис.3. Для каждого полинома характерно то, что для всех значений xi узловых точек он принимает нулевые значения, кроме k -ой, где его значение равно единице.
При таком выборе базисных функций коэффициенты приближающей функции оказываются ординатами таблично заданной функции, а сама она приобретает характерный для многочлена Лагранжа вид
.
Процесс построения интерполирующего многочлена Лагранжа для пяти узловых точек показан на рис.4.
x | ||||
y | 0.5 |
Рассмотрим работу метода на примере интерполяции по Лагранжу таблично заданной функции и поиска её значения при х = 1.5.
Сначала строятся четыре базовых полинома:
,
,
.
Они позволяют записать интерполирующий многочлен Лагранжа в виде
Для аргумента x = 1.5 многочлен Лагранжа даёт значение
Интерполяция кубическим сплайном (I.J.Schoenberg, 1946)
Сплайнами называется широкий класс приближающих функций, используемых для кусочной интерполяции с использованием различных функций. В их число входят полиномы, в частности, кубический полином. При его использовании табличная функция внутри каждого отрезка [ x 1, x 2], [ x 2, x 3],…,[ xi, xi+ 1],…,[ xn– 1, xn ] представляется следующим образом
,
,
……………………………………………………………………
,
……………………………………………………………………………
где нижние индексы интерполирующих функций, записанные через тире, указывают на номера узлов, между которыми проведён сплайн (см. рис.5).
Отрезки образуют область определения приближающей функции. Вычисление её коэффициентов ai (i =1,2,3,…,4(n –1)) осуществляется исходя из следующих условий. По определению, значения сплайна в узловых точках должны совпадать с соответствующими значениями таблично заданной функции
, .
Эти условия дают 2(n – 1) уравнений для определения коэффициентов сплайна.
Кроме этого, требуется, чтобы полином данного отрезка сопрягался с полиномами соседних отрезков, как по углу наклона касательной в узловых точках, так и по радиусу кривизны. Сопряжение по углу наклона соответствует равенству значений первых производных соседних полиномов в каждой узловой точке, а по радиусу – вторых производных. Это даёт ещё по два условия для каждой внутренней узловой точки
,
т.е. получается ещё 2(n – 2) уравнений. Таким образом, приведённые выше соотношения дают (4 n – 6) уравнений для определения коэффициентов ai и для доопределения системы не хватает ещё двух уравнений. С целью построения недостающих уравнений можно задавать в граничных точках значения угла наклона касательной (исходя из физической сути задачи или с помощью интерполяции по 2÷4-м крайним точкам с последующим вычислением производной)
.
Возможны и иные способы задания граничных условий. Например, можно задавать граничные значения не первых, а вторых производных
.
Особый способ, называемый условием «нет узла» или «запрет стыка», состоит в приравнивании третьих производных полиномов на стыке двух крайних отрезков
.
Перечисленные условия дают систему из 4(n – 1) линейных алгебраических уравнений, позволяющую вычислить коэффициенты для каждого отрезка сплайна. Полученная интерполирующая функция будет непрерывной и гладкой вместе со своей первой производной, её вторая производная будет только непрерывной функцией, которая имеет точки излома в местах сопряжения сплайнов, т.е. в узловых точках.
Рассмотрим работу метода на примере таблично заданной функции (см. приведённую таблицу)
x | |||
y | 0.5 |
и поиска значения этой функции при х = 1.5.
Для решения задачи интерполяции заданной функции кубическими сплайнами требуется составить систему из 8-ми уравнений, позволяющую определить коэффициенты сплайнов для каждого из отрезков [0, 1] и [1, 3]
,
.
Их производные, необходимые для формирования системы, имеют вид
,
,
,
.
Тогда условия формирования сплайнов, записанные в последовательности узловых точек, будут выглядеть следующим образом
точка №1 (x = 0):
,
точка №2 (x = 1): ,
,
,
,
точка №3 (x = 3): ,
.
Недостающие значения тангенсов углов наклона касательных в крайних узловых точках могут быть вычислены из геометрических соображений, основанных на приближённом построении интерполирующей кривой (см. рис.6)
.
Таким образом, система уравнений, определяющая коэффициенты кубических сплайнов, будет иметь вид
Её решение осуществляется каким-либо известным способом решения систем линейных алгебраических уравнений. В результате получается следующее её решение
a 1 = 2, a 2 = –2.5, a 3 = 0.9267, a 4 = 0.07333,
a 5 = 0.5, a 6 = –0.4267, a 7 = 1.147, a 8 = –0.02917.
При этом искомые сплайны будут иметь вид
,
,
а интерполирующая функция может быть записана как
Её значения при х = 1.5 будет
.
Приведённая выше схема сплайн-интерполяции достаточно трудоёмка. Поэтому в настоящее время используется её «экономичный» вариант, который основан на представлении сплайна в виде нескольких специально подобранных кубических полиномов
,
,
……………………………………………………………………………
,
где yi – ординаты узловых точек, αi – углы наклона графика сплайнов в узловых точках, hi – расстояния между абсциссами i -й и (i +1)-й узловых точек, а полиномы имеют вид
, ,
, .
Такой подход гарантированно сопрягает сплайны по местоположению узловых точек и по углу наклона касательных в них (равенство первых производных). Таким образом, задача сводится к необходимости сопряжения сплайнов в узловых точках только по радиусу кривизны (равенство вторых производных)
.
Эти (n – 2) уравнения служат для вычисления тангенсов углов наклона касательных в узловых точках. Недостающие два уравнения формируются по описанной выше схеме учёта граничных условий.
Для иллюстрации этого подхода рассмотрим решение предыдущей задачи.
Сплайны для каждого из отрезков [0, 1] и [1, 3] в соответствии с предлагаемым подходом имеют вид
,
.
Учитывая координаты узловых точек
x 1 = 0, x 2 = 1, x 3 = 3,
y 1 = 2, y 2 = 0.5, y 3 = 4,
можно вычислить расстояния между их абсциссами
h 1 = 1 и h 2 = 2
и переписать сплайны как
,
,
где
, ,
, ,
, ,
, .
Вторые производные сплайнов, необходимые для формирования системы уравнений, имеют вид
,
,
где
, ,
, ,
, ,
, .
Тогда условия формирования сплайнов, записанные в последовательности узловых точек, будут выглядеть следующим образом
точка №1 (x = 0): ,
точка №2 (x = 1): ®
®
,
точка №3 (x = 3): .
Значения тангенсов углов наклона касательных в крайних узловых точках известны из предыдущего решения
.
В результате их подстановки в уравнение для 2-й точки получается одно уравнение для тангенса угла наклона касательных в этой точке
.
В итого получается следующее его значение
.
При этом искомые сплайны будут иметь вид
,
.
Тогда значение интерполирующей функции при х = 1.5 будет
.
Пример решения на ПЭВМ в среде Matlab
Пусть надо интерполировать по пяти точкам таблично заданную функцию с помощью кусочно-линейной интерполяции, многчленом Лагранжа и кубическими сплайнами. Абсциссы узловых точек известны: х = 0.5; 1.5; 3.0; 4.0; 5.0, а их ординаты вычисляются как значения функции .
В случае кусочно-линейной интерполяции можно непосредственно воспользоваться соотношениями, приведёнными в этом разделе, и написать следующую программу
xk=[0.5,1.5;1.5,3;,3,4;4,5] задание концов отрезков интерполяции
yk=cos(2*xk)-xk*exp(-xk^2) вычисление значений функции на концах отрезков
for i=1:4
C(i)=(yk(i,2)-y(i,1))/(xk(i,2)-xk(i,1));
end
N=10; задание числа промежуточных точек на каждом отрезке
for i=1:4 цикл расчёта значений интерполяционной функции
dx=(xk(i,2)-xk(i,1))/N; вычисление шага по х
j=N*(i-1); вычисление сквозного номера точки
xk1(j+1:j+11)=xk(i,1):dx:xk(i,2) абсцисса i -й промежуточной точки
yk1(j+1:j+11)=yk(i,1)+C(i)*(xk1(j+1:j+11)-xk(i,1))
end
plot(xk1,yk1,'k --',x,y,'b s'),grid построение графика
При её запуске на выполнение в командном окне высвечиваются следующие данные
xk =
0.5000 1.5000
1.5000 3.0000
3.0000 4.0000
4.0000 5.0000
yk =
0.1509 -1.1481
-1.1481 0.9598
0.9598 -0.1455
-0.1455 -0.8391
а в графическом окне выводится изображение, показанное на рис.7, где интерполирующая кусочно-линейная функция построена черным пунктиром, а исходные узловые точки – голубыми квадратами
Рис.7.
Для реализации в среде Matlab’а интерполяции с помощью полинома Лагранжа надо сначала задать формулу для вычисления рассматриваемой функции и сохраним её в m-файле с именем fun:
function z = fun(x)
z=cos(2*x)-x.*exp(-x.^2);
Далее в новом m-файлe с именем, например, interpol.m следует обратиться к встроенной функции polyfit, которая с помощью соотношений для многочлена Лагранжа вычисляет значения С коэффициентов степенного многочлена
C=polyfit(X,Y,n).
Входными параметрами этой функции являются массивы X и Y, содержащие координаты узловых точек, и степень полинома n. Массив значений коэффициентов степенного многочлена имеет размер n+1.
Текст m-файла с программой для расчета многочлена и вывода графиков может иметь вид:
X=[0.5,1.5,3,4,5]
Y=fun(X);
C=polyfit(X,Y,4)
x1=0:0.1:5;
Y1=fun(x1);
Y2=C(5).*1+C(4).*x1+C(3).*x1.^2+C(2).*x1.^3+C(1).*x1.^4;
plot(X,Y,'b s',x1,Y2,'g-',x1,Y1,'r--')
Запуск m-файла interpol.m на выполнение позволяет получить в командном окне следующий результат:
C =
0.2093 -2.4794 9.6596 -13.6064 4.8361
а графическом окне (см. рис.8) изображение узловых точек (голубые квадраты), интерполируемой функции (красный пунктир) и интерполирующего степенного многогочлена (зелёная линия).
При необходимости интерполяции таблично заданной функции кубическим сплайном можно воспользоваться встроенной в среду Matlab функцией csape. Самый простой вариант обращения к ней выглядит следующим образом:
pp=csape(x,y)
где x и y – массивы со значениями абсцисс и ординат узловых точек. Функция csape возвращает структуру pp, содержащую информацию о построенном сплайне.
Рис.8.
По умолчанию, функция csape накладывает на сплайн следующие условия в граничных точках: значение производной сплайна в граничной точке совпадает со значением производной полинома третьей степени, проходящего через данную точку и ближайшие три.
Для иного задания условий в граничных точках есть несколько способов. Простейшие условия в граничных точках указываются при помощи дополнительного входного аргумента – строки:
- вторая производная на концах отрезка построения сплайна равна нулю
pp=csape(x,y,'variational');
- третьи производные сплайна на стыке двух крайних отрезков равны
pp=csape(x,y,'not-a-knot').
Третьим входным аргументом функции csape может быть не только текстовая строка, но и вектор conds из двух элементов, содержащий значения 0, 1 или 2:
pp=csape(x,y,conds).
С помощью параметра conds реализуются более широкие возможности для постановки условий в граничных точках. Некоторые из них описаны ниже.
Еслиconds=[1 1], то на обоих концах отрезка интерполяции заданы значения первой производной сплайна. При этом возможны два вида обращения к функции csape:
- pp=csape(x,[A y B],[1 1]) – в этом случае считается, что на концах отрезка интерполяции числами A и B заданы первые производные: ;
- pp=csape(x,y,[1 1]) – в этом случае значение производной совпадает со значением первой производной полинома третьего порядка, построенного по узловым точкам с абсциссами x 1, x 2, x 3 и x 4, а значение производной – со значением первой производной полинома, построенного по узловым точкам с абсциссами xn –3, xn –2, xn –1 и xn.
Еслиconds=[2 2], то на обоих концах отрезка интерполяции заданы значения второй производной сплайна. При этом возможны два вида обращения к функции csape:
- pp=csape(x,[A y B],[2 2]) – в этом случае на концах отрезка интерполяции числами A и B заданы вторые производные: ;
- pp=csape(x,y,[2 2]) – в этом случае считается, что на концах отрезка интерполяции заданы нулевые вторые производные: и .
Еслиconds=[1 2], то на левой границе отрезка интерполяции задано значение первой производной сплайна, а на правой – второй производной. При этом возможны два вида обращения:
- pp=csape(x,[A y B],[1 2]) – на левой границе задана первая производная , а на правом – вторая производная ;
- pp=csape(x,y,[1 2]) – в этом случае считается, что первая производная в левой точке отрезка интерполирования совпадает со значением первой производной полинома третьей степени в этой точке, построенного по абсциссам узловых точек x 1, x 2, x 3 и x 4, а в правой точке – задана нулевая вторая производная .
Еслиconds=[2 1], то аналогично предыдущему случаю, на левой границе отрезка интерполяции задано значение второй производной сплайна, на правой границе – первой производной.
Функция csape возвращает структуру pp, содержащую информацию о построенном сплайне. Эта структура имеет следующие поля:
- form – форма сплайна. Его значение pp говорит о том, что сплайн строится в полиномиальной форме;
- breaks – массив абсцисс узловых точек. В рассматриваемом примере заданы пять узловых точек с абсциссами 0.5, 1.5, 3.0, 4.0 и 5.0, и сплайн будет составлен из 4-х полиномиальных частей;
- coefs – массив коэффициентов сплайна, каждая строка которого содержит коэффициенты его полиномиальных частей. В рассматриваемом примере это будет массив размером 4×4, так как на каждом из 4-х отрезков между узловыми точками используется кубический полином с 4-мя коэффициентами;
- pieces – число полиномов, составляющих сплайн (в данном случае 4);
- order – порядок сплайна (в данном случае 4, так как порядок равен степени кубического полинома плюс 1, иными словами он равен числу коэффициентов кубического полинома);
- dim – размерность (в данном случае 1).
Для интерполяции заданной табличной функции сплайном можно воспользоваться простейшей формой записи функции csape. С этой программу интерполяции заданной функции многочленом Лагранжа следует дополнить следующими командами:
pp=csape(X,Y) вычисление параметров сплайна
D=pp.coefs вывод коэффициентов сплайна (массив 4*4)
hold on оператор для вывода графика в то же окно, что и ранее
for i = 1:4 цикл для вычисления значений сплайна на каждом из 4-х отрезков
X2 = X(i):0.01:X(i+1);
P=polyval(D(i,4),(X2-X(i)); вычисление значений сплайна на каждом отрезке
h=plot(X2,P,‘LineWidth’,2); построение графика сплошной линией толщины 2
end
Запуск её на выполнение даёт в командном окне следующий результат:
pp =
form: ‘pp’
breaks: [0.5000 1.5000 3 4 5]
coefs: [4x4 double]
pieces: 4
order: 4
dim: 1
D =
-0.4603 3.0320 -3.8706 0.1509
-0.8372 1.6510 0.8123 -1.1481
0.8964 -2.1162 0.1145 0.9598
0.1622 0.5730 -1.4287 -0.1455
При этом в графическом окне (см. рис.9) строятся четыре графика:
Рис.9.
исходная функция – красный пунктир, многочлен Лагранжа – зеленая сплошная линия и кубический сплайн – синяя сплошная линия.
Контрольные задания
Выбрать один из методов интерполяции, позволяющий сформировать образ кривой, визуально совпадающий с графиком заданной функции. В качестве такой функции взять левую часть алгебраического уравнения из раздела «Решение нелинейных уравнений», которое соответствует номеру выполняемого варианта. В качестве отрезка интерполяции использовать указанный там же отрезок поиска корней. Точки интерполяции (в количестве 11 штук) равномерно распределить на заданном отрезке.
5. АППРОКСИМАЦИЯ ТАБЛИЧНО ЗАДАННЫХ ФУНКЦИЙ
Справочная информация
Интерполяция на практике используется только в тех случаях, когда значения координат узлов таблично заданной функции не искажены случайными ошибками. Наличие ошибок в значениях y таблично заданной функции приводит к неправильному представлению о поведении реальной функции и делает бессмысленной её интерполяцию. В этом случае необходимо строить «сглаживающую» приближающую функцию, отражающую физику моделируемого процесса. Её график не обязан проходить через все узловые точки табличной функции, как показано на рис.1. Построение таких приближающих функций носит название аппроксимации.
Через множество узловых точек таблично заданной функции можно провести бесконечное количество аппроксимирующих кривых. Задача выбора единственной из них делится на две основные подзадачи:
- выбор аналитических зависимостей, отражающих физику взаимосвязи аргумента и реальной функции, когда должен быть определён общий вид приближающей функции;
- выбор критерия достоверности описания реальной функции с помощью выбранных зависимостей.
Существует множество подходов к построению вида приближающей функции, как функции с параметрами. Одним из них является выбор в качестве аппроксимирующей зависимости линейной комбинации некоторых известных аналитических функций. Вместе они должны отражать суть процесса, описываемого исходной функцией, и быть линейно независимыми на отрезке аппроксимации [ x 1, xn ]
.
Функции φk (x) часто выбираются в виде полиномов, частным случаем которых являются степенные функции
φ 1(x) = 1, φ 2(x) = x, φ 3(x) = x 2, φ 4(x) = x 3,…,
в виде тригонометрических косинусов
,
или в любом другом удобном для исследователя виде.
Другим подходом к построению приближающей функции является её представление сплайнами. Это избавляет исследователя от необходимости подбирать аналитические функции для аппроксимирующей зависимости и часто даёт результат, отвечающий всем требованиям, которые предъявляются к процессу аппроксимации.
В качестве критерия достоверности описания реальной функции Гауссом (1794) и Лежандром (A.M.Legendre, 1805) было предложено использовать сумму квадратов отклонений значений аппроксимирующей функции от ординат узлов таблично заданной
,
где отклонение от каждой узловой точки Δ i, показанное на рис.2, вычисляется как
.
Сумма квадратов отклонений F при таком представлении является квадратичной функцией от параметров аппроксимации c 1, c 2,..., cm. Очевидно, что чем меньше значение функции F, тем лучше выбранная аппроксимирующая функция описывает реальную функцию. Следовательно, задача аппроксимации сводится к определению значений параметров c 1, c 2, ..., cm, которые минимизируют значение критерия – функции F. Этот приём получил название «метод наименьших квадратов».
Необходимым условием экстремума функции многих переменных F является равенство нулю всех её частных производных по параметрам c 1, c 2, ..., cm
.
Можно показать, что для функции F, являющейся суммой квадратов отклонений, достаточные условия существования её минимума в стационарной точке выполняются тождественно. Поэтому необходимыми условиями существования экстремума функции F можно пользоваться как условиями её минимума, что позволяет привести задачу аппроксимации n значений табличной функции к задаче решения системы из m линейных алгебраических уравнений относительно этих параметров с симметричной матрицей
где
,
.
Параметры аппроксимации c 1, c 2,..., cm, определяемые как решение вышеприведённой системы линейных уравнений, которая сформирована для заранее выбранных функций φ 1(x), φ 2(x), …, φm (x), дают наименьшее значение целевой функции F. Для каждого набора таких функций будет получаться своё наименьшее значение F. Поэтому для выбора наилучшей аппроксимации ориентируются на наименьшее значение погрешности аппроксимации, которая рассчитывается следующим способом для каждого набора функций φ 1(x), φ 2(x), …, φm (x)
, ,
где под нормой таблично заданной функции понимается евклидова, квадратичная норма
.
Работа метода может быть проиллюстрирована на примере аппроксимации функции, заданной 8-ю узловыми точками на рис.3, и поиска её значения при х = 1.5.
Для построения зависимости, аппроксимирующей таблично или графически заданную функцию, исследователь должен подобрать аналитические функции, которые своей комбинацией отражают описываемый процесс. В данном случае исходная функция может быть описана комбинацией двух функций. Первая из них должна отражать обратно пропорциональную зависимость функции от аргумента в диапазоне от 0 до 2, а вторая – прямо пропорциональную зависимость в диапазоне от 2 до 4. Таким образом, в качестве аппроксимационной зависимости может быть принята следующая
.
Необходимо заметить, что данное представление аппроксимирующей зависимости не является единственным. Можно подобрать и другие комбинации элементарных функций, которые отражают общий характер рассматриваемой табличной функции.
В соответствии с приведённым выше алгоритмом сумма F квадратов отклонений ординат аппроксимирующей функции от ординат узловых точек записывается в виде
Вычисления по этой формуле удобнее выполнять, сняв с графика координаты узловых точек и сформировав из них следующую таблицу.
i | ||||||||
x | 0.5 | 0.5 | 1.5 | 1.5 | 2.5 | 3.5 | ||
y | 0.9 | 0.8 | 0.5 | 0.5 | 0.4 | 0.4 | 0.5 | 0.5 |
В этом случае сумма квадратов отклонений будет
а её частные производные по параметрам c 1 и c 2, соответственно
Исходя из условия равенства нулю полученных частных производных, решение задачи сводится к решению системы из двух линейных алгебраических уравнений
Эта система имеет следующее решение c 1= 0.1047, c 2= 0.4013. Таким образом, аппроксимирующая функция имеет вид
.
Её значения при табличных значения аргумента приведены ниже
x | 0.5 | 1.5 | 2.5 | 3.5 | ||
y | 0.8550 | 0.5060 | 0.4246 | 0.4223 | 0.4811 | 0.5191 |
С их помощью может быть вычислено значение целевой функции F
которое определяет погрешность аппроксимации
, ,
где норма таблично заданной функции была вычислена следующим образом
.
Пример решения на ПЭВМ в среде Matlab
x | y |
0.00 | 1.40 |
0.16 | 2.07 |
0.31 | 2.81 |
0.47 | 3.03 |
0.63 | 3.62 |
0.79 | 3.54 |
0.94 | 3.58 |
1.10 | 3.39 |
1.26 | 2.91 |
1.41 | 2.02 |
1.57 | 1.44 |
1.73 | 0.57 |
1.89 | 0.19 |
2.04 | –0.36 |
2.20 | –0.35 |
2.36 | –0.47 |
2.51 | –0.45 |
2.67 | –0.33 |
2.83 | –0.41 |
2.98 | 0.08 |
Пусть дана таблица значений функции у для дискретных значений аргумента х. Необходимо аппроксимированть эту функцию гладкой зависимостью вида
.
Для этого найти вектор коэффициентов
минимизирующий сумму квадратов отклонений F значений аппроксимирующей функции от ординат узлов таблично заданной.
Поставленную задачу в среде Matlab’а можно решить с помощью встроенных функций inline и lsqcurvefit.
Функция inline позволяет описать аппроксимирующую функцию в символьном виде. У неё три параметра: формула для вычисления функции, имя вектора коэффициентов и имя вектора значений аргумента. Обращение к ней имеет вид:
fr= inline('формула','С','x')
Расчет коэффициентов аппроксимирующей функции методом наименьших квадратов и остаточной суммы квадратов невязок производится с помощью встроенной функции lsqcurvefit. Она имеет четыре параметра: имя функции, заданное в символьном виде, вектор её коэффициентов, вектор значений абсцисс и вектор значений ординат таблично заданной функции. Функция lsqcurvefit возвращает вектор коэффициентов аппроксимирующей функции и сумму квадратов невязок.
Для построения графика аппроксимирующей функции вектор значений её аргумента можно задать в диапазоне от 0.0 до 3.0 с шагом 0.01. Для этих значений следует вычислить вектор значений аппроксимирующей функции и обратиться к функции plot.
Текст содержимого m-файла, выполняющего указанные выше операции, приведен ниже.
x=[0.0 0.16 0.31 0.47 0.63 0.79 0.94 1.10
1.26 1.41 1.57 1.73 1.89 2.04 2.20 2.36
2.51 2.67 2.83 2.98];
y=[1.40 2.07 2.81 3.03 3.62 3.54 3.58 3.39
2.91 2.02 1.44 0.57 0.19 -0.36 -0.35 -0.47 -0.45 -0.33 -0.41 0.08];
С=[1,1,1,1]; ←задание начальных значений коэффициентов
fr=inline('С(1)/(x-1)+С(2)*sin(x)+С(3)*sin(2*x)
+С(4)*sin(3*x)','С','x')
[g,F]=lsqcurvefit(fr,С,x,y)
x1=0:0.01:3.14159;
y1=g(1)/(x1-1)+g(2)*sin(x1)+g(3)*sin(2*x1)
+g(4)*sin(3*x1);
plot(x,y,'b S',x1,y1,'r-')
Результат решения задачи будет выведено в командное окно в виде числовой информации:
g =
0.0102 1.8589 2.2127 0.5951
F =
3.2346
и в графическое окно в виде рисунка (см. рис.4) с графиком аппрок-
Рис.4.
симирующей функции и последовательности точек, отображающей исходную таблично заданную функцию.
По результатам этого расчёта можно утверждать, что аппроксимирующая функция
описывает исходную таблично заданную функцию с минимально возможной суммой квадратов невязок 3.23. При норме таблично заданной функции это соответствует относительной погрешности аппроксимации .
Контрольные задания
Аппроксимировать экспериментальные данные, приведённые на графиках в количестве 20-ти точек (см. рис.5–14), функцией вида
.
Для её построения выбрать три функции из четырёх ji (x) (i = 1,2,3,4), заданных в таблице 1. Выбор функций осуществить из условия наилучшей аппроксимации. Обосновать свой выбор лучшего варианта. График аппроксимирующей функции и экспериментальные точки вывести на экран монитора. Записать в отчёт полученную формулу аппроксимирующей функции y.
1-3. Диаграмма испытаний на растяжение цилиндрического образца из нержавеющей стали 1Х18Н9Т. | 4-6. Диаграмма избыточного давления в цилиндре четырехтактного двигателя в зависимости от угла поворота его вала. |
|
Рис.5.
7-9. Степень обогащённости газовой смеси карбюратора в зависимости от перепада давления на его диффузоре. | 10-12. Уровень шума работы двигателя Д.3–28/АТ в зависимости от числа оборотов вращения его вала. |
|
Рис.8.
13-15. Зависимость мощности карбюраторного двигателя 11Ф–615 от числа оборотов вращения его вала. | 16-18. Вертикальное смещение передней части кузова автомобиля при переезде стандартной неровности при V = 50 км/час. |
|
Рис.9.
19-21. Зависимость амплитуды вертикальных колебаний передней части кузова автомобиля при переезде стандартной неровности от скорости его движения. | 22-24. Упругая характеристика независимой подвески McConnell передних колес легкового автомобиля 405 Station Wagon (Peugeot, 1933). |
Рис.11. Рис.12.
25-27. Перегрузка передней части кузова автомобиля в зависимости от частоты возбуждающей силы на подвеске передних колес. | 28-30. Жёсткостная характеристика амортизатора подвески автомобиляScorpio 2.9i V6–24V GHIA (Ford, 1963). |
|
Рис.14.
Таблица 1. Варианты функций j 1(x), j 2(x), j 3(x) и j 4(x), составляющих аппроксимирующую функцию.
Варианты 1–3 (Рис.6, ε 0= 0.2) | ||
Варианты 4–6 (Рис.7, φ 0= 30о) | ||
Варианты 7–9 (Рис.8, p 0= 4 КПа) | ||
Варианты 10–12 (Рис.9, n 0= 200 об/мин) | ||
Варианты 13–15 (Рис.10, n 0= 800 об/мин) | ||
Варианты 16–17 (Рис.11, t 0= 1.2 сек) | ||
Варианты 19–21 (Рис.12, V 0= 20 км/час) | |
Варианты 22–24 (Рис.13, z 0= 5 см) | |
Варианты 25–27 (Рис.14, ω 0= 10 Гц) | |
Варианты 28–30 (Рис.15, V 0= 0.2 м/сек) | |
6. РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 1-ГО ПОРЯДКА
Дата добавления: 2015-07-08; просмотров: 658 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Контрольные задания | | | Справочная информация |