Вычисление корней нелинейного уравнения методом дихотомии - C (СИ)
Формулировка задачи:
Задание. Определить корни уравнения x^2 - e^(-x^2) = 0
#include <stdio.h> #include <time.h> #include <math.h> main() { const double eps = 0.00001; const double exp = 2.7182818284590452; double a, b, m, f1, f2, f3; a = 0.5; b = 0.9; f1 = a * a - pow (exp, -a*a); f2 = b * b - pow (exp, -b*b); m = 0; while (f1*f2 < 0 && abs(f1 - f2 > eps)) { m = (a + b) / 2; f3 = m * m - pow(exp, -m*m); if (f1*f3 < 0) { b = m; f2 = m * m - pow (exp, -m*m); } else { a = m; f1 = m * m - pow (exp, -m*m); } } printf("%lf", m); }
Спасибо!
Решение задачи: «Вычисление корней нелинейного уравнения методом дихотомии»
textual
Листинг программы
while (f1*f2 < 0 && abs(a-b) > eps)
Объяснение кода листинга программы
- Начинается цикл while, который выполняется до тех пор, пока произведение f1 и f2 меньше нуля и разница между a и b больше eps.
- В первой части условия проверяется, что произведение f1 и f2 меньше нуля.
- Во второй части условия проверяется, что разница между a и b больше eps.
- Если условие выполняется, то происходит деление отрезка [a, b] пополам и присваивание полученных корней переменным f1 и f2.
- Если условие не выполняется, то происходит выход из цикла и присваивание значения переменной f1 корню уравнения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д