牛顿迭代.txt

来自「拉格朗日插值」· 文本 代码 · 共 38 行

TXT
38
字号
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main()
{
  int n,i=1;
  float a,b,p,q,f,d;
  double tol;
  printf("Input a,p,q,n:");
  scanf("%f,%f,%f,%d",&a,&p,&q,&n);
  while(i<=n)
  {
    f=(float)(cos(a)-a);
    d=(float)(-sin(a)-1);
	if(fabs(d)<q)  break;
    if(fabs(d)>=q&&fabs(f)<p)
	{
	  printf("x=%f\n",a);
	  exit(0);
	}
	if(fabs(d)>=q&&fabs(f)>=p) 
	{
	  b=a-f/d;
	  tol=fabs(a-b);
	  if(tol<p)
	  {
	    printf("x=%f\n",b);
		exit(0);
	  }
	  else
	  {
	    a=b; 
	    i++;
	  }
	}
  }
  printf("!TT!\n");
}

⌨️ 快捷键说明

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