newton.cpp

来自「newton method 用迭代法计算root.数值计算的常用方法之一。」· C++ 代码 · 共 60 行

CPP
60
字号
/*用牛顿迭代法计算f(x)=x^3-2*x^2-4*x-7在【3,4】中根的近似值,精确到小数点后3位*/
#include <stdio.h>
#include<math.h>

float f(float x)
{
	float y;
y=x*x*x-2*x*x-4*x-7;
return(y);
}



float f0(float x)
{
	float y1;
y1=3*x*x-4*x-4;
return(y1);
}





void main()
{
float x0,x;
int k=1;
int N=500;
int flag;
 

  printf("Please input xo:\n");
  scanf("%f",&x0);
  do{
 	if(f0(x0)>=0.000001)
 	{
  		flag=1;
  		x=x0-f(x0)/f0(x0); 
 	}
 	else if(f0(x0)<0.000001)
 	{
 		flag=0;
 		printf("break up");
 	}
   	loop: x=x0-f(x0)/f0(x0);
     	if(fabs(x-x0)>0.000001)	 
	 {
		 x0=x;k=k+1;
		 goto loop;
	 }
             

  }while(k>=N);


 printf("The root of the equation is: %10.3f\n",x);
 printf(" all is %d times\n",k);

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?