Помощь - Поиск - Пользователи - Календарь
Полная версия: Вычисление функций с заданной точностью
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
*Kirill*
Нужна помощь в вычислении функции с заданной точностью.

Необходимо разложить в ряд соответствующую функцию в ряд и по приведенной выше схеме вычисления определить значение функции для различных величин вводимой с экрана точности и измерить время вычисления значения функции.

Вычислить cos(-x*x) при х по модулю не более 1
мисс_граффити
1) разложи в ряд (чисто математически)
2) почитай FAQ - общие вопросы по математике.
*Kirill*
Это понятно, а вот как должен выглядеть текущий член ряда в программе (формула), который постоянно прибавляется к сумме?
Lapp
Если взять разложение в ряд Тейлора в х=0, то так:
Нажмите для просмотра прикрепленного файла
*Kirill*
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.

.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.