IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задачка на факториал, Помогите разобраться
сообщение
Сообщение #1


Гость






Здравствуйте! Помогите, пожалуйста, решить задачу.
Код

        n   2n-1
∞   (-1)   x                            -5
∑   −−−−−−−−−−−−    , E (эпсилон)=0,2*10    , |x|≤1
n=1   (2n)!

Извините за плохое оформление, так получилось.

Я пробовал решить:

Код

Program Factor;
Const e=1E-5;
Var n,x:Integer; Ai,S,Fact:Real; Minus:Boolean;
Begin
WriteLn('BBeDuTe 4ucLo');
 ReadLn(x);
 n:=1;
 Minus:=True;
 Fact:=1;
 S:=0;
 Ai:=0;
Repeat
 Fact:=Fact*2*n;
 Ai:=Exp((2*n-1)*Ln(x))/Fact;
 If Minus Then Ai:=Ai*(-1);
 S:=S+Ai;
 Minus:=Not Minus;
 n:=n+1;
Until
 Abs(Ai)<e;
Writeln('S = ',s);
Readln;
End.


Не пойму, где применить E (эпсилон)=0,2*10^(-5) , |x|≤1.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Не пойму, где применить E (эпсилон)

Ну так ты же применил его в Until (...) wink.gif

А вообще-то сумма ряда по-другому должна считаться:
const E = 1E-5;
var
s, next: double;
x: double;
n: integer;

begin
x := 0.975; { Ну, или запрашивать у пользователя... }
next := x / 2; s := - next;
n := 2;
Repeat
next := next * (sqr(x) / (pred(2*n)*(2*n)));
s := s + (1 - 2*Byte(Odd(n))) * next;
inc(n);
Until next < E;
writeln('s = ', s:10:6);

end.

Почитай еще вот это, там рассмотрено несколько разложений в ряды...
FAQ: Общие вопросы по математике -> Разложение функции в ряд
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Спасибо, что не оставили без внимания! Только можно попроще? Мы еще не проходили такие строки как например
Цитата
s := s + (1 - 2*Byte(Odd(n))) * next;

Вот.. unsure.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Строка
s := s + (1 - 2*Byte(Odd(n))) * next;
полностью аналогична вот этому:
if n mod 2 = 0 then s := s + next
else s := s - next;
Можешь заменить, и все будет так же работать...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Тогда получается, что эта строчка неверная
Цитата
next := next * (sqr(x) / (pred(2*n)*(2*n)));


Нужно ведь не просто квадратный корень вычислить, а x^(2n-1). Значит её нужно заменить на


next := next * (Exp((2*n-1)*Ln(x)) / (pred(2*n)*(2*n)));


Я правильно понял?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


Это не квадратный корень, а квадрат. Что бы получить следующее слагаемое, мы должны умножить предыдущее на x в квадрате и ещё что-то там. Обрати внимание
Цитата
next := next * (sqr(x) / (pred(2*n)*(2*n)));
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Да, простите за утренний тупняк-я имел ввиду не корень, а квадрат. Но проблема-то остатся: в числителе x в степени 2n-1. А я смотрю там для вычисления используется только Sqr(x). Даже если вместо -1 можно ислользовать Pred (хотя можно было разделить на х, т.к. х^-1=1/x), то в степени остается 2n! Или я чего-то не понимаю?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Warn, просыпайся окончательно, я вижу, ты еще не совсем проснулся wink.gif

Смотри, как изменяется числитель в зависимости от N (знак брать не будем, он учитывается отдельно)

n = 1: числитель = x
n = 2: числитель = x^3
n = 3: числитель = x^5
n = 4: числитель = x^7
n = 5: числитель = x^9
...

Чувствуешь закономерность? Просто домножаем предыдущий на x^2, и делим на (2n-1)*2n
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Спасибо всем, буду разбираться! smile.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.05.2024 17:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name