|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
14.03.2011, 22:07 | #1 (permalink) |
Новичок
Регистрация: 14.03.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Интеграл методом прямоугольников
|
14.03.2011, 22:07 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваша тема схожа с этими, рекомендую внимательно прочитать Вычислить методом тарапеции в VBA Решение уравнений методом Ньютона Помогите с модифицированным методом Эйлера Как задать число pi, e , определенный интеграл? Многопоточный сортировщик методом слияния Неопределенный интеграл |
15.03.2011, 11:40 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
Function ArcSin(X:Real):Real; BEGIN IF ROUND(X*10000000)=10000000 THEN ArcSin:=Pi/2 ELSE IF ROUND(X*10000000)=-10000000 THEN ArcSin:=-Pi/2 ELSE ArcSin:=ArcTan(X/SQRT(1-X*X)); END; Function F(x:Real):Real; begin F:=1.0/(x*SQRT(SQR(x)*2-x*3-5.0)); end; Function Antiderivative(x:Real):Real; begin Antiderivative:=1.0/SQRT(5.0)*arcsin((-x*3-10)/(x*7)); end; Procedure Rectangle; var i,N:Integer; Sum1,Sum2,h:Real; begin N:=5; h:=3.0/N; Sum1:=0; for i:=0 to N-1 do Sum1:=Sum1+h*F(3.0+h*i); Sum2:=Sum1; Repeat Sum1:=Sum2; N:=N*2; h:=3.0/N; Sum2:=0; for i:=0 to N-1 do Sum2:=Sum2+h*F(3.0+h*i); Until ABS(Sum2-Sum1)<0.001; WriteLn('Rectangle: ', Sum2:10:5); end; Procedure Trapezium; var i,N:Integer; Sum1,Sum2,h:Real; begin N:=5; h:=3.0/N; Sum1:=(F(3.0)+F(6.0))/2*h; for i:=1 to N-1 do Sum1:=Sum1+h*F(3.0+h*i); Sum2:=Sum1; Repeat Sum1:=Sum2; N:=N*2; h:=3.0/N; Sum2:=(F(3.0)+F(6.0))/2*h; for i:=1 to N-1 do Sum2:=Sum2+h*F(3.0+h*i); Until ABS(Sum2-Sum1)<0.001; WriteLn('Trapezium: ', Sum2:10:5); end; Procedure Simpson; var i,N:Integer; Sum1,Sum2,h:Real; begin N:=2; h:=3.0/(2*N); Sum1:=(F(3.0)+F(6.0))/3*h; for i:=1 to N do Sum1:=Sum1+4.0*h/3.0*F(3.0+h*(2*i-1)); for i:=2 to N do Sum1:=Sum1+2.0*h/3.0*F(3.0+h*(2*i-2)); Sum2:=Sum1; Repeat Sum1:=Sum2; N:=N*2; h:=3.0/(2*N); Sum2:=(F(3.0)+F(6.0))/3*h; for i:=1 to N do Sum2:=Sum2+4.0*h/3.0*F(3.0+h*(2*i-1)); for i:=2 to N do Sum2:=Sum2+2.0*h/3.0*F(3.0+h*(2*i-2)); Until ABS(Sum2-Sum1)<0.001; WriteLn('Simpson: ', Sum2:10:5); end; BEGIN Rectangle; Trapezium; Simpson; WriteLn('Accurate value:', (Antiderivative(6.0)-Antiderivative(3.0)):10:5); ReadLn; END. |
|
15.03.2011, 14:31 | #3 (permalink) |
Новичок
Регистрация: 14.03.2011
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое, очень выручили!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|