ЛР. Решение нелинейных алгебраических уравнений 2

Post date: May 4, 2012 7:53:24 AM

Необходимо разработать и реализовать программу, позволяющую выполнять поиск решения нелинейного алгебраического уравнения F(x)=0 с помощью численных методов.

Численные методы должны быть реализованы в виде отдельных динамических библиотек (один метод - одна dll).

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

Основная программа должна загружать выбранную пользователем библиотеку и с помощью функции GetMethod получать указатель на объект класса, выполняющего поиск решения.

Программа должна обеспечивать:

  1. Выбор функции F(x) из заданного набора (не менее 5 функций) или ручной ввод функции F(x).
  2. Задание точности (E) и количества итераций (N) метода поиска.
  3. Задание отрезка [a, b] на котором будет выполняться поиск решения функции.
  4. Вывод найденного решения, достигнутой точности и выполненного количества итераций.
  5. Задание начальной точки поиска, если это требуется в численном методе поиска решения.
  6. Выбор библиотеки в которой реализован численный метод решения уравнения.

Должны быть реализованы библиотеки со следующими методами поиска решения уравнений:

  1. Метод дихотомии.
  2. Метод секущих.
  3. Метод Ньютона.

В приложении ниже представлен солюшен с двумя проектами: проект Dll`ки и проект основной программы. После сборки проектов получаются исполняемые модули: Dll.dll и MainApp.exe. Для запуска программы MainApp.exe необходимо указать путь к динамической библиотеке: MainApp.exe Dll.dll.

По лабораторной работе необходимо предоставить отчёт (шаблон отчёта).

Сдача отчёта должна быть осуществлена не позднее, чем через неделю после сдачи программы.