牛顿插值法(c++)
|
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++)的更多相关文章
- 牛顿插值法——用Python进行数值计算
拉格朗日插值法的最大毛病就是每次引入一个新的插值节点,基函数都要发生变化,这在一些实际生产环境中是不合适的,有时候会不断的有新的测量数据加入插值节点集, 因此,通过寻找n个插值节点构造的的插值函数与n ...
- 牛顿插值法及其C++实现
h1 { margin-bottom: 0.21cm } h1.western { font-family: "Liberation Sans", sans-serif; font ...
- Matlab数值计算示例: 牛顿插值法、LU分解法、拉格朗日插值法、牛顿插值法
本文源于一次课题作业,部分自己写的,部分借用了网上的demo 牛顿迭代法(1) x=1:0.01:2; y=x.^3-x.^2+sin(x)-1; plot(x,y,'linewidth',2);gr ...
- 牛顿插值法(c++)【转载】
摘自<c++和面向对象数值计算>,代码简洁明快,采用模板函数,通用性增强,牛顿差分合理利用存储空间,采用Horner算法(又称秦九韶算法)提高精度,减少时间复杂度,高!确实是高!对其中代码 ...
- 差分形式的牛顿插值法(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),其实本程序 ...
- CPP,MATLAB实现牛顿插值
牛顿插值法的原理,在维基百科上不太全面,具体可以参考这篇文章.同样贴出,楼主作为初学者认为好理解的代码. function p=Newton1(x1,y,x2) %p为多项式估计出的插值 syms x ...
- 埃尔米特插值问题——用Python进行数值计算
当插值的要求涉及到对插值函数导数的要求时,普通插值问题就变为埃尔米特插值问题.拉格朗日插值和牛顿插值的要求较低,只需要插值函数的函数值在插值点与被插函数的值相等,以此来使得在其它非插值节点插值函数的值 ...
- 风景区的面积及道路状况分析问题 test
参考文献: https://wenku.baidu.com/view/b6aed86baf1ffc4ffe47ac92.html #include <bits/stdc++.h> us ...
- ORACLE SQL 实现IRR的计算
一.IRR计算的原理: 内部收益率(Internal Rate of Return (IRR)),就是资金流入现值总额与资金流出现值总额相等.净现值等于零时的折现率. 用公式 标识:-200+[30/ ...
随机推荐
- 自学Python编程的第一天----------来自苦逼的转行人
学习Python的第一天,也是我第一次写博客的一天,不怎么会写博客,也不怎么会Python,也不怎么会写总结.在学Python的第一天发现自己脑子不是很好用,在学习过程中出现很多错误,错误锦集如下,哈 ...
- react学习记录(一)
一.React是什么 声明式写法(强调结果,命令式编程强调过程) 组件化 一次学习,随处编写(多种应用场景,web程序,原生手机应用,系统应用,命令行工具) 二.为什么学习react 大公司加持-fa ...
- Vue.js的路由之——vue-router快速入门
直接先上效果图 这个单页面应用有两个路径:/home和/about,与这两个路径对应的是两个组件Home和About. 整个实现过程 JavaScript 创建组件:创建单页面应用需要渲染的组件 创建 ...
- ABAP-System Functions
ABAP_CALLSTACK ABAP_CRC64 ABAP_PRECOMPILED_HEADER_USAGE ABSTOR_TEST AB_CALL_LITL_CHECK AB_CALL_STACK ...
- ABAP开发环境语法高亮的那些事儿
关于SAP ABAP开发环境,Jerry之前写过几篇公众号文章: 那些年我用过的SAP IDE 不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧 使用Visual Studio Code ...
- 【异常】Caused by: java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
使用@RequestParam注解,必须指定名称如: @RequestParam("date")String date
- Unity进阶之ET网络游戏开发框架 07-修正游客登录的异步BUG
版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...
- switch表达式可使用的类型
在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样),在java1.7后支持了对string的判断.
- 2019-2020-1 20199301《Linux内核原理与分析》第九周作业
第八章 进程的切换和系统的一般执行过程 进程的调度实际与进程的切换 ntel定义的中断类型 硬中断:就是CPU的两根引脚(可屏蔽中断和不可屏蔽中断) 软中断/异常:包括除零错误.系统调用.调试断点等在 ...
- HDU - 3644:A Chocolate Manufacturer's Problem(模拟退火, 求多边形内最大圆半径)
pro:给定一个N边形,然后给半径为R的圆,问是否可以放进去. 问题转化为多边形的最大内接圆半径.(N<50): sol:乍一看,不就是二分+半平面交验证是否有核的板子题吗. 然而事情并没有那 ...