newton迭代法.c

来自「数值分析中」· C语言 代码 · 共 56 行

C
56
字号
/* 标准文档模板 */

#include "Stdio.h"
#include "math.h"
float fun(float x)
{float y;
y=(x-1)*(x-1)*(2*x-1);
return y;}

float fund(float x)
{float z;
z=2*(x-1)*(2*x-1)+2*(x-1)*(x-1);
return z;}

float fun1(float x0)
{float x1,y,z;
y=fun(x0);
z=fund(x0);
x1=x0-2*y/z;
return x1;
}
int comp(float a,float b)
{float c;
if (a>0)
{c=a-b;
  {if (c>0)
  return 1;
  else return 0;}
  }
else
{c=-a-b;
  {if (c>0)
  return 1;
  else return 0;}
  }

 }
main()
{
 /* 此处添加你自己的代码 */
 float x1,x0=0.55,a2=0.000001,a1=0.000001,n=50;
 int k=1;
 while((k<n)&(comp(fun(x0),a1)==1))
 {x1=fun1(x0);
 if(comp((x1-x0),a2)==0)
 {printf("%f",x1);
 break;}
 else {x0=x1;k++;}
 }
 printf("k=%d",k);
 if(comp(fun(x0),a1)==0)
 printf("qiyi   fun(x0)%f\nx0=%f",fun(x0),x0);
 if(k==n)
 printf("shibai");

}

⌨️ 快捷键说明

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