📄 newton.cpp
字号:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
void main()
{
double x[10],X[10];
double y[10];
double Y[10][10] = {0};
int n,i;
double t,m;
double E[10],A[10],N[10];
double e;
printf(" 输入已知插入点 t 值: ");
cin >> t;
printf("\n 输入数据组个数 n : " );
scanf("%d",&n);
cout << "\n 输入 n 个 x 数据值: ";
for(i=0;i<n;i++)
cin >> x[i];
cout << "\n 输入 n 个 f(x) 数据值: ";
for(i=0;i<n;i++)
cin >> y[i];
cout << "\n 输入误差精度值 e : ";
cin >> e;
for(i=0;i<n;i++)
{
X[i] = x[i] - t;
if(X[i]<0)
X[i] = - X[i];
}
for(i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(X[i]>X[j])
{
m = X[i];
X[i] = X[j];
X[j] = m;
}
A[0] = 1;
N[0] = y[0];
for(i=0;i<n;i++)
Y[0][i] = y[i];
for(i=1;i<n;i++)
{
for(int j=i;j<n;j++)
Y[i][j] = (Y[i-1][j] - Y[i-1][j-1])/(X[j] - X[j-i]);
A[i] = A[i-1]*(t - X[i-1]);
E[i] = Y[i][i]*A[i];
N[i] = N[i-1] + E[i];
if(E[i]<0)
E[i] = -E[i];
if(E[i]<e)
goto exit;
}
exit:
printf("\n 进行了 %d 次牛顿差商运算,达到要求误差精度低于 e = %f 的要求\n",i,e);
printf("\n 计算结果如下: \n");
for(int j=0;j<=i;j++)
printf("\n N%d(t) = %f\n",j,N[j]);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -