|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 (permalink) |
Новичок
Регистрация: 26.04.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() При различных значениях параметра z (значение параметра вводится с клавиатуры) вычислить значение интеграла на заданном отрезке при различных значениях точности ε, задаваемых с клавиатуры. |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Отправлю вам схожие темы, рекомендую почитать Помогите решить задачу в Pascal ABC Помогите решить задачу в Pascal Подскажите, пожалуйста, как решить задачу на Turbo Pascal и что неверно в моем коде Помогите решить задачу Pascal Помогите решить задачу Pascal |
![]() |
#2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
С помощью формулы Симпсона ВЫЧИСЛЕН интеграл! Да еще (для сравнения) вычислено точное значение, благо интеграл - берущийся. Формат вывода построен так, что в численном решении отображается число значащих цифр, определяемое заданной точностью.
Код:
Const a=0.1; b=0.8; Var z,Eps:Real; Function F(p,q:Real):Real; begin F:=p*p/Sqr(p*p*p+q*q*q); end; Function Antiderivative(p,q:Real):Real; begin Antiderivative:=-1.0/3/(p*p*p+q*q*q); end; Procedure Simpson; var i,N:Integer; Sum1,Sum2,h:Real; begin N:=2; h:=(b-a)/(2*N); Sum1:=(F(a,z)+F(b,z))/3*h; for i:=1 to N do Sum1:=Sum1+4.0*h/3.0*F(a+h*(2*i-1),z); for i:=2 to N do Sum1:=Sum1+2.0*h/3.0*F(a+h*(2*i-2),z); Sum2:=Sum1; Repeat Sum1:=Sum2; N:=N*2; h:=(b-a)/(2*N); Sum2:=(F(a,z)+F(b,z))/3*h; for i:=1 to N do Sum2:=Sum2+4.0*h/3.0*F(a+h*(2*i-1),z); for i:=2 to N do Sum2:=Sum2+2.0*h/3.0*F(a+h*(2*i-2),z); Until ABS(Sum2-Sum1)<Eps; WriteLn('Simpson: ', Sum2:0:(Round(-Ln(Eps)/Ln(10))+1)); end; Begin Write('z = '); Readln(z); Write('Eps = '); Readln(Eps); Simpson; WriteLn('Accurate value: ', (Antiderivative(b,z)-Antiderivative(a,z)):0:8); ReadLn; End. |
![]() |
![]() |
![]() |
#3 (permalink) |
Новичок
Регистрация: 26.04.2013
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Спасибо большое за помощь)
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|