📄 newton.cpp
字号:
#include <stdio.h>
#include <math.h>
int fac(int n)
{
int i,m=1;
for(i=1;i<=n;i++)
{
m*=i;
}
return m;
}
void main()
{
double x[5]=
{
1.566,1.567,1.568,1.569,1.570
};
double tanx[5]=
{
208.49128,263.41125,357.61106,556.69098,1255.76559
};
double sinx[5]=
{
0.9999885,0.9999928,0.9999961,0.9999984,0.9999997
};
double cosx[5]=
{
0.0047963,0.0037963,0.0027963,0.0017963,0.0007963
};
double chazhi[9][5]={0};
double chazhi2[9][5]={0};
double chazhi3[9][5]={0};
int i,j;
double h=0.001;
double xi=1.5695;
double t=(xi-x[0])/h;
double result,result2,result3;
double tem;
for(i=0;i<5;i++)
{
chazhi[2*i][0]=sinx[i];
chazhi2[2*i][0]=cosx[i];
chazhi3[2*i][0]=tanx[i];
}
for(i=1;i<5;i++)
{
for(j=i;j<5;j++)
{
chazhi[i+2*(j-i)][i]=chazhi[i+2*(j-i)+1][i-1]-chazhi[i+2*(j-i)-1][i-1];
chazhi2[i+2*(j-i)][i]=chazhi2[i+2*(j-i)+1][i-1]-chazhi2[i+2*(j-i)-1][i-1];
chazhi3[i+2*(j-i)][i]=chazhi3[i+2*(j-i)+1][i-1]-chazhi3[i+2*(j-i)-1][i-1];
}
}
result=sinx[0];
result2=cosx[0];
result3=tanx[0];
for(i=1;i<5;i++)
{
tem=1;
for(j=0;j<i;j++)
{
tem*=(t-j);
}
result+=(chazhi[i][i]/fac(i)*tem);
}
for(i=1;i<5;i++)
{
tem=1;
for(j=0;j<i;j++)
{
tem*=(t-j);
}
result2+=(chazhi2[i][i]/fac(i)*tem);
}
for(i=1;i<5;i++)
{
tem=1;
for(j=0;j<i;j++)
{
tem*=(t-j);
}
result3+=(chazhi3[i][i]/fac(i)*tem);
}
printf("sinx=%f,cosx=%f,sinx/cosx=%f,直接差值tanx=%f\n",result,result2,result/result2,result3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -