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

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

Составить программу на языке программирования С++ и блок-схему для решения следующей задачи: уточнить приближенное значение корня нелинейного уравнения f(x) = 0 на заданном отрезке [a,b] методом половинного деления (дихотомии) с точностью ε = 0.001.

Уравнение имеет вид: x 3 — 9x 2 + 20x – 11=0

Отрезок, на котором осуществляется поиск корня: [0; 1]

Видео:Метод половинного деления решение нелинейного уравненияСкачать

Метод половинного деления решение нелинейного уравнения

Блок-схема алгоритма поиска корня уравнения методом половинного деления (дихотомии)

Разработаем алгоритм программы поика решения уравнения на заданном отрезке в виде блок-схемы:

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

Видео:Урок 10. C++ Метод половинного деленияСкачать

Урок 10.  C++ Метод половинного деления

Текст программы решения задачи на С++

В среде программирования Borland C++ 7.0 вводим текст программы на Си ++:

#include
#include
// функция для вычисления f(х)
float f(float z)
<
return pow(z,3)+6*pow(z,2)+6*z-7;//возвращаемое значение
>

// главная функция
void main()
<
float a=-3.0, b=2.0, e=0.001, x;// объявление переменных
while (fabs(a-b)>=e) // цикл
<
// проверка на разные знаки по концам отрезка
if((f(a)>0&&f((a+b)/2) 0))
b=(a+b)/2;
else
if ((f((a+b)/2)>0&&f(b) 0))
a=(a+b)/2;
else
<
printf(«! Net kornej !»);
return;
getch();
>
>

x=(a+b)/2;// вычисление х после завершения цикла
printf(«x=%f F(x)=%f |a-b|=%f»,x,f(x),fabs(a-b)); // вывод результатов
getch();
>

Нажимаем клавиши CTRL+F9 для компиляции и запуска на выполнение программы. Получаем корень уравнения x≈0,834 :

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

Программа начинается с директив препроцессора, начинающихся с символа #, которые дают указание препроцессору подключить к программе заголовочные файлы с описанием тех или иных библиотечных функций. В данном случае подключается заголовочный файл stdio.h с описанием функций ввода-вывода, заголовочный файл math.h с описанием математических функций и заголовочный файл conio.h с описанием функции ожидания нажатия клавиши getch().

Программа состоит из двух функций: пользовательской функции f(x) и обязательной функции main(). Функция main() не возвращает никаких значений и поэтому она объявляется с ключевым словом void. В отличие от функции main(), функция f(x) возвращает вещественное значение и объявляется с ключевым словом float. Тела функций являются блоками и поэтому ограничены фигурными скобками.

В теле функции main() объявляются вещественные переменные a, b, e, х.
Далее используется оператор цикла while, в котором применяются условные операторы:
if (выражение) оператор 1; else оператор 2; которые позволяют проверить разные ли знаки у концов отрезка.
Использование вышеуказанной библиотечной функции printf() дает возможность вывести на стандартное устройство вывода (монитор) сообщение об отсутствии корней или сообщение с значением корня, значением функции в этой точке и модуль разности концов отрезка.
Тело функции main() зак¬рывается фигурной скобкой. На этом программа заканчивается.

Видео:6 Метод половинного деления C++ Численные методы решения нелинейного уравненияСкачать

6 Метод половинного деления C++ Численные методы решения нелинейного уравнения

Исходники программ

Видео:Решение нелинейного уравнения методом половинного деления (программа)Скачать

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

Сайт, посвящен программированию,
исходникам разных программ и
известным алгоритмам

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

Суть метода:
Этот метод является особенно надёжным при нахождении корня уравнения f(x)=0, когда о поведении функции f(x) мало, что известно. Пусть f(x) – функция действительной переменной x и пусть известен интервал (a; b), на котором функция меняет знак. Следовательно, между a и b существует точка, в которой функция обращается в ноль. Если разделить интервал пополам и определить, положительна или отрицательна функция в точке деления, то тем самым найдем подынтервал, в котором функция меняет знак.

При заданной абсолютной погрешности Е алгоритм метода деления пополам состоит из следующих шагов:
1) вычислить f(a) и f(b)
2) положить c=(a+b)/2, вычислить f(c)
3) если f(c) = f(a), то заменить a на с, в противном случае заменить b на с
4) если b-a>E, перейти к шагу 2; в противном случае прекратить вычисления, поскольку достигнута требуемая точность.
Любой из концов отрезка или их полусумма может быть использован в качестве корня уравнения: f(x)=0.

Поставленная задача:
1) Y=3*cos(2*x-4); точность: 0,001; интервал: [1; 3]
2) Y=x-cos(x); точность: 0,001; интервал: [0; 1]
3) Y=x-ln(x); точность: 0,001; интервал: [0; 1]

#include
#include
#include

float mpd1(float x) // functions mpd — «metod polovinnogo deleniya»
<
return (3*cos(2*x+4));
>

float mpd2(float x)
<
return (x-cos(x));
>

float mpd3(float x)
<
return (x-log(x));
>

void main()
<
float a,b,c,e;
int i=1, number;
clrscr();
cout >number;
cout >a;
cout >b;
cout >e;
c=(a+b)/2;
cout e)&&(mpd1(c)!=0))
<
if (mpd1(a)*mpd1(c) e)&&(mpd2(c)!=0))
<
if (mpd2(a)*mpd2(c) e)&&(mpd3(c)!=0))
<
if (mpd3(a)*mpd3(c) Результаты:
Решение уравнений методом половинного деления си

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

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

Если вам нравится то, что мы пишем, пожалуйста, нажмите на интересующую вас рекламу сбоку, сверху, или сразу после статьи. Будет стимул писать лучше и чаще. Хорошего вам дня.

Видео:Метод половинного деленияСкачать

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

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

Уравнение типа F(x)=0 или x=f(x) называется нелинейным. Решить уравнение это значит найти такое x, при котором уравнение превращается в тождество. В общем случае уравнение может иметь 0; 1; 2;. ∞ корней. Рассмотренные ниже численные методы решения нелинейных уравнений позволяют находить один корень на заданном интервале [a,b]. При этом на интервале должен существовать только один корень. Рассмотрим несколько методов решения нелинейных уравнений.

    Метод перебора. При решении нелинейного уравнения методом перебора задаются начальное значение аргумента x=a и шаг h, который при этом определяет и точность нахождения корней нелинейного уравнения. Пока выполняется условие F(x)*F(x+h)>0 аргумент x увеличиваем на шаг h (x=x+h). Если произведение F(x)*F(x+h) становится отрицательным, то на интервале [x,x+h] существует решение уравнения. Структограмма метода приведена на рисунке.

    Рис. Структограмма для метода

      Метод половинного деления. При решении нелинейного уравнения методом половинного деления задаются интервал [a,b], на котором существует только одно решение, и желаемая точность ε. Затем определяется середина интервала с=(а+b)/2 и проверяется условие F(a)∙F(c) ε. Структограмма решения нелинейных уравнений методом половинного деления приведена на рисунке.

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

    F(a)∙F(c) ε. Для определения точки пересечения (i+1) касательной с осью абсцисс воспользуемся следующей формулой Решение уравнений методом половинного деления си(получите формулу самостоятельно). Условие сходимости метода касательных F(x0)∙F»(x0)>0. Структограмма решения нелинейных уравнений методом касательных показана на рис.

    Рис. Структограмма для

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

  1. Метод хорд-касательных. Если в методе касательных производную функции F'(xi) заменить отношением конечных приращений, то получаем расчетную формулу для метода хорд-касательных Решение уравнений методом половинного деления си. Порядок выполнения вычислений в данном методе аналогичен рассмотренному ранее.
  2. Метод итераций. При решении нелинейного уравнения методом итераций воспользуемся записью уравнения в виде x=f(x). Задаются начальное значение аргумента x0 и точность ε. Первое приближение решения x1 находим из выражения x1=f(x0), второе — x2=f(x1) и т.д. В общем случае i+1 приближение найдем по формуле xi+1 =f(xi). Указанную процедуру повторяем пока |f(xi)|>ε. Условие сходимости метода итераций |f'(x)| ε

    Рис. Структограмма для метода итераций

    Контрольное задание. Лабораторная работа 4.

    Решение нелинейных уравнений.

    Задание. Решить нелинейное уравнениеуказанными в табл. методами, предварительно определив интервал [a,b], на котором существует решение уравнения. Сделать проверку решения.

    Варианты уравнений и методов их решения приведены в таблице.

    📺 Видео

    Метод половинного деления - ВизуализацияСкачать

    Метод половинного деления - Визуализация

    Решение уравнений (метод дихотомии) на C#Скачать

    Решение уравнений (метод дихотомии) на C#

    Метод половинного деления. ДихотомияСкачать

    Метод половинного деления. Дихотомия

    Метод дихотомии c++Скачать

    Метод дихотомии c++

    14 Метод половинного деления Ручной счет Численные методы решения нелинейного уравненияСкачать

    14 Метод половинного деления Ручной счет Численные методы решения нелинейного уравнения

    Урок 10. C++ Метод половинного деленияСкачать

    Урок 10. C++ Метод половинного деления

    Урок 10. C++ Метод половинного деленияСкачать

    Урок 10. C++ Метод половинного деления

    12й класс; Информатика; "Численные методы. Метод половинного деления"Скачать

    12й класс; Информатика; "Численные методы. Метод половинного деления"

    Метод дихотомииСкачать

    Метод дихотомии

    Алгоритмы. Нахождение корней уравнений методом деления отрезка пополам.Скачать

    Алгоритмы. Нахождение корней уравнений методом деления отрезка пополам.

    Отделение корней уравнений аналитическим методом. Уточнение корней методом половинного деленияСкачать

    Отделение корней уравнений аналитическим методом. Уточнение корней методом половинного деления

    Метод половинного деления Ручной счет Численные методы решения нелинейного уравненияСкачать

    Метод половинного деления Ручной счет Численные методы решения нелинейного уравнения

    5 Метод половинного деления Блок-схема Численные методы решения нелинейного уравненияСкачать

    5 Метод половинного деления Блок-схема Численные методы решения нелинейного уравнения

    7 Метод половинного деления Mathcad Численные методы решения нелинейного уравненияСкачать

    7 Метод половинного деления Mathcad Численные методы решения нелинейного уравнения

    8 Метод половинного деления Calc Excel Численные методы решения нелинейного уравненияСкачать

    8 Метод половинного деления Calc Excel Численные методы решения нелинейного уравнения
Поделиться или сохранить к себе: