Консультация № 180512
31.10.2010, 02:00
0.00 руб.
0 6 1
Здравствуйте уважаемые эксперты, помогите мне написать программу на паскаль, я не совсем понял что требуется, но думаю что надо: Вычислить частичную сумму сходящегося бесконечного ряда разложения функции. Хоть и не уверен т.к вот само задание:
Рассматриваются ряды f(x) = Σi = 0...∞ ui. Для каждого индивидуального задания определены вид элемента ряда ui, функция , область сходимости D, если D ≠ R.

u(i) = xi / i!; f(x) = exp(x).

Заранее спасибо!

Обсуждение

давно
Профессор
401888
1232
31.10.2010, 07:13
общий
это ответ
Здравствуйте, Назаров Андрей Викторович!
Код программы в приложении.

Приложение:
Код:
uses crt;
var x,u,ui,e,t:real;
i:integer;
begin
clrscr;
writeln('Приближенное вычисление значения функции F(x)=exp(x)');
writeln('разложением в степенной ряд U(i)=x^i/i! с точностью 10^-4');
write('x=');
readln(x);
e:=0.0001; {заданная точность вычислений}
i:=0; {нулевой индекс}
u:=0; {начальное значение итоговой суммы}
t:=1;{знчение члена ряда при i=0}
ui:=1; {текущая сумма}
while abs(t)>=e do {пока модуль очердного члена ряда не меньше точности}
begin
i:=i+1;{следующий член}
u:=ui; {запомним сумму}
t:=t*x/i;{домножаем на х(возводим в степень) и делим на индекс(обратный факториал)}
ui:=ui+t;{суммируем}
end;
writeln('U=',u:0:5,' достигнутая точность=',abs(u-ui):0:5);
write('Вычисленное значение функции=',exp(x):0:5);
readln
end.
давно
Мастер-Эксперт
319965
1463
31.10.2010, 09:17
общий
Пупорев Юрий Борисович:
1)
пока модуль разности соседних сумм не меньше точности

Это ошибочная оценка точности, так как при произвольном x ряд не является знакопеременным.

2)
abs(u-ui)>=e

Эта величина равна abs(t) поэтому Вы делаете лишнее вычитание.
давно
Профессор
401888
1232
31.10.2010, 09:33
общий
Исправил код.
Неизвестный
31.10.2010, 11:59
общий
Спасибо огромное, а вы не могли бы написать как это вычисляется от руки, т.е не на компьютере, чтобы лучше понять что мы делаем
давно
Профессор
401888
1232
31.10.2010, 12:18
общий
Уважаемый Андрей Викторович! А Вот разобрать на бумажке, это как раз Вы должны, ибо это уже и не программирование, а голая арифметика. Если Вы не учили и не знаете что такое рекуррентные отношения, то устраивать ликбез нет никакого желания. Неужели не видно, что
i=1 t=x/1
i=2 t=x*x/(1*2)
i=3 t=x*x*x/(1*2*3)
и т.д.
все это суммируется. Как только значение x^n/i! становится меньше заданной точности, вычисления прекращаются.
Неизвестный
31.10.2010, 14:44
общий
к сожалению нет...
спасибо, попытаюсь сам разобраться
Форма ответа