Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2009, 02:13   #1
Рита Белова
Новичок
Джуниор
 
Регистрация: 05.12.2009
Сообщений: 2
По умолчанию Нужно посчитать сумму ряда. В программе ошибка. Пожалуйста помогите найти

Даны действительные числа x и eps ( х не равен 0, eps>0). Вычислить с точностью до eps сумму ряда
(-1)^k * x^(4k+3)/ ((2k+1)!*(4k+3))
Программу написала, но ответ, просчитаный мной не совпадает с ответом написаной програмы. Скажите что не правильно:
procedure TForm1.BitBtn2Click(Sender: TObject);
Var a,u,S,eps,x:Real;
i:Integer;
begin
x:=StrToFloat(Edit1.Text);
eps:=StrToFloat(Edit2.Text);
S:=0;
i:=0;
a:=x*x*x;
u:=x*x*x/3;
While abs(u)>=eps do
begin
S:=S+u;
i:=i+1;
a:=a*(-x*x*x*x/2*i/(2*i+1));
u:=a/(4*i+3);
end;
Edit3.Text:=FloatToStr(S);
end;
Рита Белова вне форума Ответить с цитированием
Старый 05.12.2009, 02:36   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Ошибка вот тут:
Код:
a := a * (-x*x*x*x/2*i/(2*i+1));
2 * i забыли в скобки заключить
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 05.12.2009, 02:51   #3
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Рита, вам не кажется, что вы не правильно считаете члены ряда.
Ваша формула:
Цитата:
a:=a*(-x*x*x*x/2*i/(2*i+1));
u:=a/(4*i+3);
идеально подходит для элемента i=1, но уже дальше считает неправильно.
Вам лучше составить функцию вычисления факториала.

И второе (говорю как учившийся на матмехе, может вам по-другому сказали): точность вычисляется разностью, т.е. (S от i+1) минус (S от i). Если разность меньше eps, значит указанная точность достигнута.
Voody вне форума Ответить с цитированием
Старый 05.12.2009, 03:06   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Voody, да вроде всё правильно
a0 = x^3; u0 = x^3 / 3
a1 = a0 * (-x^4) / ((2*1) * (2*1+1)) = - x^7 / 3!; u1 = -x^7 / (3! * 7)
a2 = a1 * (-x^4) / ((2*2) * (2*2+1)) = x ^ 11 / 5!; u2 = x^11 / (5! * 11)
и т.д.
А так как S := S + u; то S(i+1) - S(i) = u, что и стоит в условии
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 05.12.2009, 03:13   #5
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

о, тогда прошу прощения.))
Voody вне форума Ответить с цитированием
Старый 05.12.2009, 13:07   #6
Рита Белова
Новичок
Джуниор
 
Регистрация: 05.12.2009
Сообщений: 2
По умолчанию

Greblin, спасибо. Но все равно что-то не то получается, хотя ответ уже ближе к истине))
Рита Белова вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти сумму ряда 11111 Помощь студентам 14 01.11.2010 19:55
Необходимо посчитать сумму ряда в Delphi console QuadroX Помощь студентам 5 08.10.2009 18:06
Delphi вычислить сумму ряда,помогите пожалуйста... ANRJumper Помощь студентам 9 27.05.2009 13:09
Помогите плз в программе надо найти чей номер телю кончается на 10 и посчитать их Бубальгум Помощь студентам 0 05.05.2009 16:12
Найти сумму ряда с точностью e, если дан общий член этого ряда JiLiYa Общие вопросы C/C++ 2 18.02.2009 11:11