![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Warn |
![]()
Сообщение
#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. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Не пойму, где применить E (эпсилон) Ну так ты же применил его в Until (...) ![]() А вообще-то сумма ряда по-другому должна считаться: const E = 1E-5; Почитай еще вот это, там рассмотрено несколько разложений в ряды... FAQ: Общие вопросы по математике -> Разложение функции в ряд |
Warn |
![]()
Сообщение
#3
|
Гость ![]() |
Спасибо, что не оставили без внимания! Только можно попроще? Мы еще не проходили такие строки как например
Цитата s := s + (1 - 2*Byte(Odd(n))) * next; Вот.. ![]() |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Строка
s := s + (1 - 2*Byte(Odd(n))) * next;полностью аналогична вот этому: if n mod 2 = 0 then s := s + nextМожешь заменить, и все будет так же работать... |
Warn |
![]()
Сообщение
#5
|
Гость ![]() |
Тогда получается, что эта строчка неверная
Цитата next := next * (sqr(x) / (pred(2*n)*(2*n))); Нужно ведь не просто квадратный корень вычислить, а x^(2n-1). Значит её нужно заменить на
Я правильно понял? |
Atos |
![]()
Сообщение
#6
|
![]() Прогрессор ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Это не квадратный корень, а квадрат. Что бы получить следующее слагаемое, мы должны умножить предыдущее на x в квадрате и ещё что-то там. Обрати внимание
Цитата next := next * (sqr(x) / (pred(2*n)*(2*n))); |
Warn |
![]()
Сообщение
#7
|
Гость ![]() |
Да, простите за утренний тупняк-я имел ввиду не корень, а квадрат. Но проблема-то остатся: в числителе x в степени 2n-1. А я смотрю там для вычисления используется только Sqr(x). Даже если вместо -1 можно ислользовать Pred (хотя можно было разделить на х, т.к. х^-1=1/x), то в степени остается 2n! Или я чего-то не понимаю?
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Warn, просыпайся окончательно, я вижу, ты еще не совсем проснулся
![]() Смотри, как изменяется числитель в зависимости от 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 |
Warn |
![]()
Сообщение
#9
|
Гость ![]() |
Спасибо всем, буду разбираться!
![]() |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 1:08 |