Программа для вычисления корней нелинейных уравнений итерационным методом
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
1. Анализ задачи
.1 Исследование предметной области
В практике научных и инженерных расчетов часто возникает необходимость решения уравнений вида f(x) = 0. Если функция представляет многочлен, то данное уравнение называется алгебраическим. Если находится под знаком транстендентной функции (показательной, логарифмической, тригонометрической и т.п.), уравнение называется транстендентным. Значение х, при котором выполняется условие f(x) = 0, называется корнем уравнения.
В общем случае функции f(x) = 0 не имеют аналитических формул для своих корней. Однако точное решение уравнения не является необходимым. Действительно, встречающиеся на практике уравнения часто содержат коэффициенты, величины которых имеют приближенные значения. В силу этого разработаны численные методы уравнений, которые позволяют определять приближенные значения корней с заданной степенью точности.
Процесс отыскания корня уравнения состоит из двух этапов:
) нахождение приближенного значения корня;
) уточнение приближенного значения до некоторой заданной степени точности.
Первый этап реализуется различными способами. Приближенное значение корня может быть известно, например, из физического смысла задачи. При выделении области, в пределах которой находятся вещественные корни уравнения, можно воспользоваться следующим обстоятельством. Если на концах некоторого отрезка значение непрерывной функции f(x) имеет разные знаки, то на этом отрезке уравнение f(x) = 0 имеет хотя бы один корень.
В инженерной практике распространен графический способ определения приближенных корней. В этом случае строится график функции y = f(x) , абсциссы точек пересечения которого с осью Ox дадут приближенные значения корней. Иногда удается подобрать более простое уравнение, корни которого находятся вблизи корней исходного уравнения. Существует также ряд специальных аналитических методов приближенного нахождения корней многочленов.
Найденные приближенные значения корней уточняют различными итерационными методами. Наиболее эффективными из них являются:
метод деления отрезка пополам;
метод последовательных приближений (метода итераций);
метод Ньютона (метод касательных).
Рассмотрим подробнее метод итераций, т.к. он и является предметом моей курсовой работы.
1.2 Метод последовательных приближений (метода итераций)
Уравнение f(x) = 0 можно представить в форме x = ?(x). Например, можно выделить x, а остальное перенести в правую часть. Можно также выполнить следующее преобразование: x = x + cf(x), где с - произвольная постоянная. x[0] задается начальным приближением, а последующие приближения определяются итерационной процедурой вида: x[n + 1] = ?(x[n]). Процесс продолжается до тех пор, пока относительная точность для двух последовательных приближений не станет меньше заданной погрешности.
2. Инструменты разработки
.1 Требования к аппаратным ресурсам
Данное программное обеспечение было разработано на компьютере на базе процессора Intel в операционной системе Windows 7. Предполагается, что приложение сможет запуститься на любом компьютере с более-менее современной комплектацией. Тестирование приложение проходило также в ОС Windows XP, сбоев в работе обнаружено не было.
2.2 Требования к программным средствам разработки
Для просмотра либо редактирования файлов проекта необходимо иметь установленное в системе программное обеспечение RAD Studio 2012 либо Delphi 2007. Среда Delphi была выбрана в силу того, что она является известной широкому кругу программистов и идеально подходит для обучения визуальному программированию.
3. Руководство пользователя
Разработанное мной приложение имеет достаточно простой, дружелюбный и интуитивно понятный интерфейс. При запуске файла Project1.exe на дисплее появляется главная форма приложения (Рисунок 1).
Рисунок 1 - Главная форма приложения
Вверху формы расположено нелинейное уравнение, решение которого мы будем находить программным способом. Посередине формы расположен график, на котором будет отображаться вся графическая информация, которая будет появляться в процессе вычислений.
В левом нижнем углу расположена панель, содержащая компоненты TCheckBox, TLabeledEdit, TButton.с надписью Анимировать процесс определяет, будет ли замедлена прорисовка отдельных линий на графике. В поле TLabeledEdit можно задавать желаемую точность вычислений. По нажатии на кнопку Решить запускается алгоритм вычисления корня уравнения.
Кнопка закрыть, расположенная в нижнем правом углу, закрывает приложение.
4. Тестовые примеры
Для тестирования приложения было выбрано уравнение exp(x) + ln(x) - 10x = 0. Аналитическое рассмотрение данного уравнения показало, что оно имеет корень на интервале (0, 4). При х > 4 значение функции y = exp(x) + ln(x) - 10x значительно возрастает, и поэтому данные значения х мы рассматривать не будем. Приближенные вычисления показали, что корень данного уравнения х0 приблизительно равен 3,5. Перейдем к тестированию приложения, чтобы проверить данное приближенное значение и уточнить его до нужной нам точности.
5. Тестирование приложения
Запускаем наше приложение. В поле Точность вводим нужную нам точность вычислений (Рисунок 2).
Рисунок 2 - Ввод точности вычислений
Далее проверяем, что переключатель Анимировать процесс находится во включенном со