• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Метод Простых Итераций

  • Автор темы Again
  • Дата начала
A

Again

Такое задание: написать алгоритм численного решения нелинейных уравнений методом простых итераций и реализовать его на языке программирования.
Сколько не читал и не искал инфу про данный метод, все никак не могу понять суть данного метода, отсюда и сложности в реализации на языке, в данном случае С/С++.
Поясните, пож-ста, суть данного метода, ну если можно приведите пример решения конкретной задачи.
Спасибо.
 
A

Again

Что у меня есть на данный момент:
C++:
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <conio.h>
using namespace std;
const double eps = 0.001;
double f(double x){
return (x-1)*(x+2)*(x-4);
}
double fi(double x){
return f(x)-x;
}
void NumberOfRoots(double min, double max)
{	int k=0, n;
cout<<"Enter the number of intervals ";
cin>>n;
double i = min;
double del = (max - min)/n;	
do {
if (f(i) * f(i+del) < 0)k++;
i+=del;
}
while(i <= max);
cout<<"Number of roots is "<<k<<endl;
}
int main() {
NumberOfRoots(-3,5);	
double  x0, x, xNext;
int	 nIter;
cout<<"x0 = ";	cin>>x0;	cout<<"\n";
x = x0;
xNext = fi(x);
nIter = 1;
while ((fabs(xNext - x) > eps)&&(xNext == 0)) {
x = xNext;
xNext = fi(x);
++nIter;

printf( "%.5g %.5g %d\n", x, xNext, nIter );
}
printf( "The root %.5g has been reached to within %.5g after %d iterations.\n", 
xNext, eps, nIter );
getch();
return 0;
}

Подскажите, пож-ста, как довести до ума данный код.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!