Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

«Вычисление определенного интеграла методом срединных прямоугольников и методом Симпсона. Правило Рунге, уточнение по Ричардсону».



Лабораторная работа №2

 

«Вычисление определенного интеграла методом срединных прямоугольников и методом Симпсона. Правило Рунге, уточнение по Ричардсону».

 

Выполнена студенткой МГТУ им. Баумана

Группы МТ13-31

Лариной Анастасией

 

 

 

 

Теоретическая часть

 


 


 


 

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

 

program Project2;

 

{$APPTYPE CONSOLE}

 

uses

SysUtils;

 

const

a=0;

b=pi/2;

epsilon=0.0001;

 

function f(x:real):real; //Определение функции, зависящей от x

begin

f:=2*x-exp(-x);

end;

 

procedure Priamoug_runge (epsilon,a,b:real;var i2,yt1:real);

var i1,d,s,ApEr:real; //ApEr - Апостериорная ошибка по правилу Рунге

i,n:integer;

begin

{d=b-a делится на n отрезков;n на каждом шаге удваивается

i1 - сумма площадей n прямоугольников с основанием d/n

i2 - сумма площадей 2n прямоугольников с основанием d/(2n)}

d:=b-a;

i1:=(f(a+d/4)+f(b-d/4))*d/2; //для n=2

i2:=f(a+d/8)+f(a+3*d/8)+f(a+5*d/8)+f(a+7*d/8)*d/4; //для n=4

n:=8;

repeat

begin

s:=0;

for i:=1 to n do s:=s+f(a+(2*i-1)*d/(2*n));

i1:=i2;

i2:=s*d/n;

ApEr:=abs(i2-i1)/3;

writeln('Pri n=',n:5,', oshibka= ',ApEr:10:8,', I=',i2:10:8);

n:=2*n;

end;

yt1:=i2+(i2-i1)/3;

until ApEr<epsilon

end;

 

procedure simpson_runge(a,b,epsilon:real;var s2,yt2:real);

var

s1,s,h,ApEr:real; //ApEr - апостериорная оценка погрешности

i,n,k:integer;

begin

k:=1;

n:=2*k;

h:=(b-a)/n;

s2:=(f(a)+f(b))*(h/3);

repeat

s1:=s2;

k:=2*k;

h:=(b-a)/(2*k);

s2:=f(a)+f(b);

s:=0;

for i:=1 to k do s:=s+f(a+(2*i-1)*h);

s2:=s2+4*s;

s:=0;

for i:=1 to k-1 do s:=s+f(a+2*i*h);

s2:=s2+2*s;

s2:=s2*h/3;

ApEr:=abs(s2-s1)/15;

writeln('Pri n=',2*k:3,', oshibka= ',ApEr:10:8,', I=',s2:10:8);

until ApEr<epsilon;

yt2:=s2+(s2-s1)/15;

end;

 

 

var sim,sim_ru,ist,PriamI,PriamI_ru,y1,y2:real;

Begin

writeln('Istinnoe znachenie funkzii'); //Посчитано вручную

ist:=exp(-1);

writeln(ist:10:9);

 

writeln('------------------------------------------------');

 

writeln('Metod sredinnix priamougolnikov');

writeln('');

writeln('Aposteriornaya oshibka po pravilu Runge');

Priamoug_runge(epsilon,a,b,PriamI_ru,y1);

writeln('');

writeln('Konechnii rezultat');

writeln(PriamI_ru:8:8);

writeln('Ytochnenie po Richardsonu');

writeln(y1:8:8);

 

writeln('------------------------------------------------');

 

writeln('Metod simpsona');

writeln('');

writeln('Aposteriornaya oshibka po pravilu Runge');

simpson_runge(a,b,epsilon,sim_ru,y2);

writeln('');

writeln('Konechnii rezultat');

writeln(sim_ru:10:8);

writeln('Ytochnenie po Richardsonu');

writeln(y2:8:8);

 

writeln('------------------------------------------------');

 

readln;

end.

 

Результаты

 

 

Аналитическое решение


Дата добавления: 2015-09-29; просмотров: 26 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
Творец миров, чье имя Безначальный, Чью мощь бессилен выразить язык, Кто беспредельно Всемогущ, Велик, Чьим Словом небеса небес соткались! | 

mybiblioteka.su - 2015-2024 год. (0.008 сек.)