Репетиторские услуги и помощь студентам!
Помощь в написании студенческих учебных работ любого уровня сложности

Тема: Проект вычисления определенных интегралов

  • Вид работы:
    Дипломная (ВКР) по теме: Проект вычисления определенных интегралов
  • Предмет:
    Другое
  • Когда добавили:
    21.03.2012 2:24:48
  • Тип файлов:
    MS WORD
  • Проверка на вирусы:
    Проверено - Антивирус Касперского

Другие экслюзивные материалы по теме

  • Полный текст:

    Содержание

    1. Условие задания 2

    2. Введение 3

    3. Сущность метода Симпсона 4

    3.1. Вывод формулы Симпсона 4

    3.2. Геометрическая иллюстрация метода 7

    4. Создание окна проекта 9

    5. Текст модуля программы_ 10

    6. Результаты и их анализ 14

    7. Заключение 15

    Литература 16


    1. Условие задания


    Разработать программы для численного интегрирования определенного интеграла методом Симпсона с использованием оператора цикла while.


    2. Введение

    Задача численного интегрирования заключается в вычислении интеграла   посредством ряда значений подынтегральной функции .

    Задачи численного интегрирования приходится решать для функций, заданных таблично, функцией, интегралы от которых не берутся в элементарных функциях, и т.д. Рассмотрим только функции одной переменной.

    Вместо функции, которую требуется проинтегрировать, проинтегрируем интерполяционный многочлен. Методы, основанные на замене подынтегральной функции интерполяционным многочленом, позволяют по  параметрам многочлена оценить точность результата или же по заданной точности подобрать эти параметры.

    Численные методы условно можно сгруппировать по способу аппроксимации подынтегральной функции.

    Методы Ньютона-Котеса основаны на аппроксимации функции  полиномом степени . Алгоритм этого класса  отличается только степенью полинома. Как правило, узлы аппроксимирующего полинома – равноотносящие.

    Методы сплайн-интегрирования базируются на аппроксимации функции  сплайном-кусочным полиномом.

    В методах наивысшей алгебраической точности (метод Гаусса) используются специально выбранные неравноотносящие узлы, обеспечивающие минимальную погрешность интегрирования при заданном (выбранном) количестве узлов.


    3. Сущность метода Симпсона

    3.1. Вывод формулы Симпсона


    Если для каждой пары отрезков  построить многочлен второй степени, затем проинтегрировать его и воспользоваться свойством аддитивности интеграла, то получим формулу Симпсона.

    Рассмотрим подынтегральную функцию  на отрезке . Заменим эту подынтегральную функцию интерполяционным многочленом Лагранжа второй степени, совпадающим с  в точках :

    Проинтегрируем :

    Формула:

    и называется формулой Симпсона.

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

    Оценим теперь погрешность интегрирования  по формуле Симпсона. Будем считать, что у  на отрезке  существуют непрерывные производные . Составим разность

    К каждому из этих двух интегралов уже можно применить теорему о среднем, поскольку  непрерывна  на  и функция  неотрицательна на первом интервале интегрирования и неположительна на втором ( то есть не меняет знака на каждом из этих интервалов). Поэтому:

    (мы воспользовались теоремой о среднем, поскольку  - непрерывная функция; ).

    Дифференцируя  дважды и применяя затем теорему о среднем, получим для  другое выражение:

    , где

    Из обеих оценок для  следует, что формула Симпсона является точной для многочленов степени не выше третьей. Запишем формулу Симпсона, напрмер, в виде:

    , .

    Если отрезок  интегрирования слишком велик, то его разбивают на  равных частей (полагая ), после чего к каждой паре соседних отрезков , ,..., применяют формулу Симпсона, именно:

    Запишем формулу Симпсона в общем виде:

        (1)


            (2)

    Погрешность формулы Симпсона - метода четвертого порядка:

    ,       (3)





    3.2. Геометрическая иллюстрация метода

    На отрезке  длиной 2h строится парабола, проходящая через три точки ,. Площадь под параболой, заключенная между осью OX и прямыми, принимают равной интегралу.

    Особенностью применения формулы Симпсона является тот факт, что число разбиений отрезка интегрирования - четное.

    Если же количество отрезков разбиения - нечетное, то для первых трех отрезков следует применить формулу, использующую параболу третьей степени, проходящую через четыре первые точки, для аппроксимации подынтегральной функции.

                  (4)

    Это формула Симпсона «трех восьмых».

    Для произвольного отрезка интегрирования  формула (4) может быть «продолжена»; при этом число частичных отрезков должно быть кратно трем ( точек).

    , m=2,3,...         (5)

    - целая часть

    Можно  получить формулы Ньютона-Котеса старших порядков :      

    (6)

     - количество отрезков разбиения;

     - степень используемого полинома;

    - производная -го порядка в точке ;

     - шаг разбиения.



    4. Создание окна проекта


    При запуске среды Delphi автоматически создается новый проект. Это сделано для вашего удобства. Если вам потребуется создать новый проект, не перегружая среду Delphi, просто выполните команду меню File | New | Application. В результате старый проект будет закрыт, а вместо него создан новый. В новый проект среда Delphi всегда помещает чистую форму[1].

    В процессе разработки приложения вы добавляете на форму компоненты, пишите обработчики событий, добавляете в проект дочерние формы, в общем, проектируете приложение. Когда что-то уже сделано, имеет смысл сохранить проект. Для этого выполните команду главного меню File | Save All. Среда запросит сначала имя для программного модуля с формой, а затем имя для проекта. Если файл с введенным именем уже есть на диске, среда Delphi сообщит вам об этом и запросит подтверждение на перезапись существующего файла или запись под другим именем.

    Выберем в меню команду File | New | Application. Среда Delphi автоматически создаст в новом проекте чистую форму и поместит ее исходный текст в редактор кода (рисунок 4.1).


    Рис.4.1. Форма на экране и ее описание в редакторе кода


    Сразу сохраним проект и его форму. Выберем в меню команду File | Save All и дадим модулю имя Unit1.pas, а проекту — имя Project1.dpr. Полигон для изучения формы подготовлен, можно заняться ее свойствами.

    Каждая форма приложения должна иметь понятный заголовок, говорящий пользователю о ее назначении. Заголовок задается в свойстве Caption.

    Наш заголовок – «Метод Симпсона».

    Размеры формы изменим после добавления на нее необходимых компонентов.

    Чтобы поместить на форму нужный компонент из палитры компонентов, выполните следующие действия:

    Наведите указатель мыши на значок нужного компонента в палитре и щелкните левой кнопкой мыши.

    Наведите указатель мыши на нужное место формы и еще раз щелкните левой кнопкой мыши.

    Выбранный компонент окажется на форме и будет готов к настройке в окне свойств.

    Часто требуется разместить на форме несколько компонентов одного и того же типа, например, кнопок. В этом случае действуйте следующим образом:

    Наведите указатель мыши на значок нужного компонента в палитре. Нажмите клавишу Shift и, удерживая ее, щелкните левой кнопкой мыши. Отпустите клавишу Shift.

    Наведите указатель мыши на то место формы, где будет находиться первый компонент, и щелкните левой кнопкой мыши.

    Наведите указатель мыши на то место формы, где будет размещен следующий компонент, и снова щелкните левой кнопкой мыши. Повторите это действие столько раз, сколько вам нужно компонентов;

    Разместив последний компонент, наведите указатель мыши на кнопку с изображением стрелки (она расположена в левой части палитры компонентов), и щелкните левой кнопкой мыши. Это будет сигналом, что размещение однотипных компонентов закончено.

    Если вы по каким-либо причинам решили убрать лишний компонент с формы, просто выберите его с помощью мыши и нажмите клавишу Del.

    Расположим на форме следующие компоненты:

    3 Label – для обозначения полей ввода исходных данных;

    3 Edit – для ввода начальных данных: границ интегрирования и числа разбиения отрезка;

    Button –для запуска вычисления;

    Memo – для вывода результата.

    Все необходимые нам компоненты находятся во вкладке Standart.

     

    Рис. 4.2. Вкладка Standart

    Используя свойства компонентов задаим их названия и введем начальные значения для решения поставленной задачи. В результате форма примет вид:

    Рис. 4.3. Окно программы

    Когда пользователь нажимает кнопку, в компоненте Button происходит событие OnClick. В нашей программе компонент Button запускает процедуру вычисления определенного интеграла.

    procedure TForm1.Button1Click(Sender: TObject);

    //описываем переменные

    var

     i,n:Integer;

     a,b,h,int:Real;

     y:array of real;

    begin

    //получение исходных данных

    a:=StrToFloat(Ed_a.Text);

    b:=StrToFloat(Ed_b.Text);

    n:=StrToInt(Ed_n.Text);

    //обращение к процедуре вычисления интеграла методом Симпсона

    MS(a,b,n);

    end;


    5. Текст модуля программы


    unit Unit1;

    interface

    uses

      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

      Dialogs, StdCtrls, XPMan, ExtCtrls;

    type

      TForm1 = class(TForm)

        XPManifest1: TXPManifest;

        Label1: TLabel;

        Ed_a: TEdit;

        Label2: TLabel;

        Ed_b: TEdit;

        Label3: TLabel;

        Ed_n: TEdit;

        Button1: TButton;

        Memo1: TMemo;

        procedure Button1Click(Sender: TObject);

      private

        { Private declarations }

      public

        { Public declarations }

      end;


    var

      Form1: TForm1;


    implementation


    {$R *.dfm}

    //подынтегральная функция

    function f(x:Real):Real;

    begin

     f:=x/((x*x+1)*(x*x+1));

    end;


    //метод Симпсона

    procedure MS(a,b:Real;n:Integer);

    var

     x,s,h:Real;

     i:Integer;

    begin

     h:=(b-a)/n; x:=a+h; s:=f(a)+f(b);

     i:=1;

    //цикл вычисления интеграла

     while i<n-1 do

      begin

      if (i mod 2 =0) then

       s:=s+2*f(x)

      else

       s:=s+4*f(x);

       x:=x+h;

       i:=i+1;

      end;

     s:=s*h/3;

    //вывод результата

     Form1.Memo1.Text:=FloatToStr(s);

    end;


    procedure TForm1.Button1Click(Sender: TObject);

    var

     i,n:Integer;

     a,b,h,int:Real;

     y:array of real;

    begin

    //получение исходных данных

    a:=StrToFloat(Ed_a.Text);

    b:=StrToFloat(Ed_b.Text);

    n:=StrToInt(Ed_n.Text);

    //обращение к процедуре вычисления интеграла методом Симпсона

    MS(a,b,n);

    end;

    end.


    6. Результаты и их анализ


    Результат вычисления представлен на рис. 6.1.

    Рис. 6.1. Результат вычисления

    Найдем точное решение интеграла.

    Очевидно, что результат близок к точному.

    Изменим число разбиений до 10000 и повторим расчет:

    Рис. 6.2. Результат вычисления при n=10000

    Результат существенно улучшился, погрешность составляет 3,33*10-5

    7. Заключение


    В результате выполнения курсовой работы был рассмотрен метод Симпсона для численного интегрирования. По методу был составлен алгоритм и написана программа для вычисления интеграла.

    Тестирование показало, что получаемые результаты зависят от числа разбиения отрезка. В целом, результаты близки к точным.


    Литература


    1.Бронштейн И.Н., Семендяев К.А. Справочник по высшей математике для инженеров и учащихся втузов. - М.: Наука , 1981 . - 718 с.

    2.Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров перевод с польского Д.И.Юренкова. -М.: Машиностроение , 1991. - 320 с.

    3.Сергиевский М.В., Шалашов А.В. Турбо Паскаль 7.0; язык, среда программирования. -М: Машиностроение.-1994,-254 с.ил.

    4.Справочник по процедурам и функциям Borland Pascal 7.0. - Киев: Диалектика, 1993. - 272 с.

    5.Самарский А.А, Гулин А.В. Численные методы.М.:Наука,1989. – 430 с.





    [1] Архангельский А.Я. Delphi 2006 - Справочное пособие

Если Вас интересует помощь в НАПИСАНИИ ИМЕННО ВАШЕЙ РАБОТЫ, по индивидуальным требованиям - возможно заказать помощь в разработке по представленной теме - Проект вычисления определенных интегралов ... либо схожей. На наши услуги уже будут распространяться бесплатные доработки и сопровождение до защиты в ВУЗе. И само собой разумеется, ваша работа в обязательном порядке будет проверятся на плагиат и гарантированно раннее не публиковаться. Для заказа или оценки стоимости индивидуальной работы пройдите по ссылке и оформите бланк заказа.