MLoop 11

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

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

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

 

Тесты

Входные данные Выходные данные Арккосинус
e x arccos = ([latex]\pi[/latex]/2 — f) Арккосинус
0.000001 0.866 0.523651 0.5236495809
0.01 0.5 1.04727 1.0471975512
0.00000000000001 0.35 1.21323 1.2132252231
0.00001 0.99 0.141873 0.1415394733

 

Решение

Для того, чтобы представить функцию f\left( x \right) = \arccos x необходимо воспользоваться формулой Тейлора, а именно рядом Маклорена для арккосинуса. Она имеет следующий вид:

[latex]\arccos x=\frac{\pi}{2}-\sum_{n=1}^\infty\frac{(2n)!}{4^{n}(n!)^{2}(2n+1)}x^{2n+1}[/latex]

Чтобы при вычислениях использовать только арифметические операции необходимо преобразовать это выражение. Первый член данной суммы — [latex]x[/latex]. Нужно узнать на что нужно домножить первый элемент, чтобы получить следующий. Для этого следует найти, чему будет равно отношение [latex]\frac{a_{n+1}}{a_{n}}[/latex]. В результате мы получим следующее: [latex]\frac{x^{2}(2n+1)^{2}}{2(n+1)(2n+3)}[/latex].

В функции [latex]f[/latex] переменная [latex]p[/latex] — слагаемые нашей суммы, а изначально — первый элемент. Также, в начале мы присвоили переменной суммы значение первого элемента. Затем в цикле мы домножаем наше слагаемое на полученный ранее коэффициент и складываем его с суммой до тех пор, пока значение [latex]p[/latex] превышает значение заданной точности [latex]e[/latex]. В основной части программы мы лишь выводим разность [latex]\pi/2[/latex] и нашей суммы. Это и будет значение арккосинуса.

 

Код на ideone.com

Related Images: