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

Вычислить непрерывную дробь

07.02.2015, 18:40. Показов 2507. Ответов 2

Author24 — интернет-сервис помощи студентам
Составить программу для вычисления с точностью eps=10-5:
Название: Screenshot_1.jpg
Просмотров: 60

Размер: 7.3 Кб
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2015, 18:40
Ответы с готовыми решениями:

Вычислить цепную дробь...
Для данного вещественного х и натурального N вычислить цепную дробь: х/(1 + х/(2 + х/(3 + x/(.../(N...

Умножить дробь на дробь и получить ответ в виде несократимой дроби
Даны две дроби A/B и C/D (где А, В, С, D — натуральные числа). Умножить дробь на дробь и получить...

Вычислить непрерывную дробь с заданной точностью
Составить программу для вычисления с точностью eps=10^-5: \sqrt{2} \approx...

Вычислить цепную дробь
Для данного вещественного X и натурального N вычислить цепную дробь: ...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
08.02.2015, 16:02 2
Лучший ответ Сообщение было отмечено ananas1996 как решение

Решение

Как-то вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
const eps = 10E-5;
 
function fraction(n : integer) : double;
begin
  if 1 - n / Succ(n) < eps then fraction := 0
  else fraction := n + Succ(n) / fraction(Succ(n));
end;
 
begin
  writeln(1 + fraction(1):10:6);
  writeln(exp(1):10:6);
end.
, хотя тут точность будет гораздо выше, чем 10-5
1
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
09.02.2015, 06:26 3
Значение e = 2.718281828459…

Разложение числа e в бесконечную непрерывную дробь имеет вид:

e = [2; 1,2,1, 1,4,1, 1,6,1 , … , 1,2k,1, …].

Что можно представить формулой:

https://www.cyberforum.ru/cgi-bin/latex.cgi?e=2+\frac{1}{1+\frac{1}{2+\frac{1}{1+\frac{1}{1+\frac{1}{4+...}}}}}

Таким образом, первые десять членов последовательности приближений для e таковы:

2, 3, 8/3, 11/4, 19/7, 87/32, 106/39, 193/71, 1264/465, 1457/536, …


Заданная точность получается уже при вычислении 193/71, что соответствует решению непрерывной дроби:

e = [2; 1,2,1, 1,4,1, 1].


Приведённая аффтором формула, тоже является разложением числа е в непрерывную дробь (только не является классической ;–).

А вот программа:
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
30
31
32
33
34
const
  eps = 10e-5;
 
function findE(Drobey : Integer) : Real;
 
  function Droby(N : Integer) : Real;
  begin
    Dec(Drobey);
    if Drobey = 0 then
      Droby := 0
    else
      Droby := N / (N + Droby(N + 1));
  end;
  
begin
  findE := 2 + Droby(2);
end;
 
var
  i : Integer;
  fE, D : Real;
begin
  i := 0;
  repeat
    Inc(i);
    fE := findE(i);
    WriteLn('Найдено приближенное значение e = ', fE:0:10);
    D := Abs(E - fE);
    WriteLn('Ошибка составляет: ', D:0:10);
  until D < eps;
  WriteLn('меньше допустимого eps = ', eps:0:10);
  WriteLn('Расчёт окончен.');
  WriteLn('Ответ: ', fE:0:10);
end.

Вот результат работы программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Найдено приближeнное значение e = 2.0000000000
Ошибка составляет: 0.7182818285
Найдено приближeнное значение e = 3.0000000000
Ошибка составляет: 0.2817181715
Найдено приближeнное значение e = 2.6666666667
Ошибка составляет: 0.0516151618
Найдено приближeнное значение e = 2.7272727273
Ошибка составляет: 0.0089908988
Найдено приближeнное значение e = 2.7169811321
Ошибка составляет: 0.0013006964
Найдено приближeнное значение e = 2.7184466019
Ошибка составляет: 0.0001647735
Найдено приближeнное значение e = 2.7182633318
Ошибка составляет: 0.0000184967
меньше допустимого eps = 0.0001000000
Расчёт окончен.
Ответ: 2.7182633318
1
09.02.2015, 06:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.02.2015, 06:26
Помогаю со студенческими работами здесь

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

Цепная дробь, вычислить
Вычислить с точностью до шести знаков бесконечную дробь 1+\frac{2}{1+\frac{2}{1+\frac{2}{1+...}}}...

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

Как написать класс «несократимая дробь» (т.е. дроби 2/4, 4/8 и т.п. есть дробь 1/2)?
Я только начанаю знакомство с C++. В классе реализовать следующие методы: конструкторы (по...


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

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