- •1, 4, 7. Решение нелинейных уравнений
- •2.Транспортная задача линейного программирования
- •9. Файловый ввод-вывод
- •12. Системный анализ
- •17.Смешанные, стратегии в матричных играх. Основная теорема матричных игр.
- •18. Моделювання випадкових факторів.
- •19. Первая интерполяционная формула Ньютона.
- •20. Числові характеристики випадкових величин.
- •21. Моделирование параллельных процессов.
- •22(19,25). Наближення функцій. Задача інтерполяції.
- •23. Математичне сподівання випадкової величини, його властивості та формули для обчислювання.
- •26. Булева алгебра
- •27. Класифікація моделей.
- •28. Численное дифференцирование .
- •30. Полиморфизм
- •31. Численное интегрирование.
- •32. Канонічні форми булевих функцій, способи побудови канонічних форм
- •33. Наследование
- •36.Об'єктно - орієнтоване програмування та його головні принципи
- •40. Методи розв'язування задачі Коші системи звичайних диференціальних рівнянь. Метод Ейлера. Методи типу Рунге-Кутта. Методи з вибором кроку інтегрування.
- •Розв’язування систем однорідних рівнянь з сталими коефіцієнтами методом Ейлера.
- •41. Методи спрощення булевих функцій
- •42. Процедури та функції. Призначення процедур та функцій. Формальні та фактичні параметри. Глобальні та локальні дані. Параметри значення і параметри змінні.
- •43. Методи розв'язування крайових задач системи звичайних диференціальних рівнянь. Різницеві схеми для рівнянь другого порядку. Методи прогонки.
- •44. Повні системи булевих функцій та базиси.
- •45. Використання стеку для організації рекурсивних обчислень.
- •46. Общая задача линейного программирования
- •50. Двійковий пошук на впорядкованій множині.
- •51. Динамічні структури даних. Стеки. Черги.
- •52. Симплекс-перeтворення. Симплекс-метод.
- •53. Алгоритми сортування.
- •54. Динамічні структури даних. Списки.
- •55. Теорема двоїстості. Двоїстий критерій оптимальності. Двоїстий симплекс-метод.
- •56. Керування подіями. Програмування обробки подій.
- •Виды событий.
- •События от мышки.
- •События от клавиатуры.
- •События сообщений.
- •"Пустые" события.
- •Передача событий.
- •57. Вказівники. Розподіл динамічної пам’яті.
- •58. Транспортна задача лінійного програмування. Методи знаходження початкового базисного розв'язку.
- •6.2. Умова існування розв'язку транспортної задачі
- •59. Математичне моделювання і диференціальні рівняння.
- •60. Мови програмування та їх класифікація
- •61. Транспортна задача лінійного програмування. Метод потенціалів.
- •6.2. Умова існування розв'язку транспортної задачі
- •6.3. Метод потенціалів
- •6.3.1. Алгоритм методу потенціалів складається з таких етапів.
- •6.3.2. Методи побудови опорного плану тз
- •Метод північно-західного кута
- •62.Задачі і методи математичного моделювання і системного аналізу. Приклади математичних моделей для детермінованих і випадкових процесів(див. 18).
- •63. Реляційна модель бази даних.
- •65. Моделювання процесів керування у живій природі біологічних, екологічних, процесів автоматизованого керування.
- •66. Інформаційна модель концептуального рівня. Основні поняття. Еволюція концепції бази даних. Типи запитів.
19. Первая интерполяционная формула Ньютона.
Пусть для функции y=f(x) заданы значения yi=f(xi) для равностоящих значений независимой переменной: xi=x0+ih (i=0,1,2,….,n), где h – шаг интерполяции. Требуется подобрать полином Pn(x) степени не выше n, принимающий в точках xi значения
Pn(xi)=yi (i = 0, 1 ,…,n). (1)
Условия (1) эквивалентны тому, что
∆m Pn(x0)= ∆my0
при m= 0, 1, 2, …, n.
Получим:
Pn(x) = y0 +q∆y0 + (q (q – 1) ∆2y0)/ 2! + … + (q (q – 1)… (q – n + 1) ∆n y0)/ n! (2),
где q = (x – x0)/ h представляет собой число шагов, необходимых для достижения точки х, исходя из точки x0. Это и есть окончательный вид первой интерполяционной формулы Ньютона.
Если в формуле (2) положить n=1, то получим формулу линейного интерполирования:
P1(x) = y0 + q ∆y0.
При n=2 будем иметь формулу параболического или квадратичного интерполирования:
P2(x) = y0 +q∆y0 + (q (q – 1) ∆2y0)/ 2!
Метод интерполяции Лагранжа
При использовании классического полинома мы сначала получали полином (его коэффициенты), а затем использовали его для интерполяции. Метод Лагранжа предполагает строить интерполяционный полином для каждого вычисляемого значения, объединяя его построение с вычислением. Основная идея этого метода состоит в том, что сначала ищется многочлен, значение которого равно 1 в одной узловой точке и 0 – в остальных. Функция
Lj(x)=
при ij есть многочлен степени n, значение которого 1 при x=xj и 0 если x=xi, ij.
Тогда многочлен f(xi)Lj(x) будет принимать значение f(xi) в i-й узловой точке и 0 в остальных узлах. Тогда многочлен f(x)= степени n проходит через n+1 точку (xi, yi).
Эта запись неудобна для вычислений и ее приводят к так называемой барицентрической форме. Пусть все f(xi)=1, тогда . Положим и разделим числитель и знаменатель на . Получим расчетную формулу:
f(x)= .
Так как метод Лагранжа требует вычисления интерполяционного полинома при каждом определении значения в межузловых промежутках, используют его только при интерполяции на небольшом количестве точек.
Интерполяция сплайнами
Может показаться, что алгебраической интерполяции всегда сопутствует порядок полинома, равный количеству заданных узлов. На самом деле это не так; представим, что необходимо построить график заданной таблично функции с числом узлов в несколько десятков – нецелесообразность использования столь высоких степеней интерполяционного полинома становится очевидной. Но есть и другая причина для снижения степени интерполяционного полинома: несмотря на выполнение условий Лагранжа в узлах интерполяции, интерполяционная функция может иметь значительное отклонение от аппроксимируемой кривой между узлами – возникает так называемый эффект волнистости.
Поэтому осуществляют, как правило, кусочную аппроксимацию заданной функции, разбивая весь набор узлов на группы по 2-4 узла и аппроксимируя функцию на отрезках полиномами степеней не выше третьей. Для задач типа численного интегрирования функций этого вполне достаточно, но, скажем, для упомянутой задачи построения графиков надо позаботиться о «сшивании» соседних полиномов в точках соприкосновения, иначе кривые на отдельных участках в этих точках будут иметь различные наклоны (вплоть до разных знаков первых производных) и результирующая кривая не будет гладкой.
Для проведения гладких кривых через узловые точки, помимо условий Лагранжа, накладывают дополнительные требования к интерполяционной кривой.
Метод интерполяции, получивший свое название от упругой металлической линейки, накладываемой на узловые точки аппроксимируемой кривой, называется методом сплайновой интерполяции. По законам упругости металлическая линейка, опирающаяся на ряд точек, проходит между ними по линии с нулевой четвертой производной (4)(х)=0. Если в качестве функции (x) выбрать полином, то его степень должна быть не выше третьей - этот полином и носит название кубического сплайна, имеющего на интервале [xj-1, xj] вид:
i=ai+bi(x–xi-1)+ci(x–xi-1)2+di(x–xi-1)3,
где ai, bi, ci, di – коэффициенты сплайна, определяемые из дополнительных условий, i=1, 2, ..., n – номера сплайнов. При сплайн-интерполяции на каждом интервале [xj-1, xj] строится отдельный полином 3-й степени со своими коэффициентами, которые определяются из условия сшивания соседних сплайнов в узловых точках:
выполнение условия Лагранжа i(xi-1)=f(xi-1), i(xi)=f(xi);
непрерывность первой и второй производной в узлах i(1)(xi)=
условия на концах могут быть различными – в том числе со свободными концами, т.е. описываться уравнениями прямых и в этом случае иметь нулевые вторые производные:
.
Алгоритм определения коэффициентов кубических сплайнов с учетом оговоренных условий выглядит так:
Условия Лагранжа в узлах xi-1 после подстановки i-го сплайна принимают вид:
ai=f(xi-1), ai+bihi+cih i2+dih i3=f(xi), где hi=xi–xi-1, 1 . (*)
Продифференцировав дважды сплайн по х, получим:
=bi+2ci(x–xi-1)+3di(x–xi-1)2, =2ci+6di(x–xi-1).
Из условий непрерывности производных при переходе в точке xi от i-го к (i+1)-му сплайну с учетом предыдущих выражений получим:
bi+2cihi+3dihi2=bi+1, ci+3dihi=ci+1. (**)
Из граничных условий на основании последнего выражения для второй производной получим
c1=0, cn+3dnhn=0. (***)
Вышеприведенные соотношения (*), (**), (***) представляют собой СЛАУ относительно коэффициентов сплайнов ai, bi, ci, di. Преобразуем ее так, чтобы неизвестными была только одна группа коэффициентов ci:
di=(ci+1–ci)/3hj, bi=(f(xi)–f(xi-1)/hi–(ci+1+2ci)hj/3.
После подстановки этих выражений в (**) получим уравнение относительно ci. Для симметрии записи в полученном уравнении уменьшим значение индекса i на единицу
hi-1ci-1+2(hi-1+hi)ci+hici+1=3[(f(xi)–f(xi-1))/hi–(f(xi-1)–f(xi-2))/hi-1], где 2≤i≤n.
При i=n для свободных концов cn+1=0. Таким образом, n–1 уравнение для ci вместе с c1=0 и cn+1=0 образуют СЛАУ для вычисления ci, a bi и di мы уже выразили через ci. Коэффициенты aj равны значениям аппроксимируемой функции в узлах ai=f(xi-1).
В каждое из уравнений системы входят только 3 неизвестных – ci-1, ci, ci+1, поэтому матрица СЛАУ является трёхдиагональной. Для решения таких систем наиболее эффективен метод прогонки (частный случай метода Гаусса). Рассмотрим один из его вариантов применительно к нашей задаче. Чтобы сократить запись, представим последнее уравнение в виде:
hi-1ci-1+sici+hici+1=ri, где si=2(hi-1+hi), ri=3[(f(xi)–f(xi-1))/hi–(f(xi-1)–f(xi-2))/hi-1].
Как и в методе Гаусса, работаем в 2 этапа: в прямом ходе вычисляем значения коэффициентов линейной связи каждого предыдущего неизвестного ci с последующим ci+1.
Из последнего уравнения при i=2 с учетом граничного условия (***) установим связь коэффициента с2 с коэффициентом с3:
c2=k2–l2c3,
где k2=r2/s2, l2=h2/s2 – прогоночные коэффициенты.
Затем, подставляя c2 в последнее уравнение при i=3, получим линейную связь c3 c c4:
c3=k3–l3c4.
Аналогично для любых соседних коэффициентов с номерами i, i+1 можно установить линейную связь в виде
ci=ki–lici+1.
В процессе выполнения прямого хода метода прогонки необходимо вычислить значения всех прогоночных коэффициентов ki, li, для которых получены рекуррентные соотношения. Подставим формулу связи (i–1)-го и i-го коэффициентов ci-1=ki-1–li-1ci в уравнение и в результате получим:
ci=
Сравнение этого соотношения с формулой для ci позволяет записать рекуррентные формулы для определения прогоночных коэффициентов li, ki:
ki= .
Учитывая граничное условие (***) и соотношение c1=k1–l1c2, а также полагая с20, задаем начальные коэффициенты k1=0, l1=0. Затем по формуле для ki, li вычислим все n пар прогоночных коэффициентов ki, li. На основании соотношения cn=kn–lncn+1 и граничного условия cn+1=0 получим cn=kn. Далее, последовательно применяя формулу ci=ki–lici+1 при i=n–1, n–2, …, 2 вычислим значения искомых cn-1, cn-2, …, c2. Эта процедура называется обратным ходом метода прогонки.
После определения всех ci другие коэффициенты сплайнов вычисляются с помощью уже приведенных их представлений через ci.