MLoop 10

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

Решение задачи:

Для нахождения значения функции  f\left( x \right) = \text{ch}x (гиперболический косинус) с точностью [latex]\varepsilon[/latex]  воспользуемся формулой Тейлора (разложение функции в бесконечную сумму степенных функций):[latex]chx=1+\frac{x^2}{2}+\frac{x^4}{4}+[/latex]…[latex]=\sum_{n=0}^{\infty}\frac{1}{(2n+1)!}\times x^{2n}[/latex]. [latex]x_n=\frac{1}{(2n+1)!}\times x^{2n}[/latex], тогда [latex]x_{n-1}=\frac{1}{(2(n-1)+1)!}\times x^{2(n-1)}[/latex]. Рекуррентное соотношение [latex]x_n[/latex] и [latex]x_{n-1}=[/latex][latex]\frac{x_n}{x_{n-1}}=\frac{x^2}{2n\times(2n-1)}[/latex].

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

Тесты:

Входные данные Выходные данные
x e ch(x)
9 0.01 4051.54
16 0.0001 4.44306e+06
0.85 0.00001 1.38353
0.11 0.001 1.00606

Здесь можно посмотреть решение задачи на ideone.com

5 thoughts on “MLoop 10

  1. Хорошо, зачтено условно. Нужно исправить следующие замечания.
    — Вы ни разу не упомянули как называется функция.
    — В цикле Вы сравниваете очередное слагаемое с эпсилон. А нужно сравнивать его модуль, т.к. при отрицательных значениях аргумента оно может быть отрицательным (т.е. меньше любого положительного эпсилон).
    — Тут я не уверен. Нужно было бы объединить строки 11 и 12. Но так гораздо понятнее. Ладно, сами решайте.

Добавить комментарий