Библиотека пополнена и содержит 8 численных методов:
интерполяция табличной функции кубическим сплайном (Spline/Seval);
отыскание корня уравнения на заданном интервале изоляции (Zeroin);
адаптивная квадратурная программа для вычисления определенного интеграла (Quanc8);
поиск минимума функции одной переменной на заданном интервале (FMin)
нахождение всех корней полинома степени не выше 36 с действительными коэффициентами
методом Ньютона - Рафсона (PolRT)
решение систем линейных уравнений путем LU-разложения методом Гаусса (Decomp/Solve)
поиск начального интервала неопределенности для локализации минимума унимодальной функции методом Свенна (Svenn)
нахождение безусловного минимума функции многих переменных методом адаптивного случайного поиска (ARS).
Примеры вызовов находятся в тестирующей программе StudLibTest. Планируется со временем создание файла с инструкциями и рекомендациями в формате PDF для облегчения использования программ библиотеки численных методов.
StudLib.pas (18,9 КБ)
StudLibTest.pas (11,2 КБ)
Начато написание файла, документирующего StudLib
Библиотека численных методов StudLib.pdf (32,0 КБ)
С благодарностью приму замечания и предложения, но будьте готовы к тому, что мне (возможно) захочется их обсудить
ну введение и объяснение того как что делает StudLibTest.pas хорошо написано, вряд ли там есть достаточно чтоб к чему нибудь придраться, а я ожидал что основной частью будет описание функций, а не только название
в общем полную версию давай, тогда судить можно будет нормально
Естественно, основным будет описание. Но и из уже написанного можно примерно представить себе наполнение библиотеки. Возможно, кто-то сочтет полезным добавить еще какие-то программы для решения задач на упущенную мной тематику…
интерполяция табличной функции кубическим сплайном (Spline/Seval);
отыскание корня уравнения на заданном интервале изоляции (Zeroin);
адаптивная квадратурная программа для вычисления определенного интеграла (Quanc8);
поиск минимума функции одной переменной на заданном интервале (FMin)
нахождение всех корней полинома степени не выше 36 с действительными коэффициентами
методом Ньютона - Рафсона (PolRT)
решение систем линейных уравнений путем LU-разложения методом Гаусса (Decomp/Solve)
поиск начального интервала неопределенности для локализации минимума унимодальной функции методом Свенна (Svenn)
нахождение безусловного минимума функции многих переменных методом адаптивного случайного поиска (ARS).
Примеры вызовов находятся в тестирующей программе StudLibTest.
Инструкции и рекомендации находятся в файле StudLib.pdf.
В класс Spline добавлен метод Diff, возвращающий первую и вторую производные.
StudLib.pas (19,4 КБ)
StudLibTest.pas (11,2 КБ)
Библиотека численных методов StudLib.pdf (85,8 КБ)
интерполяция табличной функции кубическим сплайном (Spline/Seval);
отыскание корня уравнения на заданном интервале изоляции (Zeroin);
адаптивная квадратурная программа для вычисления определенного интеграла (Quanc8);
поиск минимума функции одной переменной на заданном интервале (FMin)
нахождение всех корней полинома степени не выше 36 с действительными коэффициентами
методом Ньютона - Рафсона (PolRT)
решение систем линейных уравнений путем LU-разложения методом Гаусса (Decomp/Solve)
поиск начального интервала неопределенности для локализации минимума унимодальной функции методом Свенна (Svenn)
нахождение безусловного минимума функции многих переменных методом адаптивного случайного поиска (ARS)
Изоляция корней уравнения y(x)=0 на заданном интервале просмотра (RootsIsolation).
Примеры вызовов находятся в тестирующей программе StudLibTest.
Инструкции и рекомендации по мере написания помещаются в файл StudLib.pdf.
StudLib.pas (20,3 КБ)
StudLibTest.pas (12,1 КБ)
StudLib.pdf (139,3 КБ)
интерполяция табличной функции кубическим сплайном (Spline/Seval);
отыскание корня уравнения на заданном интервале изоляции (Zeroin);
адаптивная квадратурная программа для вычисления определенного интеграла (Quanc8);
поиск минимума функции одной переменной на заданном интервале (FMin)
нахождение всех корней полинома степени не выше 36 с действительными коэффициентами
методом Ньютона - Рафсона (PolRT)
решение систем линейных уравнений путем LU-разложения методом Гаусса (Decomp/Solve)
поиск начального интервала неопределенности для локализации минимума унимодальной функции методом Свенна (Svenn)
нахождение безусловного минимума функции многих переменных методом адаптивного случайного поиска (ARS)
изоляция корней уравнения y(x)=0 на заданном интервале просмотра (RootsIsolation)
операции с полиномами (класс Polynom).
Примеры вызовов находятся в тестирующей программе StudLibTest.
Инструкции и рекомендации по мере написания помещаются в файл StudLib.pdf.
StudLib.pas (24,1 КБ)
StudLibTest.pas (13,4 КБ)
StudLib.pdf (146,0 КБ)
Все программы в библиотеке переработаны в классы. Внесены соответствующие правки в документацию. На заполнение колонтитулов просьба внимания пока не обращать: Word - не издательская программа и не умеет нормально их оформлять, а непрерывно править колонтитулы руками я уже устал.
StudLib.pas (27,3 КБ)
StudLibTest.pas (13,4 КБ)
StudLib.pdf (154,8 КБ)
Лирическое отступление.
Оформление математической документации в PDF - это “еще та” работенка. Особенно, если у вас Windows XP.
Задача подружить формулы и русский текст, похоже, решается только в профессиональных издательских пакетах. Большинство математической литературы уровня журналов и брошюр сейчас набирается шрифтом гарнитуры Officina Serif - он компактный и содержит достаточно обширный набор математических символов, одновременно давая возможность работы с кириллицей. Увы, шрифт платный, найти его “пиратскую версию”, причем такую, чтобы при печати символы не “бились”, достаточно непросто. Набирать текст приходится в Word не ниже версии 2007, потому что дохленький Microsoft Equation 3.0 из состава Word 2003 не умеет корректно изображать многие вещи. Использовать сторонние системы набора формул уровня TeX/LaTeX тоже не выход: простейшие вещи превращать кусочками в JPEG/TIFF/WMF - это еще ладно, но они же не желают корректно встраиваться в строки Word, “разгоняя” межстрочные интервалы! Далее, все набранное нужно превратить в PDF и тут выясняется, что бесплатный софт не умеет корректно превращать из DOC в PDF файлы, содержащие кириллицу и математические формулы, набранные шрифтом гарнитуры Officina Serif и подменяет эту гарнитуру собственными примитивными шрифтами. Более того, этого нормально не умеет делать и Adobe Acrobat, если на платформе Windows XP (точнее, не умеет компонент Adobe Distiller). Единственный на сегодня работающий метод - выводить документ из Word на PDF-принтер. Увы, при этом происходит растеризация шрифтов и становится невозможным поиск текста в PDF-документе, но такова плата за возможность нормально читать и печатать документ.
Хотел бы про LaTeX заметить. Его имеет смысл использовать только как самодостаточный инструмент. То есть безо всяких вспомогательных “Вордов”. Сделать шаблон под себя и набирать всё только в нём. Вы не представляете (или представляете?), какое это облегчение после “Ворда”. Затем pdflatex превращает латеховский код в pdfку. Отдельно хочется упомянуть латеховские пакеты для вёрстки кода. В общем, если хочется без мороки и полиграфически аккуратно, то в LaTeX. Здесь на форуме есть участники, которые могут помочь с частностями. Ну и я тоже могу что-то посоветовать в меру сил и умения.
нахождение безусловного минимума функции многих переменных методом адаптивного случайного поиска (класс ARS);
решение систем линейных уравнений путем LU-разложения методом Гаусса (класс Decomp);
разложение полинома с целочисленными коэффициентами на рациональные линейные множители вида ux-v (класс Factors);
поиск минимума функции одной переменной на заданном интервале (класс FMin);
нахождение всех корней полинома степени не выше 36 с действительными коэффициентами
методом Ньютона - Рафсона (класс PolRT);
операции с полиномами (класс Polynom);
адаптивная квадратурная программа для вычисления определенного интеграла (класс Quanc8);;
изоляция корней уравнения y(x)=0 на заданном интервале просмотра (класс RootsIsolation);
интерполяция табличной функции кубическим сплайном (класс Spline);
поиск начального интервала неопределенности для локализации минимума унимодальной функции методом Свенна (класс Svenn);
отыскание корня уравнения на заданном интервале изоляции (класс Zeroin).
Примеры вызовов находятся в тестирующей программе StudLibTest.
Инструкции и рекомендации по мере написания помещаются в файл StudLib.pdf.
StudLib.pas (30,6 КБ)
StudLibTest.pas (14,4 КБ)
StudLib.pdf (164,6 КБ)
Кстати, используйте краткие документирующие комментарии к функциям. Например:
///Находит все корней полинома с действительными коэффициентами методом Ньютона - Рафсона (не выше 36-й степени)
Спасибо за напоминание. Это пока текст “непричесанный”, как бы альфа-версия. Наполню пакет, потом начну его окультуривать и оптимизировать. Кое-где остались массивы с завышенной размерностью: они в фортрановском исходнике были (естественно!) от 1 и я их просто сделал от 0 и начало не использую. Тут же еще все эти лицензионные страсти… приходится внимательно изучать, чтобы не нарушить лицензию при переработке какой-то части программы. Планирую также подогнать все под схожие интерфейсы с тем, чтобы было удобно передавать данные от одной задаче к другой.
Вот печально, что пока никто не отписался из тех, кто преподает студентам численные методы… я все же не математик, а инженер и у меня взгляд на все это чисто утилитарный)))
Библиотека в настоящее время содержит 12 численных методов.
Добавлен класс для аппроксимации табличной функции полиномами Чебышева с использованием метода наименьших квадратов (ApproxCheb). Большой перерыв в работе связан с отсутствием приемлемого компьютерного алгоритма, удовлетворяющего поставленным требованиям (удобство, простота, понятность) в почти полусотне просмотренных книг и иных изданий и ресурсов.
Примеры вызовов находятся в тестирующей программе StudLibTest. Поскольку вопрос с тестированием класса ApproxCheb пока не решен, редакция этой программы осталось прежней…
Инструкции и рекомендации по мере написания помещаются в файл StudLib.pdf.
StudLib.pas (34,9 КБ)
StudLib.pdf (227,8 КБ)