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

 

#include "stdafx.h"

#include <conio.h>

#include <stdlib.h>

#include <stdio.h>

#define _USE_MATH_DEFINES

#include <math.h>

#include <iostream>

#include <cmath>

using namespace std;

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

inline double INTEGR(double x){

return x/(x*x+1); }

double integral(double left, double right, double h)

{

float sum=0;

float runner;

for(runner=left+h;runner<right;runner+=h)

sum+=INTEGR(runner);

sum=(sum+0.5*(INTEGR(left)+INTEGR(right)))*h;

 

return sum;

}

 

int main(){

 

setlocale(LC_ALL,"rus_rus.1251");

cout.setf(ios::fixed);

cout.precision(23);

float a, b;

float h;

double n=1;

double x;

 

Z: cout<<"Введите нижний предел интегрирования: "<<endl;

cin>>a;

if(!cin.good()){

cout<<"Ошибка!Некорректный ввод!Нажмите любую клавишу и введите нижний предел заново.\n";

cin.clear();

_flushall();

_getch();

goto Z;

}

Q: cout<<"Введите верхний предел интегрирования: "<<endl;

cin>>b;

if(!cin.good() || b<=a){

cout<<"Ошибка!Некорректный ввод!Нажмите любую клавишу и введите верхний предел заново.\n";

cin.clear();

_flushall();

_getch();

goto Q;

}

 

x=(b-a)/2;

for(int i=1;i<=23;i++){

h = x/n;

n = n*2;

printf("%.20lf",integral(a,b,h)); printf("\n");}

_getch();

return 0;

}

 

 

Визуализация результатов уточнения

Была написана программа, производящая численное интегрирование функции: методом трапеций, и произведены уточнения по методу Ромберга. Для визуализации уточнения результатов интегрирования функции y= y=x/(x^2+1) в точке x=0 и x=2 построены графики в логарифмической шкале (по оси абсцисс откладывается lgn):

Численные результаты:

 

 

Вычисление экстраполированного значения:

 

 

 

3.1.Строится график полученных результатов в сравнении с точным результатом. По оси абсцисс откладывается lgn, по оси ординат значения , , ….

 

рис. 3.1. Результат экстраполяции в сравнении с точным значением

 

 

3.2. Строится график полученных результатов в сравнении с “эталонным” значением. В качестве эталона выбирается наиболее точный результат z, полученный в результате последней экстраполяции. По оси абсцисс откладывается lgn, по оси ординат значения , , ,…

 

рис. 3.2. Результат экстраполяции в сравнении с “эталонным” значением

 

3.3. Сравнения полученных результатов в сравнении с результатами полученными по правилу Рунге: lg|zn-zn*|, lg|zn*-zn**| и т.д. Строится график полученных результатов

 

 

рис. 3.3 Сравнения полученных результатов по правилу Рунге

ЗАКЛЮЧЕНИЕ

При написании данной работы выполнены следующие задания:

1. Реализовано численное интегрирование по методу трапеций функции y=x/(x^2+1).

2. Осуществлена оценка погрешности и уточнение методом Ромберга результатов интегрирования.

3. Выполнена графическая визуализация полученных результатов.

Выполнение программы показало, что наиболее эффективным является расчет интеграла функции y=x/(x^2+1)в точках х=0 и x=2 по методу трапеций с проведением экстраполяций полученных значений по методу Рунге.

 

Рис 2. График исследуемой функции

 

 

СПИСОК ЛИТЕРАТУРЫ

 

1. Бахвалов И.С, Жидков Н.П., Кобельков Г.М. Численные методы. -М.: Наука, 2004. -636 с.

2. Самарский А.А. Численные методы математической физики. -
М.: Научный мир, 2000.-316с:

3. Самарский А.А. Задачи и упражнения по численным методам.
-XI: Эдиториал УРСС 2000.-208с

4. Самарский А. А. Математическое моделирование. Идеи.
Методы. Примеры / А. А. Самарский , А. П. Михайлов.-2-е
изд., испр..-М.: ФИЗМАТЛИТ, 2005.-320 с;

5. Крылов В.И., Бобков В.В., Монастырный П.И. Вычислитель­
ные методы. Т. I, II. -М.: Наука, 1987. -600 с.

6. Васильков Ю.В. Компьютерные технологии вычислений в
математическом моделировании: Учеб.пособие.-М.: Финансы
и статистика, 2001.-256с.

7. Подвальный С. Л. Численные методы и вычислительный
эксперимент: учебное пособие для вузов / С. Л. Подвальный,
Л. В. Холопкина , Д. В. Попов; Воронеж: Воронеж, гос. техн.
ун-т., 2005.-224 с.

8. Голичев И.И. Численные методы: Лабораторный практикум по
курсу «Численные методы» - Уфа: УГАТУ, 2006.-50 с.

 

 

 



rrent">3