Обчислити експоненту із заданою точністю, завдання на pascal, програмування для початківців

Формулювання. Дано дійсне число x. Обчислити значення експоненційної функції (тобто, показовою функції e x, де e - математична константа,) в точці x із заданою точністю eps за допомогою ряду Тейлора:

Примітка 1: показовими називаються функції виду a x. де a - деяке дійсне число, x - незалежна змінна, що є показником ступеня.

Примітка 2: ряд Тейлора - це представлення функції у вигляді суми (можливо, нескінченної) деяких інших функцій за особливими правилами (які вимагають детального математичного обґрунтування, що в даному випадку нам не потрібно).

Рішення. Не заглиблюючись в теоретичну частину і вважаючи представлену формулу коректної, спробуємо розібратися в тому, що ж нам необхідно зробити для того, щоб вирішити цю задачу:

1) Нам дана деяка точка на осі Ox. і ми повинні обчислити значення функції e x в цій точці. Припустимо, якщо x = 4. то значення функції в цій точці дорівнюватиме;

2) При цьому обчислення необхідно реалізувати за допомогою заданої нескінченної формули, в якій додаток кожного чергового доданка збільшує точність результату;

3) Точність повинна скласти дійсне число eps. менше 1 - це означає, що коли чергове прибавляемое до суми доданок буде менше eps. то необхідно завершити обчислення і видати результат на екран. Ця умова обов'язково виконається, так як математично доведено, що кожне наступне доданок в ряді Тейлора менше попереднього, отже, нескінченна послідовність доданків - це нескінченно спадна послідовність.

Тепер розберемося з обчисленням самого ряду. Очевидно, що будь-яке його доданок, починаючи з 2-го, можна отримати з попереднього, помноживши його на x і розділивши на натуральне число, яке є номером поточного кроку при послідовному обчисленні (візьмемо до уваги те, що тоді кроки потрібно нумерувати з нуля). Значення x нам відомо на будь-якому етапі, а ось номер поточного кроку (будемо зберігати його в змінної n) доведеться фіксувати.

Створимо речову змінну expf (від англ. Exponentialfunction - експоненціальна функція) для накопичення суми доданків. Будемо вважати нульовою крок вже виконаним, так як перший доданок в ряду - константа 1, і в зв'язку з цим expf можна заздалегідь проинициализировать числом 1:

Так як ми починаємо обчислення не з нульового, а з першого кроку, то також потрібно форматувати значення n (числом 1, так як наступний крок буде першим) і p (в ній буде зберігатися значення останнього обчисленого доданка):

Тепер можна приступити до розробки циклу. З урахуванням заданої точності eps умовою його продовження буде abs (p)> = eps. де abs (p) - модуль числа p (модуль потрібен для того, щоб не виникло помилки, якщо введено негативне x).

У циклі необхідно помножити p на x і доділити його на поточний номер кроку n. щоб забезпечити реалізацію факторіала в знаменнику, після чого додати нове доданок p до результату expf і збільшити n для наступного кроку:

while abs (p)> = eps do begin

Після виходу з циклу потрібно здійснити форматований вивід результату expf на екран з деякою кількістю цифр після точки, наприклад, п'ятьма. Відзначимо, що якщо при цьому введене eps містило менше 5 цифр після точки, то сформоване значення expf буде, відповідно, неточним.