Нахождение корней уравнения методом итераций - C (СИ)

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

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

Нахождение корней уравнения В коде в первом сообщении не ясно, что такое L, и каким образом нужно выражать f2(x), имея f1(x)=5*x3-1-x. Первичное приближение 0.6, достаточное условие уточнения eps = 0.01...10-7 (на выбор пользователя). Если не сложно, обьясните код по ссылке и выражение f2, либо прошу помощи другим кодом.

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

textual
Листинг программы
#define x1 0.6
#define x2 0.8
//---------------------
double funcit(double x)
 {
  return 5*pow(x,3)-1;
 }
 
//---------------------
double func(double x)
 {
  return 5.0*pow(x,3.0)-x-1.0;
 }
//------------------
//main
//------------------
 xm=x1; // x0 берем за левую границу уточнения
 i=0; //счетчик количества итераций
 while((fabs(xm-xx)>E)&&(fabs(func(xm))>E)) //E - требуемое уточнение, 0.01...10^(-7)
  {
   i++;
   xx=xm; //Нынешний X(n-2) становится X(n-1), при первом шаге просто инциализация
   xm=funcit(xx); //Вычисляется нынешний X(n), все прошлые значения смещаются на 1 назад. 
   //То есть прошлый X(n) стал нынешним X(n-1)
  }

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

  1. В первой строке определены две константы: x1 и x2. Значение x1 равно 0.6, а значение x2 равно 0.8.
  2. Во второй функции, funcit, определен вид функции для уточнения корней. Эта функция принимает один аргумент типа double, называемый x, и возвращает значение 5*pow(x,3)-1.
  3. В третьей функции, func, определен вид функции, которую мы пытаемся уточнить. Эта функция также принимает один аргумент типа double, называемый x, и возвращает значение 5.0*pow(x,3.0)-x-1.0.
  4. В блоке main определены две переменные: xm и i. Значение xm сначала установлено в x1, а значение i установлено на 0.
  5. Затем следует цикл while, который продолжается до тех пор, пока два условия не станут ложными. Первое условие проверяет, больше ли абсолютное значение разности между xm и xx заданного значения E. Второе условие проверяет, больше ли абсолютное значение функции xm заданного значения E.
  6. Если цикл while завершается, то значение i увеличивается на 1, а значение xx становится xm.
  7. Затем значение xm присваивается результат вызова функции funcit с аргументом xx. Это вычисляет новое значение xm, которое является предыдущим значением xx, смещенным на 1 назад.
  8. Цикл while повторяется до тех пор, пока не будет достигнуто требуемое уточнение.
  9. После завершения цикла while выводится значение i, которое представляет собой количество итераций, выполненных для достижения требуемого уточнения.

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


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

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

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