栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C代码牛顿插值

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C代码牛顿插值

1、牛顿插值的作用

        牛顿插值是用于拟合曲线--在有限个点的条件下,拟合出一条平滑的曲线

        这里有个前提条件-输入的点必须无错误,也就是说牛顿插值并不能解决误差的问题

        插值有两个,一个叫拉格朗日插值,一个是牛顿插值,牛顿插值优胜于拉格朗日插值法

2、一些事项

2.1、笔者认为,牛顿插值可以分成两:1、磋商,2、计算某个点对应的坐标值;考虑到提升CPU的性能,所以应当先进行磋商,把磋商后的结果储存起来,然后计算点时就用磋商值直接计算

2.2、注意:插值次数不能大于等于已知点的个数,但是与所查数列长度有关,因此最佳值应是已知点个数减一。

3、话不多说-代码:

3.1、算法函数

#define pointMax 6 //已知点的个数

//牛顿插值第一步计算-差商 输入 x轴数据,y轴数据,ff储存数组,num插值次数
void Newton1(float xx[],float yy[],float ff[pointMax][pointMax],int num)
{
    unsigned char i,j;
    if(pointMax <= num + 1)
        num = pointMax - 1;
	
	for(i=0;i 

3.2、调用算法函数计算

void main(void)
{
    float x_aim;//任意x轴上的坐标点
    float y_aim;//x轴上某点对应的Y轴的坐标点 - 计算结果
    float x[pointMax] = {1,2,3,4,5,6};//已知x轴的坐标点-最好递增,不要有相等值
    float y[pointMax] = {1,2,3,4,5,6};//已知y轴点,与上一行x轴要对应
    float f[pointMax][pointMax];//储存磋商的值 其有效值在主对角线上
    //如:一节磋商值 f[1][1] ,二姐磋商值 f[2][2] 等
    Newton1(x,y,f,(pointMax-1));//磋商结果计算
    while(1)
    {
        x_aim = 4.25;//输入要计算的x轴坐标值
        y_aim = Newton2(x,f,x_aim,(pointMax-1));//计算:x_aim对应下的Y轴坐标
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698232.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号