1 / 1 / 0
Регистрация: 08.01.2018
Сообщений: 13
1

Вычисление суммы ряда

18.01.2018, 18:19. Показов 1268. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, как можно скорее

Короче говоря, у меня есть код одной программы, которая считает сумму ряда:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
f(x)=-\frac{1}{2}\begin{bmatrix}\sin ^2x+\frac{\sin ^4x}{2}+...+\frac{\sin ^{2k}x}{k}+...\end{bmatrix}<br />

но мне нужно вычислить сумму другого ряда:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
f(x)=1-\frac{x^2}{3!}+\frac{x^4}{5!}+\frac{x^6}{7!}+...+(-1)^k\,\frac{x^{2k}}{(2k+1)!}+...<br />

Основная программа одна и та же, просто нужно вставить вторую функцию в код, вместо первой, помогите пожалуйста

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var a,b,h,eps:real;
    x,func,chlen:real;
    k,num:integer;
begin
 writeln('Данная программа предназначена для вычисления таблицы значений');
 writeln('функции заданной в виде разложения в ряд.');
 writeln;
 write('Введите левую границу интервала A=');
 readln(a);
   repeat
     write('Введите правую границу интервала B>',a:0:1,' b=');
     readln(b);
   until b>a;
   repeat
    write('Введите величину шага изменения аргумента (h>0) h=');
     readln(h);
   until h>0;
   repeat
     write('Введите точность вычисления функции E>0 e=');
     readln(eps);
   until eps>0;
 writeln('Вы ввели: ');
 writeln('A=',a:1:5, ' B=',b:1:5,' H=',h:1:5,' E=',eps:1:5);
 writeln;
 writeln(' ---------------------------------------');
 writeln(' ¦Номер¦ X  ¦  f(x) ¦ Номер члена ряда ¦');
 writeln(' ---------------------------------------');
  x:=a;
  num:=0;
  repeat
    k:=0;
    func:=0;
    chlen:=sqr(sin(x));
    inc(num);
  repeat
    inc(k);
    c:=chlen*(sqr(sin(x))*k ) / (k + 1); //***** часть кода, которую нужно изменить
    func:=func+chlen;                    //*****
  until (abs(chlen)<eps);                //*****
 writeln(' ¦',num:5,'¦', x:3,' ¦ ',(-0.5)*func :5:2, ' ¦ ' ,k:16,' ¦');
    x:=x+h 
  until not (x<=b);
 writeln('==========================================');
end.
Выделил ту часть которую, как по мне, нужно изменить, но это не точно
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2018, 18:19
Ответы с готовыми решениями:

По формуле члена ряда с номером k . Вычисление суммы всех членов ряда
По заданной формуле (k+2)/(k³+4) члена ряда с номером k составить программу вычисления суммы всех...

Вычисление суммы ряда
Вычислите сумму ряда S=1+1/x+1/2x+1/3x+...+1/nx , для n введённого с клавиатуры помогите плизз...

Вычисление суммы ряда
Помогите составить блок-схему и программу суммы ряда: \frac{1}{1\times 1}+\frac{1}{2\times...

Вычисление суммы ряда
Помогите написать программу Y = 1 - 3 + 3^2 - 3^3 + . . . + 3^10

2
1 / 1 / 0
Регистрация: 08.01.2018
Сообщений: 13
18.01.2018, 18:27  [ТС] 2
Полное описание численного метода решения задачи

Пусть требуется приближённо вычислить значение функции, заданной в виде разложения в бесконечный ряд. Идея алгоритма вычисления суммы членов ряда состоит в следующем:

При вычислении каждого нового члена последовательности необходимо пользоваться рекуррентным выражением: ak+1=ckak; k=0,1,2,..., где ak - некоторый k-ый член ряда; ak+1 - следующий k+1-ый член ряда; ck - коэффициент, определяемый номером k.

Коэффициент ck можно найти, поделив ak+1 на ak. Мы получим следующее:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_k=\frac{\sin ^{2k}x}{k}<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a_{k+1}=\frac{\sin ^{2k+1}x}{k+1}<br />

Следовательно,

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
c_k=\frac{k\sin ^2x}{k+1}<br />
0
Модератор
9589 / 4909 / 3244
Регистрация: 17.08.2012
Сообщений: 15,346
19.01.2018, 03:26 3

Не по теме:

Цитата Сообщение от NathanBlack Посмотреть сообщение
как можно скорее
Когда это пишется, сразу же возникает вопрос: а, собственно, где Вы были, когда нужно было изучать материал по теме? Гульбанили? Бражничали? Торчали в интернете? Игроманили в танчики или доту?


Ваша "основная программа одна и та же" содержит ошибки, кроме того, весьма неряшливо написана.

Верно, часть которую, как по Вам, нужно изменить, это не точно.

На кой чёрт Вы выложили описание для метода решеня задач, да ещё и с ошибками, да ещё и в виде фотографии? Неоткуда скопипастить, печатайте врукопашную. Фотографии с текстом задания запрещены. Фотку я удалил, текст перепечатал в тему, исправил мелкие ошибки. Ляп насчёт номера k оставил на совести составителя задачи.

Не по теме:

Если будете и далее выкладывать фотки с текстом, я их не стану перепечатывать, а буду просто удалять или блокировать. При многократных рецидивах нарушения правил форума (не только насчёт фоток) с Вами могут поступить нехорошо.

Ну да ладно. Ваш ряд - это ряд Тейлора для ненормированного кардинального синуса sinc(x), который определяется следующим образом:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\operatorname{sinc}x=\begin{cases}\frac{\sin x}{x} &,\ x\neq 0 \\\\ 1 &,\ x=0 \end{cases}<br />

Ряд:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
S=\sum_{k=0}^{\infty }\frac{(-1)^kx^{2k}}{(2k+1)!}=\sum_{k=0}^{\infty }g_k<br />

Рекуррентное соотношение для членов ряда:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
g_0=1;\ \ \ g_k=\frac{(-1)^kx^{2k}}{(2k+1)!};\ \ \ g_{k-1}=\frac{(-1)^{k-1}x^{2k-2}}{(2k-1)!};<br />

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
c=\frac{g_k}{g_{k-1}}=\frac{\frac{(-1)^kx^{2k}}{(2k+1)!}}{\frac{(-1)^{k-1}x^{2k-2}}{(2k-1)!}}=\frac{-x^2}{2k(2k+1)}=\frac{-x^2}{4k(k+0.5)};\ \ \ \boxed{g_k=\frac{-x^2g_{k-1}}{4k(k+0.5)}}<br />

Можно ещё чуть упростить, приняв x:=x2, это избавит от возведения в квадрат на каждой итерации вычисления суммы ряда. Но добавит лишнюю переменную. Хотите - сделайте сами.

Программа, постарался написать в стиле приведённой Вами программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const
  hor = '+-----+------------+---------------+----------------+';
 
var
  a, b, h, eps, x, g, s: real;
  k, n: integer;
 
begin
  writeln('Данная программа предназначена для вычисления таблицы значений');
  writeln('функции sinc(x), заданной в виде разложения в ряд Тейлора.');
  writeln;
  write('Левая граница интервала,  A = ');
  readln(a);
  repeat
    write('Правая граница интервала B >= A, B = ');
    readln(b)
  until b >= a;
  repeat
    write('Шаг изменения аргумента h > 0,  h = ');
    readln(h)
  until h > 0;
  repeat
    write('Точность вычислений eps > 0,  eps = ');
    readln(eps)
  until eps > 0;
  writeln(hor);
  writeln('|     |            |               |Количество      |');
  writeln('|Номер|      X     |        S      |просуммированных|');
  writeln('|     |            |               |членов ряда     |');
  writeln(hor);
  x := a;
  n := 0;
  repeat
    k := 0;
    g := 1;
    s := g;
    while abs(g) >= eps do
      begin
        inc(k);
        g := -x / 4 * x / k * g / (k + 0.5);
        s := s + g
      end;
    inc(n);
    writeln('|', n:4, ' | ', x:10:5, ' | ', s:13:10, ' | ' , k + 1:10, '     |');
    x := x + h
  until x > b;
  writeln(hor);
  readln
end.
Для вычисления суммы членов ряда применил цикл с предусловием, поскольку нулевой член ряда вычислить рекуррентно не представляется возможным, а в случае применения цикла с постусловием, если ввести (несуразную) точность eps ≥ 1, то будет просуммирован лишний член ряда. Конечно, можно применить цикл с постусловием и сказать "и так сойдёт", но это уж сами, если пожелаете. Можно, конечно, для избавления от этой некорректности в цикл напихать всяких условий, но на деле это будет лишь эмуляция цикла с предусловием с помощью цикла с постусловием.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2018, 03:26
Помогаю со студенческими работами здесь

Вычисление суммы ряда
помогите пожалуйста!

Вычисление суммы ряда
Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента...

Вычисление суммы бесконечного ряда
Бесконечная сумма: 1-\frac{1}{x^{\,}}+\frac{1}{x^2}-\frac{1}{x^3}+...+\left(-\frac{1}{x^{\,}}...

Вычисление суммы знакопеременного ряда
Ребят помогите не могу решить задачу 1.2.1) Вычислить сумму для заданного n:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru