插值方法练习题

合集下载

数值方法课后习题答案

数值方法课后习题答案

数值方法课后习题答案习题1:插值法给定一组数据点 \((x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\),使用拉格朗日插值法构造一个多项式 \(P(x)\),使其通过所有给定的数据点。

答案:拉格朗日插值法的多项式 \(P(x)\) 可以表示为:\[ P(x) = \sum_{i=1}^{n} y_i \prod_{\substack{j=1 \\ j \neq i}}^{n} \frac{x - x_j}{x_i - x_j} \]习题2:数值积分使用梯形法则和辛普森法则分别计算定积分 \(\int_{0}^{1} x^2 dx\) 的近似值。

答案:- 梯形法则的近似值:\[ \text{Trapezoidal Rule} \approx \frac{h}{2}(y_0 + 2y_1 +2y_2 + \ldots + y_{n-1}) \]- 辛普森法则的近似值:\[ \text{Simpson's Rule} \approx \frac{h}{3}(y_0 + 4y_1 +2y_2 + 4y_3 + \ldots + y_{n-1}) \]习题3:微分方程数值解考虑常微分方程 \(y' = f(x, y)\),其中 \(f(x, y) = x^2 - y^2\),初始条件 \(y(0) = 1\)。

使用欧拉方法和改进的欧拉方法分别计算\(y(0.1)\) 的近似值。

答案:- 欧拉方法:\[ y_{n+1} = y_n + h \cdot f(x_n, y_n) \]- 改进的欧拉方法:\[ y_{n+1} = y_n + \frac{h}{2} \cdot (f(x_n, y_n) + f(x_{n+1}, y_{n+1})) \]习题4:线性方程组的数值解给定线性方程组 \(Ax = b\),其中 \(A\) 是一个 \(n \times n\)的矩阵,\(b\) 是一个 \(n \times 1\) 的向量。

练习2--插值与拟合

练习2--插值与拟合

用MATLAB作网格节点数据的插值
z=interp2(x0,y0,z0,x,y,’method’)
被插值点 的函数值
插值 节点
被插值点
插值方法
‘nearest’ 最邻近插值; ‘linear’ 双线性插值; ‘cubic’ 双三次插值;
缺省时 双线性插值. 要求x0,y0单调;x,y可取为矩阵,或x 取行向量,y取为列向量,x,y的值分别不能超 出x0,y0的范围.
用MATLAB作非线性最小二乘拟合
Matlab的提供了两个求非线性最小二乘拟合的函数: lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m, 在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参 考例题. 1. lsqcurvefit 已知数据点: xdata=(xdata1,xdata2,…,xdatan), ydata=(ydata1,ydata2,…,ydatan) lsqcurvefit用以求含参量x(向量)的向量值函数
F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T
中的参变量x(向量),使得
n 2
( F ( x, xdata ) ydata )
i 1 i i
最小
输入格式为: (1) x = lsqcurvefit (‘fun’,x0,xdata,ydata); (2) x =lsqcurvefit (‘fun’,x0,xdata,ydata,options); (3) x = lsqcurvefit (‘fun’,x0,xdata,ydata,options,’grad’); (4) [x, options] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); (5) [x, options,funval] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); (6) [x, options,funval, Jacob] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); 说明:x = lsqcurvefit (‘fun’,x0,xdata,ydata,options); fun是一个事先建立的 定义函数F(x,xdata) 的 M-文件, 自变量为x和 xdata 选项见无 迭代初值 已知数据点 约束优化

第三章多项式插值方法习题

第三章多项式插值方法习题

4、经过点(0,1),(1,2),(2,5)的插值多项式 P(x) ( D )
(A) x
(B) x 1
(C) 2x 1 (D) x2 1
x 0 2 51
5、已知函数 y f (x) 的数据表

y 3 6 9 0
则 y f (x) 的拉格朗日插值基函数 l2 (x) ( A )
(A) x(x 2)( x 1) (B) (x 2)( x 5)( x 1)
第三章 习 题
1、 n 次拉格朗日插值多项式的余项是( A )
(A) Rn (x)
f (n (n
1) ( )
1)!
n1
(
x)
(B) Rn (x)
f
(n)
n
(
!
)
n
(
x)
f (n1) ( )
(C) Rn (x) (n 1)!
(D)
Rn (x)
f (n) ( )
n!
x 0 0.5 1 1.5 2 1 1 x x 1 x 2 1 x3 3 x2 1。
2
2
22
又: R3 x f x px 满足: R0 1, R1 2, R2 3, R0 0 ,
使
xi
x
xi1 ,
令 h xi1 xi ,则: R(x)
f
'' (
2
)
(x
xi
)(x
xi1 )

解:对
x
[0,
2
]
,必有某个
x
i
使
xi
x
xi1 ,
令 h xi1 xi ,则: R(x)
f
'' (

第2章 插值法例题

第2章  插值法例题


f ( x )
3 8

5 2
x
x
R 2 (115 )
0 . 0017
例5.13 2, 5 ,
已知 x=0, 2, 3, 5 对应的函数值为 y=1, 3, 4.4 .1 差商及其性

作三次Newton插值多项式。
xi
三阶差商
f ( x i)
1
3
一阶差商
二阶差商
0
2
1
3
-2/3 5 5/6
x

x


45 8
x
2
91 4
2
2
3 x
3
8x
2
9x 5
例5.3
已知x=1, 4, 9 的平方根值, 用抛
7
物插值公式,
(求 x1)(x–x2) x– (x–x0)(x–x2) p2(x) = (x –x )(x –x ) y0 + y1 0 1 0 2 (x1–x0)(x1–x2) (x–x0)(x–x1) + y2 (x2–x0)(x2–x1)
2
求满足条件的
解: x 0 1, x 1 2 , h 2 1 1
2
A 1 ( 1 2 ( x 1 ))( x 2 ) ( 2 x 1 )( x 2 ) A 2 ( 1 2 ( x 2 ))( x 1 ) ( 2 x 3 )( x 1 )
3 x1 33 49 x 2 9
求得法方程组的解为
x 1 2 . 979 x 2 1 . 2259
这也就是超定方程组的最小二乘解。
例题

插值法例题计算过程

插值法例题计算过程

插值法例题计算过程
【实用版】
目录
1.插值法的概念和应用
2.插值法例题的解题步骤
3.插值法在财务管理中的应用
4.结论
正文
一、插值法的概念和应用
插值法是一种数学方法,通过已知的数据点来预测或计算未知数据点的值。

在财务管理中,插值法常用于计算资金时间价值、债券收益率和股票期权价格等。

插值法的主要优点是能够提高计算精度,弥补单纯使用线性插值法的不足。

二、插值法例题的解题步骤
以下是一个关于插值法计算的例题:
已知某项目的投资额为 100,000 元,预期收益分别为:当利率为 10% 时,收益为 12,176.5 元;当利率为 12% 时,收益为 116,530 元。

假设利率为 i 时,收益为 120,000 元,求 i 的值。

解:我们可以使用插值法来解决这个问题。

首先,根据题意列出方程:(i-12%)/(10%-12%) = (120,000-116,530)/(121,765-116,530)化简得:
(i-12%)/(-2%) = 3,465/4,930
解这个方程,得到 i 的值为 11.76%。

三、插值法在财务管理中的应用
在财务管理中,插值法常用于计算资金的时间价值、债券的收益率和股票期权的价格等。

例如,在计算债券的收益率时,我们可以通过已知的债券价格和到期收益来预测债券的收益率。

四、结论
总之,插值法是一种重要的数学方法,它在财务管理中有广泛的应用。

第4、5讲 插值与拟合 作业参考答案

第4、5讲 插值与拟合 作业参考答案

第四、五讲作业题参考答案一、填空题1、拉格朗日插值基函数在节点上的取值是( 0或1 )。

2、当1,1,2x =-,时()034f x =-,,,则()f x 的二次插值多项式为 (2527633x x +- )。

3、由下列数据所确定的唯一插值多项式的次数为( 2次 )。

4、根据插值的定义,函数()x f x e -=在[0,1]上的近似一次多项式1()P x =( 1(1)1e x --+ ),误差估计为( 18 )。

5、在做曲线拟合时,对于拟合函数x y ax b =+,引入变量变换y =( 1y),x =(1x)来线性化数据点后,做线性拟合y a bx =+。

6、在做曲线拟合时,对于拟合函数Ax y Ce =,引入变量变换( ln()Y y = )、X x =和B C e =来线性化数据点后,做线性拟合Y AX B =+。

7、设3()1f x x x =+-,则差商[0,1,2,3]f =( 1 )。

8、在做曲线拟合时,对于拟合函数()A f x Cx =,可使用变量变换(ln Y y =)(ln X x = )和B C e =来线性化数据点后,做线性拟合Y AX B =+。

9、设(1)1,(0)0,(1)1,(2)5,()f f f f f x -====则的三次牛顿插值多项式为( 321166x x x +-),其误差估计式为(4()(1)(1)(2),(1,2)24f x x x x ξξ+--∈-) 10、三次样条插值函数()S x 满足:()S x 在区间[,]a b 内二阶连续可导,(),,0,1,2,,,k k k k S x y x y k n ==(已知)且满足()S x 在每一个子区间1[,]k k x x +上是( 三次多项式 )。

11、1()[a,b]()f x L x =函数在上的一次(线性)插值函数(公式)( ()()x b x af a f b a b b a--+-- ),1()R x =( 1()()(),2f x a x b a b ξξ''--≤≤ )。

插值法部分习题

插值法部分习题

20.解:(1)在编辑窗口输入:>> x=[0.25,0.30,0.39,0.45,0.53];>> y=[0.5000,0.5477,0.6245,0.6708,0.7280]; >> dx0=1.0000;dxn=0.6868; >> s=csfit(x,y,dx0,dxn) s =1.8863 -1.0143 1.0000 0.5000 0.7952 -0.7314 0.9127 0.5477 0.6320 -0.5167 0.8004 0.6245 0.3151 -0.4029 0.7452 0.67085.0x x 0143.1x 8863.1S 231++-= ]3.0,25.0[x ∈ 5477.0x 9127.0x 7314.0x 7952.0S 232++-= ]39.0,3.0[x ∈ 6245.0x 8004.0x 5167.0x 632.0S 233++-= ]45.0,39.0[x ∈6708.0x 7452.0x 4029.0x 3151.0S 234++-= ]53.0,45.0[x ∈1试用4次牛顿插值多项式)x (P 4及三次样条函数)x (S (自然边界条件)对数据进行插值。

用图给出{(i x ,i y ),10,11,1,0i ,i 08.02.0x i =+=},)x (P 4及)x (S .解:(1)在编辑窗口输入: >> x=[0.2,0.4,0.6,0.8,1.0];>> y=[0.98,0.92,0.81,0.64,0.38]; >> N=newpoly(x,y) N =-0.5208 0.8333 -1.1042 0.1917 0.9800 由此可以得出牛顿插值多项式为:)x(P4=98.0x1917.0x1042.1x8333.0x5208.0234++-+->> S=ThrSample2(x,y,0,0,0)S =125*(46/25*t-69/125)*(t-3/5)^2+125*(567/500-81/50*t)*(t-2/5)^2+25*(-57/140*t+5 7/350)*(3/5-t)^2-25*(-81/200+27/40*t)*(t-2/5)^2/5)^2(2)在编辑窗口输入:>> x=[0.2,0.28,0.4,0.6,0.8,1.0,1.08];>> y=[0.98 0.9596 0.92 0.81 0.64 0.38 0.2403];>> cs=spline(x,[0 y 0]);xx=linspace(0.2,1.08,101);>> plot(x,y,'o',xx,ppval(cs,xx),'-');>> x1=[0.2,0.28,0.4,0.6,0.8,1.0,1.08];>> y1=[0.98 0.9596 0.92 0.81 0.64 0.38 0.2403];>> polyfit(x1,y1,4)ans =-0.4126 0.5487 -0.8475 0.1017 0.9893>> plot(x,y,'o',xx,ppval(cs,xx),'-',x1,y1,'-.r'),grid0.20.30.40.50.60.70.80.91 1.1 1.2图2 P(x)和S(x)函数插值图3.下列数据点的插值(1)用这9个点作8次多项式插值()x.L8S x.(2)用三次样条(自然边界条件)程序求()解:在编辑窗口输入:>> x=[0 1 4 9 16 25 36 49 64];>> y=0:1:8;y=sqrt(x);>> x1=[0 1 4 9 16 25 36 49 64];y1=0:1:8;>> m=polyfit(x,y,8)Warning: Polynomial is badly conditioned. Remove repeated data pointsor try centering and scaling as described in HELP POL YFIT.> In polyfit at 81m =Columns 1 through 4-0.00000000032806 0.00000006712680 -0.00000542920942 0.00022297151886 Columns 5 through 8-0.00498070758014 0.06042943489173 -0.38141003716579 1.32574370075005 Column 9-0.00000000000311>> x1=0:1:64;>> y1=polyval(m,x1);>> x2=[0 1 4 9 16 25 36 49 64];>> y2=0:1:8;>> cs=spline(x,[0 y 0]);>> xx=linspace(0,64,101);>> plot(x,y,'o',xx,ppval(cs,xx),'-k',x1,y1,'--b',x,y,':r')010203040506070图3 Lagran插值与Spline插值的比较图从图中结果可以看出:在区间[0,64]上,三次样条插值更准确些;在区间[0,1]上,拉格朗日插值更准确些.附:各插值函数的Matlab实现:(1) csfit函数运行程序function S=csfit(x,y,dx0,dxn)n=length(x)-1;h=diff(x);d=diff(y)./h;a=h(2:n-1);b=2*(h(1:n-1)+h(2:n));c=h(2:n);u=6*diff(d);b(1)=b(1)-h(1)/2;u(1)=u(1)-3*(d(1)-dx0);b(n-1)=b(n-1)-h(n)/2;u(n-1)=u(n-1)-3*(dxn-d(n));for k=2:n-1temp=a(k-1)/b(k-1);b(k)=b(k)-temp*c(k-1);u(k)=u(k)-temp*u(k-1);endm(n)=u(n-1)/b(n-1);for k=n-2:-1:1m(k+1)=(u(k)-c(k)*m(k+2))/b(k);m(1)=3*(d(1)-dx0)/h(1)-m(2)/2;m(n+1)=3*(dxn-d(n))/h(n)-m(n)/2;for k=0:n-1S(k+1,1)=(m(k+2)-m(k+1))/(6*h(k+1));S(k+1,2)=m(k+1)/2;S(k+1,3)=d(k+1)-h(k+1)*(2*m(k+1)+m(k+2))/6;S(k+1,4)=y(k+1);End(2)ThrSample2函数运行程序function [f,f0]=ThrSample2(x,y,y2_1,y2_N,x0)syms t;f=0.0;f0=0.0;if(length(x)==length(y))n=length(x);elsedisp();return;endor i=1:nfor i=1:nif(x(i)<=x0)&&(x(i+1)>=x0)index=i;break;endendfif(x(i)<=x0)&&(x(i+1)>=x0)index=i;return;endendA=diag(2*ones(1,n));A(1,2)=1;A(n,n-1)=1;u=zeros(n-2,1);lamda=zeros(n-1,1);c=zeros(n,1);for i=2:n-1u(i-1)=(x(i)-x(i-1))/(x(i+1)-x(i-1));lamda(i)=(x(i+1)-x(i))/(x(i+1)-x(i-1));c(i)=3*lamda(i)*(y(i)-y(i-1))/(x(i)-x(i-1))+3*u(i-1)*(y(i+1)-y(i))/(x(i+1)-x(i));A(i,i+1)=u(i-1);A(i,i-1)=lamda(i);c(1)=3*(y(2)-y(1))/(x(2)-x(1))-(x(2)-x(1))*y2_1/2;c(n)=3*(y(n)-y(n-1))/(x(n)-x(n-1))-(x(n)-x(n-1))*y2_N/2;m=followup(A,c);h=x(i+1)-x(i);f=y(i)*(2*(t-x(i))+h)*(t-x(i+1))^2/h/h/h+y(i+1)*(2*(x(i+1)-t)+h)*(t-x(i))^2/h/h/h+m(i )*(t-x(i))*(x(i+1)-t)^2/h/h-m(i+1)*(x(i+1)-t)*(t-x(i))^2/h/h;f0=subs(f,'t',x0);%ThrSample2函数运行调用的函数:function x=followup(A,b)n=rank(A);for(i=1:n)if(A(i,i)==0)disp();return;endend;d=ones(n,1);a=ones(n-1,1);c=ones(n-1);for(i=1:n-1)a(i,1)=A(i+1,i);c(i,1)=A(i,i+1);d(i,1)=A(i,i);endd(n,1)=A(n,n);for(i=2:n)d(i,1)=d(i,1)-(a(i-1,1)/d(i-1,1))*c(i-1,1);b(i,1)=b(i,1)-(a(i-1,1)/d(i-1,1))*b(i-1,1);endx(n,1)=b(n,1)/d(n,1);for(i=(n-1):-1:1)x(i,1)=(b(i,1)-c(i,1)*x(i+1,1))/d(i,1);end(3) newpoly函数运行程序function[c,d]=newpoly(x,y)n=length(x);d=zeros(n,n);d(:,1)=y';for j=2:nfor k=j:nd(k,j)=(d(k,j-1)-d(k-1,j-1))/(x(k)-x(k-j+1));endendc=d(n,n);for k=(n-1):-1:1c=conv(c,poly(x(k)));m=length(c);c(m)=c(m)+d(k,k);end(4) lagran函数运行程序function[c,l]=lagran(x,y)w=length(x);n=w-1;l=zeros(w,w);for k=1:n+1v=1;for j=1:n+1if k~=jv=conv(v,poly(x(j)))/(x(k)-x(j));endendl(k,:)=v;endc=y*l;。

二次插值法例题

二次插值法例题

二次插值法例题二次插值法是插值方法中的一种,用于通过已知的数据点估计在两个已知数据点之间的未知数值。

二次插值法假设数据点之间的关系可以用二次函数来描述,然后通过已知的数据点来确定二次函数的参数,从而估计出未知点的数值。

以下是一个关于二次插值法的例题和相关参考内容。

【例题】已知一组数据点:(1, 3), (2, 6), (3, 11),利用二次插值法来估计在x = 1.5时的数值。

【参考内容】在这个例题中,我们需要使用二次插值法来估计在x = 1.5时的数值。

下面是解决这个问题的详细步骤:1. 计算差商表:首先,我们需要计算差商表,用来求解二次函数的参数。

差商表是一个按照数据点的顺序排列的表格,其中每一列代表一个数据点的y值和相应的差商。

差商的计算公式为:f[xi] = yif[xi, xi+1] = (f[xi+1] - f[xi]) / (xi+1 - xi)f[xi, xi+1, xi+2] = (f[xi+1, xi+2] - f[xi, xi+1]) / (xi+2 - xi)根据给定的数据点,我们可以计算出差商表如下:xi | yi | fi,fi+1 | fi,fi+1,fi+2------------------------------------------1 | 3 | 32 | 6 | 5 | 23 | 11 | 6 | 0.52. 构造二次函数:根据差商表的结果,我们可以构造一个二次函数来描述数据点之间的关系。

假设二次函数的表达式为:f(x) = ax^2 + bx + c根据差商表的结果,我们可以得到如下方程组:a(1^2) + b(1) + c = 3a(2^2) + b(2) + c = 6a(3^2) + b(3) + c = 113. 解方程组:通过解方程组,我们可以确定二次函数的参数a、b和c的值。

将方程组进行展开,然后整理,即可得到:a +b +c = 34a + 2b + c = 69a + 3b + c = 11解方程组得到:a = 1.5, b = -0.5, c = 14. 估计未知点的数值:通过确定了二次函数的参数,我们可以使用二次函数来估计未知点的数值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

插值方法练习题
一.已知函数y = f (x)的一组数据
对这些数据进行多项式插值和三次样条插值,并求:x = 3.5 4.1 6.2 4.5时,y相应的多项式插值和三次样条插值函数值。

二.绘制上题中函数y = f (x)在区间[0, 10]上的多项式插值函数图形,并将已知点用“o”标出。

三.求出上题中每一小段内的三次函数。

绘制上题中函数y = f(x)在区间[0, 10]上的三次样条插值函数图形,并将已知点用“ ”标出。

四.对函数y = 1/(1+x2)在[-5, 5]上进行多项式插值,如何避免Runge现象。

五.对下表给出的数据作曲面插值
参考答案:
一.y = 13.2476 12.6730 9.8032 11.9877
附:命令行
x=[0 1 2 3 4 5 6 7 8 9 10];
y=[12.34 13.02 13.98 13.52 12.81 11.08 9.96 9.51 10.23 11.14 12.25];
xx=[3.5 4.1 6.2 4.5];
p=polyfit(x,y,10);
y1=polyval(p,xx)
yy=spline(x,y,xx)
二.
附:命令行
x=[0 1 2 3 4 5 6 7 8 9 10];
y=[12.34 13.02 13.98 13.52 12.81 11.08 9.96 9.51 10.23 11.14 12.25];
xx=0:0.0001:10;
p=polyfit(x,y,10);
y1=polyval(p,xx);
plot(xx,y1,‘-‘,x,y,’o’)
三.p1 = -0.4440 1.4719 -0.3479 12.3400
p2 = -0.4440 1.4719 -0.3479 12.3400
p3 = 0.5198 -4.3109 11.2177 4.6295
p4 = -0.4654 4.5561 -15.3834 31.2307
p5 = 0.5717 -7.8892 34.3977 -35.1441
p6 = -0.1915 3.5588 -22.8420 60.2554
p7 = 0.2542 -4.4634 25.2912 -36.0109
p8 = -0.3253 7.7064 -59.8974 162.7624
p9 = 0.0671 -1.7107 15.4393 -38.1354
p10 = 0.0671 -1.7107 15.4393 -38.1354
附:命令行
x=[0 1 2 3 4 5 6 7 8 9 10];
y=[12.34 13.02 13.98 13.52 12.81 11.08 9.96 9.51 10.23 11.14 12.25];
xx=0:0.0001:10;
yy=spline(x,y,xx);
for k=1:10;
p=polyfit(xx(3*k-2:3*k+1),yy(3*k-2:3*k+1),3)
end
plot(xx,yy,‘-‘,x,y,’x’)
四.切比雪夫点插值x i =5cos((i-1)π /10),i=1, 2, ⋯, 11,
附:命令行
x=-5:0.001:5;y=1./(1+x.^2);
n=11;k=1:n;x0=5cos((k-1)/(n-1).*pi);y0=1./(1+x0.^2);
p=polyfit(x0,y0,n-1);
yy=polyval(p,x);
plot(x,y,'-',x0,y0,'o',x,yy,'--')
五.
x0=1:5;y0=1:5;[xx,yy]=meshgrid(x0,y0); m=length(x0);n=length(y0);
z=[12.52 9.58 7.26 6.34 8.49; 14.26 10.98 6.63 5.04 7.56;15.02 9.23 5.38 6.26 9.57;
13.94 8.58 6.26 7.53 11.29;10.28 7.05 7.72 9.15 14.33];
xp=1:0.01:5;yp=1:0.01:5;[xxp,yyp]=meshgrid(xp,yp);
zp=interp2(xx,yy,z,xxp,yyp,'spline');mesh(xp,yp,zp)。

相关文档
最新文档