注册 登录
编程论坛 VC++/MFC

c编程用牛顿法求x-tanx=0的最小正根。精度要求10^-6。

waili0713 发布于 2017-05-19 21:36, 3592 次点击
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double N(double,double);
int main()
{
    double x0 = 4.6;
    double e = 0.000001;
    printf("最小正根=%f\n",N(x0,e));
    system("pause");
    return 0;
}

double F1(double x)//原函数
{
       return x-tan(x);
}

double F2(double x)//原函数的一阶导数函数
{
       return (1-(1/pow(cos(x),2)));
}

double N(double x0)
{
      int i=0;
     double x1;
      while (fabs(x1 - x0) > 0.000001)
       {
         x1 = x0;
         x0 = x1 - F1(x1) / F2(x1);
         i++;
       }
       printf("迭代次数=%d\n",i);
       return x0;
}
1 回复
#2
waili07132017-05-19 21:39
1