• Главная
  • Исходники Delphi
  • Справочники Delphi
  • Книги Delphi
  • Основы Delphi
  • библиотека Delphi исходников
  • Форум
  • Блоги

Последние записи

  • Прозрачность тайлсета в TPNGImage
  • Как сделать VBA макрос в excel
  • Поиск по столбцу 1-ого не нулевого значения (формулой в Microsoft Office Excel)
  • Простановка единиц в ячейки под объектами (Microsoft Office Excel)
  • Расчет затраченного времени между определенным рабочим временем (формулой в Microsoft Office Excel)
  • Мигающий экран на Assembler
  • VBA-макрос по копированию 10 строчек в выбранном диапазоне в Microsoft Office Excel
  • Копирование только нужного диапазона в Microsoft Office Excel
  • Перенос диапазона стоки в Microsoft Office Excel на другой лист по условию
  • Мелодия в Pascal.ABC.Net с помощью System.Console.Beep — задержка воспроизведения звука
  • .NET
  • ASP.NET
  • assembler
  • Basic
  • c/c++
  • CMS
  • Delphi
  • HTML
  • iPhone
  • Java
  • JavaScript
  • Linux
  • Pascal
  • Perl
  • Photoshop
  • php
  • Python
  • Ruby
  • SEO
  • sql
  • VBA
  • Win Api
  • Windows
  • XML и XSLT
  • Администрирование ОС
  • Апгрейды
  • Архив
  • Безопасность
  • Блоги
  • Веб-аналитика
  • Железо
  • Журнал
  • Заметки
  • Имейдж
  • Интервью
  • Исходники
  • Новости
  • Общалка
  • Операционные системы
  • Пост-обзор
  • Профлитература
  • Рассылка
  • Реклама
  • си шарп
  • Советы
  • Софт
  • Статьи
  • Топик-обзор
  • Файлы








19th
Ноя

Эпсилон — это не то, что о нем думают

Posted by Chas under Delphi, Общалка

Часто всречаются темы в Помощи студентам:
Высислить с точностью Е ( эпсилон) сумму бесконечного ряда. Предполагается простое решение. То есть сравниваешь очередной член с E во while или repeat , и если меньше, прекращаешь суммировать.

Но , на самом деле задача оценки Е не такая простая. «Оценка остаточного члена «, там всякие производные и прочее.
Пример : сумма 1+1/4+1/9 + … +1/n^2 , то есть дзета-функция Римана ζ(2).
Допустим, надо E = 0,01. Уже 1/11^2 < 0,01 . Суммируем 11 членов, получаем 1.558032194. На самом деле, точное значение 1.644934067 , ошибка 0.086901873 - гораздо больше 0,01. А гармонический ряд ζ(1) = 1+1/2+1/3 + ... 1/n вообще расходится. Поэтому вопрос - кто вообще нынче преподает программирование и составляет задачи? Или программирование и математика уже окончательно разошлись?

Arigato
Правильное решение задачи такое:

const
eps = 0.01;
Magic = 1.644934067;

var
d, s: Double;
n: Integer;

begin
s := 0;
n := 1;
repeat
d := 1 / (n * n);
s := s + d;
Inc(n);
until abs(s - Magic) < eps; WriteLn(s:0:9); end.[/code] Smitt&Wesson
У математиков и программистов цели разные. Программист, это в сущьности переводчик между человеком и машиной. Конечно, он должен разбираться в формулах (иначе, как он их впихнёт в программу), но не нужно требовать от программистов, быль Ландау.

тема на форуме

Похожие статьи

  • Математика: материал для изучения
  • Как найти расстояние между точками
  • Как правильно делить на нуль?
Теги: математика | эпсилон








© Copyright "Клуб программистов" – материалы по Delphi и С++. Создание и продвижние сайта - Веб-сателлит.