@Vladlen98

Прошу помочь разобраться в ошибке?

Нужно найти корни уравнения методом простых итераций, но врезултате выполнения моей программы получается бесконое число.
#include <iostream>
#include<cmath>
#include<cstdlib>
#include<stdio.h>
using namespace std;
void main() {
	double xn,x0,eps,b;
	eps = 0.0001;//точность вычисления корня
	x0= 1;//начальное приближение

	do {
		xn = -(log(x0/3));//вычисляем очередное приближение 
		b = abs(xn - x0);//находим разницу между предыдущей итерацией и текущей
		xn = x0;//предыдущую итерацию ставим равной текущей
	} while (b > eps);//если условие верно,то продолжаем поиск
cout << "xn="<<xn<<'\n';
	system("pause");
}
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 1
#include <iostream>
#include <cmath>

using namespace std;

int main() {

  const double eps = 0.0001;

  double x0 = 1;
  double b = 0;

  do {
    const double xn = -log(x0 / 3);
    b = abs(xn - x0);
    x0 = xn;
  } while (b > eps);

  cout << "x = " << x0 << endl;

  return 0;
}


x = 1.04996

У вас ошибка в присваивании xn = x0
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы