Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Формула Симпсона
Применяя интерполяционную формулу Лагранжа при n = 2, получим значения коэффициентов: . (6.15) Геометрический смысл формулы Симпсона (6.15) заключается в том, что кривая y = y (x) заменяется частью параболы, проходящей через три точки Формула Симпсона точна не только для полинома второй степени, но и для полинома третьей степени в силу симметрии, показанной на рис. 6.4б. Рис.6.4 Остаточный член формулы (6.15) имеет порядок O(h 5). Общая формула Симпсона строится для четного n = 2 m,; при этом применяя формулуа (6.15) применяется для каждого из отрезков [ x 0, x 2], [ x 2, x 4], …, [ xn –2, xn ]: . (6.16) Поменять местами второе и третье; h/3 вынести за знак суммы Остаточный член общей формулы Симпсона (6.16) имеет порядок O(h 4). Пример 6.2. Вычислить по формуле Симпсона (6.16) интеграл , используя разбиение отрезка на n = 10 частей. Решение. Проведем вычисления в программе Excel. В столбце A и B запишем значения индекса i и переменной x. В ячейку B 2 вводим формулу =sin(B2)/B2 и маркером заполнения копируем в ячейки B 3: B 12. В ячейках D 2: D 12 вводим коэффициенты при yi общей формулы Симпсона (6.16). В ячейку D 13 вводим формулу =СУММПРОИЗВ(C2: C12; D2: D12)*0, 1/3. Результаты вычислений приведены в таблице 6.2. Табл. 6.2
Найдем относительную погрешность Как видим, формула Симпсона дает более высокую точность по сравнению с методом трапеций. Создадим в файле программы Excel для решения примера 6.2 макрос — функцию для вычисления интеграла по формуле Симпсона (6.16). С помощью меню «Сервис — Макроc — Редактор Visual Basic» откроем окно редактора, выполним команду «Insert — Module» и введем программы Function f(x): f = 1 / x: End Function Function Int_Simpson(a, b, n) s = 0: h = (b - a) / n: h2 = h * 2: x = a For i = 0 To n - 2 Step 2 s = s + f(x) + 4 * f(x + h) + f(x + h2): x = x + h2 Next i Int_Simpson = h * s / 3: End Function Теперь, если в ячейку D 14 введем формулу =Int_Simpson(1; 2; 10), получим приближенное значение 0, 693150231.
|