- •Лабораторная работа №1 Интерполяция
- •1.1 Краткие теоретические сведения
- •1.1. Задача аппроксимации функций
- •1.2 Интерполяционный многочлен Лагранжа
- •1.2 Задание к работе
- •ЛабораторнаЯ рАбота № 2 АпПроксимацИя функцИй, заданНых таблицеЙ
- •2.1 Краткие теоретические сведения
- •2.2 Задание к работе
- •Лабораторная работа №3 интерполирование функции кубическими сплайнами
- •3.1 Краткие теоретические сведения.
- •3.2 Задание к работе
- •Лабораторная работа №4 Численное интегрирование
- •4.1 Краткие теоретические сведения.
- •4.1.1 Квадратурные формулы прямоугольников, трапеций и Симпсона
- •4.1.2 Алгоритм прямоугольников-трапеций
- •4.2 Задание к работе
- •Лабораторная работа №5 Численное дифференцирование
- •5.1 Краткие теоретические сведения
- •5.1.1 Вычисление производной по ее определению
- •5.2 Конечно- разностные аппроксимации производных
- •5.3 Использование интерполяционных многочленов Лагранжа для формул численного дифференцирования
- •5.2 Задание к работе
- •Лабораторная рАбота №6 Численное решение обыкновенных дифференциальных уравнений
- •6.1 Краткие теоретические сведения
- •6.1.1 Численное решение обыкновенных дифференциальных уравнений первого порядка. Численное решение задачи Коши.
- •6.1.2 Метод Эйлера
- •6.1.3 Метод Рунге-Кутты
- •6.2 Задание.
- •7 Література
- •Навчальне видання
3.2 Задание к работе
Построить кубический сплайн, интерполирующий функцию у = f(х) на отрезке [1,00; 1,20] для равномерного разбиения с шагом h=0,04 при краевых условиях I или II типа.
Найти значение сплайна в точках 1,05; 1,09; 1,13; 1,15; 1,17. Получить оценку точности с помощью неравенства (13).
//Программа построения кубического сплайна, интерполирующего заданную функцию
/*
****************************************************************************
* Интерполирование функции с помощью кубического сплайна * ******************************************************************************/
#include <stdio.h>
#include <conio.h>
#include <cmath>
#define F 15
void main ()
{
int i,n;
float а,b1,h,s,x,x0,x1,m[P+1],y[P+1],b[Pl+l];
clrscr();
printf ("Введите n - число разбиений отрезка [a,b]\n”); scanf ("%i",&n);
printf ("Введите координаты концов отрезка a, b\n");
scanf ("%f%f",&a, &b1);
printf ("Введите значения функции у(1) в узлах,");
printf (“ причем у(0) = f(a), y(n) =f(b)\n");
for (1 = 0; 1 <= n; scanf ("%f",&у[i]),i++);
printf ("Введите значение х\n");
scanf ("%f",&x);
/* Условия на концах отрезка: m(0)=f’(а)=1 и m(n)=f*(b)=0 */
for (m[0]=1,m[n]=l[0]=0,h=(b1-a)/n,i=1; i<=n-1; i++)
{
b[i] = 3*(y[i+1]-y[i–1])/h;
l[i] = -1/(l[i-1]+4);
m[i] = l[i]*(m[l-1]–b[i]);
};
for (i = n-1; i >= 1; i--)
m[i] = l[i]*m[i+1]+m[i];
if ((x >a) && (x < b1))
{
i = floor((x-a)/h)+1;
x0 = a+(i-1)*h;
x1 = x0+h;
s = y[i–1]*((x–x1)*(x–x1)*(2*(x-x0)+h))/(h*h*h)+y[i]*((x-x0)*(x-x0)*(2*(x1-x)+h))/(h*h*h)+m[i-1]*(x-x1)*(x-x1)* (x –x0)/(h*h)+m[i]*(x-x0)*(x-x0)*(x-x1)/(h*h);
printf ("x = %f s = %f",x,s);
};
printf("\nНажмите любую клавишу для продолжения...");
getch();
}
Лабораторная работа №4 Численное интегрирование
Цель работы - изучить основные квадратурные формулы и алгоритмы численного интегрирования.
4.1 Краткие теоретические сведения.
4.1.1 Квадратурные формулы прямоугольников, трапеций и Симпсона
Для
приближенного вычисления определенного
интеграла
разобьем отрезок интегрирования
на
равных частей точками
(
-шаг
разбиения,
Значения
функции
в
точках разбиения
обозначим через
.
Непрерывная подынтегральная фцнкция
заменяется сплайном – кусочно
полиномиальной функцией
аппроксимирующей
данную функцию. Интегрируя функцию
на
отрезке
,
придем к некоторой формуле численного
интегрирования (квадратурной формуле).
В зависимости от функции , аппроксимирующей подынтегральную функцию, будем получать различные квадратурные формулы.
Если
каждой части
деления отрезка
функцию
заменить функцией, принимающей постоянное
значение, равное, например, значению
функции
в серединной точке
-й
части
то функция
будет
иметь ступенчатый вид:
В этом случае
и получаем квадратурную формулу прямоугольников:
(1)
Если
функцию
на
каждом отрезке
заменить ее линейной интерполяцией по
точкам
и
то получим непрерывную кусочно-линейную
функцию
Здесь
.
Графиком этой функции является ломаная
линия.
В этом случае
и получаем квадратурную формулу трапеции:
(2)
Можно
получить квадратурную формулу Симпсона,
называемую также формулой парабол, если
сплайн
,
аппроксимирующий подынтегральную
функцию
,
представляет собой непрерывную функцию,
составленную из примыкающих парабол.
Потребуем, чтобы на отрезке
парабола проходила через точки
,
,
.
Используя построение интерполяционного
многочлена Лагранжа второго порядка
на отрезке
,
получим
Для
дальнейших преобразований введем
переменную
с помощью равенства
Значениям
,
равным 0, 1/2 , 1, соответствуют значения
,
равные
Выразим сплайн через новую переменную :
Учитывая,
что
имеем
и в результате приходим к квадратурной формуле парабол:
(3)
Приближенное
значение интеграла
,
вычисленное по квадратурной формуле
парабол, можно выразить через значения
и
-
результаты вычислений по квадратурным
формулам прямоугольников и трапеций:
Погрешность
каждой квадратурной формулы оценивается
величиной остаточного члена
,
зависящего от шага разбиения
(или от числа разбиений
):
Приведем оценки погрешностей квадратурных формул в том случае, когда подынтегральная функция имеет непрерывную производную второго порядка:
для формулы прямоугольников
для формулы трапеций
Если подынтегральная функция имеет непрерывную производную четвертого порядка, то справедлива такая оценка погрешности формулы Симпсона:
Заметим, что при интегрировании степенной функции, степень которой не выше трех, квадратурная формула Симпсона дает точный результат.
Пример.
Найти
приближенные значения интеграла
с помощью квадратурных формул
прямоугольников, трапеций и Симпсона,
если отрезок интегрирования [0,1] разбит
на n=2; 4; 10 равных частей. Оценить величину
погрешности полученных результатов в
каждом случае.
Решение.
Обозначим
через
погрешность результата интегрирования
по квадратурным формулам (здесь
).
Найдем
производные подынтегральной функции
до
четвертого порядка включительно и
максимальные абсолютные значения
производных второго и четвертого
порядков на отрезке [0,1]:
,
,
,
,
,
При n=4 получим следующие оценки величин погрешности результатов:
;
;
.
Результаты вычислений по квадратурным формулам прямоугольников, трапеций и Симпсона для различных чисел разбиений n и погрешности этих результатов сведены в таблицу.
Квадратурная формула |
n=2 |
n=4 |
n=10 |
|||
|
|
(4) |
|
(10) |
|
|
прямоугольников |
1,40977 |
0,1699 |
1,44875 |
0,0425 |
1,46039 |
0,0068 |
трапеций |
1,57158 |
0,3398 |
1,49068 |
0,085 |
1,46717 |
0,0136 |
Симпсона |
1,46371 |
0,0045 |
1,46272 |
0,0003 |
1,46265 |
10-5 |
Практически важно вести вычисления до достижения заданной точности по той или иной квадратурной формуле. Этой цели удовлетворяет метод двойного пересчета, который заключается в следующем. По квадратурной формуле проводят вычисление интеграла с шагом h и получают значение (h). Затем уменьшают шаг вдвое и получают новое приближенное значение интеграла (h/2). Чтобы определить, как сильно уклоняется значение (h/2) от точного значения интеграла , используется правило Рунге:
где k=2 для формул прямоугольников и трапеций и k=4 для формулы Симпсона.
При заданной точности вычисления с уменьшающимся шагом проводят до окончания при выполнении условия
При
этом полагают
с точностью
