X

Y

0.40

0.41075

0.55

0.57815

0.65

0.69675

0.80

0.88811

0.90

1.02652

1.05

1.25382

#include

using namespace
std;

double
average_deviation(double* function_value,double*
independent_variable,int
end);     
//声明均差函数

int main()

{

double
x[5]={0.40,0.55,0.65,0.80,0.90};     
//用来存储已知x的值

double
y[5]={0.41075,0.57815,0.69675,0.88811,1.02652};     
//用来存储已知y的值

double
result=0;     
//用来保存最后的插值结果

double
input_x;     
//插值的x值

double
polynomial;     
//保存多项式的值

cout<<"通过插值得到的函数为:"<<endl;

for (int i=0;i<5;i++)

{

cout<<average_deviation(y,x,i);

for (int j=0;j

cout<<"*"<<"("<<"x-"<<x[j]<<")";

if (i<4)

cout<<"+";

}

cout<<endl;

cout<<"请输入插值的x值:";

cin>>input_x;

for (int i=0;i<5;i++)

{

polynomial=1;

for (int j=0;j

{

polynomial*=(input_x-x[j]);

}

result+=(average_deviation(y,x,i)*polynomial);

}

cout<<"插值得到的函数值为:"<<result<</span><</span>endl;

return 0;

}

double
average_deviation(double* function_value,double*
independent_variable,int end)

{

double*
function_value_f;     
//function_value_f用来保存0到k-1的k阶均差

double*
function_value_b;     
//function_value_f用来保存1到k的k阶均差

double*
independent_variable_f;     
//用来保存前k-1个值

double*
independent_variable_b;     
//用来保存后k-1个值

double value_f;

double value_b;

if (0==end)

{

return function_value[end];

}

else

{

function_value_f=new double[end];

independent_variable_f=new double[end];

function_value_b=new double[end];

independent_variable_b=new double[end];

for (int i=1;i<=end;i++)

{

function_value_f[i-1]=function_value[i];

independent_variable_f[i-1]=independent_variable[i];

}

for (int i=0;i<=end-1;i++)

{

function_value_b[i]=function_value[i];

independent_variable_b[i]=independent_variable[i];

}

value_f = average_deviation(function_value_f,
independent_variable_f, end - 1);

value_b = average_deviation(function_value_b,
independent_variable_b, end - 1);

delete[] function_value_f;

delete[] function_value_b;

delete[] independent_variable_b;

delete[] independent_variable_f;

return
(value_f-value_b)/(independent_variable[end]-independent_variable[0]);

}

}

牛顿插值法(c++)的更多相关文章

  1. 牛顿插值法——用Python进行数值计算

    拉格朗日插值法的最大毛病就是每次引入一个新的插值节点,基函数都要发生变化,这在一些实际生产环境中是不合适的,有时候会不断的有新的测量数据加入插值节点集, 因此,通过寻找n个插值节点构造的的插值函数与n ...

  2. 牛顿插值法及其C++实现

    h1 { margin-bottom: 0.21cm } h1.western { font-family: "Liberation Sans", sans-serif; font ...

  3. Matlab数值计算示例: 牛顿插值法、LU分解法、拉格朗日插值法、牛顿插值法

    本文源于一次课题作业,部分自己写的,部分借用了网上的demo 牛顿迭代法(1) x=1:0.01:2; y=x.^3-x.^2+sin(x)-1; plot(x,y,'linewidth',2);gr ...

  4. 牛顿插值法(c++)【转载】

    摘自<c++和面向对象数值计算>,代码简洁明快,采用模板函数,通用性增强,牛顿差分合理利用存储空间,采用Horner算法(又称秦九韶算法)提高精度,减少时间复杂度,高!确实是高!对其中代码 ...

  5. 差分形式的牛顿插值法(c++)

    本程序对cosx函数进行插值,取步长为0.1,因此x的值为0.00,0.10,0.20,0.30,对应的y值为cos(0.00),cos(0.10),cos(0.20),cos(0.30),其实本程序 ...

  6. CPP,MATLAB实现牛顿插值

    牛顿插值法的原理,在维基百科上不太全面,具体可以参考这篇文章.同样贴出,楼主作为初学者认为好理解的代码. function p=Newton1(x1,y,x2) %p为多项式估计出的插值 syms x ...

  7. 埃尔米特插值问题——用Python进行数值计算

    当插值的要求涉及到对插值函数导数的要求时,普通插值问题就变为埃尔米特插值问题.拉格朗日插值和牛顿插值的要求较低,只需要插值函数的函数值在插值点与被插函数的值相等,以此来使得在其它非插值节点插值函数的值 ...

  8. 风景区的面积及道路状况分析问题 test

    参考文献:   https://wenku.baidu.com/view/b6aed86baf1ffc4ffe47ac92.html #include <bits/stdc++.h> us ...

  9. ORACLE SQL 实现IRR的计算

    一.IRR计算的原理: 内部收益率(Internal Rate of Return (IRR)),就是资金流入现值总额与资金流出现值总额相等.净现值等于零时的折现率. 用公式 标识:-200+[30/ ...

随机推荐

  1. Java自学-数组 创建数组

    Java 如何创建一个数组 数组是一个固定长度的,包含了相同类型数据的 容器 步骤 1 : 声明数组 int[] a; 声明了一个数组变量. []表示该变量是一个数组 int 表示数组里的每一个元素都 ...

  2. Java框架之MyBatis框架(二)

    Mybatis框架是相对于优化dao层的框架,其有效的减少了频繁的连接数据库(在配置文件xml中进行配置),将sql语句与java代码进行分离(写在XXXXmapper.xml文件中,一个表对应一个x ...

  3. CSS 之 圣杯布局&双飞翼布局

    圣杯布局 和 双飞翼布局 是重要布局方式.两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局. 遵循了以下要点: 两侧宽度固定,中间宽度自适应 中间部分在DOM结构上优先,以便先行 ...

  4. [LeetCode] 437. 路径总和 III ☆☆☆(递归)

    路径总和 III 描述 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子 ...

  5. (二)分布式数据库tidb-事务

    tidb既然是分布式数据库,所以它的事务应该可其它数据库事务有着不同的区别.我们来了解下tidb的数据库事务. (一)事物 1.几种数据库的默认隔离级别: tidb是乐观锁 (二)事务语句 TiDB ...

  6. MySQL/MariaDB数据库的PROXY实现读写分离

    MySQL/MariaDB数据库的PROXY实现读写分离 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.ProxySQL概述 1>.各家互联网公司读写分离的解决方案 m ...

  7. 记录第n次网站渗透经历

    如标题所示,第x次实战获取webshell的经历是非常美好且需要记录的(毕竟开始写博客了嘛).这能够证明这一路来的学习没有白费,也应用上了该用的知识. 首先怎么说呢,某天去补天看了看漏洞,发现有一个网 ...

  8. CentOS6.5_x64上简单编译配置Heartbeat3.0.4

    Heartbeat 3与 2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理.即h ...

  9. Linux入侵类问题排查思路

    深入分析,查找入侵原因 一.检查隐藏帐户及弱口令 检查服务器系统及应用帐户是否存在 弱口令: 检查说明:检查管理员帐户.数据库帐户.MySQL 帐户.tomcat 帐户.网站后台管理员帐户等密码设置是 ...

  10. .pro文件部分命令详解

    #引入c++11 CONFIG += C++11 # 引入头文件的路径 INCLUDEPATH += D:\opencv\opencv3.2\configure\install\include # 引 ...