Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Задача № 50. Вычислить экспоненту с заданной точностью





Формулировка. Дано действительное число x. Вычислить значение экспоненциальной функции (то есть, показательной функции ex, где e – математическая константа, ) в точке x с заданной точностью eps с помощью ряда Тейлора:

Примечание 1: показательными называются функции вида ax, где a – некоторое действительное число, x – независимая переменная, являющаяся показателем степени.

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

Решение. Не вникая в теоретическую часть и полагая представленную формулу корректной, попробуем разобраться в том, что же нам необходимо сделать для того, чтобы решить эту задачу:

1) Нам дана некоторая точка на оси Ox, и мы должны вычислить значение функции ex в этой точке. Допустим, если x = 4, то значение функции в этой точке будет равно ;

2) При этом вычисление необходимо реализовать с помощью заданной бесконечной формулы, в которой прибавление каждого очередного слагаемого увеличивает точность результата;

3) Точность должна составить вещественное число eps, меньшее 1 – это означает, что когда очередное прибавляемое к сумме слагаемое будет меньше eps, то необходимо завершить вычисление и выдать результат на экран. Это условие обязательно выполнится, так как математически доказано, что каждое следующее слагаемое в ряде Тейлора меньше предыдущего, следовательно, бесконечная последовательность слагаемых – это бесконечно убывающая последовательность.

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

Создадим вещественную переменную expf (от англ. exponential function – экспоненциальная функция) для накопления суммы слагаемых. Будем считать нулевой шаг уже выполненным, так как первое слагаемое в ряду – константа 1, и в связи с этим expf можно заранее проинициализировать числом 1:

expf:= 1;

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

n:= 1;

p:= 1;

Теперь можно приступить к разработке цикла. С учетом заданной точности eps условием его продолжения будет abs(p) >= eps, где abs(p) – модуль числа p (модуль нужен для того, чтобы не возникло ошибки, если введено отрицательное x).

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

while abs(p) >= eps do begin

p:= p * x / n;

expf:= expf + p;

inc(n)

end;

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

Код:

1. program ExpFunc; 2. 3. var 4. x, eps, expf, p: real; 5. n: word; 6. 7. begin 8. readln(x, eps); 9. expf:= 1; 10. n:= 1; 11. p:= 1; 12. while abs(p) >= eps do begin 13. p:= p * x / n; 14. expf:= expf + p; 15. inc(n) 16. end; 17. writeln(expf:0:5) 18. end.

Содержание

Предисловие от автора. 1

Глава 1. Линейные алгоритмы.. 1

Задача № 1. Вывести на экран сообщение «Hello World!». 1

Задача № 2. Вывести на экран три числа в порядке, обратном вводу. 2

Задача № 3. Вывести на экран квадрат введенного числа. 3

Задача № 4. Получить реверсную запись трехзначного числа. 3

Задача № 5. Посчитать количество единичных битов числа. 5

Глава 2. Условные операторы.. 7

Задача № 6. Вывести на экран наибольшее из двух чисел. 7

Задача № 7. Вывести на экран наибольшее из трех чисел. 8

Задача № 8. Вывести название дня недели по его номеру. 9

Задача № 9. Проверить, является ли четырехзначное число палиндромом.. 9

Задача № 10. Проверить, является ли четырехзначное число счастливым билетом.. 11

Задача № 11. Проверить, является ли двоичное представление числа палиндромом.. 12

Задача № 12. Решить квадратное уравнение. 14

Глава 3. Циклы.. 16

Задача № 13. Вывести на экран все натуральные числа до заданного. 16

Задача № 14. Найти наибольший нетривиальный делитель натурального числа. 17

Задача № 15. Найти наименьший нетривиальный делитель натурального числа. 18

Задача № 16. Подсчитать общее число делителей натурального числа. 18

Задача № 17. Проверить, является ли заданное натуральное число простым.. 19

Задача № 18. Вывести на экран все простые числа до заданного. 19

Задача № 19. Вывести на экран первых n простых чисел. 21

Задача № 20. Проверить, является ли заданное натуральное число совершенным.. 24

Задача № 21. Проверить, являются ли два натуральных числа дружественными. 24

Задача № 22. Найти наибольший общий делитель двух натуральных чисел. 26

Задача № 23. Найти наименьшее общее кратное двух натуральных чисел. 27

Задача № 24. Вычислить xn 28

Задача № 25. Вычислить xn по алгоритму быстрого возведения в степень. 29

Задача № 26. Решить квадратное уравнение заданного вида с параметром.. 30

Задача № 27. Вычислить значение многочлена в точке. 31

Задача № 28. Вычислить факториал. 32

Задача № 29. Вычислить число сочетаний из n по k. 33

Задача № 30. Вывести таблицу квадратов и кубов всех натуральных чисел до n. 34

Задача № 31. Сформировать реверсную запись заданного числа. 36

Задача № 32. Проверить монотонность последовательности цифр числа. 36

Задача № 33. Получить каноническое разложение числа на простые сомножители. 39

Задача № 34. Сформировать число из двух заданных чередованием разрядов. 40

Задача № 35. Вывести на экран x, записанное в системе счисления с основанием n. 42

Задача № 36. Найти наименьший нетривиальный делитель двух заданных чисел. 43

Задача № 37. Проверить, является ли натуральное число счастливым билетом.. 44

Задача № 38. Проверить, является ли натуральное число палиндромом.. 46

Задача № 39. Проверить, является ли натуральное число степенью двойки. 47

Задача № 40. Вывести на экран произведение четных элементов последовательности. 49

Задача № 41. Вывести на экран произведение двузначных элементов последовательности, которые делятся на заданное число. 50

Задача № 42. Найти количество простых членов последовательности. 51

Задача № 43. Проверить, начинается ли каждый из членов последовательности с цифры, на которую оканчивается предыдущий. 52

Задача № 44. Проверить, является ли последовательность пилообразной. 54

Задача № 45. Проверить, является ли последовательность строго монотонной. 57

Задача № 46. Вывести на экран n-ное число Фибоначчи. 59

Задача № 47. Вывести на экран сумму чисел Фибоначчи до n-ного включительно. 61

Задача № 48. Вывести на экран все числа Фибоначчи до n-ного включительно. 62

Задача № 49. Проверить баланс круглых скобок в символьном выражении. 63

Задача № 50. Вычислить экспоненту с заданной точностью.. 65

 

Date: 2015-11-14; view: 1043; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию