Автор работы: Пользователь скрыл имя, 14 Мая 2013 в 13:01, курсовая работа
Решение нелинейных уравнений с одним неизвестным является одной из важных математических задач, возникающих в различных разделах физики, химии, биологии и других областях науки и техники. Оно производится с помощью интегрирования. В свое время задача численного интегрирования заключается в вычислении интеграла
посредством ряда значений подынтегральной функции .
Задачи численного интегрирования приходится решать для функций, заданных таблично, функцией, интегралы от которых не берутся в элементарных функциях, и т.д.
Введение 2
Метод Симпсона 4
Вывод формулы Симпсона 6
Формула 7
Обоснование выбора языка программирования 9
Программа 10
Список литературы: 13
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение Высшего профессионального образования
САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ Н.Г. ЧЕРНЫШЕВСКОГО
Физический факультет
Кафедра оптики и биофотоники
Курсовая работа
Учебная дисциплина
Основы разработки прикладных программ
Тема: РЕШЕНИЕ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА МЕТОДОМ СИМПСОНА
Выполнила: студентка 1 курса, 135 группы
дневного отделения, специальности
«Оптика и биофотоника»
Походина Ксения Александровна
Проверил: ________________
_________________________
(Ф.И.О.)
Саратов
2012
Введение 2
Метод Симпсона 4
Вывод формулы Симпсона 6
Формула 7
Обоснование выбора языка программирования 9
Программа 10
Список литературы: 13
Решение нелинейных уравнений с одним неизвестным является одной из важных математических задач, возникающих в различных разделах физики, химии, биологии и других областях науки и техники. Оно производится с помощью интегрирования. В свое время задача численного интегрирования заключается в вычислении интеграла
посредством ряда значений подынтегральной функции .
Задачи численного интегрирования приходится решать для функций, заданных таблично, функцией, интегралы от которых не берутся в элементарных функциях, и т.д.
Определенный интеграл от функции, имеющей неэлементарную первообразную, можно вычислить с помощью той или иной приближенной формулы. Для решения этой задачи можно воспользоваться достаточно простыми формулами:
формула прямоугольников
формула трапеций
формула Симпсона
Для простоты будем считать шаг постоянным h = xi xi-1, i = 1,2,…,n.
Простейшим методом численного
интегрирования является метод прямоугольников.
Он непосредственно использует замену
определённого интеграла
Широко распространённым и более
точным является вид формулы прямоугольников,
использующий значения функции в
средних точках элементарных отрезков
(метод средних
Метод трапеций использует линейную интерполяцию, т.е. график функции f (x) представляется в виде ломаной, соединяющей точки (xi, yi) и (xi+1, yi+1) i=0,1,2,…,n. В этом случае площадь всей фигуры (криволинейной трапеции) складывается из площадей элементарных прямолинейных трапеций.
Наиболее эффективным среди простейших методов приближенного вычисления интегралов является метод Симпсона.
В данной работе нас интересует именно этот метод. Формула Симпсона относится к приёмам численного интегрирования. Она получила название в честь британского математика Томаса Симпсона (1710-1761).
Численное интегрирование (историческое название: квадратура) - вычисление значения определённого интеграла (как правило, приближённое), основанное на том, что величина интеграла численно равна площади криволинейной трапеции, ограниченной осью абсцисс, графиком интегрируемой функции и отрезками прямых и, где и - пределы интегрирования.
Необходимость применения численного
интегрирования чаще всего может
быть вызвана отсутствием у
Этот метод базируется на замене подынтегральной функции квадратичной параболой, которая строится уже не по двум (как прямая в методе трапеций), а по трем точкам на каждом участке (поэтому число разбиений должно быть четным). По этим трем точкам (крайние точки участка и средняя точка) строится интерполяционная функция – полином второго порядка, который аналитически интегрируется. Получается следующая расчетная формула:
• для одного участка интегрирования:
(1)
; (2)
, (3)
где x0 = a; x1 = (b–a)/2; x2 = b; h = (b–a)/2;
• для n участков интегрирования:
; (4)
(5)
; (6)
. (7)
В формуле (7) все ординаты с нечетными номерами имеют коэффициент 4h/З, а с четными – 2h/3 (кроме нулевого и последнего). При работе с этим методом обязательно разбивают весь интервал на четное число участков.
На рисунке приведен пример вычисления интеграла методом Симпсона. По сравнению с методами прямоугольников и трапеций он более точен, что наглядно видно из графика (подынтегральная функция почти совпадает с параболой).
Метод Симпсона
обеспечивает вычисление интеграла
точно, без погрешности при полиноме
третьего порядка. Следовательно, этот
метод предпочтительнее предыдущих.
Количественно оценить
т. е. при увеличении числа разбиений в 2 раза погрешность падает в 15 раз.
Теоретические формулы оценки погрешности содержат производную четвертого порядка от подынтегральной функции, поэтому не имеют практического значения.
Если для каждой пары отрезков построить многочлен второй степени, затем проинтегрировать его и воспользоваться свойством аддитивности интеграла, то получим формулу Симпсона.
Рассмотрим подынтегральную
Проинтегрируем :
и является формулой Симпсона.
Полученное для интеграла значение совпадает с площадью криволинейной трапеции, ограниченной осью , прямыми , и параболой, проходящей через точки
Оценим теперь погрешность интегрирования по формуле Симпсона. Будем считать, что у на отрезке существуют непрерывные производные .
Составим разность:
К каждому из этих двух интегралов уже можно применить теорему о среднем, поскольку непрерывна на и функция неотрицательна на первом интервале интегрирования и неположительна на втором ( то есть не меняет знака на каждом из этих интервалов). Поэтому:
(мы воспользовались теоремой о среднем, поскольку - непрерывная функция; ).
Дифференцируя дважды и применяя затем теорему о среднем, получим для другое выражение:
, где
Из обеих оценок для следует, что формула Симпсона является точной для многочленов степени не выше третьей. Запишем формулу Симпсона, напрмер, в виде:
, .
Если отрезок интегрирования слишком велик, то его разбивают на равных частей (полагая ), после чего к каждой паре соседних отрезков , ,..., применяют формулу Симпсона, именно:
Запишем формулу Симпсона в общем виде:
(1)
(2)
Погрешность формулы Симпсона - метода четвертого порядка:
, (3)
Так как метод Симпсона позволяет получить высокую точность, если не слишком велика. В противном случае метод второго порядка может дать большую точность.
Например, для функции форма трапеции при для дает точный результат , тогда как по формуле Симпсона получаем
Далее мы составим программу на языке С++ для решения интеграла методом Симпсона.
С++ - это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьёзного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования Си.
Помимо возможностей, которые дает
С, С++ предоставляет гибкие и эффективные
средства определения новых типов.
Используя определения новых
типов, точно отвечающих концепциям
приложения, программист может разделять
разрабатываемую программу на легко
поддающиеся контролю части. Такой
метод построения программ часто
называют абстракцией данных. Информация
о типах содержится в некоторых
объектах типов, определённых пользователем.
Такие объекты просты и надёжны
в использовании в тех
В своём составе С++ содержит препроцессор,
который обрабатывает текстовые
файлы перед компиляцией. Среди
его наиболее полезных приложений при
написании программ на С++ являются:
определение программных
Программа:
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <graphics.h>
#include <stdlib.h>
#include <dos.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>
double a,b,e;
double f(double x)
{ return pow(x,2);}
void grafik()
{ float x,dx; // аргумент и его приращение
float x1,x2; // диапозон изменения аргумента
float y; // значение функции
int mx, my; // масштаб по X и Y - колличество точек экрана, соответствующее единице по осям координат
int x0,y0; // начало осей координат
int px,py; // координаты точки графика на экране
x0=getmaxx()/2; y0=getmaxy()/2; // расположение координатных осей по центру экрана
mx=20; my=20; // выбираем подходящий масштаб
bar(0,0,640,480);
setfillstyle(SOLID_FILL,WHITE)
x1=a;
x2=b;
dx=0.0001; // приращение функции
float x3=0-dx; // "нижний" предел
float x4=0+dx; // "верхний" предел
x=x1;
while (x<x3)
{
y=f(x); // запись искомой функции
px=x0+x*mx; // находим координаты точки по оси X
py=y0-y*my; // находим координаты точки по оси Y
putpixel(px,py,RED);
x+=dx; // продолжаем выполнение цикла с приращением
}
x=x4;
px=x0+x*mx;
y=f(x);
py=y0-y*my;
moveto(px,py);
while (x<x2)
{
y=f(x); ; // запись искомой функции
px=x0+x*mx; // находим координаты точки по оси X
py=y0-y*my; // находим координаты точки по оси Y
putpixel(px,py,RED);
x+=dx; // продолжаем выполнение цикла с приращением
}
double Sf()
{
return (b-a)/6.0*(f(a)+4.0*f((b+a)/2.
}
int main()
{cout<<"Vvedite a: "<<endl; cin>>a;
cout<<"vvedite b: "<<endl; cin>>b;
cout<<"Result: "<<Sf()<<endl;
Информация о работе РЕШЕНИЕ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА МЕТОДОМ СИМПСОНА