Любому специалисту в своей практической деятельности приходится изучать зависимости между различными параметрами исследуемых объектов, процессов и систем.
Например: зависимость числа оборотов двигателя от нагрузки, т.е. n=f( ; зависимость силы резания при обработке детали на металлорежущем станке от глубины резания, т.е. P=f(t), и т.д.
Из всех способов задания зависимостей наиболее удобным является аналитический способ задания зависимости в виде функции n=f(Мкр.), P=f(t), y=f(t).
Однако на практике специалист чаще всего получает зависимости между исследуемыми параметрами экспериментально. В этом случае ставится натурный эксперимент, изменяются значения параметров на входе системы, измеряются значения параметров на выходе системы. Результаты измерений заносятся в таблицу.
Таким образом, в результате проведения натурного эксперимента получаем зависимости между исследуемыми параметрами в виде таблицы, т.е. получаем, так называемую, табличную функцию.
Далее с этой табличной функцией необходимо вести научно-исследовательские расчеты. Например, необходимо проинтегрировать или продифференцировать табличную функцию и т.д.
Рассмотрим две задачи по обработке опытных данных:
Дана табличная функция, т.е. дана таблица, в которой для некоторых дискретных значений аргумента xi, расположенных в порядке возрастания, заданы соответствующие значения функции уi:
| i | x | y |
|---|---|---|
| 0 | x0 | y0 |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| ... | ... | ... |
| i | xi | yi |
| ... | ... | ... |
| n | xn | yn |
Точки с координатами (xi, yi) называются узловыми точками или узлами.
Количество узлов в табличной функции равно
N=n+1.
На графике табличная функция представляется в виде совокупности
(рис 11.1)
Длина участка [x0, xn] равна (xn - x0).
В расчетной практике инженера часто возникают задачи найти значение функции для аргументов, которые отсутствуют в таблице. Такие задачи называются задачами интерполирования или экстраполирования.
Задача yk табличной функции в любой промежуточной точке хк, расположенной внутри интервала [x0, xn], т.е.
и
$$x_k \in[x_0, x_n].$$Задача экстраполирования функции (или задача экстраполяции) состоит в том, чтобы найти значения yl табличной функции в точке хl, которая не входит в интервал [x0, xn], т.е.
Такую задачу часто называют задачей прогноза.
Обе эти задачи решаются при помощи нахождения аналитического выражения некоторой вспомогательной функции F(x), которая приближала бы заданную табличную функцию, т.е. в
Для определенности задачи искомую функцию F(x) будем искать из класса алгебраических
Этот
Поэтому степень многочлена n зависит от количества N и равна количеству n=N-1.
Интерполирование с помощью алгебраических
Таким образом, для решения задачи интерполирования прежде всего необходимо решить задачу, которую можно сформулировать следующим образом:
для функции $$F(x_i) = y_i, i=0,1,2, \ldots,n$$, заданной таблично, n, который проходит через все узловые точки таблицы:
где
n -степень многочлена, равная количеству N минус один,т.е. n=N-1.
В результате, в любой другой промежуточной точке хk, расположенной внутри отрезка [x0,xn] выполняется приближенное равенство Pn(xk) = f(xk) = yk. (рис.11.2)
(рис 11.2)
Для a0, a1, :, an, т.е. ai i=0,1,2,:,n. Количество неизвестных коэффициентов равно
n+1=N,
где
n-степень многочлена (11.2),
N-количество
Для нахождения коэффициентов, используем свойство (11.3) интерполяционного многочлена (11.2). На основании этого свойства интерполяционный (xi, yi) таблицы (11.1), т.е.,
Подставляя в (11.4) каждую узловую точку таблицы (11.1) получаем систему линейных уравнений:
$$\left\{ \begin{array}{l} a_0x_0^n + a_1x_0^{n-1} + \ldots + a_{n-1}x_0 + a_n = y_0,\\ a_0x_1^n + a_1x_1^{n-1} + \ldots + a_{n-1}x_1 + a_n = y_1,\\ \ldots \ldots \ldots \ldots \ldots \ldots\\ a_0x_n^n + a_1x_n^{n-1} + \ldots + a_{n-1}x_n + a_n = y_n. \end{array} \right.$$Неизвестными системы (11.5) являются a0, a1, a2, :, an т.е. коэффициенты многочлена (11.2). Коэффициенты при неизвестных системы (11.5) $$x_i^n, x_i^{n-1}, \ldots, x_i^0, i=0,1, \ldots,n, i=0,1,:,n$$ легко могут быть определены на основании данных таблицы (11.1).
Интерполяционный
Интерполяционный
Докажем, что xi выполняется условие Ln(xi) = yi. Для этого будем последовательно подставлять значения координат
если x=x0, то Ln(x0) = y0,
если x=x1, то Ln(x1) = y1,
:::::
если x=xn, то Ln(xn) = yn.
Это достигнуто за счет того, что в уj, j=0,1,2,:,n отсутствует сомножитель (x-xi), в котором i=j, а знаменатель каждой дроби получен заменой переменной х на соответствующее значение хj.
Таким образом, интерполяционный Ln(xi) = yi и мы можем использовать его в качестве вспомогательной функции для решения задач интерполирования, т.е. $$L_n(x_k) \approx y_k$$.
Чем больше узлов интерполирования на отрезке [x0,xn], тем точнее интерполяционный
Однако с увеличением числа узлов интерполирования возрастает степень интерполяционного многочлена n и в результате значительно возрастает объем вычислительной работы. Поэтому при большом числе узлов необходимо применять ЭВМ. В этом случае удобно находить значения функции в промежуточных точках, не получая
При решении задачи экстраполирования функции с помощью интерполяционного многочлена вычисление значения функции за пределами отрезка [x0,xn] обычно производят не далее, чем на один шаг h, равный наименьшей величине$$\left|x_{i+1} - x_i\right|,$$
так как за пределами отрезка [x0,xn] погрешности, как правило, увеличиваются.
Свернем формулу Лагранжа (11.6). В результате получим
$$Ln(x) = \sum \limits_{j=0}^{n} B_j \cdot y_j,$$где
$$B_j = \prod \limits_{i=0}^{n} \frac{x-x_i}{x_j-x_i},$$но при этом обязательно выполнение условия $$i \neq j$$.
При построении алгоритма используют конструкцию из двух включенных циклов:
Внешним циклом накапливаем сумму $$L = \sum \limits_{j=0}^{n} B_j \cdot y_j$$.
Внутренним циклом накапливаем произведение $$B_j = \prod \limits_{i=0}^{n} \frac{x-x_i}{x_j-x_i}, i \neq j$$.
Алгоритм (рис.11.3) не предусматривает получение интерполяционного многочлена в явном виде, а сразу решает задачу x=D.
Обозначения в алгоритме:
n - степень интерполяционного многочлена Лагранжа (11.6), равная количеству N минус один, т.е. n=N-1.
D - значение аргумента в точке, для которой решается задача интерполирования табличной функции (11.1).
L - значение многочлена (11.6).
(рис 11.3) Схема алгоритма интерполяции по Лагранжу
Дана табличная функция:
| i | xi | yi |
|---|---|---|
| 0 | x0 | y0 |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| ... | ... | ... |
| n | xn | yn |
или
$$y_i = f(x_i), i=\overline{0,n}.$$Точки с координатами (xi, yi) называются узловыми точками или узлами.
Количество узлов в табличной функции равно
N=n+1.
Необходимо найти значение этой функции в промежуточной точке, например, x=D, причем $$D \in[x_0,x_n]$$.
Для решения задачи строим интерполяционный
Интерполяционный
где
n - степень многочлена,
$$f(x_0), f(x_0,x_1), f(x_0,x_1,x_2), f(x_0,x_1,\ldots, x_n)$$ -
Значения f(x0), f(x1), : , f(xn), т.е. значения табличной функции в узлах, называются (k=0).
Отношение $$f(x_0,x_1) = \frac{f(x_1)-f(x_0)}{x_1 - x_0}$$ называется разделенной разностью первого порядка (k=1) на участке [x0, x1] и равно разности [x0, x1], разделенной на длину этого участка.
Для произвольного участка [xi, xi+1] (k=1) равна
Отношение $$f(x_0,x_1,x_2) = \frac{f(x_1,x_2)-f(x_0,x_1)}{x_2 - x_0}$$ называется разделенной разностью второго порядка (k=2) на участке [x0, x2] и равно разности [x0, x2].
Для произвольного участка [xi, xi+2] (k=2) равна
Таким образом, k -го порядка на участке [xi, xi+k] может быть определена через (k-1) -го порядка по рекуррентной формуле:
где
$$k=\overline{1,n},$$ $$i=\overline{0,n-k},$$n - степень многочлена.
Максимальное значение k равно n. Тогда i =0 и n -го порядка на участке [x0,xn] равна $$f(x_0,x_i, \ldots,x_n) = \frac{ f(x_1,x_2, \ldots,x_n) - f(x_0,x_1, \ldots,x_n-1)}{x_n - x_0}$$, т.е. равна разности (n-1) -го порядка, разделенной на длину участка [x0,xn].
n -й степени. При этом в [x0, x0+k], $$k=\overline{1,n}$$.
Лемма: алгебраический
Докажем это. Пусть х=х0, тогда
Пусть х=х1, тогда
Пусть х=х2, тогда
Заметим, что решение задачи yi, i=0,1,:n. Поэтому при изменении количества N и степени многочлена n (n=N-1) интерполяционный N и степени многочлена n требуется только добавить или отбросить соответствующее число стандартных слагаемых в формуле Ньютона (11.7). Это удобно на практике и ускоряет процесс вычислений.
Для построения многочлена Ньютона по формуле (11.7) организуем циклический вычислительный процесс по $$k=\overline{1,n}$$. При этом на каждом шаге поиска находим k -го порядка. Будем помещать Y.
Тогда рекуррентная формула (11.8) будет иметь вид:
$$y_i = \frac{y_{i+1} - y_i}{x_{i+k} - x_i}\\ k=\overline{1,n};\\ i=\overline{0,n-k}.$$В формуле Ньютона (11.7) используются k -го порядка, подсчитанные только для участков [x0, x0+k], т.е. k -го порядка для i=0. Обозначим эти у0. А I > 0, используются для расчетов
Используя (11.9), свернем формулу (11.7). В результате получим
$$L_n(x) = y_o + \sum \limits_{k=1}^{n}P \cdot y_0^*$$где
у0 - значение табличной функции (11.1) для x=x0.
$$y_0^*$$ - [x0, x0+k].
Для вычисления Р удобно использовать рекуррентную формулу P = P(x - xk-1) внутри цикла по k.
Схема алгоритма
(рис 11.4) Схема алгоритма интерполяции по Ньютону
Дана табличная функция:
i |
xi |
yi |
|---|---|---|
| 0 | 2 | 0,693147 |
| 1 | 3 | 1,098613 |
| 2 | 4 | 1,386295 |
| 3 | 5 | 1,609438 |
Вычислить (n=3) и занести их в диагональную таблицу.
i |
xi |
||||
| 0-го пор. | 1-го пор. | 2-го пор. | 3-го пор. | ||
| 0 | 2 | 0,693147 | |||
| 0,405466 | |||||
| 1 | 3 | 1,098613 | -0,058892 | ||
| 0,287682 | 0,00887416 | ||||
| 2 | 4 | 1,386295 | -0,0322695 | ||
| 0,223143 | |||||
| 3 | 5 | 1,60943 | |||
Интерполяционный
Далее полученный интерполяционный
Сплайны стали широко использоваться в вычислительной математике сравнительно недавно. В машиностроительном черчении они применяются уже давно, так как сплайны - это лекала или гибкие линейки, деформация которых позволяет провести кривую через заданные точки (xi, уi).
Используя теорию изгиба бруса при малых деформациях, можно показать, что
Например, для некоторых функций (рис.11.5) необходимо задать все кубические функции q1(x), q2(x), :qn(x).
В наиболее общем случае эти многочлены имеют вид:
$$q_i(x) =k_{1j} + k_{2i} x + k_{3i} x^2 + k_{4i} x^3, i=\overline{1,n},$$где kij - коэффициенты, определяемые описанными ранее условиями, количество которых равно 4n. Для определения коэффициентов kij необходимо построить и решить систему порядка 4n.
(рис 11.5)
Первые 2n условий требуют, чтобы сплайны соприкасались в заданных точках:
$$q_i(x_i) = y_i, i=\overline{1,n};\\ q_{i+1}(x_i) = y_i, i=\overline{0,n-1}.$$Следующие (2п-2) условий требуют, чтобы в местах соприкосновения сплайнов были равны первые и вторые производные:
Система алгебраических уравнений имеет решение, если число уравнений соответствует числу неизвестных. Для этого необходимо ввести еще два уравнения. Обычно используются следующие условия:
$$q_1''(x_0) = 0, ..., q_n''(x_n) = 0.$$При построении алгоритма метода первые и
Полученный таким образом
В результате проведения натурного эксперимента получена табличная функция:
| i | X | Y |
|---|---|---|
| 0 | xo | yo |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| 3 | x3 | y3 |
| : | : | : |
| n | xn | yn |
где
N-количество
n=N-1.
y=f(x) полученной табличной функции.
В настоящее время существует 2 способа
Первый способ. Этот способ требует, чтобы аппроксимирующая кривая F(x), аналитический вид которой необходимо найти, проходила через все узловые точки таблицы. Эту задачу можно решить с помощью n:
Однако этот способ
[x0, xn] при количестве Известно, что как бы точно не проводился эксперимент, результаты эксперимента содержат погрешности. Дело в том, что на самом деле исследуемая величина зависит не только от одного аргумента Х, но и от других случайных факторов, которые от опыта к опыту колеблются по своим собственным случайным законам. Этим самым обуславливается случайная колеблемость исследуемой функции.
В результате аппроксимировать опытные данные с помощью интерполяционного многочлена, который проходил бы через все узловые точки таблицы, не всегда удается. Более того, стремясь пройти через все узловые точки таблицы и увеличивая порядок многочлена, мы тем самым начинаем воспроизводить не только закономерные изменения снимаемой функции, но и ее случайные помехи.
Второй способ. На практике нашел применение другой способ F(x), которая не обязательно должна пройти через все узловые точки, а должна как бы сгладить все случайные помехи табличной функции.
В этом методе при сглаживании опытных данных аппроксимирующей кривую F(x) стремятся провести так, чтобы ее отклонения $$\varepsilon_i$$ от табличных данных (уклонения) по всем узловым точкам были минимальными (рис 11.6), т.е.
(рис 11.6)
Избавимся от знака уклонения. Тогда условие (11.6) будет иметь вид:
$$\varepsilon_i^2=\left|(F(x_i) - y_i)^2 \right| \to min.$$Суть F(x), сумма квадратов уклонений которой от табличных данных по всем узловым точкам была бы минимальной, т.е.
Для определенности задачи искомую функцию F(x) будем выбирать из класса алгебраических m:
Назовем m < n. Степень m может меняться в пределах $$1 \le m \le N-2$$.
Если m=1, то мы аппроксимируем табличную функцию прямой линией. Такая задача называется линейной регрессией.
Если m=2, то мы аппроксимируем табличную функцию квадратичной
Если m=3, то мы аппроксимируем табличную функцию кубической
Уточним
Изменим вид многочлена Pm. Поставим на последнее место слагаемые, содержащие xm. На предпоследнее - слагаемые, содержащие xm-1 и т.д. В результате получим:
или
$$P_m(x) = \sum \limits_{j=0}^{m}a_j x^j$$При этом изменим индексы коэффициентов многочлена. Тогда условие (11.8) будет иметь вид:
$$S = \sum \limits_{i=0}^{n} (a_0 x_i^0 + a_1 x_i^1 + a_2 x_i^2 + \ldots + a_m x_i^m - y_i)^2 \to min,$$где
xi и yi - координаты
aj, $$j=\overline{0,m}$$ -неизвестные коэффициенты многочлена (11.11).
Необходимым условием существования минимума функции S является равенство нулю ее частных производных по каждой aj.
В результате получили систему линейных уравнений. Раскрывая скобки и перенося
где
aj - неизвестные
$$c_k = \sum \limits_{i=0}^{n} x_i^k, k=\overline{0,2m}$$ -
$$d_j = \sum \limits_{i=0}^{n} y_i x_i^k, j=\overline{0,m}$$ -
Порядок системы равен m+1.
При ручном счете коэффициенты ck и dj удобно определять, пользуясь таблицей 11.2:
| i | xi0 | xi1 | xi2 | ... | xi2m | xi0 yi | xi1 yi | ... | xim |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | ||||||||
| 1 | 1 | ||||||||
| 2 | 1 | ||||||||
| ... | ... | ||||||||
| N | 1 | ||||||||
| $$\sum_{i=o}^n$$ | c0 | c1 | c2 | ... | c2m | d0 | d1 | ... | dm |
Изменим индексацию в системе (11.12). В результате получим:
$$\left\{ \begin{array}{l} c_{11}a_1 + c_{12}a_2 + c_{13}a_3 + \ldots + c_{1(m+1)} a_{m+1} = d_1,\\ c_{21}a_1 + c_{22}a_2 + c_{23}a_3 + \ldots + c_{2(m+1)} a_{m+1} = d_2,\\ c_{31}a_1 + c_{32}a_2 + c_{33}a_3 + \ldots + c_{3(m+1)} a_{m+1} = d_3,\\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots\\ c_{(m+1)},1a_1 + c_{(m+1)},2a_2 + \ldots + c_{(m+1),(m+1)} a_{m+1} = d_{m+1} \end{array} \right.$$где
$$a_j, j=\overline{1,(m+1)}$$ - неизвестные
$$c_{k,j} = \sum \limits_{i=1}^{N} x_i^{k+j-2}, k = \overline{1,(m+1)}, j = \overline{1,(m+1)}$$ - коэффициенты
$$d_k = \sum \limits_{i=1}^{N} y_i x_i^{j-1}, j = \overline{1,(m+1)}$$ -
(xi, yi) - координаты
N - количество
m - степень аппроксимирующего многочлена вида:
ck,j и dk. Т.к. система (11.13) симметрична относительно главной диагонали, то достаточно определить только наддиагональные элементы системы.aj многочлена (11.14).Pi = Pm(xi).Для построения аппроксимирующего многочлена (11.11) и вычисления его значения в каждой узловой точке используем рациональную форму многочлена:
$$P_m(x) = a_1 + x \cdot (a_2 + x \cdot (a_3 + \ldots + x \cdot (a_m + x \cdot a_{(m+1)} \ldots)$$Тогда для вычисления значения многочлена (11.15) удобно пользоваться
Укрупненная схема алгоритма МНК представлена на рис.11.7. Схемы алгоритмов основных блоков представлены на рисунках 11.8-11.10.
(рис 11.7) Укрупненная схема алгоритма аппроксимации методом наименьших квадратов
Обозначения в блоке 2:
m - степень аппроксимирующего многочлена,
N - количество
X, Y - массивы значений x и y таблицы (11.2).
(рис 11.8) Схема алгоритма блока 3. Определение коэффициентов системы (11.13)
(рис 11.9) Схема алгоритма блока 4. Определение свободных членов системы (11.13)
(рис 11.10) Схема алгоритма блока 6. Схема Горнера
Любому специалисту в своей практической деятельности приходится изучать зависимости между различными параметрами исследуемых объектов, процессов и систем.
Например: зависимость числа оборотов двигателя от нагрузки, т.е. n=f( ; зависимость силы резания при обработке детали на металлорежущем станке от глубины резания, т.е. P=f(t), и т.д.
Из всех способов задания зависимостей наиболее удобным является аналитический способ задания зависимости в виде функции n=f(Мкр.), P=f(t), y=f(t).
Однако на практике специалист чаще всего получает зависимости между исследуемыми параметрами экспериментально. В этом случае ставится натурный эксперимент, изменяются значения параметров на входе системы, измеряются значения параметров на выходе системы. Результаты измерений заносятся в таблицу.
Таким образом, в результате проведения натурного эксперимента получаем зависимости между исследуемыми параметрами в виде таблицы, т.е. получаем, так называемую, табличную функцию.
Далее с этой табличной функцией необходимо вести научно-исследовательские расчеты. Например, необходимо проинтегрировать или продифференцировать табличную функцию и т.д.
Рассмотрим две задачи по обработке опытных данных:
Дана табличная функция, т.е. дана таблица, в которой для некоторых дискретных значений аргумента xi, расположенных в порядке возрастания, заданы соответствующие значения функции уi:
| i | x | y |
|---|---|---|
| 0 | x0 | y0 |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| ... | ... | ... |
| i | xi | yi |
| ... | ... | ... |
| n | xn | yn |
Точки с координатами (xi, yi) называются узловыми точками или узлами.
Количество узлов в табличной функции равно
N=n+1.
На графике табличная функция представляется в виде совокупности
(рис 11.1)
Длина участка [x0, xn] равна (xn - x0).
В расчетной практике инженера часто возникают задачи найти значение функции для аргументов, которые отсутствуют в таблице. Такие задачи называются задачами интерполирования или экстраполирования.
Задача yk табличной функции в любой промежуточной точке хк, расположенной внутри интервала [x0, xn], т.е.
и
$$x_k \in[x_0, x_n].$$Задача экстраполирования функции (или задача экстраполяции) состоит в том, чтобы найти значения yl табличной функции в точке хl, которая не входит в интервал [x0, xn], т.е.
Такую задачу часто называют задачей прогноза.
Обе эти задачи решаются при помощи нахождения аналитического выражения некоторой вспомогательной функции F(x), которая приближала бы заданную табличную функцию, т.е. в
Для определенности задачи искомую функцию F(x) будем искать из класса алгебраических
Этот
Поэтому степень многочлена n зависит от количества N и равна количеству n=N-1.
Интерполирование с помощью алгебраических
Таким образом, для решения задачи интерполирования прежде всего необходимо решить задачу, которую можно сформулировать следующим образом:
для функции $$F(x_i) = y_i, i=0,1,2, \ldots,n$$, заданной таблично, n, который проходит через все узловые точки таблицы:
где
n -степень многочлена, равная количеству N минус один,т.е. n=N-1.
В результате, в любой другой промежуточной точке хk, расположенной внутри отрезка [x0,xn] выполняется приближенное равенство Pn(xk) = f(xk) = yk. (рис.11.2)
(рис 11.2)
Для a0, a1, :, an, т.е. ai i=0,1,2,:,n. Количество неизвестных коэффициентов равно
n+1=N,
где
n-степень многочлена (11.2),
N-количество
Для нахождения коэффициентов, используем свойство (11.3) интерполяционного многочлена (11.2). На основании этого свойства интерполяционный (xi, yi) таблицы (11.1), т.е.,
Подставляя в (11.4) каждую узловую точку таблицы (11.1) получаем систему линейных уравнений:
$$\left\{ \begin{array}{l} a_0x_0^n + a_1x_0^{n-1} + \ldots + a_{n-1}x_0 + a_n = y_0,\\ a_0x_1^n + a_1x_1^{n-1} + \ldots + a_{n-1}x_1 + a_n = y_1,\\ \ldots \ldots \ldots \ldots \ldots \ldots\\ a_0x_n^n + a_1x_n^{n-1} + \ldots + a_{n-1}x_n + a_n = y_n. \end{array} \right.$$Неизвестными системы (11.5) являются a0, a1, a2, :, an т.е. коэффициенты многочлена (11.2). Коэффициенты при неизвестных системы (11.5) $$x_i^n, x_i^{n-1}, \ldots, x_i^0, i=0,1, \ldots,n, i=0,1,:,n$$ легко могут быть определены на основании данных таблицы (11.1).
Интерполяционный
Интерполяционный
Докажем, что xi выполняется условие Ln(xi) = yi. Для этого будем последовательно подставлять значения координат
если x=x0, то Ln(x0) = y0,
если x=x1, то Ln(x1) = y1,
:::::
если x=xn, то Ln(xn) = yn.
Это достигнуто за счет того, что в уj, j=0,1,2,:,n отсутствует сомножитель (x-xi), в котором i=j, а знаменатель каждой дроби получен заменой переменной х на соответствующее значение хj.
Таким образом, интерполяционный Ln(xi) = yi и мы можем использовать его в качестве вспомогательной функции для решения задач интерполирования, т.е. $$L_n(x_k) \approx y_k$$.
Чем больше узлов интерполирования на отрезке [x0,xn], тем точнее интерполяционный
Однако с увеличением числа узлов интерполирования возрастает степень интерполяционного многочлена n и в результате значительно возрастает объем вычислительной работы. Поэтому при большом числе узлов необходимо применять ЭВМ. В этом случае удобно находить значения функции в промежуточных точках, не получая
При решении задачи экстраполирования функции с помощью интерполяционного многочлена вычисление значения функции за пределами отрезка [x0,xn] обычно производят не далее, чем на один шаг h, равный наименьшей величине$$\left|x_{i+1} - x_i\right|,$$
так как за пределами отрезка [x0,xn] погрешности, как правило, увеличиваются.
Свернем формулу Лагранжа (11.6). В результате получим
$$Ln(x) = \sum \limits_{j=0}^{n} B_j \cdot y_j,$$где
$$B_j = \prod \limits_{i=0}^{n} \frac{x-x_i}{x_j-x_i},$$но при этом обязательно выполнение условия $$i \neq j$$.
При построении алгоритма используют конструкцию из двух включенных циклов:
Внешним циклом накапливаем сумму $$L = \sum \limits_{j=0}^{n} B_j \cdot y_j$$.
Внутренним циклом накапливаем произведение $$B_j = \prod \limits_{i=0}^{n} \frac{x-x_i}{x_j-x_i}, i \neq j$$.
Алгоритм (рис.11.3) не предусматривает получение интерполяционного многочлена в явном виде, а сразу решает задачу x=D.
Обозначения в алгоритме:
n - степень интерполяционного многочлена Лагранжа (11.6), равная количеству N минус один, т.е. n=N-1.
D - значение аргумента в точке, для которой решается задача интерполирования табличной функции (11.1).
L - значение многочлена (11.6).
(рис 11.3) Схема алгоритма интерполяции по Лагранжу
Дана табличная функция:
| i | xi | yi |
|---|---|---|
| 0 | x0 | y0 |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| ... | ... | ... |
| n | xn | yn |
или
$$y_i = f(x_i), i=\overline{0,n}.$$Точки с координатами (xi, yi) называются узловыми точками или узлами.
Количество узлов в табличной функции равно
N=n+1.
Необходимо найти значение этой функции в промежуточной точке, например, x=D, причем $$D \in[x_0,x_n]$$.
Для решения задачи строим интерполяционный
Интерполяционный
где
n - степень многочлена,
$$f(x_0), f(x_0,x_1), f(x_0,x_1,x_2), f(x_0,x_1,\ldots, x_n)$$ -
Значения f(x0), f(x1), : , f(xn), т.е. значения табличной функции в узлах, называются (k=0).
Отношение $$f(x_0,x_1) = \frac{f(x_1)-f(x_0)}{x_1 - x_0}$$ называется разделенной разностью первого порядка (k=1) на участке [x0, x1] и равно разности [x0, x1], разделенной на длину этого участка.
Для произвольного участка [xi, xi+1] (k=1) равна
Отношение $$f(x_0,x_1,x_2) = \frac{f(x_1,x_2)-f(x_0,x_1)}{x_2 - x_0}$$ называется разделенной разностью второго порядка (k=2) на участке [x0, x2] и равно разности [x0, x2].
Для произвольного участка [xi, xi+2] (k=2) равна
Таким образом, k -го порядка на участке [xi, xi+k] может быть определена через (k-1) -го порядка по рекуррентной формуле:
где
$$k=\overline{1,n},$$ $$i=\overline{0,n-k},$$n - степень многочлена.
Максимальное значение k равно n. Тогда i =0 и n -го порядка на участке [x0,xn] равна $$f(x_0,x_i, \ldots,x_n) = \frac{ f(x_1,x_2, \ldots,x_n) - f(x_0,x_1, \ldots,x_n-1)}{x_n - x_0}$$, т.е. равна разности (n-1) -го порядка, разделенной на длину участка [x0,xn].
n -й степени. При этом в [x0, x0+k], $$k=\overline{1,n}$$.
Лемма: алгебраический
Докажем это. Пусть х=х0, тогда
Пусть х=х1, тогда
Пусть х=х2, тогда
Заметим, что решение задачи yi, i=0,1,:n. Поэтому при изменении количества N и степени многочлена n (n=N-1) интерполяционный N и степени многочлена n требуется только добавить или отбросить соответствующее число стандартных слагаемых в формуле Ньютона (11.7). Это удобно на практике и ускоряет процесс вычислений.
Для построения многочлена Ньютона по формуле (11.7) организуем циклический вычислительный процесс по $$k=\overline{1,n}$$. При этом на каждом шаге поиска находим k -го порядка. Будем помещать Y.
Тогда рекуррентная формула (11.8) будет иметь вид:
$$y_i = \frac{y_{i+1} - y_i}{x_{i+k} - x_i}\\ k=\overline{1,n};\\ i=\overline{0,n-k}.$$В формуле Ньютона (11.7) используются k -го порядка, подсчитанные только для участков [x0, x0+k], т.е. k -го порядка для i=0. Обозначим эти у0. А I > 0, используются для расчетов
Используя (11.9), свернем формулу (11.7). В результате получим
$$L_n(x) = y_o + \sum \limits_{k=1}^{n}P \cdot y_0^*$$где
у0 - значение табличной функции (11.1) для x=x0.
$$y_0^*$$ - [x0, x0+k].
Для вычисления Р удобно использовать рекуррентную формулу P = P(x - xk-1) внутри цикла по k.
Схема алгоритма
(рис 11.4) Схема алгоритма интерполяции по Ньютону
Дана табличная функция:
i |
xi |
yi |
|---|---|---|
| 0 | 2 | 0,693147 |
| 1 | 3 | 1,098613 |
| 2 | 4 | 1,386295 |
| 3 | 5 | 1,609438 |
Вычислить (n=3) и занести их в диагональную таблицу.
i |
xi |
||||
| 0-го пор. | 1-го пор. | 2-го пор. | 3-го пор. | ||
| 0 | 2 | 0,693147 | |||
| 0,405466 | |||||
| 1 | 3 | 1,098613 | -0,058892 | ||
| 0,287682 | 0,00887416 | ||||
| 2 | 4 | 1,386295 | -0,0322695 | ||
| 0,223143 | |||||
| 3 | 5 | 1,60943 | |||
Интерполяционный
Далее полученный интерполяционный
Сплайны стали широко использоваться в вычислительной математике сравнительно недавно. В машиностроительном черчении они применяются уже давно, так как сплайны - это лекала или гибкие линейки, деформация которых позволяет провести кривую через заданные точки (xi, уi).
Используя теорию изгиба бруса при малых деформациях, можно показать, что
Например, для некоторых функций (рис.11.5) необходимо задать все кубические функции q1(x), q2(x), :qn(x).
В наиболее общем случае эти многочлены имеют вид:
$$q_i(x) =k_{1j} + k_{2i} x + k_{3i} x^2 + k_{4i} x^3, i=\overline{1,n},$$где kij - коэффициенты, определяемые описанными ранее условиями, количество которых равно 4n. Для определения коэффициентов kij необходимо построить и решить систему порядка 4n.
(рис 11.5)
Первые 2n условий требуют, чтобы сплайны соприкасались в заданных точках:
$$q_i(x_i) = y_i, i=\overline{1,n};\\ q_{i+1}(x_i) = y_i, i=\overline{0,n-1}.$$Следующие (2п-2) условий требуют, чтобы в местах соприкосновения сплайнов были равны первые и вторые производные:
Система алгебраических уравнений имеет решение, если число уравнений соответствует числу неизвестных. Для этого необходимо ввести еще два уравнения. Обычно используются следующие условия:
$$q_1''(x_0) = 0, ..., q_n''(x_n) = 0.$$При построении алгоритма метода первые и
Полученный таким образом
В результате проведения натурного эксперимента получена табличная функция:
| i | X | Y |
|---|---|---|
| 0 | xo | yo |
| 1 | x1 | y1 |
| 2 | x2 | y2 |
| 3 | x3 | y3 |
| : | : | : |
| n | xn | yn |
где
N-количество
n=N-1.
y=f(x) полученной табличной функции.
В настоящее время существует 2 способа
Первый способ. Этот способ требует, чтобы аппроксимирующая кривая F(x), аналитический вид которой необходимо найти, проходила через все узловые точки таблицы. Эту задачу можно решить с помощью n:
Однако этот способ
[x0, xn] при количестве Известно, что как бы точно не проводился эксперимент, результаты эксперимента содержат погрешности. Дело в том, что на самом деле исследуемая величина зависит не только от одного аргумента Х, но и от других случайных факторов, которые от опыта к опыту колеблются по своим собственным случайным законам. Этим самым обуславливается случайная колеблемость исследуемой функции.
В результате аппроксимировать опытные данные с помощью интерполяционного многочлена, который проходил бы через все узловые точки таблицы, не всегда удается. Более того, стремясь пройти через все узловые точки таблицы и увеличивая порядок многочлена, мы тем самым начинаем воспроизводить не только закономерные изменения снимаемой функции, но и ее случайные помехи.
Второй способ. На практике нашел применение другой способ F(x), которая не обязательно должна пройти через все узловые точки, а должна как бы сгладить все случайные помехи табличной функции.
В этом методе при сглаживании опытных данных аппроксимирующей кривую F(x) стремятся провести так, чтобы ее отклонения $$\varepsilon_i$$ от табличных данных (уклонения) по всем узловым точкам были минимальными (рис 11.6), т.е.
(рис 11.6)
Избавимся от знака уклонения. Тогда условие (11.6) будет иметь вид:
$$\varepsilon_i^2=\left|(F(x_i) - y_i)^2 \right| \to min.$$Суть F(x), сумма квадратов уклонений которой от табличных данных по всем узловым точкам была бы минимальной, т.е.
Для определенности задачи искомую функцию F(x) будем выбирать из класса алгебраических m:
Назовем m < n. Степень m может меняться в пределах $$1 \le m \le N-2$$.
Если m=1, то мы аппроксимируем табличную функцию прямой линией. Такая задача называется линейной регрессией.
Если m=2, то мы аппроксимируем табличную функцию квадратичной
Если m=3, то мы аппроксимируем табличную функцию кубической
Уточним
Изменим вид многочлена Pm. Поставим на последнее место слагаемые, содержащие xm. На предпоследнее - слагаемые, содержащие xm-1 и т.д. В результате получим:
или
$$P_m(x) = \sum \limits_{j=0}^{m}a_j x^j$$При этом изменим индексы коэффициентов многочлена. Тогда условие (11.8) будет иметь вид:
$$S = \sum \limits_{i=0}^{n} (a_0 x_i^0 + a_1 x_i^1 + a_2 x_i^2 + \ldots + a_m x_i^m - y_i)^2 \to min,$$где
xi и yi - координаты
aj, $$j=\overline{0,m}$$ -неизвестные коэффициенты многочлена (11.11).
Необходимым условием существования минимума функции S является равенство нулю ее частных производных по каждой aj.
В результате получили систему линейных уравнений. Раскрывая скобки и перенося
где
aj - неизвестные
$$c_k = \sum \limits_{i=0}^{n} x_i^k, k=\overline{0,2m}$$ -
$$d_j = \sum \limits_{i=0}^{n} y_i x_i^k, j=\overline{0,m}$$ -
Порядок системы равен m+1.
При ручном счете коэффициенты ck и dj удобно определять, пользуясь таблицей 11.2:
| i | xi0 | xi1 | xi2 | ... | xi2m | xi0 yi | xi1 yi | ... | xim |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 1 | ||||||||
| 1 | 1 | ||||||||
| 2 | 1 | ||||||||
| ... | ... | ||||||||
| N | 1 | ||||||||
| $$\sum_{i=o}^n$$ | c0 | c1 | c2 | ... | c2m | d0 | d1 | ... | dm |
Изменим индексацию в системе (11.12). В результате получим:
$$\left\{ \begin{array}{l} c_{11}a_1 + c_{12}a_2 + c_{13}a_3 + \ldots + c_{1(m+1)} a_{m+1} = d_1,\\ c_{21}a_1 + c_{22}a_2 + c_{23}a_3 + \ldots + c_{2(m+1)} a_{m+1} = d_2,\\ c_{31}a_1 + c_{32}a_2 + c_{33}a_3 + \ldots + c_{3(m+1)} a_{m+1} = d_3,\\ \ldots \ldots \ldots \ldots \ldots \ldots \ldots \ldots\\ c_{(m+1)},1a_1 + c_{(m+1)},2a_2 + \ldots + c_{(m+1),(m+1)} a_{m+1} = d_{m+1} \end{array} \right.$$где
$$a_j, j=\overline{1,(m+1)}$$ - неизвестные
$$c_{k,j} = \sum \limits_{i=1}^{N} x_i^{k+j-2}, k = \overline{1,(m+1)}, j = \overline{1,(m+1)}$$ - коэффициенты
$$d_k = \sum \limits_{i=1}^{N} y_i x_i^{j-1}, j = \overline{1,(m+1)}$$ -
(xi, yi) - координаты
N - количество
m - степень аппроксимирующего многочлена вида:
ck,j и dk. Т.к. система (11.13) симметрична относительно главной диагонали, то достаточно определить только наддиагональные элементы системы.aj многочлена (11.14).Pi = Pm(xi).Для построения аппроксимирующего многочлена (11.11) и вычисления его значения в каждой узловой точке используем рациональную форму многочлена:
$$P_m(x) = a_1 + x \cdot (a_2 + x \cdot (a_3 + \ldots + x \cdot (a_m + x \cdot a_{(m+1)} \ldots)$$Тогда для вычисления значения многочлена (11.15) удобно пользоваться
Укрупненная схема алгоритма МНК представлена на рис.11.7. Схемы алгоритмов основных блоков представлены на рисунках 11.8-11.10.
(рис 11.7) Укрупненная схема алгоритма аппроксимации методом наименьших квадратов
Обозначения в блоке 2:
m - степень аппроксимирующего многочлена,
N - количество
X, Y - массивы значений x и y таблицы (11.2).
(рис 11.8) Схема алгоритма блока 3. Определение коэффициентов системы (11.13)
(рис 11.9) Схема алгоритма блока 4. Определение свободных членов системы (11.13)
(рис 11.10) Схема алгоритма блока 6. Схема Горнера
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.