Найти корень заданной функции (метод дихотомии) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно найти корень заданной функции в пределах заданного пользователем диапазона методом дихотомии с заданной пользователем точностью.

Решение задачи: «Найти корень заданной функции (метод дихотомии)»

textual
Листинг программы
#include<stdio.h>
#include<math.h>
#define EPS 0.0000001
double f(double x);
int main(void)
{
    int k;
    double x0=0.0, xk=1.0, xm;
    printf("vvedite kolichestvo znakov posle zapiatoy (1..6)\n");
    scanf("%d",&k);
    while(fabs(xk-x0)>=EPS)
    {
        xm=(x0+xk)/2;
        if(f(x0)*f(xm)>0)
            x0=xm;
        else
            xk=xm;
    }
    printf("koren: %1.*lf\n",k,xm);
    return 0;
}
double f(double x)
{
    return (4.0-exp(x)-2*x*x);
}

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

В этом коде реализуется метод дихотомии для поиска корня заданной функции. Список действий:

  1. Ввод числа k с помощью функции scanf. Это число определяет количество знаков после запятой для желаемого корня.
  2. Создание переменных x0 и xk. Изначально, x0 равно 0, а xk равно 1.
  3. Установка начального значения переменной xm как среднего арифметического между x0 и xk.
  4. Проверка значения функции f(x) для x0 и xm. Если значение f(xm) положительно, то xm присваивается значение x0. Если значение f(xm) отрицательно, то xm присваивается значение xk.
  5. Если разница между x0 и xk больше заданной точности EPS, то возвращаемся к шагу 3.
  6. Когда разница между x0 и xk меньше или равна EPS, то xm будет являться корнем функции.
  7. Вывод корня на экран с заданным количеством знаков после запятой.
  8. Возвращение значения 0, сигнализирующего о успешном завершении программы. Функция f(x) задает функцию, корень которой мы и ищем. В данном случае это функция (4.0-exp(x)-2xx).

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


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

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

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