Решение уравнения - C (СИ) (150407)

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

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

Здравствуйте! Подскажите, как программно решить уравнение: 2*x^3 + 9*x^2 = 52

Решение задачи: «Решение уравнения»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
double f(double x) {
    return 2.0 * x * x * x + 9.0 * x * x - 52.0;
}
 
int main(void) {
    double a = -9e99, b = 9e99;
    double epsilon = 1e-9; // accuracy of computations
 
    while (b - a > epsilon) {
        double guess = a + (b - a) / 2.0; // avoiding overflow. in this case can be simply (a + b) / 2.0
        if (f(guess) > 0.0) {
            b = guess;
        } else {
            a = guess;
        }
    }
 
    printf("%lf\n", a);
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы для работы с математическими функциями и вводом/выводом данных.
  2. Определяется функция f(x), которая представляет собой выражение вида 2.0*x*x*x + 9.0*x*x - 52.0.
  3. В функции main инициализируются переменные a и b как границы для поиска корня уравнения.
  4. Также задается значение точности вычислений epsilon.
  5. В цикле while происходит поиск корня уравнения методом деления отрезка пополам.
  6. Внутри цикла определяется промежуточная переменная guess, которая является центром текущего интервала.
  7. Затем проверяется знак значения функции f(guess).
  8. Если значение положительное, то промежуточная переменная b присваивается значение guess.
  9. Если значение отрицательное, то промежуточная переменная a присваивается значение guess.
  10. После выхода из цикла while выводится найденное значение корня уравнения.
  11. Функция main возвращает 0, что означает успешный исход работы программы.

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


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

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

7   голосов , оценка 3.857 из 5