Mam zadanie żeby wyznaczać pierwiastki równania nieliniowego metodą iteracji prostej. Mam taką funkcję: ln(x) + sin(x/4) = 0
Każdy w grupie ma inną funkcję do policzenia ale mój kolega wykminił coś takiego dla swojej funkcji:
#include <math.h>
#include <stdio.h>
using namespace std;
double g(double x)
{
return (1/(pow((2.+x),2.)))-sin(x);
}
int main()
{
double x=0.0, f, bl=1.0;
const double BLAD=0.00001;
int i=1;
do
{
f=g(x);
bl=fabs(x-f);
printf("Po=%i iteracji x=%f\n",i ,x);
x=f;
i++;
}while(bl>=BLAD&&i<=34);
return 0;
}
próbowałem zastosować to do mojej funkcji ale program zwraca: Po=2 iteracji x=inf
Bardzo bym prosił o wytłumaczenie dlaczego to nie działa? :)