Главная Учебники - Разные Лекции (разные) - часть 51
1. Построить кубический сплайн, интерполирующий функцию у = ¦(х) на [1,00; 1,20] для равномерного разбиения с шагом h = 0,04: ¦(х) = lnx Найти значения в точках 1,05; 1,13; 1,17. Решение Построим таблицу значений функции на интервале [1,00; 1,20] с шагом h = 0,04: 1. На отрезке [
a, b] задать одномерную сетку hx
= {xi
/ xi
= xi
–1
+ hi
, hi
> 0, i = 1, 2, 3, …, n; x0
= a, xn
= b} и значения yi
= f(xi
) в узлах сетки xi
, i = 0, 1, 2, …, n. Задать
x*
Î (a, b). 2. Положить
ai
= yj
, i = 0, 1, 2, …, n. 3. Составить и решить трех диагональную систему методом прогонки:
Определить значения коэффициентов ci
, i = 0, 1, 2, …, n. 4. Определить значения коэффициентов
di
и bi
, i = 1, 2, 3, …, n, воспользовавшись формулами: di
= (ci
–ci
–
1
) / hi
, i = 1, 2, … 5. Определить значение индекса 0 <
k£n из условия x*
Î [xk
– 1
, xk
]. S(x*
) = Sk
(x*
) = ak
+ bk
(x*
– xk
) + (ck
/ 2)(x*
– xk
)2
+ (dk
/ 6)(x*
– xk
)3
. 7. Процесс завершен:
S(x*
) – результат интерполяции табличных данных в точку x*
Î (a, b). Результаты вычислений удобнее представлять в виде таблицы: Значение функции в точке находится по формуле: S(x*
) = Sk
(x*
) = ak
+ bk
(x*
– xk
) + (ck
/ 2)(x*
– xk
)2
+ (dk
/ 6)(x*
– xk
)3
2. Найти решение задачи Коши для дифференциального уравнения на равномерной сетке [a, b] с шагом 0,2 методом Эйлера и классическим методом Рунге-Кутта Решение. Метод Эйлера - разностная аппроксимация Эйлера. Точность метода дифференциальный интерполирующий уравнение сплайн Результаты вычислений удобнее представлять в виде таблиц: Метод Эйлера Метод Рунге-Кутта 3. Найти решение задачи безусловной минимизации ¦(х) ®min, х ÎR2
. Установить множество глобального решения ¦(х) = Решение Данная задача решается методом сопряженных направлений (градиентов). Алгоритм данного метода представлен далее. 1 Начать с точки
x(0)
= (x1
(0)
, x2
(0)
, …, xn
(0)
)т
и n-линейно независимых направлений s(i)
, i = 1, 2, …, n, которые могут быть выбраны, например, совпадающими с координатными направлениями e(i)
, i = 1, 2, …, n. Положить k = 1. 2 Начиная с точки
x(0)
осуществить одномерный поиск для функции f(x) в направлении s(n)
и определить точку z(1)
. 3 Начиная с точки
z(1)
осуществить последовательно n – 1 одномерный поиск для f(x) сначала в направлении s(1)
, а затем из полученной точки в направлении s(2)
и т. д. до одномерного поиска в направлении s(n – 1)
включительно. В результате этих действий будет определена точка x(2)
. 4 Начиная с точки
x(2)
осуществить одномерный поиск для f(x) в направлении s(n)
и определить точку z(2)
.
Согласно обобщенному свойству "параллельного подпространства" направление s(
n
+ 1)
= z(2)
– z(1)
будет сопряженным по отношению к направлениям s(
n
)
, s(
n
– 1)
, …, s(
n
–
k
+ 1)
(для k = 1 – только к направлению s(
n
)
). 5 Начиная с точки
z(2)
осуществить поиск в направлении s(
n
+ 1)
и определить x*
. 6 Положить
k: = k + 1. Если k = n, перейти к выполнению п. 8. 7 Положить
z(1)
: = x*
и s(
i
)
: = s(
i
+ 1)
, i = 1, 2, …, n.и перейти к выполнению п. 2. 8 Процесс вычислений завершен:
x*
– точка минимума функции f(x). Результаты вычислений удобнее представлять в виде таблицы: Таблица результатов Точка (2,-2) – точка минимума функции. В этой точке функция принимает значение
|