В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Amelka06
Amelka06
21.12.2021 05:17 •  Информатика

РЕБЯТ УМОЛЯЮ

Задание 3,4,5

Показать ответ
Ответ:
Rusynyk
Rusynyk
03.02.2021 17:57

Объяснение:

Перед непосредственно кодом нужно объяснить немного математики, а конкретно формирование суммы ряда.

Начнём с того, что в самом задании логическая ошибка. n-ый член ряда вычисляется по формуле

p_n=(-1)^n\frac{x^{2n}}{(2n)!}

но в случае, если n=1, должно получится

p_1=(-1)^1\frac{x^{2}}{(2)!}=-\frac{x^{2}}{2!}

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

Далее, каждый раз пересчитывать факториал до n-ного члена нерационально, поэтому нам нужно вывести формулу, которая будет считать следующий член ряда из предыдущего. В нашем случае мы должны будем постоянно домножать предыдущий член на некоторую постоянную функцию. Вот и найдём её. Во-первых, нам нужно обеспечить чередование знака, то есть если наша "константа" будет отрицательной, этого будет достаточно. Во-вторых, числитель дроби каждый раз увеличивается в x² раз, значит на это значение мы и будем домножать. Уже получилось -x². И в-третьих, знаменатель и тут нужно было быть чуть внимательнее, поскольку (2n)! ≠ (2(n-1))! * 2n. Выражение имеет другой вид (2n)! = (2(n-1))!*(2n-1)*2n

Итого имеем формулу n-ного члена в зависимости от n-1

p_n=p_{n-1}(-1)\frac{x^{2}}{2n(2n-1)}

Вот эту формулу мы и будем использовать для нахождения членов последовательности начиная со второго.

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

#include <iostream>

#include <iomanip>

#include <math.h>

using namespace std;

int main()

{

double a = 0.1, b=1.0, h=(b-a)/10.0, S,Y,x,p;

int i, n = 80;

x = a;

do

{

 p = 1;

 S = p;

 for (i = 1; i <= n; i++)

 {

  if (i == 1) p *= pow(x, 2.0) / 2;

  else p *= (-1) * pow(x, 2.0) / (2*i*(2*i - 1.0));

  S += p;

 }

 Y = cos(x);

 cout << setw(15) << x << setw(15) << Y << setw(15) << S << endl;

 x += h;

}  

while (x <= b + h / 2.0);

system("pause");

}


Не Сходятся значения Y и S4 вариант
0,0(0 оценок)
Ответ:
Хурем
Хурем
09.07.2020 21:35

Метод поділу на підзадачі полягає в розбитті великої задачі на менші підзадачі, які можуть бути вирішені окремо, а потім об'єднані в загальне розв'язок. Цей підхід дозволяє зменшити складність задачі, спрощує її розв'язання та зменшує кількість помилок. Крім того, метод поділу на підзадачі дозволяє розподілити роботу між декількома людьми або командами, що прискорює вирішення задачі та збільшує ймовірність успіху. Наприклад, для вирішення задачі розробки програмного продукту може бути розбита на підзадачі розробки інтерфейсу, функціоналу, відладки та тестування, які можуть бути вирішені окремо, а потім об'єднані в один продукт.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота