Решение уравнения - 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; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с математическими функциями и вводом/выводом данных.
- Определяется функция
f(x)
, которая представляет собой выражение вида2.0*x*x*x + 9.0*x*x - 52.0
. - В функции
main
инициализируются переменныеa
иb
как границы для поиска корня уравнения. - Также задается значение точности вычислений
epsilon
. - В цикле
while
происходит поиск корня уравнения методом деления отрезка пополам. - Внутри цикла определяется промежуточная переменная
guess
, которая является центром текущего интервала. - Затем проверяется знак значения функции
f(guess)
. - Если значение положительное, то промежуточная переменная
b
присваивается значениеguess
. - Если значение отрицательное, то промежуточная переменная
a
присваивается значениеguess
. - После выхода из цикла
while
выводится найденное значение корня уравнения. - Функция
main
возвращает 0, что означает успешный исход работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д