Численное интегрирование |
Численное интегрирование |
trminator |
13.12.2003 12:33
Сообщение
#1
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Численное интегрирование методом прямоугольников:
Код program integral; { Вычисляет приближенное значение } { интеграла функции F методом прямоугольников } { /b } { | f(x) dx;интервал разбивается на n частей } { /a } var n,i : integer; a,b,shag,sum,itog : real; {======================================} {Введите сюда нужную функцию} function F(x:real):real; begin F:=x*x*x*x+2*x*x+4 end; {======================================} BEGIN write('Начало интегрирования a = '); readln(a); write('Конец интегрирования b = '); readln(b); write('Количество разбиений интервала n = '); readln(n); shag:=(b-a)/n; sum:=0; for i:=1 to n-1 do sum := sum + F(shag*i+a); sum := sum + (F(a)+F(b))/2; itog:=(b-a)/n * sum; writeLn('Интеграл = ', itog:0:5) END. -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
hiv |
18.03.2005 11:59
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: 11 |
Численное интегрирование методом Симпсона (четное количество разбиений интервала интегрирования):
Код program Simpson; {интегрируемая функция} function F(x:Real):Real; begin F:=2*x; end; var a,b,h,x :real; n,i :integer; integ :real; begin write('Введите начало интегрирования a='); readln(a); write('Введите конец интегрирования b='); readln(b); write('Введите количество разбиений интервала (четное число) n='); readln(n); if (n mod 2)>0 then begin n:=n+1; writeln('Число n было введено нечетное, оно было заменено на n=',n); end; h:=(b-a)/n; integ:=F(a)+F(b)+4*F(a+h); for i:=1 to (n div 2)-1 do begin x:=a+2*h*i; integ:=integ+2*F(x)+4*F(x+h); end; integ:=h*integ/3; writeln('Интеграл = ',integ); end. -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
Текстовая версия | 5.10.2024 1:52 |