Решение нелинейного уравнения методом дихотомии

Математическое описание, алгоритм и программа вычисления нелинейного уравнения методом дихотомии. Метод половинного деления. Метод поиска корней функции. Написание текста программы с комментариями. Проведение тестовых расчетов. Вывод ответа на экран.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.02.2016
Размер файла 67,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

КУРСОВАЯ РАБОТА

ПО ДИСЦИПЛИНЕ «программирование и основы алгоритмизации»

НА ТЕМУ «решение нелинейного уравнения методом дихотомии»

Содержание

Введение

Цель написания и постановка задачи

Метод решения

Блок-схема

Описание программы

Написание текста программы с комментариями

Конечный вид программы (листинг)

Результаты тестовых расчетов

Заключение (вывод)

Список использованной литературы

Введение

Разработанный курсовой проект содержит математическое описание, алгоритм и программу вычисления нелинейного уравнения методом дихотомии. Программа написана на языке C++.

Постановка задачи

Существует теорема: Если непрерывная функция на концах некоторого интервала имеет значения разных знаков, то внутри этого интервала у нее есть корень (как минимум, один, но м.б. и несколько)". На базе этой теоремы построено численное нахождение приближенного значения корня функции. Обобщенно этот метод называется дихотомией, то есть делением отрезка на две части.

Обобщенный алгоритм выглядит так:

1. Задать начальный интервал [Xleft. Xright];

2. Убедиться, что на концах функция имеет разный знак;

3. Повторять

А) выбрать внутри интервала точку X;

Б) сравнить знак функции в точке X со знаком функции в одном из концов;

В) если совпадает, то переместить этот конец интервала в точку X,

Г) иначе переместить в точку X другой конец интервала;

пока не будет достигнута нужная точность.

Варианты метода дихотомии различаются выбором точки деления.

Метод половинного деления известен также как метод бисекции. В данном методе интервал делится ровно пополам.

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

Метод половинного деления:

1. Один из простых способов поиска корней функции одного аргумента.

2. Применяется для нахождения значений действительно-значной функции, определяемому по какому-либо критерию (это может быть сравнение на минимум, максимум или конкретное число).

Метод решения

Перед применением метода для поиска корней функции необходимо отделить корни одним из известных способов, например, графическим методом. Отделение корней необходимо в случае, если неизвестно на каком отрезке нужно искать корень.

Будем считать, что корень t функции f(x)=0 отделён на отрезке [a,b]. Задача заключается в том, чтобы найти и уточнить этот корень методом половинного деления. Другими словами, требуется найти приближённое значение корня с заданной точностью .

Пусть функция f непрерывна на отрезке [a,b],

f(a)*f(b) < 0 - единственный корень уравнения .

(Мы не рассматриваем случай, когда корней на отрезке [a,b] несколько, то есть более одного. В качестве можно взять достаточно малое положительное число, например, 0.001).

Поделим отрезок [a,b] пополам. Получим точку c=(a+b)/2 a<c<b и два отрезка [a,c] и [c,b].

§ Если f(c)=0, то корень t найден (t=c).

§ Если нет, то из двух полученных отрезков [a,c] и [c,b]. надо выбрать один такой, что f(a1) f(b1)<0, то есть

§ =[a,c], если f(a)f(c)<0 или

§ =[c,b], если f(c)f(b)<0.

Новый отрезок делим пополам. Получаем середину этого отрезка и так далее.

Для того, чтобы найти приближённое значение корня с точностью до , необходимо остановить процесс половинного деления на таком шаге , на котором и вычислить

Блок схема

Описание программы

Входными данными для расчета являются:

· a - начальное значение интервала (нижний предел интеграла)

· b - конечное значение интервала (верхний предел интеграла)

· E - требуемая точность

Промежуточными данными для расчета являются:

· с - середина промежутка [a, b]

Выходной величиной для расчета является c - по достижении необходимой точности.

Программа написана для решения нелинейного уравнения вида:

Cos x = x^2

алгоритм программа корень функция

Код программы c комментариями

#include <iostream> #include <math.h> #include <stdio.h> //Задаем объекты из библиотеки. Математические функции и средства ввода/вывода

using namespace std;

double f(double x) //В данной программе будем работать с вещественными числами { //типа данных double return x*x-cos(x); //Задаем функцию }

int main() { double a, b, c, sigma, x; //Вводим промежуток и точность cin >> a; cin >> b; сin >> sigma;

while (b - a > sigma)

{

c = (a + b) / 2; //Разбиение промежутка

if(f(b) * f(c) < 0; //Выяснение знака

a = c;

else

b = c;

}

cout << (a + b) / 2 << endl; //Выводим ответ

cin >> x;

return 0;

}

Код программы

#include <iostream>

#include <math.h>

#include <stdio.h>

using namespace std;

double f(double x)

{

return x*x-cos(x);

}

int main()

{

double a, b, c, sigma, x;

cin >> a;

cin >> b;

cin >> sigma;

while (b - a > sigma)

{

c = (a + b) / 2;

if(f(b) * f(c) < 0;

a = c;

else

b = c;

}

cout << (a + b) / 2 << endl;

cin >> x;

return 0;

}

Результаты тестовых расчетов

Номер расчета

Значение a

Значение b

Значение E

Результат программы

Результат математических вычислений

1

0

2

0.01

0.820312

0.824132

2

0

1

0.001

0.824132

0.824132

3

0

1

0.0001

0.820312

0.824132

4

-1

0

0.01

-0.820312

-0.824132

Заключение

Результатом выполнения данной курсовой работы является программа, позволяющая вычислять корень уравнения x^2=cos(x) в промежутке, который задает пользователь с необходимой точностью. Программа работает корректно, производя необходимые вычисления и выводя на экран ответ.

Список использованной литературы

1) Р. Лафоре - Объектно-ориентированное программирование в С++ // Издательство Москва 2014 год.

Размещено на Allbest.ru


Подобные документы

  • Разработка с использованием приложения Mathcad алгоритма и программы решения нелинейного уравнения методами касательных, половинного деления и хорд. Решение с помощью ее заданных нелинейных уравнений. Создание графической иллюстрации полученных решений.

    курсовая работа [665,7 K], добавлен 22.08.2013

  • Описание методов дихотомии (половинного деления) и касательных. Их применение для решения нелинейных уравнений. Графическое отделение корней. Блок-схемы алгоритмов. Тексты (листинги) программ на языке Delphi. Тестовый пример решения задачи с помощью ЭВМ.

    курсовая работа [944,6 K], добавлен 15.06.2013

  • Метод численного интегрирования. Использование метода половинного деления для решения нелинейного уравнения. Определение отрезка неопределенности для метода половинного деления. Получение формулы Симпсона. Уменьшение шага интегрирования и погрешности.

    курсовая работа [3,0 M], добавлен 21.05.2013

  • Разработка программного обеспечения для решения нелинейного уравнения методом деления отрезка пополам, методом деления Гаусса. Алгоритм определения и методика уточнения корней. Составление и тестирование программы, ее листинг и оценка эффективности.

    контрольная работа [638,0 K], добавлен 16.12.2013

  • Реализация решения нелинейного уравнения с заданными параметрами в виде процедуры-подпрограммы. Графический метод отделения корней уравнения. Основные методы уточнения корней уравнения. Описание процедур и функций, общий алгоритм и текст программы.

    курсовая работа [1,7 M], добавлен 27.03.2011

  • Математический алгоритм вычисления корней нелинейного уравнения и его решение методом касательных. Особенности программной реализации решения таких уравнений. Процедура подготовки и решения задачи на ЭВМ, характеристика алгоритма и структуры программы.

    курсовая работа [96,6 K], добавлен 02.06.2012

  • Отделение действительных корней нелинейного уравнения. Метод хорд и касательных (Ньютона), геометрическая интерпретация. Графическая схема алгоритма. Описание реализации базовой модели в MathCAD. График сравнения числа итераций в зависимости от точности.

    курсовая работа [2,0 M], добавлен 16.05.2013

  • Отделение корней методом простых интеграций. Дифференцирование и аппроксимация зависимостей методом наименьших квадратов. Решение нелинейного уравнения вида f(x)=0 методом Ньютона. Решение системы линейных уравнений методом Зейделя и методом итераций.

    курсовая работа [990,8 K], добавлен 23.10.2011

  • Решение нелинейного уравнения шаговым методом, методом половинного деления, методом Ньютона и простой итерации с помощью программы Mathcad. Разбиение промежутка на число n интервалов. Условия сходимости корня. Составление программы для решения на С++.

    лабораторная работа [207,5 K], добавлен 10.05.2012

  • Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.

    курсовая работа [539,2 K], добавлен 15.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.