MLoop6

Условие задачи:

Вычислите с точностью [latex]\varepsilon[/latex] значение функции [latex]f\left( x \right) =\cos x[/latex] . При вычислениях допустимо использовать только арифметические операции.

Алгоритм решения:

Для решения данной задачи я использовал Ряд Маклорена:.
[latex]\cos x = 1-\frac {x^{2}}{2!}+\frac{x^{4}}{4!}-\cdots = \displaystyle\sum_{n=0}^{\infty}\frac{(-1)^{n} }{(2n)!}x^{ 2n },x\in{C}[/latex].

Тесты:

X   E Answer
1 0.0001 0.540278
1 0.000001 0.540303
-1 0.0001 0.540278
5 0.0001 0.283625

Код программы:

 

Объяснение Кода:

В коде используются 7 переменных а именно: [latex]x[/latex], [latex]x2[/latex], [latex]c[/latex], [latex]e[/latex],  [latex]n[/latex], [latex]f[/latex], [latex]z[/latex].
Переменная [latex]x[/latex] отвечает за [latex]x[/latex],   [latex]x2[/latex] за [latex]{ x }^{ n }[/latex],     [latex]c[/latex] за [latex]\cos x[/latex],  [latex]e[/latex] за [latex]\varepsilon[/latex] (epsilon-точность вычисления),  [latex]n[/latex] за порядковый номер,   [latex]f[/latex] за [latex]n![/latex]   и   [latex]z[/latex] за [latex]{ (-1) }^{ n }[/latex].

Ссылка на код в ideone

 

 

 

 

Радик Сиденко
Радик Сиденко

Latest posts by Радик Сиденко (see all)

3 thoughts on “MLoop6

  1. — Чтобы правильно записать [latex]\cos x[/latex] нужно написать \cos x
    — Вы злоупотребляете пробелами в формулах и в тоже время пропускаете их там, где они нужны. В результате самая большая формула у Вас не отображалась.
    — Эпсилон у Вас выглядит несколько необычно. Лучше так [latex]\varepsilon[/latex] \varepsilon.
    — Исправьте отступ в 19-й строке.
    — И самое главное — алгоритм нужно переделать. Проблема в том, что Вы вычисляете огромные числа в числителе и знаменателе только для того, чтобы потом разделить одно на другое. И показывал на занятиях, как решать подобные задачи. Нужно вычислить отношение очередного слагаемого к предыдущему (получится дробь с не очень большим числителем и знаменателем). Посмотрите, как это сделано для синуса здесь.

      • — Косинус Вы не везде исправили, посмотрите внимательно.
        — Я не против другого подхода, если он приемлем. В данном случае это не так. В программировании умение повторять «шаблонные» решения типовых задач, это важный навык. Когда задача будет сложнее вы сможете «блеснуть» новым эффективным алгоритмом.