Нужно используя метод Зейделя(почти тоже самое самое что и метод итераций) решить систему нелинейных уравнений с точностью до 0.0001
Начальное приближение определил графически, и написал код:
[CPP]#include "stdio.h"
#include "conio.h"
#include "clocale"
#include "cmath"
#include <iostream>
#include "fstream"
using namespace std;
int main( void )
{
setlocale(LC_ALL, "Russian");
float E=0.000000001, x0=-0.874, y0=-0.131, x1, y1 ;
int W;
cout <<"Начальное приближение: ";
cout <<"x0=" << x0 << " ";
cout << "у0="<< y0 << "\n" ;
W=0;
//y1=0;
// for(;;)
while (true)
{
W=W+1;
x1=-0.8+0.5*sin(y0);
y1=0.8-cos(x1+0.5);
cout << "Итерация №: " << W << " ";
cout << "x" << W << "=" << x1 << " ";
cout << "y"<< W << "=" << y1 << "\n";
if (fabs(y1-y0)<=E);
{
break;
}
y0=y1;
}
getch();
return (0);
}
[/CPP]
в итоге:
Если посмотреть графически, то действительно было ближе приближено значение к точке пересечения.
Но по какой-то причине цикл был пройден один раз и после этого завершился. Если уменьшать или увеличивать точность или использовать цикл for(;;), то всё равно ничего не изменится
Помогите пожалуйста! Я в программировании полый чайник, ошибка где-то на поверхности, но неукого спросить!