Приближенное вычисление значений определенного интеграла
Сущность и особенности применения метода средних треугольников. Порядок расчета по методу трапеций и Ньютона-Котеса. Формула Чебышева и значения узлов ее квадратуры. Составление блок-схемы программы и ее основных процедур различными численными методами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 03.01.2010 |
Размер файла | 482,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
2
Федеральное агентство по образованию РФ
Тульский государственный университет
Кафедра АОТ и ОС
КУРСОВАЯ РАБОТА
по курсу информатика
"ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА"
Тула, 2007
Содержание
Введение
Метод средних прямоугольников
Метод трапеций
Метод Ньютона-Котеса
Метод Чебышева
Блок-схема основной программы
Блок-схема процедуры: метод трапеций
Блок-схема процедуры: метод Ньютона-Котеса
Блок-схема процедуры: метод Чебышева
Текст программы
Список используемой литературы
Введение
На практике редко удается вычислить точно определенный интеграл. Например, в элементарных функциях не вычисляется функция Лапласа
широко используемая в теории вероятностей для вычисления вероятностей, связанных с нормально распределенными случайными величинами.
Задача численного интегрирования состоит в нахождении приближенного значения интеграла:
(1)
от непрерывной на отрезке [a, b] функции .
Численные методы интегрирования применяются в случаях, когда не удается найти аналитическое выражение первообразной для функции либо если функция задана таблично. Формулы численного интегрирования называются квадратурными формулами.
Пример: Приближенное неравенство
(2)
где qj - некоторые числа, xj - некоторые точки отрезка [a, b], называется квадратурной формулой, определяемой весами qj и узлами xj.
Говорят, что квадратурная формула точна для многочленов степени m, если при замене на произвольный алгебраический многочлен степени m приближенное равенство (2) становится точным.
Рассмотрим некоторые широко используемые примеры приближенного вычисления определенных интегралов, квадратурные формулы.
Метод средних прямоугольников
Вычисление определенного интеграла геометрически означает вычисление площади фигуры, ограниченной кривой , прямыми х=а и х=b и осью абсцисс. Приближенно эта площадь равна сумме площадей прямоугольников.
Обозначим , где
n - количество шагов.
Формула левых прямоугольников:
Формула правых прямоугольников:
Более точной является формула средних прямоугольников:
Метод трапеций
Площадь под кривой заменяется суммой площадей трапеций:
или
Нетрудно убедиться, что
Поскольку точность вычислений по приведенным формулам зависит от числа разбиений n исходного отрезка [a; b], то вычислительный процесс целесообразно строить итерационным методом, увеличивая n до тех пор, пока не будет выполнено условие
<
где - значения интеграла на шаге, а - точность вычислений.
Метод Ньютона-Котеса
Заменим подынтегральную функцию f(x) интерполяционным многочленом Лагранжа:
.
Тогда
;
(1)
Так как dx=hdq, то
Так как , то
Окончательно получаем формулу Ньютона-Котеса:
(2)
Величины Hi называют коэффициентами Ньютона-Котеса. Они не зависят от f(x). Их можно вычислить заранее для различного числа узлов n (таблица 1).
Формула Ньютона-Котеса с n узлами точна для полиномов степени не выше n. Для получения большей точности не рекомендуется использовать формулы с большим числом узлов, а лучше разбивать отрезок на подотрезки, к каждому из которых применяется формула с одним и тем же небольшим числом узлов.
Таблица 1. Значения коэффициентов Ньютона-Котеса
H |
N |
||||
1 |
2 |
3 |
4 |
||
H0 |
1/2 |
1/6 |
1/8 |
7/90 |
|
H1 |
1/2 |
2/3 |
3/8 |
16/45 |
|
H2 |
- |
1/6 |
3/8 |
2/15 |
|
H3 |
- |
- |
1/8 |
16/45 |
|
H4 |
- |
- |
- |
7/90 |
Интересно отметить, что из формулы (2) следуют как частные случаи: формула трапеций при n=1
;
формула Симпсона при n=2
;
правило трех восьмых при n=3
.
Формулу (2) при n>6 не применяют, так как коэффициенты Ньютона-Котеса становятся слишком большими и вычислительная погрешность резко возрастает.
Метод Чебышева
П.Л. Чебышев предложил формулу:
,
в которой коэффициенты ci фиксированы, а хi подлежат определению.
Пользуясь алгебраическими свойствами симметричных многочленов, опустив преобразования, ограничимся готовыми результатами. В таблице 2 приведены значения узлов квадратурной формулы Чебышева для некоторых значений n.
Таблица 2. Значения узлов квадратурной формулы Чебышева
Число интервалов n |
Номер узла i |
Значение узла Xi |
|
1 |
12 |
0,2113250,788675 |
|
2 |
123 |
0,1464470,5000000,853553 |
|
3 |
1234 |
0,1026730,4062040,5937960,897327 |
|
4 |
12345 |
0,0837510,3127300,5000000,6872700,916249 |
|
5 |
123456 |
0,0668770,2887400,3666820,6333180,7122600,933123 |
Для любых пределов интегрирования имеем:
где ,
Значения xi берутся из таблицы при выбранном значении n. Для повышения точности можно не только увеличивать количество узлов, но и разбивать отрезок [a, b] на подотрезки, к каждому из которых применяется соответствующая формула. Не рекомендуется применять формулы с большим количеством узлов (n>=8).Доказано, что для n=8 построить квадратурную формулу Чебышева невозможно.
Блок-схема основной программы
Блок-схема процедуры: метод трапеций
Блок-схема процедуры: метод Ньютона-Котеса
Блок-схема процедуры: метод Чебышева
Текст программы
program Curs;
uses crt, graph;
var i, n:integer;
t:byte;
a, b, eps, h:real;
x, sum1, sum2, seps, m0, m1, m2, m3, m4:real;
lf:text;
st:string;
function f (x:real):real;
begin
f:=19.44*exp (0.224*x);
end;
procedure gr (xn, xk:real);
var x, y, mx, my, dx, dy,
ymin, ymax, xh:real;
xb, yb, xm, ym, xl, yv, xp, yn, bord1, bord2, bord3, bord4, xt, yt, xt1, yt1, dxp, dyp, nd, nr, i, kx, ky, k:integer;
st:string;
begin
k:=100;
xh:=(xk-xn)/100;
ymax:=f(xn);
dx:=(xk-xn)/100;
for i:=1 to 100 do
begin x:=xn+dx*i;
y:=f(x);
if y>ymax then ymax:=y;
end;
ymin:=0;
ymax:=round(ymax);
nd:=detect;
initgraph (nd, nr, 'c:\tp7\bgi');
bord1:=60; kx:=6;
bord2:=30; ky:=8;
bord3:=30;
bord4:=80;
xb:=0; yb:=0; xm:=getmaxx; ym:=getmaxy;
xl:=xb+bord1;
xp:=xm-bord2;
yv:=yb+bord3;
yn:=ym-bord4;
dxp:=(xp-xl) div kx;
dyp:=(yn-yv) div ky;
dx:=(xk-xn)/kx;
dy:=(ymax-ymin)/ky;
xl:=xp-dxp*kx;
yn:=yv+dyp*ky;
mx:=(xp-xl)/(xk-xn);
my:=(yn-yv)/(ymax-ymin);
setfillstyle (1,15);
bar (xb, yb, xm, ym);
setcolor(0);
setlinestyle (0,0,1);
bar (xl, yv, xp, yn);
rectangle (xl, yv, xp, yn);
settextjustify (0,2);
settextstyle (2,1,4);
setcolor(9);
for i:=0 to kx do begin
xt:=xl+dxp*i;
str (xn+dx*i:6:3, st);
line (xt, yn_3, xt, yn+3);
outtextxy (xt+4, yn+8, st);
end;
settextstyle (0,0,1);
for i:=0 to ky do begin
yt:=yv+dyp*i;
str (ymax-dy*i:6:3, st);
line (xl_3, yt, xl+3, yt);
outtextxy (xl_56, yt_4, st);
end;
outtextxy (xl+100, bord3 div 2,'y=19.44*exp (0.224*x)');
setcolor(12);
if xn*xk<0 then begin
xt:=xl-trunc (xn*mx);
line (xt, yv, xt, yn);
end;
if ymax*ymin<0 then begin
yt:=yv+trunc (ymax*my);
line (xl, yt, xp, yt);
end;
xh:=(xk-xn)/5;
for i:=0 to 5 do begin
setcolor(3);
x:=xn+xh*i;
y:=f(x);
xt:=xl+trunc((x-xn)*mx);
yt:=yv+trunc((ymax-y)*my);
circle (xt, yt, 3);
if i>0 then
line (xt, yt, xt1, yt1);
setcolor(5);
rectangle (xt1, yt1, xt, yn);
xt1:=xt;
yt1:=yt;
end;
repeat until keypressed;
closegraph;
end;
function pr:real;
var s, x:real;
begin
s:=0;
x:=a;
for i:=1 to n do
begin
s:=s+abs (f(x))*h;
x:=x+h;
end;
pr:=s;
end;
function tr:real;
var s, x:real;
begin
s:=0;
x:=a;
for i:=1 to n do
begin
s:=s+(f(x)+f (x+h))/2*h;
x:=x+h;
end;
tr:=s;
end;
function ch:real;
var s, dp, kf, a1, b1:real;
begin
s:=0;
kf:=sqrt (1/3);
for i:=2 to n+1 do
begin
a1:=a+h*(i_2);
b1:=a1+h;
s:=s+((b1_a1)/2)*(f((a1+b1)/2_kf*((b1_a1)/2))+f((a1+b1)/2+kf*((b1_a1)/2)));
end;
ch:=s;
end;
function si:real;
var s, x, f1, f2:real;
begin
s:=0;
x:=a;
i:=1;
f1:=0;
repeat
f1:=f1+f (a+h*i);
i:=i+2;
until i>=n;
i:=2;
f2:=0;
repeat
f2:=f2+f (a+h*i);
i:=i+2;
until i>=n;
s:=h/3*(f(a)+f (b-h)+(4*f1)+(2*f2));
si:=s;
end;
begin
assign (lf, 'otchet.txt');
rewrite(lf);
clrscr;
write ('Введите значение левого предела интегрирования: '); readln(a);
write ('Введите значение правого предела интегрирования: '); readln(b);
write ('Введите значение погрешности: '); readln(eps);
write ('Введите начальное значение количества разбиений: '); readln(n);
writeln;
gr (a, b);
write ('Ждите, идет обработка данных ');
m0:=0;
writeln (lf, ' КУРСОВАЯ РАБОТА');
writeln (lf, ' ПО КУРСУ ИНФОРМАТИКА');
writeln (lf, ' «ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ');
writeln (lf, ' ОПРЕДЕЛЕННОГО ИНТЕГРАЛА» ');
writeln (lf, ' Выполнил: студент гр. ');
writeln (lf, ' Вариант 22 y=19.44*exp (0.224*x)');
writeln (lf, ' Xn=', a:5:3,' Xk=', b:5:3,' Eps=', eps:5:3);
writeln(lf);
writeln (lf, ' РЕЗУЛЬТАТЫ ВЫЧИСЛЕНИЙ');
repeat
h:=abs (b-a)/n;
m1:=pr;
m2:=tr;
m3:=si;
m4:=ch;
seps:=abs (m1_m0);
writeln (lf, ' ¦', n:7,' ¦', m1:11:8,'¦', m2:11:8,'¦', m3:11:8,'¦', m4:11:8,'¦', seps:11:8,'¦');
m0:=m1;
n:=n+200;
until (seps<=eps);
clrscr;
reset(lf);
while not eof(lf) do
begin
readln (lf, st);
writeln(st);
end;
{write ('Нажмите <Enter> для выхода из программы');
repeat until keypressed;}
close(lf);
end.
Список используемой литературы
1. Бахвалов Н.С. «Численные методы». М.: Наука, 1987 - 598 с.
2. Калиткин Н.Н. «Численные методы». М.: Наука, 1988 - 512 с.
3. Крылов В.И. «Вычислительные методы». М.: Наука, 1977 - 408 с.
4. Нечаев В.И., Нечаева О.А., Почуева Л.Н. «Численные методы». Тула, 1999.
Подобные документы
Разработка программы нахождения значения определенного интеграла с помощью метода трапеций. Оценка абсолютной погрешности метода. Использование среды программирования Visual Studio Community 2015 для написания программы. Работа с графическим интерфейсом.
курсовая работа [573,8 K], добавлен 17.03.2016Составление блок-схемы и алгоритма программы для решения уравнения с приближенным значением корня по методу Ньютона, расчета приближенного значения интеграла по формуле трапеций, вычисления уравнения длины вектора. Типы формул общего члена суммы.
курсовая работа [41,3 K], добавлен 15.12.2012Создание схем алгоритмов и составление программы на языке Pascal для вычисления значений заданных функций. Сущность и порядок нахождения значения определенного интеграла. Анализ работы подпрограмм. Разработка тестов для проверки правильности алгоритмов.
контрольная работа [831,0 K], добавлен 24.11.2013Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.
курсовая работа [593,6 K], добавлен 09.07.2012Математическое описание, алгоритм и программа вычисления определенного интеграла методом трапеций. Расчет n-значений исследуемой функции и вывод их в виде таблицы. Технические и программные средства. Входные и выходные данные, функциональное назначение.
курсовая работа [21,0 K], добавлен 03.01.2010Разработка различных программ для вычисления X и Y по формуле, для вычисления интеграла, для вычисления таблицы значений функции и для вычисления элементов вектора. Составление блок-схемы программы. Ввод значений, описание переменных и условия расчета.
контрольная работа [148,1 K], добавлен 08.11.2013Формулирование и создание программы по вычислению определенного интеграла по формуле трапеций с тремя десятичными знаками и по формуле Симпсона. Выбор Delphi как программного средства разработки программы. Создание алгоритма и листинг программы.
курсовая работа [990,9 K], добавлен 15.06.2009Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.
курсовая работа [832,6 K], добавлен 24.07.2012Сравнение графиков заданной функции и интерполяционных полиномов на определенном интервале при двух вариантах выбора узлов (равномерно с шагом, по Чебышеву). Создание программы на основе метода Ньютона для построения графиков и расчета значений функции.
контрольная работа [1,1 M], добавлен 07.07.2012Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.
курсовая работа [834,6 K], добавлен 14.04.2019