ЛР. Решение нелинейных алгебраических уравнений 2
Post date: May 4, 2012 7:53:24 AM
Необходимо разработать и реализовать программу, позволяющую выполнять поиск решения нелинейного алгебраического уравнения F(x)=0 с помощью численных методов.
Численные методы должны быть реализованы в виде отдельных динамических библиотек (один метод - одна dll).
В каждой библиотеки должен быть представлен класс, реализующий решение уравнения в виртуальном методе Solve. Каждый такой класс наследуется от общего абстрактного класса. Каждая динамическая библиотека экспортирует одну функцию GetMethod.
Основная программа должна загружать выбранную пользователем библиотеку и с помощью функции GetMethod получать указатель на объект класса, выполняющего поиск решения.
Программа должна обеспечивать:
- Выбор функции F(x) из заданного набора (не менее 5 функций) или ручной ввод функции F(x).
- Задание точности (E) и количества итераций (N) метода поиска.
- Задание отрезка [a, b] на котором будет выполняться поиск решения функции.
- Вывод найденного решения, достигнутой точности и выполненного количества итераций.
- Задание начальной точки поиска, если это требуется в численном методе поиска решения.
- Выбор библиотеки в которой реализован численный метод решения уравнения.
Должны быть реализованы библиотеки со следующими методами поиска решения уравнений:
- Метод дихотомии.
- Метод секущих.
- Метод Ньютона.
В приложении ниже представлен солюшен с двумя проектами: проект Dll`ки и проект основной программы. После сборки проектов получаются исполняемые модули: Dll.dll и MainApp.exe. Для запуска программы MainApp.exe необходимо указать путь к динамической библиотеке: MainApp.exe Dll.dll.
По лабораторной работе необходимо предоставить отчёт (шаблон отчёта).
Сдача отчёта должна быть осуществлена не позднее, чем через неделю после сдачи программы.