Нужна помощь в вычислении функции с заданной точностью.
Необходимо разложить в ряд соответствующую функцию в ряд и по приведенной выше схеме вычисления определить значение функции для различных величин вводимой с экрана точности и измерить время вычисления значения функции.
Вычислить cos(-x*x) при х по модулю не более 1
мисс_граффити
20.12.2006 5:23
1) разложи в ряд (чисто математически) 2) почитай FAQ - общие вопросы по математике.
*Kirill*
20.12.2006 11:16
Это понятно, а вот как должен выглядеть текущий член ряда в программе (формула), который постоянно прибавляется к сумме?
OK, всем спасибо за советы. Вот в итоге что получилось:
Program my_lab1; uses CRT,DOS; var x,i,j:integer; d,t_ch,sum:real; h,m,sec,time_start,time_end,time:word; BEGIN Clrscr; Repeat Clrscr; WriteLn('Programma razlozhenia funkzii Exp(x*x) pri x po modului ne bole 5'); WriteLn; Write('Vvedite X = '); ReadLn(x); If abs(x)>5 then begin WriteLn('!!! X ne podxodit po usloviu !!!'); ReadLn; end; Until abs(x)<=5; Write('Vvedite tochnost = '); ReadLn(d); WriteLn; GetTime(h,m,sec,time_start); Delay(10000); i:=1; j:=1; t_ch:=1; sum:=1; Write('1'); While abs(t_ch)>d do begin if (i mod 2)=0 then begin t_ch:=t_ch*sqr(x)/(i/2); if ((j mod 2)<=0) or ((j mod 2)>0) then begin sum:=sum+t_ch; Write('+',t_ch:2:4); end; j:=j+1; end; i:=i+1; end; GetTime(h,m,sec,time_end); time:=time_end-time_start; WriteLn; WriteLn; WriteLn('Tochnost dostignuta'); WriteLn; WriteLn('Summa dannogo ryada = ',sum:5:4,' s tochnostyu = ',d:2:4); WriteLn; WriteLn('Vremya programmi = ',time,' sotih cekundi'); ReadLn; END.
.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.