Решение нелинейного уравнения методом деления отрезка пополам (цикл 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);
    }
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с математическими функциями и вводом/выводом данных.
  2. Определение функции equation(double x), которая выражает нелинейное уравнение.
  3. Ввод значений переменных a и b с помощью функции scanf(). Переменная a обозначает левую границу интервала, а переменная b - правую границу интервала, в котором ищется решение уравнения.
  4. Организация цикла while, который будет выполняться до тех пор, пока разница между b и a больше заданной точности e.
  5. Вычисление промежуточной точки c, которая является серединным значением интервала a и b.
  6. Проверка значения функции equation(a) и equation(c). Если они имеют разные знаки, то значение переменной b присваивается значение c, иначе значение переменной a присваивается значение c.
  7. Вывод интервала, в котором находится решение уравнения.
  8. После выполнения цикла while и достижения заданной точности e, программа завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы