Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/47: Рейтинг темы: голосов - 47, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 17.03.2016
Сообщений: 8
1

Вычислить e^x с заданной точностью по разложению в ряд

17.03.2016, 22:36. Показов 8580. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
буду благодарен за написание программы для этой задачи

Используя представление
https://www.cyberforum.ru/cgi-bin/latex.cgi?e^x=1+\frac{x}{1}+\frac{x^2}{2!}+\frac{x^3}{3!}+... (это формула 3,3)
вычислить значение https://www.cyberforum.ru/cgi-bin/latex.cgi?e^x для указанного значения x0 с точностью https://www.cyberforum.ru/cgi-bin/latex.cgi?\epsilon = 0,001.

Замечание:очередной член https://www.cyberforum.ru/cgi-bin/latex.cgi?a_n=x^n/n! в сумме (3) выражается через предыдущий член https://www.cyberforum.ru/cgi-bin/latex.cgi?a_{n-1}, \; n=1,2,... по следующей формуле https://www.cyberforum.ru/cgi-bin/latex.cgi?a_n=\frac{x \cdot a_{n-1}}{n}.

Если в формуле 3,3 |x|>1, то полагая https://www.cyberforum.ru/cgi-bin/latex.cgi?x=[x]+\xi, где [x]- целая часть х, нужно воспользоваться формулой https://www.cyberforum.ru/cgi-bin/latex.cgi?e^x=e^{[x]} e^\xi. точность вычисления считается выполненной , если https://www.cyberforum.ru/cgi-bin/latex.cgi?|\xi^n/n!|<\epsilon.

Добавлено через 3 часа 31 минуту
Даже в подобных ничего не нахожу,выручайте
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2016, 22:36
Ответы с готовыми решениями:

Вычислить cos x по разложению с заданной точностью
Помогите перевести и подправить программу с паскаля на с++ :cry: Суть в том, что не точно читает,...

Вычислить cos x по разложению с заданной точностью.
Помогите пожалуйста, совершенно не понимаю ни задания, ни как его осуществить... Вычислить cos x...

Как вычислить ряд с заданной точностью.
Вычислить значение &quot;y&quot;. Подсчет вести до тех пор, пока очередной член рядя не будет по модулю &lt;...

Вычислить sh(x) с заданной точностью разложением в ряд
Помогите пожалуйста с кодом. Видимо какая то ошибка не дает выводить больше значений в listBox ...

1
Модератор
9874 / 5242 / 3306
Регистрация: 17.08.2012
Сообщений: 16,011
21.03.2016, 19:40 2
Лучший ответ Сообщение было отмечено Дмитрий16611 как решение

Решение

Имеется ввиду ряд Тейлора

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
e^x=\sum_{n=0}^\infty \frac{x^n}{n!}<br />

В принципе, ничего особенного.

Допустим, есть числа a, b, c, для простоты будем считать, что каждое из них не равно 0.
Тогда верно такое тождество: ab+c=abac.

Любое вещественное число можно представить в виде целой и дробной части. Для простоты будем считать, что целая и дробная часть числа вычисляется в смысле Гаусса, а не в смысле Айверсона, то есть, будем считать целой частью числа его запись до десятичной точки (без самой точки), а дробной частью - запись после десятичной точки (включая точку), дополненной слева нулём и знаком числа.
То есть, например, -2.35=(-2)+(-0.35), иначе [-2.35]=-2, {-2.35}=-0.35.

Теперь пусть a=e=2.718281828459045..., b=[x], c=ξ={x}. По вышеуказанному тождеству, получаем
ex=e[x]+ξ=e[x]eξ.

Только вот ведь какое дело... Указанный Вами ряд Тейлора для экспоненты сходится при любом x. Теперь вопрос: а на кой ляд Вам пудрят мозг разбиением x на целую и дробную части? Есть подозрение, что об этом Вам ничегошеньки не рассказывали, поэтому рассказываю.

Количество значащих разрядов в компьютерном представлении числа ограничено, грубо говоря, 20 цифрами. При достаточно больших по модулю отрицательных x при увеличении n функция y=|xn| вначале растёт быстрее, чем n!, и может возникнуть ситуация, когда очередной член ряда меньше, чем вес младшего значащего разряда частичной суммы ряда. Как результат, начиная с некоторого члена ряда, сумма перестанет изменяться, и поэтому результат будет неверным.

Если разбить x на целую и дробную часть, то e[x] можно вычислить с помощью предопределённого цикла, потому что [x] - целое число, а eξ вычислить с помощью суммирования ряда с применением приведённого Вами рекуррентного соотношения an=x∙an-1/n!, причём описанного выше эффекта потери точности не возникнет ввиду того, что ξ гарантированно маленькое.

Так... Что ещё? Приведённая Вами точность вычислений - это, фактически, последний отброшенный член ряда Тейлора для ряда eξ.

Вроде всё. Пишем программу.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const eps = 0.001;
      e = exp(1); {e = 2.71828182845904524...}
 
var n, xt: longint;
    x, xf, a, s, p: extended;
 
begin
  write('     x = ');
  readln(x);
  xt := trunc(x); {[x]};
  xf := frac(x); {ksi, {x}};
  p := 1; {здесь будет e^[x], оно же e^[x] при [x]=0}
  if xt > 0 {вычисляем e^[x]}
    then for n := 1 to xt do p := p * e {e^[x] для положительного [x]}
    else for n := 1 to -xt do p := p / e; {e^[x] для отрицательного [x]}
  a := 1; {нулевой член ряда}
  s := a; {начальное значение суммы}
  n := 0; {номер нулевого члена ряда}
  while abs(a) >= eps do {условие достижения точности, если приглядеться, то это ksi^n/n!}
    begin
      inc(n); {следующее n}
      a := xf * a / n; {следующий член ряда, согласно рекуррентного соотношения}
      s := s + a {складываем очередной член ряда с суммой}
    end;
  s := s * p; {перемножаем e^ksi*e^[x]}
  writeln('     S = ', s);
  writeln('exp(x) = ', exp(x));
  readln
end.
Замечание: последняя печать - для сравнения результата вычислений со значением, вычисленным стандартной функцией.

Что не ясно, спрашивайте.
2
21.03.2016, 19:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2016, 19:40
Помогаю со студенческими работами здесь

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

Вычислить с заданной точностью константу Эйлера с разложением в ряд
Здравствуйте! Помогите, пожалуйста, с одной ЛР. Вот полный текст задания: &quot;Вычислить с...

Вычислить число Пи с заданной точностью через ряд Лейбница
Надо посчитать число пи с заданной точностью через ряд Лейбница. Число пи, вроде, считает. А вот...

Вычислить функции arcctgс заданной точностью с использованием разложения в ряд
Помогите довести программу до рабочего состояния. Задание. Составить схему программы и программу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru