用牛顿迭代法求下面方程y=x^3-5x^2+16x-80的实根的过程是:
  1.你想在谁附近求解,这个范围或者这个数值大多是题目已经给定了的(本例是根据输入的数值来计算的)
  2.令f(x)=x*x*x-5*x*x+16*x-80
  3.x1=X
c语言算法书籍  4.求f(x1)
  5.对f(x)求导,得到f1(x),求f1(x1)
  6.调整x,使x=x1-f(x1)/f1(x1)
  7.符合条件x-x1>1e-5,转到第3步
  8.不符合条件x-x1>1e-5,则x1就是我们要求的实根
  #include <stdio.h>
  #include <math.h>
  //y=x^3-5x^2+16x-80
  float f(float x)
  {
  return (pow(x,3)-5*pow(x,2)+16*x-80);
  }
  float f1(float x)
  {
  return (3*pow(x,2)-10*x+16);
  }
void main()
  {
  float x,x1,y1,y2;
  printf("请输入一个任意实数:X=");
  scanf("%f",&x);
  printf("我可以帮你到这个方程的解\n");
  do{
  x1=x;
  y1=f(x);
  y2=f1(x1);
  x=x1-y1/y2;
  }
  while (fabs(x-x1)>=1e-5);
  printf("A root is %f\n",x1);
  }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。