Программа на C для поиска минимума функции cos(X) на интервале от 0 до 3․14159 методом хорд
#include
#include
// Объявление функции
double cos_func(double x);
// Вычисление значения функции
double cos_func(double x) {
return cos(x);
}
// Поиск минимума методом хорд
double find_minimum {
double a 0․0; // Левая граница интервала
double b 3․14159; // Правая граница интервала
double epsilon 0․00001; // Точность
// Проверка условия наличия минимума
if (cos_func(a) * cos_func(b) > 0) {
std⁚⁚cout << ″На данном интервале нет минимума функции cos(X)․″ << std⁚⁚endl;
return 0․0;
}
double x_prev a;
double x_curr b;
// Итерационный процесс
do {
double x_next x_curr ー (x_curr ー x_prev) * cos_func(x_curr) / (cos_func(x_curr) ー cos_func(x_prev));
x_prev x_curr;
x_curr x_next;
} while (std⁚⁚abs(x_curr ー x_prev) > epsilon);
return x_curr;
}
int main {
double minimum find_minimum;
std⁚⁚cout << ″Минимум функции cos(X) на интервале от 0 до 3․14159 равен ″ << minimum << std⁚⁚endl;
return 0;
}
В данной программе я реализовал метод хорд для поиска минимума функции cos(X) на интервале от 0 до 3․14159․
Сначала объявляется функция `cos_func`‚ которая вычисляет значение функции `cos(x)` в заданной точке․ Затем‚ в функции `find_minimum` задаются границы интервала и точность вычислений․ Если произведение значений функции на границах неотрицательно‚ то на данном интервале нет минимума функции `cos(X)`‚ и программа выводит соответствующее сообщение․ Далее‚ в итерационном процессе метода хорд находится приближённое значение минимума функции `cos(X)`․ Итерационный процесс продолжается до тех пор‚ пока разница между текущим и предыдущим значением не станет меньше заданной точности `epsilon`․ В функции `main` вызывается `find_minimum` и выводится найденное приближённое значение минимума функции `cos(X)`․ Таким образом‚ программа на C позволяет решить задачу поиска минимума функции `cos(X)` на заданном интервале методом хорд․