Решение нелинейного уравнения методом деления отрезка пополам (цикл While) - C (СИ)
Формулировка задачи:
Обчислить уровнение способом деления отрезка пополам используя цыкл While.
Дана точность ε<0,004. Отрезок xϵ[a;b] вводить с клавиатуры.
Решение задачи: «Решение нелинейного уравнения методом деления отрезка пополам (цикл While)»
textual
Листинг программы
#include <stdio.h> #include <math.h> double equation(double x) { return (exp(-2*x)-x+1); } int main() { double e = 0.004; float a,b,c,x; printf("Insert left side of range a="); scanf("%f",&a); printf("Insert right side of range b="); scanf("%f",&b); while(fabs(b-a)>e) { c = (a+b)/2; if (equation(a)*equation(c) < 0) b = c; else a = c; printf("x=[%f..%f]\n",a,b); } }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с математическими функциями и вводом/выводом данных.
- Определение функции
equation(double x)
, которая выражает нелинейное уравнение. - Ввод значений переменных
a
иb
с помощью функцииscanf()
. Переменнаяa
обозначает левую границу интервала, а переменнаяb
- правую границу интервала, в котором ищется решение уравнения. - Организация цикла
while
, который будет выполняться до тех пор, пока разница междуb
иa
больше заданной точностиe
. - Вычисление промежуточной точки
c
, которая является серединным значением интервалаa
иb
. - Проверка значения функции
equation(a)
иequation(c)
. Если они имеют разные знаки, то значение переменнойb
присваивается значениеc
, иначе значение переменнойa
присваивается значениеc
. - Вывод интервала, в котором находится решение уравнения.
- После выполнения цикла
while
и достижения заданной точностиe
, программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д