Численное интегрирование, формула Симпсона

  • Вид работы:
    Практическое задание
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    85,91 Кб
  • Опубликовано:
    2014-08-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Численное интегрирование, формула Симпсона















"Численное интегрирование, формула Симпсона"

Постановка задачи.

Задание состоит в написании программы для численного интегрирования с помощью формулы Симпсона.

Описание формулы Симпсона

Формула Симпсона (также Ньютона-Симпсона<https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%A1%D0%B8%D0%BC%D0%BF%D1%81%D0%BE%D0%BD%D0%B0>) относится к приёмам численного интегрирования.

Формулой Симпсона называется интеграл от интерполяционного многочлена второй степени на отрезке :


где ,  и  - значения функции в соответствующих точках (на концах отрезка и в его середине).

Погрешность.

При условии, что у функции  на отрезке  существует четвёртая производная, погрешность , согласно найденной Джузеппе Пеано <https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D0%B0%D0%BD%D0%BE,_%D0%94%D0%B6%D1%83%D0%B7%D0%B5%D0%BF%D0%BF%D0%B5> формуле, равна:


В связи с тем, что значение  зачастую неизвестно, для оценки погрешности используется следующее неравенство:

интерполяционный многочлен программа


Текст программы.

// sim.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

#include <math.h>

using namespace std;float(*fun)(float);

float funct(float x)

{

          return (sin(x*x) + 2*x);

}simps(float a, float b, int n, fun f1)

{

          float h, sum, x;

          int i, k;

          sum = 0;

          h = (b - a) / n;

          sum += f1(a);

          for (i = 1; i < n; i++)

          {

                   x = a + i*h;

                   if (i % 2 == 0) k = 2;

                   else k = 4;

                   sum += k*f1(x);

          }

          x = a + n*h;

          sum += f1(x);

}rung(float a, float b, int n, fun f)

{

          float Ih_2, Ih, modul;

          Ih_2 = simps(a, b, n * 2, f);

          Ih = simps(a, b, n, f);

          modul = abs(Ih_2 - Ih);

          return modul / 15;

}main()

{

          setlocale(LC_CTYPE, "Russian");

          float a, b, c, d, n, rez, run;

          a = 2;

          b = 4;

          n = 10;

          rez = simps(a, b, n, funct);

          printf("Метод Симпсона: %f\n\n", rez);

          printf("Правило Рунге:%f\n", run);

          return 0;

}

Скриншоты

Рис.

1. 

Похожие работы на - Численное интегрирование, формула Симпсона

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!