nie wiem co zrobic zeby to zadzialalo:
rozwiazac w przedziale <0;pi/2> metoda newtona townanie tgx=3x
mam taki kod, ale nigdzie nie moge znaleŹĆ jak w tej metodzie ograniczyc, ze ma szukac tylko w tych przedzialach. W kazdym razie wiekszym problemem, ze ona nie dziala. Kolejne wyniki zblizaja x do - nieskonczonosci. Kalkulator z http://www.coolmath.com/graphit/index.html rysuje wynik okolo 1.3 i -1.3
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
float f(float x) { // funkcja ktorej miejsce zerowe obliczamy
return sin(x)/cos(x)-3*x;
}
float fp(float x) { // jej pochdna
return 1/cos(x)*cos(x)-x;
}
float newton(float f(float),float df(float),float a) {
float x=a,dx;
if (df(a) == 0.) {
printf("w podanym punkcie styczna jest rownolegla do osi x\n");
return a;
} else {
do {
dx=f(x)/df(x);
x -= dx;
// printf("%f\n",x);
//system("pause");
} while (fabs(dx) > 1.E-6);
return x;
}
}
int main() {
printf("%f",newton(f,fp,0.5));
}