计算方法(2)-插值法
- 格式:ppt
- 大小:375.50 KB
- 文档页数:38
插值法数学计算方法插值法是一种数学计算方法,用于在已知数据点的基础上,通过构建一条插值曲线来估计未知数据点的值。
插值法可以应用于各种数学问题中,例如逼近函数、插值多项式、差值等。
本文将详细介绍插值法的原理和常见的插值方法。
一、插值法的原理插值法的基本思想是通过已知数据点的函数值来构建一个函数表达式,该函数可以通过插值曲线来估计任意点的函数值。
根据已知数据点的数量和分布,插值法可以采用不同的插值方法来构建插值函数。
插值法的原理可以用以下几个步骤来描述:1.收集已知数据点:首先,需要收集一组已知的数据点。
这些数据点可以是实际测量得到的,也可以是其他方式获得的。
2.选择插值方法:根据问题的特性和数据点的分布,选择适合的插值方法。
常见的插值方法包括拉格朗日插值法、牛顿插值法、埃尔米特插值法等。
3.构建插值函数:通过已知数据点,利用选择的插值方法构建插值函数。
这个函数可以拟合已知数据点,并通过插值曲线来估计未知数据点。
4.估计未知数据点:利用构建的插值函数,可以估计任意点的函数值。
通过插值曲线,可以对未知数据点进行预测,获得相应的数值结果。
二、常见的插值方法1.拉格朗日插值法:拉格朗日插值法基于拉格朗日多项式,通过构建一个具有多项式形式的插值函数来逼近已知数据点。
插值函数可以通过拉格朗日基函数计算得到,式子如下:P(x) = ∑[f(xi) * l(x)], i=0 to n其中,P(x)表示插值函数,f(xi)表示已知数据点的函数值,l(x)表示拉格朗日基函数。
2.牛顿插值法:牛顿插值法基于牛顿差商公式,通过构建一个递归的差商表来逼近已知数据点。
插值函数可以通过牛顿插值多项式计算得到,式子如下:P(x) = f(x0) + ∑[(f[x0, x1, ..., xi] * (x - x0) * (x - x1)* ... * (x - xi-1)] , i=1 to n其中,P(x)表示插值函数,f[x0, x1, ..., xi]表示xi对应的差商。
20x0年1月1日,甲公司支付价款1 000万元(含交易费用)从上海证券交易所购入A公司同日发行的5年期公司债券,面值1 250万元,票面利率4.72%,于年末支付本年利息(即每年1 250× 4.72%=59万元),本金最后一次偿还。
合同约定,该债券的发行方在遇到特定情况时可以将债券赎回,且不需要为提前赎回支付额外款项。
甲公司在购买该债券时,预计发行方不会提前赎回。
不考虑所得税、减值损失等因素。
这里20x0年的摊余成本是购买时的1000吗?如果不是那么1000是怎么来的由哪个数字金额调整来的?本人没有会计基础希望内行的朋友解释详细一些,谢谢前4年每年年末收到利息59 万,第5年收到本金+利息= 1250+59=1309万设实际利率为r将未来的收益折成现值:即59/(1+r) + 59/(1+r)^2 + 59/(1+r)^3 + 59/(1+r)^4 + (1250+59)/(1+r)^5 = 1000也可以表示成59(P/A,r,5)+1250(P/S,r,5)=1000解这个方程就要用插值法了,就是假设r为两个值,使等式前段的值一个大于1000,一个小于1000。
例如假设r=9%(a),则等号前的式子等于1041.9(A)大于1000再设r=11%(b),则等号前的式子等于959.872(B)小于1000,则这两个假设就符合条件了,再代入公式:(1000-A)/(B-A)=(r-a)/(b-a)得出实际利率r=10%算摊余成本就是期末摊余成本=期初摊余成本+按实际利率算的利息-按票面利率算的应收利息20X0年期末摊余成本= 1000 + 1000*10% - 59 = 1041万20X1年期末摊余成本就是1041+ 104.1-59=1086.1万算至20X4年的时候期末摊余成本应该就等于1250万了设与A1对应的数据是B1,与A2对应的数据是B2,与A对应的数据是B,A介于A1和A2之间,按照(A1-A)/(A1-A2)=(B1-B)/(B1-B2),计算出A的数值。
计算方法报告——插值1.原理简介插值法是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值。
根据算法和插值要求的不同,有多种插值方法。
拉格朗日插值:有平面上点集{(x i,y i)}共n个点,现作函数f(x)图像使其过这n个点P i(x)=∏x−x j x i−x jnj=0 j≠i L n(x)=∑P i(x)×y ini=1则f(x)=L n(x)牛顿插值:同样点集,用不同方法构造插值多项式。
定义差商:f[x0,x1]=f(x0)−f(x1) x0−x1f[x0,x1……x k]=f[x0,x1……x k−1]−f[x1,x2……x k]x0−x k则有:N(x)=f[x0]+∑f[x0,x1……x k](x−x0)(x−x1)…(x−x k−1)nk=1理论上牛顿插值与拉格朗日插值所得插值多项式完全相同,只是不同写法。
2.算法描述分析函数:homework1.C 画图函数:DrawPlot.cpp为简化程序,将Lagrange插值与Newton插值算法作为子函数调用。
子函数Lagrange()中,输入插值点个数n,插值点集x[n],y[n],即可得到x点的Lagrange插值函数值L(x)。
同样,Newton()中输入相同信息可得到x点Newton插值函数值N(x)。
主函数main()中,先根据设定选择样点为等距分割还是Chebyshev分割,取得点集point_x[n+1]和point_y[n+1],取点范围(-1,1)。
再调用子函数分别计算各x[i]点下的真实函数值,牛顿插值函数值,拉格朗日插值函数值及各种误差,在循环结束后将需要的误差L_inf 和L1输出到屏幕。
最后利用root TGraph把计算得到的数组画出函数图像,并存到rootfile 中。
在误差计算中只用了-1~0上的点,画图时扩大范围画到-1~1全部点DrawPlot函数中读取了homework1.C中画的函数图像,将其整合到一起,设置线条颜色及宽度,加上一个图例,重新生成一张图像。