Найти корень Функции на заданном промежутке с заданной точностью - 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;
- }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: iostream.h и math.h
- Определяются две функции: f1 и f2, которые принимают на вход число x и возвращают значения функций на этом интервале.
- В функции main() задаются начальные значения переменных: x, a, b и eps.
- Проверяется, какой из корней a или b является решением системы уравнений, для этого используется условие (f1(a)*f2(a)) > 0.
- Если условие выполняется, то x приравнивается к a, иначе к b.
- Используя метод итерации, в цикле while происходит приближение к корню, пока абсолютное значение функции не станет меньше заданной точности eps.
- Выводится найденное значение x и значение функции f1(x).
- Функция main() возвращает 0, заканчивая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д