Welcome to ErranLi's Blog!

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  106 Posts :: 1 Stories :: 97 Comments :: 0 Trackbacks

常用链接

留言簿(12)

搜索

  •  

积分与排名

  • 积分 - 172874
  • 排名 - 150

最新评论

阅读排行榜


拉格朗日插值公式:
                        n         n
  Pn(x(i))=      ∑〔   ∏  (x-x(j))/(x(k)-x(j)) 〕y(k)
                      k=0     j=0
                                 j≠k
 
  属性:插值计算法
                                                                                           n
  精度(局部截断误差):| f(x) - Pn(x) | = [f(ε)] / (n+1)!  ∏  ( x - x(k) )   (注:其中[f(ε)]为f(ε)第n+1次求导的表达式)
                                                                                         k=0
                                         
 《数值分析简明教程》-2 Editon -高等教育出版社 -page 18 -算法流程图

  代码维护:2005.6.11  DragonLord
**/

#include<iostream.h>
int main()
{
 float x;//插值
 float p[10][2];//已知(x0,y0),(x1,y1)...
 int n;//输入已知插值组数
 float y,t;
 int k;
 
 cout<<"输入插值组数:"<<endl;
 cin>>n;
 cout<<"输入"<<n<<"组已知插值数(X,Y)"<<endl;
    for(int i=0;i<n;i++)
 {
  cin>>p[i][0]>>p[i][1];
 }
    cout<<"输入插值:"<<endl;
 cin>>x;
 
 y=0;
 k=0;
 
 for(k=0;k<n;k++)
 {
  t=1;
  for(i=0;i<n;i++)
  {
   if(i!=k)
   {
    t=t*(x-p[i][0])/(p[k][0]-p[i][0]);  //key step
   }
  }
  y=y+p[k][1]*t;

 }
 cout<<"插值结果:"<<y<<endl;

return 0;
}


posted on 2007-10-13 23:57 erran 阅读(1377) 评论(0)  编辑 收藏 引用 所属分类: Algorithmic

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理