实验四 Lagrange函数插值方法(新)

合集下载

计算方法 插值法Lagrange插值

计算方法 插值法Lagrange插值
xi , i 0,1,..., n
的n次插值基函数
以n+1个n次基本插值多项式lk(x)(k 0,1, … , n) 为基础,可直接写出满足插值条件
P(xi ) f(x i ) (i 0,1,2, … , n)
的n次代数插值多项式:
P(x) l0(x)y 0 l1(x)y1 … ln(x)yn
B(x1, f(x1))
x0
x1
由解析几何知道,这条直线用点斜式表示为
改写为
p(x)
y0
y1 x1
y0 x0
(x
x0)
p(x)
x x1 x0 x1
y0
x x0 x1 x0
y1
为了便于推广,记
推导
l0(x)
x x1 , x0 x1
l1(x )
x x0 x1 x0
线性插值 基函数
或者写成:
(i 0,1,2)
其几何意义是用经过3个点
(x0, y0 ), (x1, y1), (x2, y2 )
的抛物线 y P(x) 用以近似计算 y f(x)
y=f(x)
y
y = L 2 (x)
y0
y1
x0
x1
y2 x
x2
P(x)的系数 a0 , a1, a2 直接由插值条件决定,即
a0 , a1, a2 满足代数方程组:
(x 0 x1)(x 0 x2 )
从而导出 l0(x)
(x (x 0
x1)(x x2 ) x1)(x 0 x2 )
类似地可以构造出插值多项式 l1(x )和l2 (x )
于是确定了3个抛物插值的基函数:
l0(x)
(x (x 0
x1)(x x1)(x

实验四 插值法

实验四 插值法

实验四、插值法插值法是函数逼近的一种重要方法,它是数值积分、微分方程数值解等数值计算的基础与工具,其中多项式插值是最常用和最基本的方法。

拉格朗日插值多项式的优点是表达式简单明确,形式对称,便于记忆,它的缺点是如果想要增加插值节点,公式必须整个改变,这就增加了计算工作量。

而牛顿插值多项式对此做了改进,当增加一个节点时只需在原牛顿插值多项式基础上增加一项,此时原有的项无需改变,从而达到节省计算次数、节约存储单元、应用较少节点达到应有精度的目的。

一、实验目的1、理解插值的基本概念,掌握各种插值方法,包括拉格朗日插值和牛顿插值等,注意其不同特点;2、通过实验进一步理解并掌握各种插值的基本算法。

二、Matlab 命令和程序命令 poly :创建一个向量,其分量为一个多项式的系数,该多项式具有给定的根。

命令polyval:求多项式的值,命令 conv : 创建一个向量,其分量为一个多项式的系数,该多项式是另外两个多项式的积polyval(C,2)>> P=poly(2)P=1 -2Q=poly(3)Q=1 -3>> conv(P,Q)ans=1 -5 6>> polyval(P,2)ans=1、拉格朗日插值( 基于N+1个点 ,计算0(()()nn k k k L x f x l x ==∑)拉格朗日多项式)function [C,L]=lagran(X,Y)%input --X is a vector that contains a list of abscissas% Y is a vector that contains a list of ordinates%output--C is a matrix that contains the coefficient of the lagrane % interplatory polynomial% -- L is a matrix that contains the Lagrange coefficent polynomials w=length(X);n=w-1;L=zeros(w,w);%Form the Lagrange coefficient polynomialsfor k=1:n+1V=1;for j=1:n+1if k~=jV=conv(V,poly(X(j)))/(X(k)-X(j));endendL(k,:)=V;end%Determine the coefficiants of the Lagrange interpolating polynomial C=Y*L;2、牛顿插值function [C,D,Newton]=newpoly(X,Y,p)%Input -X is a vector that contains a list of abscissas% -Y is a vector that contains a list of ordinates% -p is the%Output -C is a vector that contains the coefficents of% the Newton interpolatory polynomia% -D is the divided-difference table% -Newton is the value of Newton interplatory polynomia in pn=length(X);D=zeros(n,n);D(:,1)=Y';%Use formula to form the divided-difference tablefor j=2:nfor k=j:nD(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));endend%Determine the coefficient fo the newton interpolating polynomialC=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%Determine the value of the newton interpolating polynomial at pNewton=D(n,n);for k=(n-1):-1:1Newton=Newton*(p-X(k))+D(k,k);End三、实验任务1、已知函数表x 0.56160 0.56280 0.56401 0.56521iy 0.82741 0.82659 0.82577 0.82495i用二次拉格朗日插值多项式求5635x时的函数近似值。

Lagrange 插值

Lagrange 插值

今天的上机作业1. Lagrange 插值给出()ln f x x 的数值表用Lagrange 插值计算ln 0.54的近似值。

2.Newton 插值用Newton 插值计算x=0.41的近似值。

3.插值法的全部内容把chap_2试验.doc 的全部内容作一边,粘在这个文件里(包括图形)答:grange 插值function f=lagrange_5(x) x0=[0.4,0.5,0.6,0.7,0.8];y0=[-0.916291,-0.693147,-0.510826,-0.356675,-0.223144]; L1=0;m=length(x0);n=length(y0);if m~=n, error('向量x 与y 的长度必须一致');end for i=1:nL=ones(1,length(x)); for j=1:n if j~=iL=L.*(x-x0(j))/(x0(i)-x0(j)); end endL1=L1+L*y0(i); end L1lagrange_5(0.54) L1 =-0.616142715200002.Newton插值function f=newton_li5(x) %x0为入的节点值,y0相应节点的函数值x0=[0.25 0.30 0.39 0.45 0.53];y0=[0.5000 0.5477 0.6245 0.6708 0.7280];n=length(x0)%syms xfor i=1:nf(i,1)=y0(i);endhx=f(1,1);xx=(1.0);for k=2:nfor i=k:nf(i,k)=(f(i,k-1)-f(i-1,k-1))/(x0(i)-x0(i-k+1)); %构造差商表endxx=xx*(x-x0(k-1));hx=hx+f(k,k)*xx; %计算函数的近似值end%f=expand(hx)Hxnewton(0.41)n =5hx =0.64030542443064ans =0.50000000000000 0 0 0 00.54770000000000 0.95400000000000 0 0 00.62450000000000 0.85333333333333 -0.71904761904761 0 00.67080000000000 0.77166666666666 -0.54444444444446 0.87301587301575 00.72800000000000 0.71500000000000 -0.40476190476189 0.60731538992422 -0.948930296755483.插值法的全部内容把chap_2试验.doc的全部内容作一边,粘在这个文件里(包括图形)P28 例22点插值function f=lagrange_2(x)x0=[0.32,0.34];y0=[0.314567,0.333487];L1=0;m=length(x0);n=length(y0);if m~=n, error('向量x与y的长度必须一致');endfor i=1:nL=ones(1,length(x));for j=1:nif j~=iL=L.*(x-x0(j))/(x0(i)-x0(j));endendL1=L1+L*y0(i);endL1lagrange_2(0.3367)L1 =0.330365200000003点插值function f=lagrange_3(x)x0=[0.32,0.34,0.36];y0=[0.314567,0.333487,0.352274];L1=0;m=length(x0);n=length(y0);if m~=n, error('向量x与y的长度必须一致');endfor i=1:nL=ones(1,length(x));for j=1:nif j~=iL=L.*(x-x0(j))/(x0(i)-x0(j));endendL1=L1+L*y0(i);endL1lagrange_3(0.3367)L1 =0.33037436203750Lagrange插值法%eg1_lagr.mclear;clf;xx=linspace(-5,5,50); y=sin(xx); %作被插函数的图象disp('n x=4.5处的插值绝对误差的绝对值')x1=linspace(-5,5,3); y1=sin(x1); yy1=lagr1(x1,y1,xx); %2次插值chazhi_y45_2=lagr1(x1,y1,4.5);gd_wucha_limit_y45_2=abs(chazhi_y45_2-sin(4.5));disp(sprintf('%d %15.4f %15.4f',2,chazhi_y45_2,gd_wucha_limit_y45_2))x2=linspace(-5,5,5); y2=sin(x2); yy2=lagr1(x2,y2,xx); %4次插值chazhi_y45_4=lagr1(x2,y2,4.5);gd_wucha_limit_y45_4=abs(chazhi_y45_4-sin(4.5));disp(sprintf('%d %15.4f %15.4f',4,chazhi_y45_4,gd_wucha_limit_y45_4))x3=linspace(-5,5,9); y3=sin(x3); yy3=lagr1(x3,y3,xx); %8次插值chazhi_y45_8=lagr1(x3,y3,4.5);gd_wucha_limit_y45_8=abs(chazhi_y45_8-sin(4.5));disp(sprintf('%d %15.4f %15.4f',8,chazhi_y45_8,gd_wucha_limit_y45_8))plot(xx,y,'m-');hold on,pause,plot(x1,y1,'rs',xx,yy1,'r-'); hold on,pause,plot(x2,y2,'b*',xx,yy2,'b-'); hold on,pause,plot(x3,y3,'ko',xx,yy3,'k-'); hold on计算函数值function f=newton_li4(x) %x0为入的节点值,y0相应节点的函数值x0=[0.40,0.55,0.65,0.80,0.90,1.05];y0=[0.41075,0.57815,0.69675,0.88811,1.02652,1.25382];n=length(x0)%syms xfor i=1:nf(i,1)=y0(i);endhx=f(1,1);xx=(1.0);for k=2:nfor i=k:nf(i,k)=(f(i,k-1)-f(i-1,k-1))/(x0(i)-x0(i-k+1)); %构造差商表endxx=xx*(x-x0(k-1));hx=hx+f(k,k)*xx; %计算函数的近似值end%f=expand(hx)hxnewton(0.596)n =5hx =0.77193768707246ans =0.50000000000000 0 0 0 00.54770000000000 0.95400000000000 0 0 00.62450000000000 0.85333333333333 -0.71904761904761 0 00.67080000000000 0.77166666666666 -0.54444444444446 0.87301587301575 00.72800000000000 0.71500000000000 -0.40476190476189 0.60731538992422 -0.94893029675548Newton插值法%eg1_newton.mclear;clf;xx=linspace(-5,5,50); y=sin(xx); %作被插函数的图象disp('n x=4.5处的插值绝对误差的绝对值')x1=linspace(-5,5,3); y1=sin(x1); yy1=newton1(x1,y1,xx,2); %2次插值chazhi_y45_2=newton1(x1,y1,4.5,2);gd_wucha_limit_y45_2=abs(chazhi_y45_2-sin(4.5));disp(sprintf('%d %15.4f %15.4f',2,chazhi_y45_2,gd_wucha_limit_y45_2))x2=linspace(-5,5,5); y2=sin(x2); yy2=newton1(x2,y2,xx,4); %4次插值chazhi_y45_4=newton1(x2,y2,4.5,4);gd_wucha_limit_y45_4=abs(chazhi_y45_4-sin(4.5));disp(sprintf('%d %15.4f %15.4f',4,chazhi_y45_4,gd_wucha_limit_y45_4))x3=linspace(-5,5,9); y3=sin(x3); yy3=newton1(x3,y3,xx,8); %8次插值chazhi_y45_8=newton1(x3,y3,4.5,8);gd_wucha_limit_y45_8=abs(chazhi_y45_8-sin(4.5));disp(sprintf('%d %15.4f %15.4f',8,chazhi_y45_8,gd_wucha_limit_y45_8))plot(xx,y,'m-');hold on,pause,plot(x1,y1,'rs',xx,yy1,'r-'); hold on,pause,plot(x2,y2,'b*',xx,yy2,'b-'); hold on,pause,plot(x3,y3,'ko',xx,yy3,'k-'); hold on。

Lagrange插值法

Lagrange插值法
double lagrange(double x[N],double y[N],double xx)
{double yy,t;
int j,k;
yy=0.0;
for(j=0;j<N;j++)
{t=1.0;
for(k=0;k<N;k++)
if(k!=j)
t=t*(xx-x[k])/(x[j]-x[k]);
1.根据算法事先写出相应程序。
2.启动PC机,进入vc集成环境,输入代码。
3.编译调试。
4.调试通过,计算出正确结果。
实验内容(包括实验具体内容、算法分析、源代码等等):
1.算法设计。




2.编写相应的程序上机调试。
#include<stdio.h>
#include<math.h>
#define N
实 验 报 告
实验课程名称数值计算方法
实验项目名称Lagrange插值法
年 级
专 业
学生姓名
学 号
理 学 院
实验时间:2012 年 10月 8日
学生所在学院: 专业: 班级:
姓 名
学 号
实称
Lagrange插值法
实验目的及要求:
实验(或算法)原理
一、若给定两个插值点 其中 ,在公式中取 ,则 插值多项式为:
yy=yy+t*y[j];
}
return yy;
}
void main()
{double xx,yy;
double x[N]={};
double y[N]={};
xx=;
yy=lagrange(x,y,xx);

拉格朗日插值法ppt课件

拉格朗日插值法ppt课件

在节点xi处的函数值必然相等 但在节点 P(x外 )的值可能就会 f(x偏 ) 离 因此 P(x)近似代f(替 x)必然存在着误差 8
整体误差的大小反映了插值函数的好坏 为了使插值函数更方便在计算机上运算,一般插值函 数都使用代数多项式和有理函数
本章讨论的就是代数插值多项式
二、代数插值多项式的存在唯一性
n1(x) n1(xj )(xxj )
j0,1,2,,n -------(7')
显l然 0(x)l,1(x)l,2(x) , ,ln(x)线性(无 请同学关 们思考)

l j ( xi )
1 0
i j i j
i,j0,1,2,,n -------(8)
16
如果 l0(x)l用 1 ,(x)l2 ,(x) ,,ln(x)作 yf(x)的插值 而Pn(x) 为f(x)的插值多 ,则 项式
6
问题
• 是否存在唯一 • 如何构造 • 误差估计
如函 ys数 ixn ,若给 [0,]上 定 5个等分点
其插值函数的图象如图
7
yy
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1
0 0
0.522
22..55
33
xxx
33..55
对于被插 f(x)和 函插 数值P(函 x) 数
一、插值余项
从上,节 yf可 (x)的 L 知 ag插 ran 值 ge
满足
n
Ln(x) yjlj(x) j0
L n(x i)f(x i) i 0 ,1 , ,n
但 x[a,b]
Ln(x)f(x) 不会完全成立
因此,插值多项式存在着截断误差,那么我们怎样估 计这个截断误差呢?

拉格朗日(Lagrange)插值算法

拉格朗日(Lagrange)插值算法

拉格朗⽇(Lagrange)插值算法拉格朗⽇插值(Lagrange interpolation)是⼀种多项式插值⽅法,指插值条件中不出现被插函数导数值,过n+1个样点,满⾜如下图的插值条件的多项式。

也叫做拉格朗⽇公式。

这⾥以拉格朗⽇3次插值为例,利⽤C++进⾏实现:1//利⽤lagrange插值公式2 #include<iostream>3using namespace std;45double Lx(int i,double x,double* Arr)6 {7double fenzi=1,fenmu=1;8for (int k=0;k<4;k++)9 {10if (k==i)11continue;12 fenzi*=x-Arr[k];13 fenmu*=Arr[i]-Arr[k];14 }15return fenzi/fenmu;16 }1718int main()19 {20double xArr[4]={};21double yArr[4]={};22//输⼊4个节点坐标23 cout<<"请依次输⼊4个节点的坐标:"<<endl;24for (int i=0;i<4;i++)25 cin>>xArr[i]>>yArr[i];2627//输⼊要求解的节点的横坐标28 cout<<"请输⼊要求解的节点的横坐标:";29double x;30 cin>>x;31double y=0;32for (int i=0;i<4;i++)33 y+=Lx(i,x,xArr)*yArr[i];34 printf("x=%lf时,y=%lf\n",x,y);3536//分界,下⾯为已知y求x37 cout<<"请输⼊要求解的节点的纵坐标:";38 cin>>y;39 x=0;40for (int i=0;i<4;i++)41 x+=Lx(i,y,yArr)*xArr[i];42 printf("y=%lf时,x=%lf\n",y,x);4344 system("pause");45return0;46 }作者:耑新新,发布于转载请注明出处,欢迎邮件交流:zhuanxinxin@。

数值计算方法实验之Lagrange多项式插值(Python代码)

数值计算方法实验之Lagrange多项式插值(Python代码)

数值计算⽅法实验之Lagrange多项式插值(Python代码)⼀、实验⽬的在已知f(x),x∈[a,b]的表达式,但函数值不便计算,或不知f(x),x∈[a,b]⽽⼜需要给出其在[a,b]上的值时,按插值原则f(x i)= y i(i= 0,1…….,n)求出简单函数P(x)(常是多项式),使其在插值基点x i,处成⽴P(x i)=y i(i=0,1,……,n),⽽在[a,b]上的其它点处成⽴f(x)≈P(x).⼆、实验原理三、实验内容求之f(x)=x4在[0,2]上按5个等距节点确定的Lagrange插值多项式.四、实验程序1import matplotlib.pyplot as plt2from pylab import mpl34#计算插值多项式的系数。

5 x = [0, 0.5, 1, 1.5, 2]6 y = [0, 0.0625, 1, 5.0625, 16]78def ParametersOfLagrangeInterpolation(data_x,data_y,size):9 parameters=[]1011 i=0;#i⽤来控制参数的个数12while i < size:13 j = 0;#j⽤来控制循环的变量做累乘14 temp = 1;15while j < size:16if(i != j):17 temp*=data_x[i]-data_x[j]18 j+=1;19 parameters.append(data_y[i]/temp)20 i += 1;21return parameters2223#计算拉格朗⽇插值公式的值。

2425def CalculateTheValueOfLarangeInterpolation(data_x,parameters,x):26 returnValue=027 i = 0;28while i < len(parameters):29 temp = 130 j = 0;31while j< len(parameters):32if(i!=j):33 temp *=x-data_x[j]34 j+=135 returnValue += temp * parameters[i]36 i += 137return returnValue3839#将函数绘制成图像40def Draw(data_x,data_y,new_data_x,new_data_y):41 plt.plot(new_data_x, new_data_y, label="拟合曲线", color="red")42 plt.scatter(data_x,data_y, label="离散数据",color="yellow")43 plt.scatter(1.75, 9.37890625, label="真实数据", color="orange")44 plt.scatter(1.25, 2.44140625, color="green")45 mpl.rcParams['font.sans-serif'] = ['SimHei']46 mpl.rcParams['axes.unicode_minus'] = False47 plt.title("Lagrange插值拟合数据")48 plt.legend(loc="upper left")49 plt.show()5051 parameters=ParametersOfLagrangeInterpolation(x,y,5)52 datax=[0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2]53 datay=[]54for temp in datax:55 datay.append(CalculateTheValueOfLarangeInterpolation(x,parameters,temp))56 x.append(1.75)57 y.append(CalculateTheValueOfLarangeInterpolation(x,parameters,1.75))58 Draw(x,y,datax,datay)59print("得到的四次Lagrange插值多项式为:L(x) = %f(x-0)(x-1)(x-1.5)(x-2) + %f(x-0)(x-0.5)(x-1.5)(x-2) + %f(x-0)(x-0.5)(x-1)(x-2) + %f(x-0)(x-0.5)(x-1)(x-1.5)"%(parameters[1],parameters[2],parameters[3],parameters[4]))五、运算结果(1)图像得到的四次Lagrange插值多项式为:L(x) = -0.166667(x-0)(x-1)(x-1.5)(x-2) + 4.000000(x-0)(x-0.5)(x-1.5)(x-2) + -13.500000(x-0)(x-0.5)(x-1)(x-2) + 10.666667(x-0)(x-0.5)(x-1)(x-1.5)。

四个点拉格朗日插值多项式的导数

四个点拉格朗日插值多项式的导数

四个点拉格朗日插值多项式的导数拉格朗日插值多项式是一种常用的插值方法,用于通过已知的数据点来构建一个近似于这些数据点的函数。

它的原理是假设函数通过已知数据点的连线,并且在每个数据点上具有相同的函数值和导数。

设已知的n个数据点为(x0, y0), (x1, y1), ..., (xn, yn),其中xi表示自变量的取值,yi表示相应的函数值。

拉格朗日插值多项式的一般形式为:P(x) = L0(x)y0 + L1(x)y1 + ... + Ln(x)yn其中Lk(x)表示Lagrange插值基函数,定义如下:Lk(x) = (x - x0)(x - x1)...(x - xk-1)(x - xk+1)...(x - xn) / (xk - x0)(xk - x1)...(xk - xk-1)(xk - xk+1)...(xk - xn) 我们需要求的是这个拉格朗日插值多项式的导数,即P'(x)。

根据导数的定义,我们可以对P(x)进行求导,得到其导数的表达式。

由于拉格朗日插值多项式的形式较为复杂,为了简化计算,我们可以采用数值计算的方法。

以下将分别讨论四个点拉格朗日插值多项式的导数的计算方法。

一、二点拉格朗日插值多项式的导数当已知两个数据点(x0, y0)和(x1, y1)时,拉格朗日插值多项式为:P(x) = (x - x1)y0 / (x0 - x1) + (x - x0)y1 / (x1 - x0)对其进行求导,得到导函数P'(x)为:P'(x) = y0 / (x0 - x1) + y1 / (x1 - x0)二、三点拉格朗日插值多项式的导数当已知三个数据点(x0, y0),(x1, y1)和(x2, y2)时,拉格朗日插值多项式为:P(x) = (x - x1)(x - x2)y0 / (x0 - x1)(x0 - x2) + (x -x0)(x - x2)y1 / (x1 - x0)(x1 - x2) + (x - x0)(x - x1)y2 / (x2 - x0)(x2 - x1)对其进行求导,得到导函数P'(x)为:P'(x) = [(x - x1)(2x - x2 - x1)y0 / (x0 - x1)(x0 - x2) + (x - x0)(2x - x2 - x0)y1 / (x1 - x0)(x1 - x2) + (x - x0)(2x - x1 - x0)y2 / (x2 - x0)(x2 - x1)]三、四点拉格朗日插值多项式的导数当已知四个数据点(x0, y0),(x1, y1),(x2, y2)和(x3, y3)时,拉格朗日插值多项式为:P(x) = (x - x1)(x - x2)(x - x3)y0 / (x0 - x1)(x0 - x2)(x0 - x3) + (x - x0)(x - x2)(x - x3)y1 / (x1 - x0)(x1 - x2)(x1 -x3) + (x - x0)(x - x1)(x - x3)y2 / (x2 - x0)(x2 - x1)(x2 - x3) + (x - x0)(x - x1)(x - x2)y3 / (x3 - x0)(x3 - x1)(x3 - x2) 对其进行求导,得到导函数P'(x)为:P'(x) = [(x - x1)(x - x2)(3x - x3 - x2 - x1)y0 / (x0 -x1)(x0 - x2)(x0 - x3) + (x - x0)(x - x2)(3x - x3 - x2 - x0)y1 / (x1 - x0)(x1 - x2)(x1 - x3) + (x - x0)(x - x1)(3x - x3 - x2 - x0)y2 / (x2 - x0)(x2 - x1)(x2 - x3) + (x - x0)(x - x1)(x -x2)y3 / (x3 - x0)(x3 - x1)(x3 - x2)]通过以上的计算方法,我们可以得到四个点拉格朗日插值多项式的导函数的表达式。

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

实验四 Lagrange函数插值方法
一、问题提出
对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange
插值多项式。

数据如下:
试构造Lagrange多项式L,计算和的值。

二、要求
1、利用Lagrange插值公式
编写出插值多项式程序;
2、给出插值多项式或分段三次插值多项式的表达式;
3、根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;
4、对此插值问题用Newton插值多项式其结果如何。

三、目的和意义
1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;
2、明确插值多项式和分段插值多项式各自的优缺点;
3、熟悉插值方法的程序编制;
4、如果绘出插值函数的曲线,观察其光滑性。

四、实验源代码
#include<stdio.h>
#define N 7
float x[] = {1,2,3,4,5,6,7};
float y[] = {0.368,0.135,0.050,0.018,0.007,0.002,0.001};
float p(float xx)
{
int i,k;
_______________
for( i=0; i<N; i++ )
{
m1 = 1; m2 = 1;
_______________
if( k != i ) {
________________ ________________
________________ }
return pp;
}
main()
{
printf( "f(1.8)=%lf\n", p(1.8) ); ____________________
}
五、实验结果
六、实验心得与体会。

相关文档
最新文档