Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МВ_ЛР_ЧМІ_2009.doc
Скачиваний:
34
Добавлен:
17.11.2019
Размер:
2.01 Mб
Скачать

3.2 Задание к работе

  1. Построить кубический сплайн, интерполирующий функцию у = f(х) на отрезке [1,00; 1,20] для равномерного разбиения с шагом h=0,04 при краевых условиях I или II типа.

  2. Найти значение сплайна в точках 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

(2)

(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 для формулы Симпсона.

При заданной точности вычисления с уменьшающимся шагом проводят до окончания при выполнении условия

При этом полагают с точностью