Математическая модель

Обозначим через p1 последовательные произведения нечетных чисел. Через р2 – последовательные произведения четных чисел. Поскольку в C++, есть стандартная функция для вычисления arcsin х, воспользуемся соотношением:

у = asin(x)

Аргументы:xпеременная вещественного типа, -1 < x < 1.

Результаты:summa – сумма членов ряда вещественного типа;

y – значение контрольной функции вещественного типа.

Промежуточные величины:

eps – константа, с которой сравнивается абсолютная величина текущего члена ряда: члены ряда представляют собой убывающую последовательность, поэтому согласно условию вычисление суммы членов ряда будет продолжаться до тех пор пока абсолютное значение текущего члена ряда не окажется меньше eps;

p1 – последовательные произведения нечетных чисел, вещественного типа;

р2 – последовательные произведения четных чисел, вещественного типа;

p – частное, получаемое при делении p1 на p2, вещественного типа;

n – номер члена ряда, целого типа;

u – текущий член ряда, вычисляемый по формуле , вещественного типа;

Замечание.Чтобы записать программу, используя цикл с постусловием, достаточно в приведенной ниже программе конструкцию while(abs(u)>=eps) {тело цикла}заменить на do {тело цикла} while(abs(u) >= eps);


 

2. Алгоритм 3. Программа
    // вычисление суммы членов ряда #include <iostream> #include <conio.h> #include <math.h>   using namespace std;   int main() {// описание и инициализация заданной точности double eps = 0.0001; // описание переменных, ввод х, начальные // установки double x, u, p1, p2, p; cout<<"Введите значение x: "; cin>>x; int n = 1; double summa = 0; u = x; p1 = 1; p2 = 2; // организация вычисления суммы членов ряда while(abs(u) > eps) { summa += u; p = p1/p2; u = p*pow(x, 2*n+1)/(2*n+1); n++; p1 = p1*(2*n-1); p2 = p2*2*n; } // вычисление значения контрольной функции double y = asin(x); // вывод результатов cout<<" Сумма данного ряда при x = "<<x<<", c точностью 0.0001, S = "<< summa<<endl; cout<<" Значение контрольной функции, у = "<<y;   _getch(); return 0; }