Найти количество итераций и корень уравнения методом простых итераций - C (СИ)

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

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

Помогите с программкой. Ну совсем никак. Даже не представляю что надо писать (чайник в Си). если кто знает как, пишите подробно, пожалуйста) очень хочется разобраться) Заранее всем спасибо за помощь)) Найти количество итераций и корень уравнения f(x)=a-b*(x^3) на интервале [0;2] с точностью eps методом простых итераций. Условия задачи: a= 1.25 b= 0.25 eps= 10^(-6)

Решение задачи: «Найти количество итераций и корень уравнения методом простых итераций»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. double a = 1.25;
  5. double b = 0.25;
  6.  
  7. double simpIter(double (*pf)(double), double x, double eps=1.0E-6)
  8. {
  9.     double xx;
  10.     xx=(*pf)(x);
  11.     if (fabs(x-xx) <= eps) return xx;
  12.     return simpIter((*pf),xx);     
  13. }
  14.  
  15. double f(double x)
  16. {
  17.     double r;
  18.     r=a/(b*x*x);
  19.     return r;
  20. }
  21. int main(int argc, char* argv[])
  22. {
  23.     printf("x=%lf\n",simpIter(*f,1.0));
  24.     return 0;
  25. }

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

  1. Подключение необходимых библиотек для работы с числами с плавающей точкой и для работы с функциями.
  2. Объявление переменных a и b, которые будут использоваться в качестве коэффициентов для уравнения.
  3. Объявление функции simpIter, которая будет выполнять итерационный процесс для нахождения корня уравнения методом простых итераций. В функции есть три аргумента:
    • pf - указатель на функцию, которая описывает уравнение;
    • x - начальное приближение для нахождения корня;
    • eps - требуемая точность, при достижении которой считается, что корень найден.
  4. Внутри функции simpIter происходит следующее:
    • Вызывается функция, на которую указывает указатель pf, с передачей в нее значения переменной x. Результат сохраняется в переменной xx.
    • Вычисляется абсолютное значение разности между x и xx. Если это значение меньше или равно eps, то значит, что корень найден, и его значение возвращается из функции.
    • Если условие в предыдущем шаге не выполнено, то вызывается рекурсивно функция simpIter, передавая в нее указатель на функцию, значение найденного приближения к корню (xx) и eps.
  5. Объявление функции f, которая описывает уравнение вида r=a/(bxx).
  6. В функции main происходит следующее:
    • Вызывается функция simpIter, передавая в нее указатель на функцию f и начальное приближение x=1.0. Результат выводится на экран.
  7. Конец программы.

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


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

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

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы