【说明】插值与拟合

在科学研究和工程中,许多问题都可以用y = f(x)来表示其某种内在规律的数量关系,不仅函数f(x)是各种各样的,而且有的函数很复杂,甚至没有明显的解析表达式
因此可以采用两种方法:插值法和拟合法,来求一个近似解。
其中插值法主要思想是 取n个点 pi = yi,然后找到一个简单函数p(x)近似f(x),使得p(xi) = f(xi);
而拟合法主要的思想是 |pi - yi| < exp;从而构造p(x)近似f(x)

【数学理论依据】

    #include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>#define N 5#define pi 3.1415926/**********************************************求解差值多项式1.lagrange差值法*    2.newton差值法**x 0 pi/6   pi/4   pi/3  pi/2*y  0 0.5     0.707104      0.866025   1*******************************************/typedef struct {double x;double y;}ADT;/*************************************************拉格朗日插值法* ************************************************/double Lagrange(double temp, ADT *point) {double result = 0;int i = 0,j = 0;double t;for (i = 0; i < N; i++) {t = 1;for (j = 0; j < N; j++) {if (i != j) {t *= (temp - point[j].x) / (point[i].x - point[j].x); }}result += t * point[i].y;}return result;}/*********************************************************牛顿插值法* 优点:*    利用一个滚动数组来保存值,减少存储空间*********************************************************/void show(ADT *p) {for (int i = 0; i < N; i++) {printf("%10lf -- %10lf\n",p[i].x, p[i].y);}printf("over\n");}double Newton(double temp, ADT *point){double ans = point[0].y;int i = 0, j = 0;double t = 1;//求解系for (i = 1; i < N; i++) {show(point);t *= (temp - point[i-1].x);printf("t = %lf \n",t); for (j = 0; j < N - i; j++) {printf("(%10lf -%10lf) / (%10lf -%10lf) \n",point[j + 1].y,point[j].y, point[i + j].x,point[j].x );//每次计算对角线结果均保存在point[0].y中 point[j].y = (point[j + 1].y - point[j].y) / (point[i + j].x - point[j].x) ; }ans += (point[0].y * t);}   return ans;}int main() {double temp = pi / 5;// int i,j;double result;printf("调用库函数的ans%4lf\n",sin(temp));//定义结构体数据ADT data[N] = { {0,0}, {pi/6, 0.5}, {pi/4, 0.707104}, {pi/3, 0.866025},{pi/2,1 } };//调用函数//   result = Lagrange(temp, data);//   printf("answer = %4lf\n",result);printf("answer = %4lf\n",Newton(temp,data));return 0;}

利用牛顿差值法求解结果

【计算方法】插值法多项式的求法--利用Lagrange插值和Newton插值相关推荐

  1. 插值与拟合 (一) : 拉格朗日多项式插值 、Newton插值 、分段线性插值、Hermite插值 、样条插值、 B 样条函数插值、二维插值

    插值:求过已知有限个数据点的近似函数. 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小. 插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似 ...

  2. 插值法:拉格朗日插值、牛顿插值

    拉格朗日插值法 (*以下定义选自维基百科) 算法流程图 算法代码 [cpp] view plaincopy #include<iostream> #include<string> ...

  3. matlab全域基函数,多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]...

    全域多项式插值指的是在整个插值区域内形成一个多项式函数作为插值函数.关于多项式插值的基本知识,见"计算基本理论". 在单项式基插值和牛顿插值形成的表达式中,求该表达式在某一点处的值 ...

  4. 【数值分析】插值法:拉格朗日插值、牛顿插值

    本科课程参见:<软件学院那些课> 拉格朗日插值法 (*以下定义选自维基百科) 算法流程图 算法代码 #include<iostream> #include<string& ...

  5. 利用MatLab对数据进行插值计算(分段插值和三次样条插值)

    利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...

  6. Jordan矩阵、可逆矩阵、最小多项式的求法,对角化的判断

    Jordan矩阵的求法: 求一个矩阵的Jordan矩阵,先要求其特征值,一般情况下该矩阵会有重根,否则Jordan矩阵就太容易求了,直接把所有的特征值写在主对角元上,其余位置补零即可. 在遇到重根时就 ...

  7. 数值分析案例:Newton插值预测2019城市(Asian)温度、Crout求解城市等温性的因素系数

    数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温性的因素系数 文章目录 数值分析案例:Newton插值预测2019城市(Asian)温度.Crout求解城市等温 ...

  8. 数学建模十大算法02—插值与拟合(拉格朗日插值、三次样条插值、线性最小二乘法……)

    文章目录 引入 一.插值 1.1 分段线性插值 1.2 牛顿插值法 1.3 拉格朗日插值多项式 1.4 样条插值 1.4.1 三次样条插值 1.5 二维插值 1.5.1 插值节点为网格节点 1.5.2 ...

  9. 拉格朗日插值_拉格朗日插值定理的理论基础

    缺失,几乎是不可避免的.只要做数据处理,不可避免的工作就是插值.而插值里面比较常用的方法之一就是拉格朗日插值法,这篇文章就跟大家讲讲拉格朗日插值的理论基础. 为什么需要进行插值 我们进行数据处理的理想 ...

最新文章

  1. python正则表达式语法
  2. 查询一个字符串的子串出现的次数在sql中
  3. xmake 新增对 Qt 编译环境支持,用自己最喜爱的编辑器去开发 Qt 程序
  4. 进程间的通信方式(一):共享内存
  5. ESP8266、ESP32 和 ESP32-S2 对比
  6. linux pwn练习0x01
  7. 让oracle做定时任务【转】
  8. opengl坐标转换
  9. Django从理论到实战(part30)--Meta配置
  10. SQL中 Left Join 与 Right Join 与 Inner Join 与 Full Join的区别
  11. 我的JavaWeb学习1
  12. ASN.1编解码:asn1c的基本使用
  13. JS调试的时候遇到无限debugger怎么办?
  14. 使用C#进行图片转换格式,缩放,自动旋转,保留exif(转载)
  15. 【python数据分析】用python进行数据探索2(常见matplotlib及pandas绘图函数汇总、对比及拓展)
  16. Uniapp苹果登录sign in Apple
  17. NOI / 2.1基本算法之枚举 1809:两倍
  18. gfortran版本
  19. 用JAVA写一个画图程序(课程设计)
  20. cuda9.0+cudnn7.0 +tensorflow1.5(1.6) 报错:ImportError: libcublas.so.9.0: cannot op

热门文章

  1. PackEdge Plato 18.1中文版
  2. Python爬取CCTV15
  3. mini6410 USB下载线驱动
  4. 世道变了,微软连Java都支持了
  5. 【JavaScript】JS执行机制--同步与异步
  6. wow(1) : UI插件_EUI[1]_配置分享
  7. 2020省市区最新数据(国家统计局最新数据-自取)
  8. python循环的使用(四)
  9. 中国游戏引擎发展现状分析
  10. android 播放视频结束回调,Android万能音频播放器09-添加Seek功能和完成播放回调...