Метод дихотомии и итераций - C (СИ)

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

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

Метод дихотомии для и метод итераций для Никак не получается составить программы. Компилятор gcc, прога не пашет.
#include <math.h>
#include <stdio.h>

double f(double x) {
 
        return   cos(x)-pow(e,(-x*x)/2)+x-1;
}
int main() {
        int n=0;
        float e=exp(1.0);
    double a,b,c,eps;
        printf("a="); scanf("%lf", &a);
        printf("b="); scanf("%lf", &b);
        printf("eps="); scanf("%lf", &eps);
        do {
                c=(a+b)/2;
                if (f(c)*f(a)<=0) b=c;
                else a=c;
 
                n+=1;
 
        }
        while (fabs(a-b)>=eps);
                printf("c=%lf\n", c);
                printf("n=%lf\n", n);
                getch();
        return 0;
}

Решение задачи: «Метод дихотомии и итераций»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
double fun2(double x) {
 
   double w;
   
   return 3*pow(x,2)+4*x+3;
}
 
double fun1(double x) {
 
   double z;
   
   return pow(x,3)+2*pow(x,2)+3*x+5;
}
 
int main(void) {
 
   double x=-2;
   double x0=-2;
   double e=0.000001;
   double f,g;
   
   printf("\nStart Program\n");
   printf("\nBudem vychislyt` nelineynoe yravnenie ");
   printf("metodom Netona:");
   printf("\nx^3+2x^2+3x+5=0");
   printf("\n\nNacal`noe priblechenie vozmem za -2");
   printf("\nTochost` zadadim = 0.000001");
   printf("\n\nNachnem:\n");
    
   do {
      x0=x;
   
      f=fun1(x);
      g=fun2(x);
   
      x=x0-f/g;
      printf("\nPromechytochny x = %f", x);
   }
 
   while (fabs(x0-x)>e); {
      printf("\n\nV rezultate x = %f", x);
   }
   
   printf("\n\nKonec program\n");
 
   return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Определяются две функции: fun1 и fun2, которые представляют собой выражения для функций f(x) и g(x) соответственно
  3. В функции main() инициализируются начальные значения переменных: x = -2, x0 = -2, e = 0.000001, f и g не инициализируются, так как они используются только для хранения промежуточных значений
  4. Выводится информация о программе и уравнении, которое будет решаться
  5. Запускается цикл do-while, который будет выполняться до тех пор, пока изменение x не станет меньше заданной точности e
  6. Внутри цикла переменная x0 присваивается текущее значение x, а затем вычисляются значения функций f и g
  7. Затем находится новое значение x путем деления x0 на f/g
  8. Выводится текущее значение x
  9. После выхода из цикла do-while выводится окончательный результат x
  10. Программа завершается возвратом 0 из функции main()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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