Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 1
Регистрация: 28.09.2013
Сообщений: 116
1

Прогамма вычисления суммы ряда, в чем может быть ошибка?

23.11.2016, 21:08. Показов 519. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
создать проект для вычисления выражения S с заданной точностью ε.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program bars;
const eps=0.000001;
var s,x:real;
i:integer;
begin
writeln('Введите число Х=');
readln(x);
writeln('Введите I=');
readln(i);
s:=0;
i:=1;
while s>eps do begin
s:=s+(power((-1),(i+1))*exp((2*i+1)*ln(x)))/(4*i*i-1);
i:=i+1;
end;
writeln(s:0:8);
end.
https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
S=\frac{x^3}{3}-\frac{x^5}{15}+...+(-1)^{n+1}\,\frac{x^{2n+1}}{4n^2-1}+...<br />

ε = 10-5; x = 0.3
Ответ: S=0.008838
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2016, 21:08
Ответы с готовыми решениями:

При выполнении вычисления появляется ошибка. В чем может быть проблема
Здравствуйте, при выполнении данного вычисления: d=0.0025; I=35; tv=30; r=1.2*10^-6;...

В чем может быть ошибка?
Не корректно получаются запросы с условием по сумме и интерактивный (любой), либо пусто выдает либо...

В чем может быть ошибка
Цель работы состоит в том чтобы создать электронный альбом. Не удается исправить ошибку, проблема в...

В чём может быть ошибка
Здравствуйте, помогите пожалуйста решить проблемму: Сайт нормально работал в течении года, в том...

1
Модератор
9860 / 5230 / 3304
Регистрация: 17.08.2012
Сообщений: 15,998
25.11.2016, 23:03 2
BARS08, Ваша программа состоит в основном из ошибок.
  • X имеет право быть отрицательным (просто табу недостаточно), тогда ln(x) вызовет ошибку, мало того, если x будет находиться вне радиуса сходимости ряда, будет переполнение, короче, проверка при вводе обязательна.
  • Какие мысли привели Вас к тому, что i надо вводить?
  • С точностью нужно сравнивать не s, а модуль очередного члена ряда
  • Непосредственное возведение в степень, перемножение целых чисел, или, например, непосредственное вычисление факториала может легко вызвать переполнение, лучше использовать рекуррентное соотношение для членов ряда

Найдём рекуррентное соотношение для членов ряда.

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
S=\sum_{n=1}^{\infty}\frac{(-1)^{n+1}x^{2n+1}}{4n^2-1}=\sum_{n=1}^{\infty}a_n<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_1=\frac{x^3}{3};\ \ \ a_n=\frac{(-1)^{n+1}x^{2n+1}}{4n^2-1}=k\cdot a_{n-1};<br />

Опираясь на то, что 4n2-1=(2n-1)(2n+1), запишем:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
k=\frac{a_n}{a_{n-1}}=\frac{(-1)^{n+1}x^{2n+1}(2n-3)(2n-1)}{(-1)^nx^{2n-1}(2n-1)(2n+1)}=\frac{-x^2(2n-3)}{2n+1}=\frac{-x^2(n-1.5)}{n+0.5}<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_n=k\cdot a_{n-1}=\left. \frac{-x^2(n-1.5)a_{n-1}}{n+0.5}=\right|_{x:=x^2}=\frac{-x(n-1.5)a_{n-1}}{n+0.5}<br />

Найдём интервал сходимости ряда.

Если отбросить x2, можно заметить, что k - это ни что иное, как обратное отношение числовых коэффициентов ряда, подходящее для нахождения радиуса сходимости ряда. Тогда радиус сходимости будет

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\lim_{n \rightarrow \infty}\frac{n+0.5}{n-1.5}=\lim_{n \rightarrow \infty}\frac{1+0.5/n}{1-1.5/n}=1<br />

Ряд сходится абсолютно в интервале (-1; 1).

Проверим сходимость ряда на границах этого интервала.

Пусть x = 1, тогда получаем ряд

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\sum \frac{(-1)^{n+1}1^{2n+1}}{4n^{2}-1 } = \sum \frac{(-1)^{n+1}}{4n^2-1}<br />

Знакочередующийся ряд, исследуем его по признакам Лейбница.

- Первый признак Лейбница выполняется: модуль каждого последующего члена ряда меньше модуля предыдущего члена ряда.
- Второй признак Лейбница выполняется, предел члена ряда стремится к 0

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\lim_{n \rightarrow \infty}\frac{(-1)^{n+1}}{4n^2-1}=0<br />

Ряд сходится, значит, x=1 - точка сходимости.

Теперь пусть x=-1, получаем ряд

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\sum \frac{(-1)^{n+1}(-1)^{2n+1}}{4n^{2}-1} = \sum \frac{(-1)^{3n+2}}{4n^2-1}<br />

Знакочередующийся ряд, аналогично предыдущему ряду - сходится.

Таким образом, интервал сходимости ряда [-1; 1].

Всё, что необходимо, найдено, пишем программу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const eps = 1e-5;
var a, s, x: double;
    n: integer;
begin
  repeat
    write('|x| <= 1;   x = ');
    readln(x)
  until abs(x) <= 1;
  a := x * x * x / 3;
  x := x * x;
  s := a;
  n := 1;
  while abs(a) >= eps do
    begin
      inc(n);
      a := -x * a / (n + 0.5) * (n - 1.5);
      s := s + a
    end;
  writeln('S = ', s:0:8);
  readln
end.
Добавлено через 11 минут
Да, и ответ получается 0.00884425... В принципе, в 10-5 входит... Думаю, Ваш результат является менее точным, поскольку, скорее всего, был найден непосредственным вычислением всяких там степеней, отчего при многократных перемножениях и сложениях накапливаются ошибки.

Вообще говоря, при x=0.3 сумма этого ряда с точностью до ε=10-22 будет S=0.0088439529904375641669... Получается, моя программа точнее считает, чем то, чем был подсчитан данный Вам "образцовый" ответ.
2
25.11.2016, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2016, 23:03
Помогаю со студенческими работами здесь

В чём может быть ошибка?
Не пойму в чём ошибка в программе: #include &lt;iostream&gt; using namespace std; ...

В чём может быть ошибка?
Пишет, что нету точки с запятой. Где??? #include &lt;iostream&gt; #include &lt;string&gt; using...

В чём может быть ошибка?
Прога не открывает файл Дан файл f, содержащий сведения о веществах, указывается название...

В чем может быть ошибка?
function megaDate($timestamp) { global $tpl, $server_time; $diff = time() - $timestamp; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru