![]() |
#1 (permalink) |
Новичок
Регистрация: 07.01.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() Подынтегральная функция ((e^(x))-e^(-x))/2 Первообразная подынтегральной функции ((e^(x))+e^(-x))/2 Очень нужна срочно помощь! буду благодарна премного, если напишете код! ![]() |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Сейчас лучшее, что можно сделать - это прочитать схожие посты Помогите решить Помогите решить |
![]() |
#3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Вилена, и Вам здравствовать, и Вас с Рождеством! Впрочем, судя по имени, Рождество для Вас не актуально.
Теперь по заданию. Вообще-то подобные задачки у нас рассматривались неоднократно, ну да ладно, получите: Код:
Var a,b,AV,T,S:Real; k:Byte; Function F(x:Real):Real; begin F:=0.5*(Exp(x)-Exp(-x)); end; Function Antiderivative(x:Real):Real; begin Antiderivative:=0.5*(Exp(x)+Exp(-x)); end; Function Trapezium(N:Byte):Real; var i:Byte; Sum,h:Real; begin h:=(b-a)/N; Sum:=(F(a)+F(b))/2*h; for i:=1 to N-1 do Sum:=Sum+h*F(a+h*i); Trapezium:=Sum; end; Function Simpson(N:Byte):Real; var i,N1:Byte; Sum,h:Real; begin N1:=N div 2; h:=(b-a)/(2*N1); Sum:=(F(a)+F(b))/3*h; for i:=1 to N1 do Sum:=Sum+4.0*h/3.0*F(a+h*(2*i-1)); for i:=2 to N1 do Sum:=Sum+2.0*h/3.0*F(a+h*(2*i-2)); Simpson:=Sum; end; Begin Write('a = '); Readln(a); Write('b = '); Readln(b); AV:=Antiderivative(b)-Antiderivative(a); WriteLn('Accurate value: ', AV:0:8); Writeln; for k:=1 to 8 do begin T:=Trapezium(k*10); S:=Simpson(k*10); Writeln('k= ',k, ' Trapezium: ',T:0:8, ' Abs.Err: ',Abs(T-AV):0:8,' Rel.Err: ',Abs(T-AV)/AV*100:0:8,'%'); Writeln('k= ',k, ' Simpson: ',S:0:8, ' Abs.Err: ',Abs(S-AV):0:8,' Rel.Err: ',Abs(S-AV)/AV*100:0:8,'%'); end; Readln; End. |
![]() |
![]() |
![]() |
#5 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]() Цитата:
Извините за некоторую вольность. |
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#6 (permalink) |
Новичок
Регистрация: 07.01.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
нет-нет, все нормально!
Это, сказать можно, прозвище мое. По поводу задания - хотела спросить, а есть ли возможность то же самое сделать, только без использования функций? Мы их еще не проходили... |
![]() |
![]() |
![]() |
#8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Ну вот, пожалуйста.
Хотя, сами видите - получилось громоздко, нечитабельно и некрасиво. Так что осваивайте работу с процедурами и функциями! ![]() Код:
Var a,b,AV,T,S,h:Real; i,k,N:Byte; Begin Write('a = '); Readln(a); Write('b = '); Readln(b); AV:=0.5*(Exp(b)+Exp(-b))-0.5*(Exp(a)+Exp(-a)); WriteLn('Accurate value: ', AV:0:8); Writeln; for k:=1 to 8 do begin h:=(b-a)/(k*10); T:=(0.5*(Exp(a)-Exp(-a))+0.5*(Exp(b)-Exp(-b)))/2*h; for i:=1 to k*10-1 do T:=T+h*0.5*(Exp(a+h*i)-Exp(-a-h*i)); N:=k*10 div 2; h:=(b-a)/(2*N); S:=(0.5*(Exp(a)-Exp(-a))+0.5*(Exp(b)-Exp(-b)))/3*h; for i:=1 to N do S:=S+4.0*h/3.0*0.5*(Exp(a+h*(2*i-1))-Exp(-a-h*(2*i-1))); for i:=2 to N do S:=S+2.0*h/3.0*0.5*(Exp(a+h*(2*i-2))-Exp(-a-h*(2*i-2))); Writeln('k= ',k, ' Trapezium: ',T:0:8, ' Abs.Err: ',Abs(T-AV):0:8,' Rel.Err: ',Abs(T-AV)/AV*100:0:8,'%'); Writeln('k= ',k, ' Simpson: ',S:0:8, ' Abs.Err: ',Abs(S-AV):0:8,' Rel.Err: ',Abs(S-AV)/AV*100:0:8,'%'); end; Readln; End. |
![]() |
![]() |
![]() |
#9 (permalink) |
Новичок
Регистрация: 07.01.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Благодарю!
увы, преподаватель пока требует так, чтоб по программе ![]() |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|