用牛顿插值第一步为求差商:
我们把 0 阶差商到 n 阶差商都放在一个一维数组里面就会发现其中的规律,也可以根据这些规律来指导我们编程。
0 阶差商 n 个,一阶差商 n-1个 .... 直到 n 阶差商 1个。
求差商代码为:
bool CShuzhijisuanDlg::Diff()
{
int cur;
cur=m_length*(m_length+1)/2+1;
m_diff=new double[cur];
for(int i=0;i<m_length;i++){//先存放0阶差商
m_diff[i]=parmy[i];
m_diff[i];
}
//存放二阶以上差商
cur=m_length;
int temp;
for(int internal=1;internal<m_length;internal++){
for(i=internal;i<m_length;i++){
temp=cur-m_length+internal-1;
m_diff[cur++]=(m_diff[temp]-m_diff[temp+1])/(parmx[i-internal]-parmx[i]);
}
}
m_isdiff=true;
return true;
}
差商求完我们开始求牛顿插值了:
double CShuzhijisuanDlg::Newton(double xx)
{
if(m_isdiff==false)
Diff();
short int cur=m_length;
double y,z=parmy[0];
for(int i=1;i<m_length;i++){
y=1;
for(int j=0;j<i;j++){
y=y*(xx-parmx[j]);
}
z+=m_diff[cur]*y;
cur=cur+m_length-i;
}
return z;
}
分享到:
相关推荐
对于牛顿插值算法的C语言实现,其中含有节点选择的判断函数,以及牛顿插值算法的实现,希望对正在学习编程的朋友有帮助!
牛顿插值法matlab.doc
用C语言写了一个牛顿插值法,是用中文写的,因为为了让老师觉得这是我写的
运用牛顿插值法给空缺数据进行插值,简单编程实现
牛顿插值法和三次样条插值法的matlab源程序,附件中有详细的例题、算法说明、数据分析以及源程序
数值分析中牛顿插值与拉格朗日插值法的代码
牛顿插值多项式在很多学科中有重要应用,希望对大家有帮助!
matlab编写的牛顿插值程序,可以作为练习
MATLAB实现自定义的拉格朗日插值和牛顿插值,均包括主调函数和被调用函数,程序简单易懂。
用牛顿插值来求sinx在区间多点的值,已知sin0° = 0, sin30° = 0.5, sin45° = 0.7071, sin60° = 0.8660, sin90° = 1. 以此为依据画出sinx在区间的图像。 文件内含实验要求、实验报告(流程图、结果分析、实验心得...
matlab 牛顿插值法 三次样条插值法
\数值分析+计算方法+牛顿插值+拉格朗日插值+埃尔米特插值+C%2B
牛顿插值——数值计算方法牛顿插值——数值计算方法牛顿插值——数值计算方法牛顿插值——数值计算方法牛顿插值——数值计算方法牛顿插值——数值计算方法
牛顿插值算法程序 for(i=0;i;i++) diff[i]=points[i].y; for(i=0;i;i++) {for(j=n;j>i;j--) {diff[j]=(diff[j]-diff[j-1])/(points[j].x-points[j-1-i].x); }
c++牛顿插值法实现 附带代码注释及实验结果文档,插值结果精度高,并附带代码分块注释 以及插值点个数及几次插值可调。
牛顿插值 数值计算 java 代码 画函数图象 牛顿插值 数值计算 java 代码 画函数图象 牛顿插值 数值计算 java 代码 画函数图象 牛顿插值 数值计算 java 代码 画函数图象
数值分析中的牛顿插值程序设计 使用MATLAB程序编写的
这是我的上机实验报告,描述拉格朗日插值与牛顿插值的、