возвращение к программированию

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: возвращение к программированию

Сообщение V.Pozyvnoy » 20.11.2019 13:25:09

Вадим, вы подменяете
Последний раз редактировалось V.Pozyvnoy 20.11.2019 13:34:14, всего редактировалось 1 раз.
V.Pozyvnoy
новенький
 
Сообщения: 53
Зарегистрирован: 14.10.2019 12:30:19

Re: возвращение к программированию

Сообщение Снег Север » 20.11.2019 13:33:11

Vadim писал(а):
Снег Север писал(а):Для инженерных вычислений точное значение не нужно.

Иоганн Карл Фридрих Гаусс писал(а):Недостатки математического образования с наибольшей отчётливостью проявляются в чрезмерной точности численных расчётов.

:D

Именно. Раз уж зашла речь, расскажу известную околонаучную байку. Основанную на реальных фактах.
Сто лет назад жил и работал замечательный человек - Алексей Николаевич Крылов. Моряк, инженер, ученый. Основная его профессия - кораблестроитель. Он один из первых стал внедрять в кораблестроении предварительные расчеты, ранее корабль проектировали "на глазок", ориентируясь только на прошлый опыт. Так вот, Крылов обнаружил, что он сам делает расчеты в разы быстрее коллег, а поскольку он завышенным ЧСВ не страдал, то поинтересовался деталями работы этих коллег. И казалось, что те используют в расчетах семизначные таблицы логарифмов! Это в эпоху, когда даже железный арифмометр был невероятным чудом техники, а большинство расчетов делались на бумажке в столбик. Крылов малость офигел, и спросил: "Коллеги, а вы что? У вас исходные данные имеют, в самом лучшем случае, три значащие цифры!, Зачем вам семь?". В ответ: "А нас так учили, а мы привыкли!". Крылову пришлось проводить специальный приказ, чтобы пользоваться, максимум, пятизначными таблицами, а чрезмерную точность - штрафовать вычетами из жалования.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: возвращение к программированию

Сообщение V.Pozyvnoy » 20.11.2019 13:41:18

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


И все :P
V.Pozyvnoy
новенький
 
Сообщения: 53
Зарегистрирован: 14.10.2019 12:30:19

Re: возвращение к программированию

Сообщение Vadim » 20.11.2019 15:49:24

V.Pozyvnoy писал(а):Вадим, вы подменяете

Так это я чтобы разговор поддержать, не более... ;-) :D
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: возвращение к программированию

Сообщение V.Pozyvnoy » 21.11.2019 14:58:03

Программа на free Pascal расчет числа ПИ https://drive.google.com/open?id=1BjFID ... QgACgQSo87

Вдруг из молодежи кто заинтересуется. Можно посмотреть точность счета от числа дискретизации.
V.Pozyvnoy
новенький
 
Сообщения: 53
Зарегистрирован: 14.10.2019 12:30:19

Re: возвращение к программированию

Сообщение xdsl » 22.11.2019 08:41:12

Считал число PI с помощью схождения ряда Лейбница (https://ru.wikipedia.org/wiki/Ряд_Лейбница). А это какой алгоритм?
xdsl
постоялец
 
Сообщения: 131
Зарегистрирован: 15.01.2009 13:49:03

Re: возвращение к программированию

Сообщение V.Pozyvnoy » 22.11.2019 09:58:10

Самый что ни на есть простой. Из точки х=1, y=0 делается приращение -dx, определяются координаты новой точки лежащей на окружности и вычисляется расстояние между начальной точкой и той куда передвинулись. Складываем с значением полученным в прошлых итерациях. Итак в цикле пока последняя точка не переместится в точку x=0, y=1. Получаем 1/4 длины окружности. Умножаем на 2 и получаем ПИ.
V.Pozyvnoy
новенький
 
Сообщения: 53
Зарегистрирован: 14.10.2019 12:30:19

Re: возвращение к программированию

Сообщение Снег Север » 22.11.2019 10:24:54

V.Pozyvnoy, получается периметр вписанного в окружность многоугольника. Теперь осталось устремить длину стороны этого многоугольника к нулю при одновременном устремлении числа сторон к бесконечности - и получится точное значение числа Пи :D
А если серьезно, то этот способ в вычислительной математике дает наименее точное значение при наибольшей затрате вычислительного времени.
Последний раз редактировалось Снег Север 22.11.2019 10:27:32, всего редактировалось 1 раз.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: возвращение к программированию

Сообщение Vadim » 22.11.2019 10:26:37

V.Pozyvnoy
Вставьте комментарии в свою программу, а то, что там происходит, непонятно не только молодёжи... ;-)
V.Pozyvnoy писал(а):Самый что ни на есть простой.

Не очень простой. :) А ещё, для теста, задайте дискретизацию 100 000 ... ;-)

Добавлено спустя 3 минуты 42 секунды:
Снег Север писал(а):А если серьезно, то этот способ в вычислительной математике дает наименее точное значение при наибольшей затрате вычислительного времени.

Типа формулы Архимеда?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: возвращение к программированию

Сообщение V.Pozyvnoy » 22.11.2019 11:36:37

Расстояние меряется наиболее простым способом - это измерение расстояния. Число дискретизации в программе ограничено типом integer. C увеличением числа дискретизации счета к единице суммируются числа с малым значением и дальнейший счет уже ведет к потерям. Возможно внутри каждого цикла устраивать еще дополнительные (уточняющие) вычисления. Измерять отклонение прямой от кривой и вычислять поправку. Возможно и это интересно.
V.Pozyvnoy
новенький
 
Сообщения: 53
Зарегистрирован: 14.10.2019 12:30:19

Re: возвращение к программированию

Сообщение Снег Север » 22.11.2019 11:39:59

Vadim писал(а):Типа формулы Архимеда?

Ну да, Архимед сосчитал для 96-угольника и получил Пи с тремя верными цифрами. Простая дробь 355/113 (Цзу Чунчжи, V век н. э. китайский астроном и математик) дает 7 верных цифр... :)

Добавлено спустя 4 минуты 19 секунд:
V.Pozyvnoy писал(а):Расстояние меряется наиболее простым способом - это измерение расстояния.

Оно требует вычисления квадратного корня - отнюдь не самая быстрая операция. Поэтому я и написал, что выбранный вам способ затратен в вычислительном смысле и непригоден для вычисления Пи с высокой точностью. Он, как верно заметил Вадим, реализует самый древний известный алгоритм - архимедовский. С тех пор придумали способы получше...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: возвращение к программированию

Сообщение Vadim » 22.11.2019 11:55:39

V.Pozyvnoy писал(а):Число дискретизации в программе ограничено типом integer.

Если взять максимально возможное число - 2 147 483 647, то время вычисления ужас до чего долгое, я даже с процессором Xeon 2,53 ГГц успел себе все ногти до локтей изгрызть. :D А вот точность получается самая предосудительная - мантисса на тип Double даже примерно не тянет. На Single - это пожалуйста. Но Single - это прошлый век... ;-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: возвращение к программированию

Сообщение V.Pozyvnoy » 22.11.2019 13:00:46

Вадим, ну к чему ваш пост? Что тут обсуждать? Хотелось мне посчитать? Я посчитал не заморачиваясь. Захочется вам размяться? Возьмите листок бумаги и выведите формулу синуса двойного угла ни куда не заглядывая.

Я дорожу этим форумом потому что получил возможность интересно позаниматься.
V.Pozyvnoy
новенький
 
Сообщения: 53
Зарегистрирован: 14.10.2019 12:30:19

Re: возвращение к программированию

Сообщение Vadim » 22.11.2019 14:13:50

V.Pozyvnoy
Вы зря обижаетесь. Если Вам кажется что-то неправильным, лучше объясните, почему Вам так кажется. Поверьте, никто никого тут обижать никогда не собирался и не собирается.
К примеру, побудительные мотивы Ваших желаний - критерии субъективные и кроме Вас их правильно никто учесть не в состоянии. Однако следствие этих субъективных причин Вы выкладываете сюда, что явным образом свидетельствует о необходимости их (следствия, а не мотивы ;-) ) обсудить всеми заинтересованными участниками форума. Иначе бы Вы их сюда не выкладывали, правильно? ;-)
Так вот, наряду с субъективными критериями, есть ещё и критерии объективные, как раз по которым мы со Снег Севером критикуем то, что выложено Вами. Это (критика) делается вовсе не потому что Вы нам категорически не нравитесь, а для того, чтобы Вы в своих следующих расчётах могли улучшать свои алгоритмы, чтобы они всё время становились лучше и лучше.
Понимаете?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: возвращение к программированию

Сообщение Снег Север » 22.11.2019 14:20:24

V.Pozyvnoy, ваше право, разумеется, считать что и как вам угодно.
Но вы в начале темы обозначили свою цель, как вспомнить программирование и освоить современный инструмент для него. Вот я даю совет - для большей пользы попытаться реализовать алгоритм позволяющий вычислить несколько десятков тысяч цифр числа Пи. Тем более, что это - традиционная учебная задача.
Впрочем, "страна советов" уже тридцать лет как не существует на карте, так что увы...
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Пред.След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

Рейтинг@Mail.ru