Вопрос № 106071: Доброго времени суток! Нужна помощь в составлении такой программы:
найти сумму степенного ряда sinx = x - x3/3! + x5/5! -x7/7! + x9/9!...
Где x3 - x в третьей степени, 3! - факториал и т.д. Заранее благодарю.
..
Вопрос № 106.071
Доброго времени суток! Нужна помощь в составлении такой программы:
найти сумму степенного ряда sinx = x - x3/3! + x5/5! -x7/7! + x9/9!...
Где x3 - x в третьей степени, 3! - факториал и т.д. Заранее благодарю.
Ваша программа вообще не выдерживает ни какой критики, поскольку Вы неверно программно находили значение xn/n! (n=2k+1; k=1..∞).
Так что представляю Вам на суд свою: {$N+} {включаем математический сопроцессор для работы с вещественными числами}
var s,x,v,f:extended;
i,j,z:integer;
begin
write('x='); readln(x);
s:=0;
if x<>0 then
begin
s:=x; f:=1; i:=2; z:=-1;
v:=x*x*x; {переменная которая хранит значения xn}
repeat
f:=f*i*(i+1); {переменная хранит значения n!}
s:=s+z*v/f;
v:=v*x*x;
i:=i+2;
z:=-z; {переменная которая хранит знак дроби}
until (abs(s-sin(x)) < 0.0001); {вычисляем сумму до тех пор пока не достигнута точность 0,0001, чем меньше число точности тем более точный результат}
end;
writeln('s=',s:3:6); {выводим результат на экран}
readln;
end.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессор) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 19.10.2007, 20:05 Оценка за ответ: 5 Комментарий оценки: Спасибо!!!!!!!
Отвечает: Tribak
Здравствуйте, Work_stranger!
1ое что кидает в глаза это сама формула:
y:=y*(-sqr(x))/2*i*(2*i+1);
здесь Y умножается на дробь числитель у которой (-sqr(x)) ,знаменатель у дроби 2, а потом вся дробь умножается на i*(2*i+1);
надо добавить в формулу несколько скобок:
y:=y*(-sqr(x))/( 2*i*(2*i+1) )
или чтобы было бы виднее, y:=y*(-sqr(x))/ [ 2*i*(2*i+1) ], но это просто формула, а в паскаль надо вставлять предыдущую
Во 2ых, при 1ом же выполнении цикла в S окажеться x+1, так как в 1ой строчке, а так как ряд абослютно сходящийся то N член больше суммы оставшего ряда, следовательно, сумма ряда будет всегда больше 1, и цикл дальше должен просто зациклиться
запустил программу, она вылетела из-за того что в y записывается слишком огромное число
Ответ отправил: Tribak (статус: 4-ый класс)
Ответ отправлен: 19.10.2007, 20:15
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Work_stranger!
Смотрите приложение.
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!