📄 newton.cpp
字号:
// Newton.cpp: implementation of the Newton class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Newton.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
void Newton::cal(double DATA[100][2],double var)
{int i;
setup();
for(i=0;DATA[i][0]<999999;i++)
{input(DATA[i][0],DATA[i][1]);}
calculate();
cal_val(var);
}
void Newton::setup() /*初使化变量与自变量数组*/
{int i,j;
tail_mark=0;
for(i=0;i<100;i++)
{autovar[i]=99999999.0;}
for(i=0;i<100;i++)
for(j=0;j<100;j++)
{var[i][j]=99999999.0;}
};
bool Newton::input(double temp_autovar,double temp_var) /*输入变量与自变量的值*/
{int i,j;
for(i=0;i<=tail_mark;)
{if(temp_autovar>autovar[i])
i=i+1;
else
if(temp_autovar<autovar[i])
{for(j=tail_mark;j>=i;j--)
{autovar[j+1]=autovar[j];var[j+1][0]=var[j][0];}
autovar[i]=temp_autovar;
var[i][0]=temp_var;
tail_mark=tail_mark+1;
return(1);
break;
}
else
return(0);
}
return(1);
};
void Newton::calculate() /*计算均差*/
{int i,j;
for(i=1;i<tail_mark;i++)
for(j=i;j<tail_mark;j++)
{var[j][i]=(var[j-1][i-1]-var[j][i-1])/(autovar[j-i]-autovar[j]);
}
};
double Newton::display(double DATA_QUO[100][100])
{int i,j;
for(i=0;i<tail_mark;i++)
{for(j=0;j<=i;j++)
{DATA_QUO[i][j]=var[i][j];}
}
return result;
};
void Newton::cal_val(double val)
{int i,j;
double temp_var;
result=var[0][0];
for(i=1;var[i][i]<9999999;i++)
{for(j=0,temp_var=var[i][i];j<i;j++)
{temp_var=temp_var*(val-autovar[j]);}
result=result+temp_var;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -