Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Ната95
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 8
#1

Создать блок-схему алгоритма вычисления суммы ряда

07.12.2014, 13:27. Просмотров 3468. Ответов 7
Метки нет (Все метки)

y=sinx=1-x^3/3!+x^5/5!-…+(-1)^n* (x^(2n+1))/(2n+1)!+...+
блок-схема
от чего оттолкнуться?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2014, 13:27
Ответы с готовыми решениями:

Pascal. Циклы. Составить блок-схему алгоритма и программу для вычисления суммы членов бесконечного ряда
Составить блок-схему алгоритма и программу для вычисления суммы членов...

построить блок-схему алгоритма вычисления выражения Очень нужно
помогите пожалуйста, нужно построить блок-схему алгоритма вычисления выражения...

Составить блок-схему алгоритма и программу вычисления недостающих параметров треугольника
Рассматривается треугольник АВС, для которого определен следующий набор...

Составить блок-схему алгоритма вычисления предполагаемой численности населения города
Население города H увеличивается на 5%ежегодно. В текущем году оно составляет...

Построить блок-схему алгоритма для вычисления значения функции и написать программу на языке pascal
Помогите решить такую задачу Построить блок-схему алгоритма для вычисления...

7
Cyborg Drone
Модератор
5273 / 3140 / 2440
Регистрация: 17.08.2012
Сообщений: 10,112
07.12.2014, 22:01 #2
Ни отчего не отталкиваться. Найти рекуррентное соотношение для членов ряда, затем создать блок-схему.

Имеется ряд

http://www.cyberforum.ru/cgi-bin/latex.cgi?y=\sin x=x-\frac{x^3}{3!}+\frac{x^5}{5!}-...+(-1)^n\frac{x^{2n+1}}{(2n+1)!}+...=\sum_{n=0}^\infty (-1)^n\frac{x^{2n+1}}{(2n+1)!}=\sum_{n=0}^\infty a_n

Находим рекуррентное соотношение:

http://www.cyberforum.ru/cgi-bin/latex.cgi?a_0=x\ ;\ \ a_n=(-1)^n\frac{x^{2n+1}}{(2n+1)!}\ ;

http://www.cyberforum.ru/cgi-bin/latex.cgi?a_{n+1}=(-1)^{n+1}\frac{x^{2(n+1)+1}}{(2(n+1)+1)!}=(-1)^{n+1}\frac{x^{2n+3}}{(2n+3)!}=\frac{-x^2}{(2n+2)(2n+3)}\cdot (-1)^n\frac{x^{2n+1}}{(2n+1)!}=\frac{-x^2}{(2n+2)(2n+3)}\cdot a_n

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

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

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

Уточните задание.

Добавлено через 14 минут
Да, не указал, по какой причине в данной задаче требуется нахождение рекуррентного соотношения. Больше, чем 22! на компьютере вычислить проблематично, значение факториала, больше, чем 22! не помещается в разрядную сетку компьютера. То есть, при вычислении членов ряда без применения рекуррентного соотношения в Вашем случае нельзя будет просуммировать с гарантированной точностью более 10 членов ряда.
0
Ната95
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 8
11.12.2014, 18:15  [ТС] #3
Вычислить с точность эпсолент)

Добавлено через 1 минуту
Понимаешь)
Дано вычислить с точностью эпсолент)
И эта вот последовательность)
И типо сделайте блок-схему)
0
Cyborg Drone
Модератор
5273 / 3140 / 2440
Регистрация: 17.08.2012
Сообщений: 10,112
12.12.2014, 03:16 #4
Цитата Сообщение от Ната95 Посмотреть сообщение
эпсолент
Греческая буква ε по русски читается "эпсилон". Теперь почти всё ясно. Так как имеется ряд Тейлора (в данном случае выражающий функцию sin(x)), вычисления можно прекратить, когда модуль очередного члена ряда будет меньше ε. Буду считать, что данные вводятся с клавиатуры, выводятся на дисплей. Составляем блок-схему.

Создать блок-схему алгоритма вычисления суммы ряда


Программа по блок-схеме:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var x, eps, y, a: real;
    n: integer;
begin
  write('   eps = ');
  readln(eps);
  write('     x = ');
  readln(x);
  n := 0;
  a := x;
  y := a;
  repeat
    a := -a * x * x / (2 * n + 2) / (2 * n + 3);
    y := y + a;
    inc(n)
  until abs(a) < eps;
  writeln('  y(x) = ', y:0:10);
  writeln('sin(x) = ', sin(x):0:10);
  readln
end.
Для сдачи зачёта пойдёт. Но программа имеет недостатки. Ничто не мешает ввести ε ≤ 0. В этом случае цикл не прекратится никогда. Следовательно, при вводе нужно проверять, что ε > 0, и не давать ввести некорректное значение. И это ещё не всё. При отладке выясняется, что при больших x (где-то x > 35) программа безбожно врёт. Это происходит из-за усечения чисел с плавающей точкой. Любое число в компьютере может быть представлено ограниченным количеством разрядов. При больших "x" сначала сумма "y" быстро растёт, и настаёт момент, что "y" перестаёт изменяться, так как "a" меньше младшего разряда "y". Наглядный пример:
Код
1234567890.12345       - было
+
         0.0000000001 - прибавляем
---------------------
1234567890.1234500001 - такая сумма должна получится, 20 значащих разрядов
но компьютер делает усечение до (например) 15 значащих разрядов
1234567890.12345      - всё, труба, число не изменилось
И что же делать? Есть способ. sin(x) - функция периодическая, и можно от этого самого "x" вычесть целое число периодов так, чтобы "x" принял значение, допустим, в диапазоне ±2π. Ну, например, вычислить дробную часть от x / 2 / π, и умножить её на 2π. Вот алгоритм и программа, учитывающие вышесказанное, можно вводить хоть x = 1000000, ошибки особенной не возникнет. Также эта версия не позволяет ввести ε ≤ 0:

Создать блок-схему алгоритма вычисления суммы ряда


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var x, eps, y, a: real;
    n: integer;
begin
  repeat
    write('   eps = ');
    readln(eps);
    if eps <= 0 then writeln('Error: eps <= 0, reenter.')
  until eps > 0;
  write('     x = ');
  readln(x);
  x := frac(x / 2 / pi) * 2 * pi;
  n := 0;
  a := x;
  y := a;
  repeat
    a := -a * x * x / (2 * n + 2) / (2 * n + 3);
    y := y + a;
    inc(n)
  until abs(a) < eps;
  writeln('  y(x) = ', y:0:10);
  writeln('sin(x) = ', sin(x):0:10);
  readln
end.
Если сумеете преподавателю объяснить, почему так сделали, отличная оценка обеспечена.
0
Cyborg Drone
Модератор
5273 / 3140 / 2440
Регистрация: 17.08.2012
Сообщений: 10,112
12.12.2014, 03:28 #5

Не по теме:

Цитата Сообщение от Ната95 Посмотреть сообщение
Понимаешь)
Вы девушка, правильно я понимаю, исходя из ника? Многие могут обидеться на столь панибратское обращение. Я не обиделся. Но: Вы мне в дочки годитесь, а я с Вами брудершафта не пил.



Добавлено через 3 минуты
Да, чуть не забыл. У Вас в ряде ошибка. Должно быть

http://www.cyberforum.ru/cgi-bin/latex.cgi?y=\sin x=x-\frac{x^3}{3!}+\frac{x^5}{5!}-...

и, естественно, должно быть a0=x. Вчера ночью что-то этот момент я проглядел. В сообщениях, алгоритмах и программах всё исправлено.
0
JokeR.BY
12.12.2014, 03:34
  #6

Не по теме:

ото прорвало =-O

0
Cyborg Drone
Модератор
5273 / 3140 / 2440
Регистрация: 17.08.2012
Сообщений: 10,112
12.12.2014, 03:40 #7
И ещё. Может быть, блок-схему подрихтовать придётся: зависит от требований Вашего учебного заведения к оформлению блок-схем.

Добавлено через 27 секунд
JokeR.BY, люблю подробные ответы.
0
Ната95
0 / 0 / 0
Регистрация: 07.12.2014
Сообщений: 8
13.12.2014, 12:07  [ТС] #8
Извините ,спасибооо

Добавлено через 53 секунды
Вы шикарны спасибо!
0
13.12.2014, 12:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2014, 12:07

Написать программу и создать блок-схему вычисления функции в заданной точке
Составить программу для нахождения значение функции в точке а. Значение а...

Составить блок – схему алгоритма и определить, что выводится в результате выполнения следующего алгоритма
Всем привет. Помогите плиз. Составить блок – схему алгоритма и определить, что...

Построить блок-схему алгоритма
есть готовый код(помогли), нужно построить по нему блок-схему алгоритма. Очень...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru