ЧИСЛЕННЫЕ МЕТОДЫ

advertisement
ЧИСЛЕННЫЕ МЕТОДЫ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ПРАКТИЧЕСКИХ РАБОТ
ДЛЯ СТУДЕНТОВ НАПРАВЛЕНИЯ
230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
СОСТАВИТЕЛЬ: СТ. ПР. АСТАХОВА Л.Г.
СОДЕРЖАНИЕ
1. Приближенное решение НАУ. Отделение корней НАУ.
Приближенное решение НАУ.
2. Приближенное решение НАУ. Уточнение корней методом хорд и
методом итераций.
3. Прямые методы решения СЛАУ. Итерационные методы решения
СЛАУ.
4. Поиск экстремума функции одной переменной..
5. Приближённое вычисление интеграла.
6. Приближенное решение ОДУ.
7. Интерполяция функции полиномом Лагранжа и полиномом
Ньютона.
8. Аппроксимация функции МНК.
9. Интерполяция сплайнами.
Практическое занятие 1.
Приближенное решение нелинейных алгебраических уравнений
Цель: Изучить численные методы решения уравнений с одной переменной,
научиться анализировать различные методы решения.
Постановка задачи
Дано нелинейное алгебраическое уравнение f(x)=0 (1).
Нелинейность уравнения означает, что график функции не есть прямая линия, т.е. в
f(x) входит x в некоторой степени или под знаком функции.
Решить уравнение – это найти такое x* ∈ R: f(x*)=0. Значение x* называют корнем
уравнения. Нелинейное уравнение может иметь несколько корней. Геометрическая
интерпретация корней уравнения представлена на рис. 1. Корнями уравнения (1) являются
точки x1*, x2*, x3*, в которых функция f(x)
пересекает ось x.
Методы решения нелинейного уравнения
(1)
можно
разделить
на
точные
(аналитические)
и
приближенные
(итерационные). В точных методах корень
представляется некоторой алгебраической
формулой. Например, решение квадратных
уравнений, некоторых тригонометрических
уравнений и т. д.
В приближенных методах процесс нахождения решения, вообще говоря, бесконечен.
Решение получается в виде бесконечной последовательности {xn}, такой, что
. По определению предела, для любого (сколь угодно малого) ε, найдется
такое N, что при n>N, |xn – x*|< ε. Члены этой последовательности xn называются
последовательными приближениями к решению, или итерациями. Наперёд заданное
число ε называют точностью метода, а N – это количество итераций, которое
необходимо выполнить, чтобы получить решение с точностью ε.
Существует различные методы нахождения приближенного решения, т.е. способы
построения последовательности итераций {xn}, однако все они имеют общие этапы,
изображенные на рисунке.
Наиболее часто используется следующий критерий остановки итерационного
процесса: |xn+1–xn|<ε, т.е. разница между соседними итерациями становится малой. Также
для окончания итерационного процесса используется условие |f(xn)|<ε , где f(xn) – невязка
метода.
Прежде чем использовать приближенный метод, уравнение надо исследовать его на
наличие корней и уточнить, где эти корни находятся, т.е. найти интервалы изоляции
корней. Интервалом изоляции корня называется отрезок, на котором корень уравнения
существует и единственен.
Необходимое условие существования корня уравнения на отрезке [a,b]: Пусть f(x)
непрерывна и f(a)f(b)<0 (т.е., на концах интервала функция имеет разные знаки). Тогда
внутри отрезка [a, b] существует хотя бы один корень уравнения f(x)=0.
Достаточное условие единственности корня на отрезке [a,b]:
Корень будет единственным, если f(a)f(b)<0 и f /(x) не меняет знак на отрезке [a, b],
т.е. f(x) – монотонная функция, в этом случае отрезок [a,b] будет интервалом изоляции.
Если корней несколько, то для каждого нужно найти интервал изоляции.
Существуют различные способы исследования функции: аналитический,
табличный, графический.
Аналитический способ состоит в нахождении экстремумов функции f(x),
исследование ее поведения при
и нахождение участков возрастания и убывания
функции.
Графический способ – это построение графика функции f(x) и определение числа
корней по количеству пересечений графика с осью x.
Табличный способ – это построение таблицы, состоящей из столбца аргумента x и
столбца значений функции f(x). О наличии корней свидетельствуют перемены знака
функции. Чтобы не произошла потеря корней, шаг изменения аргумента должен быть
достаточно мелким, а интервал изменения достаточно широким.
Пример.
Решить уравнение x3- 6x2+3x+11=0, т.е. f(x)= x3- 6x2+3x+11.
Найдем производную f/(x)=3x2-12x+3.
Найдем нули производной f/(x)=3x2-12x+3=0; D=144-4*3*3=108;
X1=
= 0.268;
X2=
= 3.732;
Так как f/(
)>0, то f/(x)>0 при
. Кроме того, f(
возрастает от
)=
<0, f(
, f/(x)<0 при
)=
и f/(x)>0 при
>0. Следовательно, на интервале
до f(x1)= 3x12-12x1+3=11.39; на интервале
f(x2)= 3x22-12x2+3=-9.39 и на интервале
возрастает до
три корня.
Найдем интервалы изоляции для каждого из корней.
Рассмотрим для первого корня отрезок [-2, -1]:
- убывает до
, т.е. уравнение имеет
f(-2)= -27<0, f(-1)= 1>0, f/(x)>0 при
т.е. этот отрезок является интервалом
изоляции корня.
Рассмотрим для второго корня отрезок [1, 3]:
f(1)= 9>0, f(3)= -7<0, f/(x)<0 при
т.е. этот отрезок является интервалом
изоляции корня.
Рассмотрим для третьего корня отрезок [4, 5]:
f(4)= -9<0, f(5)=1>0, f/(x)>0 при
изоляции корня.
Табличный способ:
т.е. этот отрезок является интервалом
x
-3
-2
-1
0
1
2
3
4
5
6
7
f(x)
-79
-27
1
11
9
1
-7
-9
1
29
81
Графический способ
Практическое занятие 2.
Тема: « Приближенное решение нелинейных алгебраических уравнений».
Цель: Изучить численные методы решения уравнений с одной переменной,
научиться анализировать различные методы решения.
Приближенные (Итерационные) методы.
Пусть интервалы изоляции корней известны. Познакомимся с несколькими
итерационными методами, позволяющими найти корень на известном интервале изоляции
[a, b].
Метод деления отрезка пополам (дихотомии)
Идея метода:
Найдем середину отрезка [a, b]: c=(a+b)/2. Корень остался на одной из частей: [a, c]
или [c, b]. Если f(a) * f(с)<0, то корень попал на отрезок [a, c], тогда деление отрезка
можно повторить, приняв в качестве нового правого конца точку c, т.е. b=c. В противном
случае корень попал на половину [c, b], и необходимо изменить значение левого конца
отрезка: a=c. Поскольку корень всегда заключен внутри отрезка, итерационный процесс
можно останавливать, если длина отрезка станет меньше заданной точности: |b – a|< ε
Найдем первый корень уравнения f(x)=x3 - 6x2+3x+11=0 с точностью
Вычисления оформляются в виде таблицы
k
a
b
c
f(a)
f(c)
|b-a|
0
-2
-1
-1.5
-27
-10.375
1
1
-1.5
-1
-1.25
-10.375
-4.07813
0.5
2
-1.25
-1
-1.125
-4.07813
-1.39258
0.25
3
-1.125
-1
-1.0625
-1.39258
-0.1604
0.125
4
-1.0625
-1
-1.03125
-0.1604
0.42868
0.0625
5
-1.0625
1.03125
-1.04688
-0.1604
0.136372
0.03125
1.05371
-1.0542
-0.01146
-0.00218
0.000977
6
7
..........
8
9
10
-1.05469
где
a0
,
b0
-
начальные
границы
интервала
изоляции
корня;
В результате расчета приближенное значение первого корня:
при
точности
и х=-1.0542 при точности
.
Метод простой итерации
С помощью эквивалентных преобразований приведем исходное уравнение f(x) к
виду, удобному для применения метода простой итерации: x=φ(x). Выберем начальное
приближение x0∈[a, b]. Следующие итерации находим по формуле: xk+1=φ(xk), т.е.
x1=φ(x0), x2=φ(x1) и т.д.. Итерационный процесс заканчивается, если |xk+1–xk|<ε.
Представить исходное уравнение в эквивалентном виде x=φ(x) можно бесконечным
числом способов. Из всевозможных таких представлений выбирают тот, который дает
сходящуюся к корню последовательность вычислений. Очевидно, что
.
Достаточное условие сходимости: пусть φ(x) имеет производную на отрезке [a,b],
и
для всех x из отрезка [a,b], тогда итерационный процесс
сходится к корню уравнения т.е.
.
Доказательство следует из следующих оценок:
Первое неравенство следует из теоремы Лагранжа о среднем и того, что
Остальные по инерции.
.
Так как
Геометрический смысл метода простой итерации.
.
Сходящийся метод простой итерации
Расходящийся метод простой итерации
В качестве начального приближения обычно берут середину отрезка [a,b]:
.
На практике часто в качестве
берут функцию
некоторая постоянная. Постоянную c выбирают таким образом, чтобы
всех x∈[a, b].
При таком выборе функции
релаксации.
Получим условия на выбор с:
, где с –
для
метод простой итерации называют методом
Таким образом, если f/(x)<0, то 2/f/(x)<c<0. Если же f/(x)>0, то 2/f/(x)>c>0.
Видно, что знак у с совпадает со знаком f/(x). Часто с берут в виде:
.
Убедимся, что такое c удовлетворяет условию сходимости:
Пусть
f/(x)>0.
Тогда
M>0
и
m>0
->
c>0
и
. Следовательно, 2/f/(x)>c>0.
Пусть f/(x)<0. Тогда M<0 и m<0-> c<0 и
Следовательно, 2/f/(x)<c<0.
Найдем, второй корень нашего исходного уравнения x3- 6x2+3x+11=0, который
лежит на интервале [1, 3] с точностью
.
Сначала найдем функцию
. В нашем случае f(x)= x3- 6x2+3x+11.
Для нахождения c необходимо найти максимальное и минимальное значения f/(x) на
отрезке [1, 3]. Для этого необходимо найти значения f/(x) на концах интервала и в точках,
где f//(x)=0, т.е. в точках экстремума, если такие точки для рассматриваемого интервала
существуют. И выбрать среди этих значений f/(x) максимальное и минимальное значения.
f/(1)=3x2-12x+3=-6, f/(3)=-6, f//(x)=6x-12=0 при x=2
Следовательно,
, f/(2)=-8.
Таким образом,
Вычисления оформим в виде таблицы:
.
k
x
|xk+1-xk|
|f(xk)|
0
2
-
1
1
2.142857
0.142857
0.282799
2
2.102457
0.0404
0.07896
3
2.113737
0.01128
0.022164
4
2.110571
0.003166
0.006213
5
2.111459
0.000888
0.001742
6
2.11121
0.000249
0.000489
Здесь x0=(1+3)/2=2,
,
и т.д.
Условием окончания итерационного процесса является условие: |xk+1–xk|<ε или
|f(xk)|<ε.
Напомним, что мы решаем уравнение f(x)=0.
Метод определяется формулой
Геометрическая интерпретация такова: участок кривой y=f(x) при
, или
из точки xk.
, если
, если
, заменяется отрезком касательной, проведённой
Уравнение касательной имеет вид
. Найдем точку
пересечения, которую обозначим xk+1, касательной с осью y=0:
.
Откуда
.
Можно показать, что |xk+1– x*| < q * |xk – x*|2, т.е. метод сходится со вторым
порядком.
Метод Ньютона можно трактовать как метод простой итерации при
.
//
Замечание. Если известен интервал изоляции корня уравнения, в котором f (x) не
меняет знак, то в качестве начального приближения берут тот конец интервала изоляции,
для которого знаки f(x) и f//(x) совпадают.
Найдем, третий корень методом Ньютона нашего исходного уравнения x36x2+3x+11=0, который лежит на интервале [4, 5] с точностью
. Сначала
убедимся, что f//(x) не меняет знака на этом отрезке.
f//(x)=6x-12. f//(x)>0 при x>2, т.е. f//(x)>0 на интервале [4,5]. Так как f(5)=1>0, то x0=5.
Вычисления оформим в виде таблицы:
k
xk
|xk+1-xk|
f(xk)
f/(xk)
0
5
-
1
18
1
4.944444
0.055556
0.027606
17.00926
2
4.942821
0.001623
2.33E-05
16.98059
3
4.94282
1.37E-06
1.66E-11
16.98057
Здесь f(xk)=xk3- 6xk2+3xk+11, f/(xk)=3xk-12xk+3,
.
В качестве корня можно взять значение: x=4.943. Видно, что процесс сошелся уже на
второй итерации.
Для сравнения найдем первый корень нашего уравнения x3- 6x2+3x+11=0 на отрезке
[-2,-1] методом Ньютона:
Так как f//(x)=6x-12, то f//(x)<0 на интервале [-2,-1], а так как f(-2)=-27>0, то x0=-2.
f(xk)
f/(xk)
-27
39
0.692308
-5.41966
23.82249
-1.08019
0.227502
-0.50182
19.46272
3
-1.05441
0.025783
-0.00613
18.9882
4
-1.05408
0.000323
-9.5E-07
18.98229
5
-1.05408
5.02E-08
-2.3E-14
18.98229
k
xk
0
-2
1
-1.30769
2
|xk+1-xk|
Напомним, что методом дихотомии мы достигли данной точности 0.001 на 10-ой
итерации.
Вычислим второй корень нашего уравнения на отрезке [1,3]. Заметим, что f//(x)=6x12 меняет знак на отрезке при х=2. Уменьшим интервал изоляции так, чтобы f//(x) не
меняла знака. Рассмотрим интервал [2.1; 3]. f//(2.1)=6*2.1-12=0.6>0 b f(2.1)=0.101>0.
Следовательно, x0=2.1.
f(xk)
f/(xk)
0.101
-8.97
0.01126
3.95E-05
-8.96286
2.111264
4.4E-06
6.47E-12
-8.96286
2.111264
7.22E-13
0
-8.96286
k
xk
0
2.1
1
2.11126
2
3
|xk+1-xk|
Если сравнивать с методом простой итерации, то значение этого корня мы получили
за две итерации вместо шести.
Эти примеры показывают, что метод Ньютона является более быстросходящимся.
Но для его использования необходимо брать начальное приближение достаточно близким
к корню.
Упрощенный метод Ньютона. Эта модификация метода Ньютона используется,
если производная f /(x) представляет собой сложную функцию, и для ее вычисления на
каждой итерации используется много времени. Зададим x0 – начальное приближение и
вычислим производную z=f /(x0). На следующих итерациях используется вычисленное
значение производной:
. Это упрощение несколько замедляет процесс
сходимости к решению, однако сокращает время каждого итерационного цикла.
Метод хорд
В этом методе кривая f(x) заменяется прямой линией – хордой, стягивающей точки
(a, f(a)) и (b, f(b)). В зависимости от знака выражения f(a) f //(a) метод хорд имеет два
варианта, изображенных на рис. 2 а, б.
Рис. 2. Метод хорд для F(a)F //(a)>0 (а) и F(a)F //(a)<0 (б)
Пусть f(a)f //(a)>0 (рис. 2 а). Тогда x0=b, точка a будет оставаться неподвижной.
Следующее приближение x1 находим как точку пересечения хорды, соединяющей точки
(a, f(a)) и (x0, f(x0)) с осью x. Уравнение хорды:
. Тогда точка
пересечения хорды с осью x:
.
//
Пусть теперь f(a)f (a)<0 (рис. 2). Тогда x0=a, точка b неподвижна. Проведем хорду,
соединяющую точки (b, f(b)) и (x0, f(x0)):
. Вычисляем точку
пересечения хорды с осью x:
.
На следующей итерации в качестве x0 надо взять вычисленное значение x1.
Таким образом, имеем следующую последовательность вычислений:
Если f(a) f //(a)>0, то x0=b и
.
Если же f(a) f //(a)<0, то x0=a и
.
Окончание итерационного цикла в этом методе происходит по условию малости
невязки уравнения: |f(x1)| < ε или
.
Задание. Найти первый и третий корень уравнения x3- 6x2+3x+11=0 методом
хорд.
Для первого корня a=-2, b=-1.
, тогда расчет ведется
по первым формулам: x0=b и
.
k
xk
|xk+1-xk|
f(xk)
0
-1
1
-1.03571
0.035714
0.345618
2
-1.0479
0.012187
0.117007
3
-1.05201
0.004108
0.039334
4
-1.05339
0.001379
0.013192
1
5
-1.05385
0.000462
0.004421
Для последнего корня: a=4, b=5,
, тогда расчет ведется по
вторым формулам: x0=a и
.
k
xk
|xk+1-xk|
f(xk)
0
4
1
4.9
0.9
-0.711
2
4.941555
0.041555
-0.02147
3
4.942783
0.001229
-0.00062
4
4.942819
3.57E-05
-1.8E-05
-9
Практическое занятие 3.
Тема: «Методы решения систем линейных алгебраических уравнений».
Общие сведения.
К решению систем линейных алгебраических уравнений сводятся многочисленные
практические задачи (по некоторым оценкам более 75% всех задач). Можно с полным
основанием утверждать, что решение линейных систем является одной из самых
распространенных и важных задач вычислительной математики.
Конечно, существует много методов и современных пакетов прикладных программ
для решения СЛАУ, но для того, чтобы их успешно использовать, необходимо
разбираться в основах построения методов и алгоритмов, иметь представления о
недостатках и преимуществах используемых методов.
Постановка задачи
Требуется найти решение системы m линейных уравнений, которая записывается в
общем виде как
,
Эту систему уравнений можно записать также в матричном виде:
,
где
A – матрица системы,
,
,
– вектор правых частей,
.
– вектор неизвестных.
При известных A и требуется найти такие
, при подстановке которых
в систему уравнений она превращается в тождество.
Необходимым и достаточным условием существования единственного решения
СЛАУ является условие det A≠0, т.е. определитель матрицы A не равен нулю. В случае
равенства нулю определителя матрица A называется вырожденной и при этом СЛАУ либо
не имеет решения, либо имеет их бесчисленное множество.
В дальнейшем будем предполагать наличие единственного решения.
Все методы решения линейных алгебраических задач можно разбить на два класса:
прямые (точные) и итерационные (приближенные).
Прямые методы решения СЛАУ
Метод Крамера
При небольшой размерности системы m (m = 2,…,5) на практике часто используют
формулы Крамера для решения СЛАУ:
(i = 1, 2, …, m). Эти формулы позволяют находить неизвестные в виде
дробей, знаменателем которых является определитель матрицы системы, а числителем –
определители матриц Ai, полученных из A заменой столбца коэффициентов при
вычисляемом неизвестном столбцом свободных членов. Так А1 получается из матрицы
А заменой первого столбца на столбец правых частей f.
Например, для системы двух линейных уравнений
Размерность системы (т.е., число m) является главным фактором, из–за которого
формулы Крамера не могут быть использованы для численного решения СЛАУ большого
порядка. При непосредственном раскрытии определителей решение системы с m
неизвестными требует порядка m!*m арифметических операций. Таким образом, для
решения системы, например, из m = 100 уравнений потребуется совершить 10158
вычислительных операций (процесс займёт примерно 1019 лет), что не под силу даже
самым мощным современным ЭВМ
Прямые методы решения систем линейных алгебраических уравнений. Метод
обратной матрицы.
Если det A ≠ 0, то существует обратная матрица
. Тогда решение СЛАУ
записывается в виде:
. Следовательно, решение СЛАУ свелось к умножению
известной обратной матрицы на вектор правых частей. Таким образом, задача
решения СЛАУ и задача нахождения обратной матрицы связаны между собой, поэтому
часто решение СЛАУ называют задачей обращения матрицы. Проблемы использования
этого метода те же, что и при использовании метода Крамера: нахождение обратной
матрицы – трудоемкая операция.
Метод Гаусса
Наиболее известным и популярным прямым методом решения СЛАУ является
метод Гаусса. Этот метод заключается в последовательном исключении неизвестных.
Пусть в системе уравнений
первый элемент
. Назовем его ведущим элементом первой строки.
Поделим все элементы этой строки на
и исключим x1 из всех последующих строк,
начиная со второй, путем вычитания первой (преобразованной), умноженной на
коэффициент при
в соответствующей строке. Получим
.
Если
, то, продолжая аналогичное исключение, приходим к системе
уравнений с верхней треугольной матрицей
.
Из нее в обратном порядке находим все значения xi:
.
Процесс приведения к системе с треугольной матрицей называется прямым ходом,
а нахождения неизвестных – обратным. В случае если один из ведущих элементов равен
нулю, изложенный алгоритм метода Гаусса неприменим. Кроме того, если какие–либо
ведущие элементы малы, то это приводит к усилению ошибок округления и ухудшению
точности счета. Поэтому обычно используется другой вариант метода Гаусса – схема
Гаусса с выбором главного элемента. Путем перестановки строк, а также столбцов с
соответствующей перенумерацией коэффициентов и неизвестных добиваются
выполнения условия:
, j = i+1,i+ 2, …, m;
т.е. осуществляется выбор первого главного элемента. Переставляя уравнения так,
чтобы в первом уравнении коэффициент a11 был максимальным по модулю. Разделив
первую строку на главный элемент, как и прежде, исключают x1 из остальных уравнений.
Затем для оставшихся столбцов и строк выбирают второй главный элемент и т.д.
Рассмотрим применение метода Гаусса с выбором главного элемента на примере
следующей системы уравнений:
В первом уравнении коэффициент при
=0, во втором = 1 и в третьем = -2, т.е.
максимальный по модулю коэффициент в третьем уравнении. Поэтому переставим третье
и первое уравнение:
Исключим
из второго и третьего уравнений с помощью первого. Во втором
уравнении исключать не надо. Для исключения из третьего уравнения умножим первое на
0.5 и сложим с третьим:
Рассмотрим второе и третье уравнения. Максимальный по модулю элемент при
третьем. Поэтому поместим его на место второго:
Исключим
третьим:
в
из третьего уравнения. Для этого умножим второе на -0.5 и сложим с
Обратный ход:
.
Проверка: 0.5*8+0=4, -3+8-0=5, -2*(-3)+0=6.
Такая перестановка уравнений необходима для того, чтобы уменьшить влияние
ошибок округления на конечный результат.
Часто возникает необходимость в решении СЛАУ, матрицы которые являются
слабо заполненными, т.е. содержат много нулевых элементов. В то же время эти
матрицы имеют определенную структуру. Среди таких систем выделим системы с
матрицами ленточной структуры, в которых ненулевые элементы располагаются на
главной диагонали и на нескольких побочных диагоналях. Для решения систем с
ленточными матрицами коэффициентов вместо метода Гаусса можно использовать более
эффективные методы. Например, метод прогонки, который мы рассмотрим позже при
решении краевой задачи для обыкновенного дифференциального уравнения второго
порядка.
Пример.
Решить систему линейных уравнений с точностью
:
Решение прямыми методами, например, обратной матрицей, даёт решение:
.
Найдем решение методом простой итерации. Проверяем условие диагонального
преобладания:
,
,
.
Приводим систему уравнений к виду (1):
.
Начальное приближение
. Дальнейшие вычисления оформим в виде таблицы:
k
x1
x2
x3
0
0
0
0
1
1.250
1.000
0.400
1.2500
2
0.650
0.170
0.225
0.8300
3
1.109
0.565
0.239
0.4588
точность
………
4
0.908
0.287
0.180
0.2781
5
1.061
0.419
0.185
0.1537
6
0.994
0.326
0.165
0.0931
7
1.046
0.370
0.167
0.0515
8
1.023
0.594
0.160
0.2235
9
0.913
0.582
0.212
0.1101
10
0.906
0.505
0.242
0.0764
11
0.937
0.495
0.229
0.0305
12
0.945
0.516
0.218
0.0210
0.523
0.220
0.0077
……
13
0.937
Здесь
,
И т.д., пока не получим, в последнем столбце величину меньшую 0.01, что
произойдет на 13 – ой итерации.
Следовательно, приближенное решение имеет вид:
Общие сведения.
Расчетные формулы имеют вид:
т.е. для подсчета i–й компоненты (k+1)–го приближения к искомому вектору
используется уже вычисленное на этом, т.е. (k+1)–м шаге, новые значения первых i–1
компонент.
Подробные
формулы
имеют
вид:
Достаточное условие сходимости этого метода такое же, как и для метода
простой итерации, т.е. диагональное преобладание:
Начальное приближение:
Найдем решение предыдущей системы уравнений методом Гаусса – Зейделя.
Расчетные формулы:
k
x1
x2
x3
0
0
0
0
1
1.250
0.250
0.075
1.2500
2
1.106
0.321
0.132
0.1438
3
1.056
0.340
0.151
0.0500
4
1.042
0.344
0.156
0.0139
5
1.039
0.346
0.157
0.0036
точность
Из таблицы видно, что нужная точность достигнута уже на 5–ой итерации вместо
13–ой по методу простой итерации и значения корней более близки к значениям,
полученным методом обратной матрицы.
Практическое занятие 5.
Тема: «Приближенное вычисление интегралов.»
Общие сведения.
Постановка задачи: Требуется найти значение определенного интеграла
для некоторой заданной на отрезка [a, b] функции f(x). Для некоторых функций значение
интеграла можно найти точно. Однако в общем случае значение интеграла можно найти
только приближенно, используя тот или иной способ численного интегрирования.
Численное интегрирование основано на замене интеграла суммой вида
. Такая замена следует из определения интеграла как предела суммы
. Зафиксировав n, мы получим предыдущую сумму.
Приближенное равенство
квадратурной формулы,
называется квадратурной формулой,
- узлы
- коэффициенты квадратурной формулы. Разность
называется погрешностью квадратурной формулы.
Разобьем отрезок [a,b] на n частей, точками
будем
рассматривать
равномерную
сетку,
. Причем
т.е.
.
Тогда
.
Для построения квадратурной формулы на всем отрезке [a,b] достаточно построить
квадратурную формулу на частичном отрезке
Формулы прямоугольников
Пусть
линейной
.
, т.е. мы аппроксимируем f(x) левой кусочно–
интерполяцией.
Тогда
получим
.
Таким образом,
прямоугольников.
Геометрическая интерпретация:
. Эта формула называется формулой левых
Учитывая, что интеграл от некоторой функции дает значение площади, то площадь
криволинейной области заменяется на сумму площадей прямоугольников.
Аналогично
получается
формула
правых
прямоугольников.
Здесь
. В результате получим:
Оценим погрешность
прямоугольников.
формул.
Например,
погрешность
формулы
левых
.
Воспользуемся формулой Тейлора:
Тогда
Пусть
, тогда
,т.е. формула левых прямоугольников имеет первый по h порядок точности.
Аналогично и для формулы правых прямоугольников.
Формула средних прямоугольников. Здесь функция на отрезке
заменяется
на ее значение в середине отрезка, т.е.
Тогда, получим
- это формула средних прямоугольников.
Её удобно записать в виде
Оценим погрешность формулы средних прямоугольников.
Воспользуемся формулой Тейлора:
Пусть
, тогда
, т.е. формула средних
прямоугольников имеет второй по h порядок точности.
Во всех рассмотренных формулах площадь криволинейной трапеции заменялась на
площадь прямоугольников.
Формула трапеций. Формула Симпсона»
В этой формуле
, т.е. площадь криволинейной
трапеции, заменяется на площадь прямоугольной трапеции.
Формула трапеций получается путем
интерполяционным полиномом первой степени:
.
Действительно
Тогда для всего отрезка [a,b] получим:
замены
подынтегральной
функции
Можно показать, что формула трапеций имеет второй порядок точности.
Формулу трапеций можно записать в виде:
Формула Симпсона
При аппроксимации интеграла
, функцию f(x)на отрезке
заменяют
параболой, проходящей через точки
, где
, т.е. используем для аппроксимации полином Лагранжа второй
степени:
Следовательно, получаем формулу Симпсона
Можно показать, что формула Симпсона имеет четвертый порядок точности.
Пример.
Вычислить
интеграл
.
Разобьем отрезок [-1,2] на 10 частей, т.е.
. Вычислим значение
интеграла по формулам левых, правых, средних прямоугольников, по формуле трапеций и
формуле Симпсона. Для этого составим таблицы:
xi
f(xi)
(xi-1+xi)/2
f((xi-1+xi)/2)
-1
4
-0.85
4.213375
-0.7
4.267
-0.55
4.181125
-0.4
3.976
-0.25
3.671875
-0.1
3.289
0.05
2.847625
0.2
2.368
0.35
1.870375
0.5
1.375
0.65
0.902125
0.8
0.472
0.95
0.104875
1.1
-0.179
1.25
-0.359375
1.4
-0.416
1.55
-0.328625
1.7
-0.077
1.85
0.359125
2
1
S1=
19.075
S3=
17.4625
S2=
16.075
Здесь
Формула левых прямоугольников:
Формула правых прямоугольников:
Формула средних прямоугольников:
Формула трапеций:
Напомним, что точное значение интеграла 5.25
Практическое занятие 6.
Тема: « Численное решение обыкновенных дифференциальных уравнений»
Общие сведения.
Численные методы решения задачи Коши для ОДУ первого порядка
Постановка задачи. Найти решение ОДУ первого порядка
на отрезке
при условии
При нахождении приближенного решения будем считать, что вычисления
проводятся
с
расчетным шагом
промежутка [x0, xn].
Целью является построение таблицы
xi
yi
,
расчетными
x0
x1
…
xn
y0
y1
…
yn
узлами
служат
точки
т.е. ищутся приближенные значения y в узлах сетки.
Интегрируя уравнение на отрезке
, получим
Вполне естественным (но не единственным) путем получения численного решения
является замена в нем интеграла какой–либо квадратурной формулой численного
интегрирования. Если воспользоваться простейшей формулой левых прямоугольников
первого порядка
,
то получим явную формулу Эйлера:
,
.
Порядок расчетов:
Зная
, находим
, затем
т.д.
Геометрическая интерпретация метода Эйлера:
Пользуясь тем, что в точке x0 известно решение y(x0) = y0 и значение его
производной
, можно записать уравнение касательной к графику искомой
функции
в точке
. При достаточно малом шаге h
:
ордината
этой касательной, полученная подстановкой в правую часть
значения
, должна мало отличаться от ординаты y(x1) решения y(x) задачи
Коши. Следовательно, точка
пересечения касательной с прямой x = x1 может быть
приближенно принята за новую начальную точку. Через эту точку снова проведем прямую
, которая приближенно отражает поведение касательной к
точке
. Подставляя сюда
в
(т.е. пересечение с прямой x = x2), получим
приближенное значение y(x) в точке x2:
получим формулу Эйлера.
и т.д. В итоге для i–й точки
Явный метод Эйлера имеет первый порядок точности или аппроксимации.
Если использовать формулу правых прямоугольников:
то придем к методу
,
,
.
Этот метод называют неявным методом Эйлера, поскольку для вычисления
неизвестного значения
по известному значению
требуется решать
уравнение, в общем случае нелинейное.
Неявный метод Эйлера имеет первый порядок точности или аппроксимации.
Модифицированный метод Эйлера. Методы Рунге – Кутта
В данном методе вычисление
состоит из двух этапов:
Данная схема называется еще методом предиктор – корректор (предсказывающее –
исправляющее). На первом этапе приближенное значение предсказывается с невысокой
точностью (h), а на втором этапе это предсказание исправляется, так что результирующее
значение имеет второй порядок точности.
Методы Рунге – Кутта: идея построения явных методов Рунге–Кутты p–го порядка
заключается в получении приближений к значениям y(xi+1) по формуле вида
,
где
…………………………………………….
.
Здесь an, bnj, pn,
– некоторые фиксированные числа (параметры).
При построения методов Рунге–Кутты параметры функции
(an, bnj, pn)
подбирают таким образом, чтобы получить нужный порядок аппроксимации.
Схема Рунге – Кутта четвертого порядка точности:
Пример. Решить задачу Коши:
.
Рассмотреть три метода: явный метод Эйлера, модифицированный метод Эйлера,
метод Рунге – Кутта.
Точное решение:
Расчетные формулы по явному методу Эйлера для данного примера:
Расчетные формулы модифицированного метода Эйлера:
Расчетные формулы метода Рунге – Кутта:
x
y1
y2
y3
точное
0
1.0000
1.0000
1.0000
1.0000
0.1
1.2000
1.2210
1.2221
1.2221
0.2
1.4420
1.4923
1.4977
1.4977
0.3
1.7384
1.8284
1.8432
1.8432
0.4
2.1041
2.2466
2.2783
2.2783
0.5
2.5569
2.7680
2.8274
2.8274
0.6
3.1183
3.4176
3.5201
3.5202
0.7
3.8139
4.2257
4.3927
4.3928
0.8
4.6747
5.2288
5.4894
5.4895
0.9
5.7377
6.4704
6.8643
6.8645
1
7.0472
8.0032
8.5834
8.5836
y1 – метод Эйлера, y2 – модифицированный метод Эйлера, y3 – метод Рунге Кутта.
Видно, что самым точным является метод Рунге – Кутта.
Практическое занятие 7
Тема: «Интерполяция функции»
В случае глобальной интерполяции отыскивается единый полином на всем интервале
[a, b], т.е. строится полином, который используется для интерполяции функции f(x) на
всем интервале изменения аргумента x. Будем искать интерполирующую функцию в виде
полинома (многочлена) m–ой степени Pm(x)=a0+a1x+a2x2+a3x3+…+am xm. Какова должна
быть степень многочлена, чтобы удовлетворить всем условиям интерполяции? Допустим,
что заданы две точки: (x0, f0) и (x1, f1), т.е. N=1. Через эти точки можно провести
единственную прямую, т.е. интерполирующей функцией будет полином первой степени
P1(x)=a0+a1x. Через три точки (N=2) можно провести параболу P2(x)=a0+a1x+a2x2 и т.д.
Рассуждая таким способом, можно предположить, что искомый полином должен иметь
степень N .
Полином Лагранжа
Решение ищем в виде
, где li(z) – базисные полиномы N–й степени,
для которых выполняется условие:
. Убедимся в том, что если такие
полиномы построены, то LN(x) будет удовлетворять условиям интерполяции:
.
Каким образом построить базисные полиномы? Определим
Полином Лагранжа можно записать в виде компактной
формулы:
. Погрешность этой формулы можно оценить, если исходная
функция g(x) имеет производные до N+1 порядка:
.
Из этой формулы следует, что погрешность метода зависит от свойств функции g(x),
а также от расположения узлов интерполяции и точки z. Как показывают расчетные
эксперименты, полином Лагранжа имеет малую погрешность при небольших
значениях N<20. При бόльших N погрешность начинает расти, что свидетельствует о том,
что метод Лагранжа не сходится (т.е. его погрешность не убывает с ростом N).
Рассмотрим частные случаи. Пусть N=1, т.е. заданы значения функции только в двух
точках. Тогда базовые полиномы имеют вид:
, т.е.
получаем формулы кусочно–линейной интерполяции.
Пусть
N=2.
Тогда:
В результате мы получили формулы так называемой квадратичной или
параболической интерполяции.
Пример: Заданы значений некоторой функции:
x
0
2
3
3.5
f
-1
0.2
0.5
0.8
Требуется найти значение функции при z=1, используя интерполяционный полином
Лагранжа. Для этого случая N=3, т.е. полином Лагранжа имеет третий порядок. Вычислим
значения базисных полиномов при z=1:
Первая формула Ньютона используется для интерполяции и экстраполяции в начале
таблицы:
Остаточный член первой формулы Ньютона равен
, где
.
.
Варианты заданий
1-5. Вычислить конечные разности и значения функций в точках 0.2, 0.45, 0.55, 0.82,
1.15, 1.25, 1.5 с использованием каждого из описанных методов интерполяции по
заданной таблице значений. Сделать проверку, используя стандартную функцию языка
программирования:
Функция X1
X2
X3
X4
X5
X6
X7
X8
№
x
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1
ex
1.64872 1.82212 2.01375 2.22554 2.45960 2.71828 3.004717 3.32012
2 sin x 0.47943 0.56464 0.64422 0.71736 0.78333 0.84147 0.89121 0.93204
3 cos x 0.87758 0.82534 0.76484 0.69671 0.62161 0.54030 0.45360 0.36236
4
tg x 0.54630 0.68414 0.84229 1.02964 1.26016 1.55741 1.96476 2.57215
5
ln x
0
0.09531 0.18232
0.69315 0.51083 0.35667 0.22314 0.10536
Сделать сравнительный анализ методов
6-10. Вычислить конечные разности и значения функций в точках 0.7, 0.9, 1.1, 1.5, 2.3,
2.5, 2.7 с использованием каждого из описанных методов интерполяции по заданной
таблице значений. Сделать проверку, используя стандартную функцию языка
программирования:
Функция X1
X2
X3
X4
X5
X6
X7
X8
№
x
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
6
ex
2.71828 3.32012 4.05519 4.95303 6.04964 7.38905 9.02501 11.02317
7 sin x 0.84147 0.93204 0.98544 0.99957 0.97384 0.90929 0.80849 0.67546
8 cos x 0.54030 0.36236 0.16996
-0.73739
0.02919 0.22720 0.41614 0.58850
Сделать сравнительный анализ методов
Общие сведения: Для приближенного вычисления значений неизвестной функции по
заданной таблице ее значений
.
Вторая формула Ньютона применяется для интерполяции и экстраполяции в конце
таблицы:
Остаточный член второй формулы Ньютона равен
, где
.
Варианты заданий
1-5. Вычислить конечные разности и значения функций в точках 0.2, 0.45, 0.55, 0.82,
1.15, 1.25, 1.5 с использованием каждого из описанных методов интерполяции по
заданной таблице значений. Сделать проверку, используя стандартную функцию языка
программирования:
Функция
№
x
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1
ex
1.64872 1.82212 2.01375 2.22554 2.45960 2.71828 3.004717 3.32012
2 sin x 0.47943 0.56464 0.64422 0.71736 0.78333 0.84147 0.89121 0.93204
3 cos x 0.87758 0.82534 0.76484 0.69671 0.62161 0.54030 0.45360 0.36236
4
tg x 0.54630 0.68414 0.84229 1.02964 1.26016 1.55741 1.96476 2.57215
5
ln x
0
0.09531 0.18232
0.69315 0.51083 0.35667 0.22314 0.10536
Сделать сравнительный анализ методов
6-10. Вычислить конечные разности и значения функций в точках 0.7, 0.9, 1.1, 1.5, 2.3,
2.5, 2.7 с использованием каждого из описанных методов интерполяции по заданной
таблице значений. Сделать проверку, используя стандартную функцию языка
программирования:
.
Функция
№
x
1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4
6
ex
2.71828 3.32012 4.05519 4.95303 6.04964 7.38905 9.02501 11.02317
7 sin x 0.84147 0.93204 0.98544 0.99957 0.97384 0.90929 0.80849 0.67546
8 cos x 0.54030 0.36236 0.16996
-0.73739
0.02919 0.22720 0.41614 0.58850
Сделать сравнительный анализ методов
Лабораторная работа 8.
Тема : Аппроксимация функций МНК.
Цель работы: Изучить аппроксимацию функции, научиться применять МНК при
рещении задач.
Общие сведения
Пусть функциональная зависимость y = f(x) задана в виде таблицы
x
X1
X2
…
Xn
y
Y1
Y2
…
Yn
На практике часто бывает необходимо знать значения функции и в других точках,
причём нет возможности для их непосредственного вычисления или измерения.
Например, для этого нужно было бы решить очень сложную задачу, провести трудоёмкие
или дорогостоящие эксперименты и т.д. Поэтому очень важным является построение
такого алгоритма, который позволил бы по имеющимся табличным данным найти
значение функции в любой другой точке заданного отрезка или вне его.Вот следующая
задача: построить функцию y’ = F(x), которая с некоторой степенью точности может
приближенно заменить (аппроксимировать) данную функцию y = f(x). Эта
аппроксимирующая функция должна быть такой, чтобы её отклонение в некотором
смысле, от данной функции на заданном множестве {xi } было минимальным.На
практике имеет место две основные задачи приближения функций. Одна из них состоит в
том, что аппроксимирующая функция строится таким образом, чтобы её значения в
точках {xi } в точности совпадали с табличными данными {yi } . Это соответствует
нахождению уравнения y’ = F(x) сплошной линии, которая проходит через заданные
точки {xi , yi } . Такая задача называется интерполированием функции. Она применяется в
основном в тех случаях, когда приведённые табличные данные имеют высокий порядок
точности.
Далее рассматривается другая задача. Наиболее распространенным методом решения
этой задачи является метод наименьших квадратов, в соответствии с которым ищем такую
функциональную зависимость y’ = F(x), при которой
n
S = ∑( yi − y') → min
2
i =1
Из курса математики известно, что в минимуме функции её производная равна нулю.
Рассматривая S как функцию двух переменных а и b, приравниваем нулю частные
производные от S по a и по b.Т.е.
∂S
= 0,
∂a
∂S
= 0.
∂b
Пример 1.
В результате эксперимента получены величины (xi, yi) (i = 1, …, n), которые связаны
отношением y = a * eb/x . Определить а и b таким образом , чтобы кривая y = a *eb/x была
самой близкой к точкам (xi, yi) в смысле наименьших квадратов.
Т. к. дана показательная регрессия, сделаем следующие преобразования:
y = a eb/x
ln y =ln a + b/x.
Сделаем замену: с = lna и будем решать задачу относительно новых неизвестных c и
b.
В соответствии с методом наименьших квадратов c и b выбирают так, чтобы S =
n
∑
(ln yi – c – b/xi )2
min
i =1
Из курса математики известно, что в минимуме функции её производная равна нулю.
Рассматривая S как функцию двух переменных c и b, приравниваем нулю частные
производные от S по c и по b.
n
∂S
= − 2 ∑ (ln y i − c − b / x i ) = 0 ,
∂c
i =1
n
∂S
1
= − 2 ∑ (ln y i − c − b / x i ) = 0
∂b
xi
i =1
Упростим выражения, и решим систему уравнений .
∑ ln y
i
= nc + b∑1 / xi ,
i
i
∑ ln y
i
/ xi = c ∑1 / xi + b∑1 / xi2
i
i
i
Решим эту систему уравнений методом Крамера.
n
n
∑i 1 / xi
∑i ln yi
∆=
,
,
∆b =
∑1 / xi ∑1 / xi2
∑1 / xi ∑ ln yi / xi
i
i
i
b=
n∑ ln y i / xi − ∑ ln y i ∑1 / xi
i
i


2
n ∑ 1 / x i −  ∑ 1 / xi 
i
 i

2
i
i
,
ñ=
i
i
ø
i


2
n∑1 / xi −  ∑1 / xi 
i
 i

2
Исходные данные:
i
− ∑ ln y i / xi ∑1 / xi
2
i
Обозначения: S 2 = ∑1 /xi , S1 = ∑ ln y i , S 4 = ∑1 / xi , S 3 = ∑ ln y i / xi
i
i
∆b
∆c
,c =
∆
∆
a = exp(c).
i
i
i
∑ ln y ∑1 /x
i
i
i
i
i
i
b=
i
∑ ln y ∑1 / x
∆c =
∑ ln y / x ∑1 / x
i
2
2
X
Y
1
2
14,2
11,4
Результаты вычислений.
X
1
2
Y
14,2
11,4
Y’
18,9
5,13
8
S=
∑(y
i =1
i
3
2,9
4
2,5
5
2,1
6
2
7
1,9
8
1,8
3
2,9
3,31
4
2,5
2,67
5
2,1
2,34
6
2
2,15
7
1,9
2,02
8
1,8
1,93
− y ' i ) 2 = 61.85
A = 1.39, B = 2.61
Пример 2.
В результате эксперимента получены величины (xi, yi) (i = 1, …, n), которые связаны
отношением y = ax2+btgx. Определить а и b таким образом , чтобы кривая y = ax2+btgx
была самой близкой к точкам (xi, yi) в смысле наименьших квадратов.
В соответствии с методом наименьших квадратов a и b выбирают так, чтобы S =
n
∑
(yi – axi 2 – btgxi )2
min
i =1
Из курса математики известно, что в минимуме функции её производная равна нулю.
Рассматривая S как функцию двух переменных a и b, приравниваем нулю частные
производные от S по a и по b.
n
∂S
= − 2 ∑ ( y i − ax i2 − btgx i ) x i2 = 0,
∂a
i =1
n
∂S
= − 2 ∑ ( y i − ax i2 − btgx i )tgx i = 0
∂b
i =1
Упростим выражения, и решим систему уравнений .
∑y x
i
2
i
= a ∑ xi4 + b∑ xi tgxi ,
2
i
i
∑ y tgx
i
i
= a ∑ xi2 tgxi + b∑ tg 2 xi
i
i
i
i
Решим эту систему уравнений методом Крамера.
∑ x ∑ x tgx
∆=
∑ x tgx ∑ tg x
2
4
i
i
i
i
2
i
2
i
i
i
i
∑x
∑y x
, ∆b =
∑ x tgx ∑ y tgx
4
i
i
2
i
i
i
2
i
i
4
i
i
− ∑ y i tgxi
i
2
i
∑ x tgx
2
i
i
i
i
i
2
i
i
i
i
i
i
∆a
∆b
,b =
∆
∆
∑ x ∑ y tgx − ∑ x y ∑ x tgx
b=
∑ x ∑ tg x − (∑ x tgx )
4
i
i
,
xi − (∑ xi2 tgxi ) 2
2
2
i
i
,
i
a=
∑ y x ∑ tg x
a=
∑ x ∑ tg
i
i
i
i
i
2
i
∑ y x ∑ x tgx
∆a =
∑ y tgx ∑ tg x
2
i
i
i
i
i
i
i
i
2
2
i
i
i
2
i
i
i
4
i
i
2
i
i
2
i
i
Обозначения: S1 = ∑ xi y i , S 2 = ∑ xi , S 3 = ∑ x tgxi , S 4 = ∑ y i tgxi , S 5 = ∑ tg 2 xi
2
i
Имеем:
a=(S1*S5-S4*S3)/( S2*S5-S3^2)
B=(S2*S4-S1*S3)/ ( S2*S5-S3^2)
Задания.
4
i
2
i
i
i
i
i
№
1
2
Получить систему линейных уравнений для определения параметров а и b, составить
блок-схему и написать программу для определения а и b.
Исходные данные
Вид
зависимости
Х 1,5 2
2,5 3
3,5 4
4,5
У 4,3 5,2 6,5 7,9 9,7 11,9 14,6
Х 0,15 0,25 0,3 0,4 0,5 0,6
У 5,02 5,00 4,96 4,91 4,81 4,7
y' =a bx
y' =a + bcosx
Практическая работа 9.
Тема: « Кубический интерполяционный сплайн»
Слово сплайн (английское слово "spline") означает гибкую линейку, используемую
для проведения гладких кривых через заданные точки на плоскости. Форма этого
универсального лекала на каждом отрезке описывается кубической параболой. Сплайны
широко используются в инженерных приложениях, в частности, в компьютерной графике.
Итак, на каждом i–м отрезке [xi–1, xi], i=1, 2,…, N, решение будем искать в виде полинома
третьей степени:
Si(x)=ai+bi(x–xi)+ci(x–xi)2/2+di(x–xi)3/6
Неизвестные коэффициенты ai, bi, ci, di, i=1, 2,..., N, находим из:
• условий интерполяции: Si(xi)=fi, i=1, 2,..., N; S1(x0)=f0,
• непрерывности функции Si(xi–1)=Si–1(xi–1), i=2, 3,..., N,
• непрерывности первой и второй производной:
S /i(xi–1)=S /i–1(xi–1), S //i(xi–1)=S //i–1(x i–1), i=2, 3,..., N.
Учитывая, что
, для
определения 4N неизвестных получаем систему 4N–2 уравнений:
ai=fi, i=1, 2,..., N,
bi hi – cihi2/2 + di hi3/6=fi – fi–1, i=1, 2,..., N,
bi – bi–1 = ci hi – di hi2/2, i=2, 3,..., N,
di hi = ci – ci–1 , i=2, 3,..., N.
где hi=xi – xi–1. Недостающие два уравнения выводятся из дополнительных условий: S
//
(a)=S //(b)=0. Можно показать, что при этом
. Из системы можно исключить
неизвестные bi , di , получив систему N+1 линейных уравнений (СЛАУ) для определения
коэффициентов ci:
c0 =0, cN =0,
hici–1+2(hi+hi+1)ci+h i+1ci+1=6
, i=1, 2,…, N–1. (1)
После этого вычисляются коэффициенты bi, di:
, i=1, 2,..., N. (2)
В случае постоянной сетки hi=h эта система уравнений упрощается.
Данная CЛАУ имеет трехдиагональную матрицу и решается методом прогонки.
Коэффициенты
определяются из формул:
Для вычисления значения S(x) в произвольной точке отрезка z∈[a, b] необходимо
решить систему уравнений на коэффициенты ci, i=1,2,…, N–1, затем найти все
коэффициенты bi, di. Далее, необходимо определить, на какой интервал [xi0, xi0–1] попадает
эта точка, и, зная номер i0, вычислить значение сплайна и его производных в точке z
S(z)=ai0 +bi0(z–xi0)+ci0(z–xi0)2/2+di0(z–x i0)3/6
S /(z)=bi0+ci0(z–xi0)+di0(z–x i0)2/2, S //(z)=ci0+di0(z–x i0).
Пример.
x0,f0
x1,f1
x2,f2
x3,f3
x4,f4
х
0
¼
1/2
3/4
1
f
1
2
1
0
1
Требуется вычислить значения функции в точках 0.25 и 0.8, используя сплайн –
интерполяцию.
В нашем случае: hi=1/4,
Выпишем систему уравнений для определения
.
:
Решая эту систему линейных уравнений, получим:
.
Рассмотрим точку 0.25, которая принадлежит первому отрезку, т.е.
.
Следовательно,
получим,
Рассмотрим точку 0.8, которая принадлежит четвертому отрезку, т.е.
Следовательно,
№
1
2
.
Задания.
Получить систему линейных уравнений для определения параметров а и b, составить
блок-схему и написать программу для определения а и b.
Исходные данные
Вид
зависимости
Х 1,5 2
2,5 3
3,5 4
4,5
У 4,3 5,2 6,5 7,9 9,7 11,9 14,6
Х 0,15 0,25 0,3 0,4 0,5 0,6
У 5,02 5,00 4,96 4,91 4,81 4,7
y' =a bx
y' =a + bcosx
Download