01.05.2011, 22:36 | #1 (permalink) | |||
Новичок
Регистрация: 01.05.2011
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ряд Тейлора
|
|||
01.05.2011, 22:36 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, попробуйте поискать ответ в схожих обсуждениях Помогите с задачей. Ряд Тейлора. Ряд Тейлора. Тоже проблема с Рядом Тейлора. Помогите пожалуйста решить задачу по ряду Тейлора Ряд Тейлора |
02.05.2011, 09:22 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, ну прежде всего, можете сказать, что тот, кто составлял это задание - полный профан в математике, придурок и неуч, поскольку функция ArTh (ареатангенс) определена ТОЛЬКО в диапазоне |x|<1, а приведенный ряд - это разложение функции ArCth (ареакотангенс), действительно определенной только при |x|>1. В программе предусмотрена проверка правильности ввода исходных данных, а также в четвертой колонке для сравнения выводится точное значение функции ареакотангенс. Точность задана в виде константы.
Код:
CONST Eps=0.0001; VAR SUM,X,Xbeg,Xfin,dX:REAL; N,NX:WORD; i:Integer; FUNCTION ArCth(Xa:Extended):Extended; BEGIN ArCth:=(1/2)*Ln((Xa+1)/(Xa-1)); END; PROCEDURE SUMS(Xs:REAL; Var S:REAL; Var Ns:WORD); VAR a:REAL; Begin a:=1/Xs; S:=a; Ns:=1; Repeat a:=a/sqr(Xs)*Ns/(Ns+2); S:=S+a; Inc(Ns,2); Until Abs(a)<Eps; End; Function B:boolean; begin B:=((Xbeg>1) and (Xfin>Xbeg) and (dX>0)) or ((Xbeg<-1) and (Xfin<-1) and (Xfin>Xbeg) and (dX>0)) or ((Xbeg<-1) and (Xfin<Xbeg) and (dX<0)); end; BEGIN WriteLn('If X range is POSITIVE, then Xbeg must be >1,'); WriteLn('Xfin must be >Xbeg and dX>0'); WriteLn('If X range is NEGATIVE, then Xbeg and Xfin must be <-1,'); WriteLn('in case of dX>0 Abs(Xfin) must be <Abs(Xbeg),'); WriteLn('whereas for dX<0 Abs(Xfin) must be >Abs(Xbeg)'); WriteLn; Repeat Write('Xbeg= '); ReadLn(Xbeg); Write('Xfin= '); ReadLn(Xfin); Write('dX= '); ReadLn(dX); If B=false then WriteLn('Incorrect values! Repeat the input.'); Until B; NX:=Round((Xfin-Xbeg)/dX); WriteLn(' Results of calculation:'); WriteLn(' X SUM N ArCth(X)'); WriteLn; For i:=0 to NX do begin X:=Xbeg+dX*i; SUMS(X,SUM,N); WriteLn(X:8:5,' ',SUM:9:6,' ',N:3,' ',ArCth(X):9:6); end; ReadLn; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|