Условие
Вычислите с точностью значение функции $latex f(x)=\csc x$. При вычислениях допустимо использовать только арифметические операции.
x | $latex \varepsilon$ | Результат |
42 | 0.3 | -8.09848e-05 |
8 | 0.15 | -0.0117188 |
55.5 | 0.04 | -3.50972e-055 |
-12 | 0.6 | 0.00347222 |
-82 | 0.0001 | -3.23677e-08 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package lab3; import java.util.Scanner; public class Lab3 { public static void main(String[] args) { Scanner scanIn = new Scanner(System.in); double x, e; x = scanIn.nextDouble(); e = scanIn.nextDouble(); double sum1 = x; // в случае, когда i=0 double sum2 = -x * x * x / 6; // в случае, когда i=1 for (int i = 2; Math.abs(1 / sum2 - 1 / sum1) >= e; i++) { sum1 = sum2; sum2 *= -x * x / ((2 * i) * (2 * i + 1)); } System.out.println("1 / sum2: " + 1 / sum2); } } |
Косеканс — это тригонометрическая функция, которою можно определить формулой $latex \csc x=\frac{1}{\sin x}$. Таким образом, мы можем разложить функцию в бесконечную сумму степенных функций, воспользовавшись формулой Тейлора. Получим, что $latex \sin x=x-\frac{{x}^{3}}{3!}+\frac{{x}^{5}}{5!}-\dots=\sum_{n=0}^{\propto}\frac{{-1}^{n}\times{x}^{2n+1}}{\left(2n+1\right)!}$. Слагаемые данной суммы являются геометрической прогрессией, знаменатель который можно найти по формуле $latex \frac{a_n}{a_{n-1}}=\frac{\frac{{-1}^{n}\times{a}^{2n+1}}{\left(2n+1 \right)!}}{\frac{{-1}^{n-1}\times{a}^{2n-1}}{\left(2n-1 \right)!}}=\frac{\left( -1\right){a}^{2}}{2n\times\left( 2n+1\right)}$ . Будем вычислять сумму до тех пор, пока разность -го и -го слагаемых будет больше заданной точности.