二分法:
#include<stdio.h>
#include<math.h>void main()
{
double x,x1=1,x2=3,f1,f2,f;
f1=x1*x1*x1-3*x1-1;
f2=x2*x2*x2-3*x2-1;
if(f1*f2>0)
printf("在此区间没有根!");
else
{
do
{x=(x1+x2)/2;
f=x*x*x-3*x-1;
if(f==0)
break;
else if(f1*f>0)
{x1=x;
f1=f;}
else
{
x2=x;
}}
while(fabs(x1-x2)>=0.000001);
printf("近似值为: %.7f\n",x);
printf("与理论值相差为: %.7f",x-1.8793852);
}
}
牛顿迭代法:
#include<stdio.h>
#include&l