牛顿迭代法求方程的根

#include<stdio.h>

#include<math.h>

void main()

{int flag=1,c; //设置flag控制while循环(即控制整个程序是否继续运行) // while(flag==1)

{float x,y,f,f1;

int i=0;

printf("\n请输入x的值:\n");

scanf("%f",&x); //输入x的初值//

for(;(f1!=0)&&(fabs(y-x)>=0.000001);) //迭代循环控制条件:导数方程不为0且,误差控制在0.000001的范围内//

{y=x;

f=pow(x,7)-28*pow(x,4)+14; //原方程//

f1=7*pow(x,6)-28*4*pow(x,3); //原方程的导数方程//

x=x-f/f1; //牛顿迭代公式//

i++; //累计迭代的次数//

printf("x=%f,y=%f\n",x,y); //输出每次迭代的值//

}

printf("\n方程的近似根:y=%f\n",y);

printf("\n迭代次数:%d\n",i);

printf("是否继续(Y/N)?"); //提示是否输入下一个x的初值//

getchar();

c=getchar();

if(c=='N'||c=='n') //如果输入N或n,则flag=0退出程序;否则flag=1,则继续运行程序//

flag=0;

else flag=1;

}

}

你可能喜欢

  • 简单迭代法
  • Gauss-Seidel迭代法
  • 高三直线方程
  • 迭代算法
  • 直线的方程练习题
  • 中种法
  • 直接法

牛顿迭代法求方程的根相关文档

最新文档

返回顶部