Найти корень Функции на заданном промежутке с заданной точностью - C (СИ)

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

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

Найти корень Функции на заданном промежутке , с точностью, двумя способами. Первый способ: Четные номера вариантов - методом половинного деления , нечетные - методом хорд . Второй способ: Метод причастность ( метод Ньютона) . Точность eps=0.5*10e-4 f(x)=ln*x-x+1.8 Пытался сделать,но увы. Надеюсь кто-то поможет (Метод Ньютона,вообще не понимаю как делать).
#include <stdio.h>
#include <math.h>
int main(void) {
float a=2,b=3;
float x,y;
float eps=10,e=-4;
for (;;)
            {
                x=(b+a)/2;
                y=log10(x)-x+1.8;
                if(fabs(y)<eps) break;
                if(y*(log10(x)-x+1.8)*b>0)b=x;
                else a=x;
            }
printf("%f,%f",x,y);
    return 0;
}
Все что смог сделать Ньютона так и не разобрался

Решение задачи: «Найти корень Функции на заданном промежутке с заданной точностью»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
double f1(double x)
{
double f1 ;
f1=log10(x)-x+1.8;
return f1;
}
double f2(double x)
{
    double f2 ;
 f2=(1/x)-1+1.8;
return f2;
}
 
int main()
{
double x ;
int a=2;
int b=3;
int eps=0.00005;
 
if ((f1(a)*f2(a)) > 0)
{
    x=a;
}
else
{
    x=b;
}
while (abs(f1(x)) > eps )
{
    x=x-f1(x)/f2(x);
}
printf("x=%lf",x);
printf("f(x) = %lf",f1(x));
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы: iostream.h и math.h
  2. Определяются две функции: f1 и f2, которые принимают на вход число x и возвращают значения функций на этом интервале.
  3. В функции main() задаются начальные значения переменных: x, a, b и eps.
  4. Проверяется, какой из корней a или b является решением системы уравнений, для этого используется условие (f1(a)*f2(a)) > 0.
  5. Если условие выполняется, то x приравнивается к a, иначе к b.
  6. Используя метод итерации, в цикле while происходит приближение к корню, пока абсолютное значение функции не станет меньше заданной точности eps.
  7. Выводится найденное значение x и значение функции f1(x).
  8. Функция main() возвращает 0, заканчивая работу программы.

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

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