MLoop 12

Задача. MLoop 12

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

Тесты

Входные данные Выходные данные
Точность Аргумент [latex]\arctan x[/latex] Погрешность
1 1 0.5 0.5 0.0363524
2 10 0.82 0.669293 0.0175249
3 100 0.77 0.652823 0.00335552
4 1000 1 0.666667 0.118731

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

Для запроса на выполнение нажать здесь.

Решение

Для того, чтобы найти приблизительное значение [latex]\arctan x[/latex] возпользуемся формулой ряда Тейлора: [latex]\arctan x = x — \frac{x^3}{3} + \frac{x^5}{5} -[/latex] … [latex]= \sum_{n=0}^{\infty}\frac{(-1)^n}{2n+1}\cdot x^{2n+1}[/latex] для всех [latex]|x| \le 1[/latex]. Представим каждый член суммы как [latex]a_n = \frac{(-1)^n\cdot a^{2n+1}}{2n+1}[/latex], и будем рекурсивно вычислять числитель данной дроби [latex]m_n = m_{n-1} \cdot (- a^2)[/latex]. Тогда, будем находить значение очередного члена ряда по формуле [latex]a_n = \frac{m_n}{2n + 1}[/latex], пока [latex]a_n > \frac{1}{\varepsilon}[/latex].

Related Images:

Ю1.13

Задача. Заданы уравнения двух пересекающихся прямых на плоскости: [latex]y=k_{1}+b_{1}[/latex]; [latex]y=k_{2}+b_{2}[/latex] . Найти (в градусах и минутах) угол между ними, используя формулу: [latex]\tan\varphi=\frac{(k_{2}-k_{1})}{(1+k_{2}*k_{1})} [/latex] .

 Значение k1  Значение k2 Ответ
 -6  -38  -7 градусов 57 минут (два целых отрицательных числа)
 13  15  0 градусов 35 минут (два целых числа)
 33.7  21.6  0 градусов 57 минут (два числа с запятой)
 1  1  0 градусов 0 минут (получаем 0 в числителе)
 1  -1  0 градусов (получаем ноль в знаменателе)

 

Для вычисления угла между двумя прямыми, зная тангенс, воспользуемся формулой [latex]\varphi=atan\tan\varphi[/latex]. Полученный результат переводим в градусы по формуле: [latex]\varphi=\frac{180*\varphi}{\Pi}[/latex] . Далее переведем результат в градусы и минуты. Для этого сначала найдем ближайшее целое число меньше полученного и запишем его, как градусы(при этом, если градусы отрицательные, то мы найдем ближайшее большее целое число, и запишем его, как градусы). После этого, от первоначального  числа отнимем полученное и переведем его в минуты( если градусы были отрицательными, то от полученного отнимем первоначальное). Для этого результат вычитания домножим на 60. Этот результат запишем в минуты. ( Примечание: если [latex]k2*k1=-1[/latex] , то ответ — 0 градусов )

Related Images: