#include <stdio.h>
#include <math.h>

double func(double x);
double funcd(double x);
double neuton(double x);
int main(void)
{
double x = 4.0;
int i;
for(i=0;i<100;i++){
printf("%e\n",x);
x = neuton(x);
if(x == neuton(x))break;
}
printf("[x] = %lf",func(x));
return 0;
}

double func(double x)
{return (3*sin(x)+log(x));}
double funcd(double x)
{return (3*cos(x)+1/x);}
double neuton(double x)
{return (x-func(x)/funcd(x));}

ニュートン法ならこれで、xに近い点にある解が求まる
ラフトンてのはシラネ