数值计算实验二:拉格朗日插值多项式
- 格式:doc
- 大小:477.50 KB
- 文档页数:7
一、实验目的通过本次综合实验,掌握数值分析中常用的插值方法、方程求根方法以及数值积分方法,了解这些方法在实际问题中的应用,提高数值计算能力。
二、实验内容1. 插值方法(1)拉格朗日插值法:利用已知数据点构造多项式,以逼近未知函数。
(2)牛顿插值法:在拉格朗日插值法的基础上,通过增加基函数,提高逼近精度。
2. 方程求根方法(1)二分法:适用于函数在区间内有正负值的情况,通过不断缩小区间来逼近根。
(2)Newton法:利用函数的导数信息,通过迭代逼近根。
(3)不动点迭代法:将方程转化为不动点问题,通过迭代逼近根。
3. 数值积分方法(1)矩形法:将积分区间等分,近似计算函数值的和。
(2)梯形法:将积分区间分成若干等分,用梯形面积近似计算积分。
(3)辛普森法:在梯形法的基础上,将每个小区间再等分,提高逼近精度。
三、实验步骤1. 拉格朗日插值法(1)输入已知数据点,构造拉格朗日插值多项式。
(2)计算插值多项式在未知点的函数值。
2. 牛顿插值法(1)输入已知数据点,构造牛顿插值多项式。
(2)计算插值多项式在未知点的函数值。
3. 方程求根方法(1)输入方程和初始值。
(2)选择求解方法(二分法、Newton法、不动点迭代法)。
(3)迭代计算,直到满足精度要求。
4. 数值积分方法(1)输入被积函数和积分区间。
(2)选择积分方法(矩形法、梯形法、辛普森法)。
(3)计算积分值。
四、实验结果与分析1. 插值方法(1)拉格朗日插值法:通过构造多项式,可以较好地逼近已知数据点。
(2)牛顿插值法:在拉格朗日插值法的基础上,增加了基函数,提高了逼近精度。
2. 方程求根方法(1)二分法:适用于函数在区间内有正负值的情况,计算简单,但收敛速度较慢。
(2)Newton法:利用函数的导数信息,收敛速度较快,但可能存在数值不稳定问题。
(3)不动点迭代法:将方程转化为不动点问题,收敛速度较快,但可能存在初始值选择不当的问题。
3. 数值积分方法(1)矩形法:计算简单,但精度较低。
实验2.1 多项式插值的振荡现象实验目的:在一个固定的区间上用插值逼近一个函数,显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。
Runge 给出的一个例子是极著名并富有启发性的。
实验容:设区间[-1,1]上函数 f(x)=1/(1+25x 2)。
考虑区间[-1,1]的一个等距划分,分点为 x i = -1 + 2i/n ,i=0,1,2,…,n ,则拉格朗日插值多项式为201()()125nn i i i L x l x x ==+∑. 其中,l i (x),i=0,1,2,…,n 是n 次Lagrange 插值基函数。
实验步骤与结果分析:实验源程序function Chap2Interpolation% 数值实验二:“实验2.1:多项式插值的震荡现象”% 输入:函数式选择,插值结点数% 输出:拟合函数及原函数的图形promps = {'请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'};titles = 'charpt_2';result = inputdlg(promps,'charpt 2',1,{'f'});Nb_f = char(result);if(Nb_f ~= 'f' & Nb_f ~= 'h' & Nb_f ~= 'g')errordlg('实验函数选择错误!');return;endresult = inputdlg({'请输入插值结点数N:'},'charpt_2',1,{'10'});Nd = str2num(char(result));if(Nd <1)errordlg('结点输入错误!');return;endswitch Nb_fcase 'f'f=inline('1./(1+25*x.^2)'); a = -1;b = 1;case 'h'f=inline('x./(1+x.^4)'); a = -5; b = 5;case 'g'f=inline('atan(x)'); a = -5; b= 5;endx0 = linspace(a, b, Nd+1); y0 = feval(f, x0);x = a:0.1:b; y = Lagrange(x0, y0, x);fplot(f, [a b], 'co');hold on;plot(x, y, 'b--');xlabel('x'); ylabel('y = f(x) o and y = Ln(x)--');%--------------------------------------------------------------------function y=Lagrange(x0, y0, x);n= length(x0); m=length(x);for i=1:mz=x(i);s=0.0;for k=1:np=1.0;for j=1:nif(j ~= k)p = p*(z - x0(j))/(x0(k) - x0(j));endends = s + p*y0(k);endy(i) = s;end实验结果分析(1)增大分点n=2,3,…时,拉格朗日插值函数曲线如图所示。
第1篇一、实验目的1. 理解并掌握插值法的基本原理和常用方法。
2. 学习使用拉格朗日插值法、牛顿插值法等数值插值方法进行函数逼近。
3. 分析不同插值方法的优缺点,并比较其精度和效率。
4. 通过实验加深对数值分析理论的理解和应用。
二、实验原理插值法是一种通过已知数据点来构造近似函数的方法。
它广泛应用于科学计算、工程设计和数据分析等领域。
常用的插值方法包括拉格朗日插值法、牛顿插值法、样条插值法等。
1. 拉格朗日插值法拉格朗日插值法是一种基于多项式的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等。
2. 牛顿插值法牛顿插值法是一种基于插值多项式的差商的插值方法。
其基本思想是:给定一组数据点,构造一个次数不超过n的多项式,使得该多项式在这些数据点上的函数值与已知数据点的函数值相等,并且满足一定的差商条件。
三、实验内容1. 拉格朗日插值法(1)给定一组数据点,如:$$\begin{align}x_0 &= 0, & y_0 &= 1, \\x_1 &= 1, & y_1 &= 4, \\x_2 &= 2, & y_2 &= 9, \\x_3 &= 3, & y_3 &= 16.\end{align}$$(2)根据拉格朗日插值公式,构造插值多项式:$$P(x) = \frac{(x-x_1)(x-x_2)(x-x_3)}{(x_0-x_1)(x_0-x_2)(x_0-x_3)}y_0 + \frac{(x-x_0)(x-x_2)(x-x_3)}{(x_1-x_0)(x_1-x_2)(x_1-x_3)}y_1 + \frac{(x-x_0)(x-x_1)(x-x_3)}{(x_2-x_0)(x_2-x_1)(x_2-x_3)}y_2 + \frac{(x-x_0)(x-x_1)(x-x_2)}{(x_3-x_0)(x_3-x_1)(x_3-x_2)}y_3.$$(3)计算插值多项式在不同点的函数值,并与实际值进行比较。
数值分析实验报告数值分析实验报告姓名:张献鹏学号:173511038专业:冶金工程班级:重冶二班目录1拉格朗日插值 (1)11.1问题背景.....................................................................................................11.2数学模型.....................................................................................................1.3计算方法1.....................................................................................................21.4数值分析.....................................................................................................2复化辛普森求积公式 (2)2.1问题背景2.....................................................................................................32.2数学模型.....................................................................................................32.3计算方法.....................................................................................................2.4数值分析5.....................................................................................................3矩阵的 LU 分解 (6)63.1问题背景.....................................................................................................3.2数学模型6.....................................................................................................3.2.1理论基础 (6)3.2.2实例 (7)73.3计算方法.....................................................................................................3.4小组元的误差 (8)4二分法求方程的根 (9)94.1问题背景.....................................................................................................94.2数学模型.....................................................................................................4.3计算方法9.....................................................................................................4.4二分法的收敛性 (11)5雅可比迭代求解方程组 (11)115.1问题背景...................................................................................................5.2数学模型11...................................................................................................5.2.1理论基础 (11)5.2.2实例 (12)5.3计算方法 (12)5.4收敛性分析 (13)6Romberg 求积法 (14)6.1问题背景 (14)6.2数学模型: (14)6.2.1理论基础 (14)6.2.2实例 (14)6.3计算方法 (15)6.4误差分析 (16)7幂法 (16)7.1问题背景 (16)7.2数学模型 (16)7.2.1理论基础 (16)7.2.2实例 (17)7.3计算方法 (17)7.4误差分析 (18)8改进欧拉法 (18)8.1问题背景 (18)8.2数学模型 (19)8.2.1理论基础 (19)8.2.2实例 (19)8.3数学模型 (19)8.4误差分析 (21)1拉格朗日插值1.1问题背景1f ( x)2, 5 x 5 求拉格朗日插值。
数学与计算科学学院
实 验 报 告
实验项目名称 拉格朗日插值多项式
所属课程名称 数值计算
实 验 类 型 求解
实 验 日 期 2012年4月11日
班 级 xxxxxxxxxxx
学 号 xxxxxxxxxxxxx
姓 名 xxxxxx
成 绩
1
一、实验概述:
【实验目的】
1.掌握求拉格朗日插值多项式的方法;
2.用拉格朗日插值多项式估计函数的值。
【实验原理】
拉格朗日插值法
【实验环境】
Fortran编程环境
二、实验内容:
【实验方案】
编写程序,按所需的插值次数输入给定的点以及给定的自变量的值并分别输出对应
于拉格朗日插值多项式的值。
【实验过程】(实验步骤、记录、数据、分析)
1.编写基本程序,根据题目要求:(1)线性插值:在程序中更改n=1,cx=0.57891,
成功运行后,在运行框中输入给定的两个点,得到结果。
(2)二次插值:在以上程序的基础上更改n=2,在运行框中输入给定的三个点,
得到结果。
(3)求四次插值多项式的值:在以上程序中更改n=3,依次输入cx=1.682和
cx=1.813,分别得到计算结果。
题目四:线性插值的结果为0.5465903,二次插值的结果为0.5469980,而
sin0.57891的真实结果为0.54735763,可知插值次数越高,计算结果越精确。
题目五:运行结果分别为f(1.682)=2.596120,(1.813)=2.983322.
2
【实验结论】(结果)
实验得到了各插值次数以及各自变量所对应的拉格朗日多项式的值:题目四:线性
插值的结果sin0.57891=0.5465903,而二次插值的结果为0.5469980,sin0.57891
的真实结果为0.54735763。在题目四中,初步得到了“插值次数越高,其计算结
果越接近真实值”的结论。题目五:f(1.682)=2.596120,f(1.813)=2.983322。
【实验小结】(收获体会)
通过该实验,我初步掌握了拉格朗日插值多项式的求法以及如何用拉格朗日多项式
估计函数的值。
三、指导教师评语及成绩:
评 语
评语等级
优 良 中 及格 不及格
1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强
2.实验方案设计合理
3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)
4实验结论正确.
成 绩:
指导教师签名:
批阅日期:
附录1:源 程 序
题目四:
integer,parameter:: n=1
real cx,a,b,s
real,dimension(0:n)::x,y
cx=0.57891
s=0.0
do i=0,n
read *,x(i),y(i)
end do
do i=0,n
print *,x(i),y(i)
end do
do i= 0,n
a=1.0
b=1.0
do j=0,n
if (i/=j) then
3
a=(x(i)-x(j))*a
b=(cx-x(j))*b
endif
enddo
s=s+b/a*y(i)
enddo
print*,"s=",s
end
integer,parameter:: n=2
real cx,a,b,s
real,dimension(0:n)::x,y
cx=0.57891
s=0.0
do i=0,n
read *,x(i),y(i)
end do
do i=0,n
print *,x(i),y(i)
end do
do i= 0,n
a=1.0
b=1.0
do j=0,n
if (i/=j) then
a=(x(i)-x(j))*a
b=(cx-x(j))*b
endif
enddo
s=s+b/a*y(i)
enddo
print*,"s=",s
end
4
题目五:
integer,parameter:: n=4
real cx,a,b,s
real,dimension(0:n)::x,y
cx=1.682
s=0.0
do i=0,n
read *,x(i),y(i)
end do
do i=0,n
print *,x(i),y(i)
end do
do i= 0,n
a=1.0
b=1.0
do j=0,n
if (i/=j) then
a=(x(i)-x(j))*a
b=(cx-x(j))*b
endif
enddo
s=s+b/a*y(i)
enddo
print*,"s=",s
end
integer,parameter:: n=4
real cx,a,b,s
real,dimension(0:n)::x,y
cx=1.813
s=0.0
do i=0,n
read *,x(i),y(i)
5
end do
do i=0,n
print *,x(i),y(i)
end do
do i= 0,n
a=1.0
b=1.0
do j=0,n
if (i/=j) then
a=(x(i)-x(j))*a
b=(cx-x(j))*b
endif
enddo
s=s+b/a*y(i)
enddo
print*,"s=",s
end
附录2:实验报告填写说明
1.实验项目名称:要求与实验教学大纲一致。
2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求。
3.实验原理:简要说明本实验项目所涉及的理论知识。
4.实验环境:实验用的软、硬件环境。
5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容。概括整个实验过程。
6
对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步
骤来实现其操作。对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设
计思路和设计方法,再配以相应的文字说明。对于创新性实验,还应注明其创新点、特
色。
6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包
括实验过程中的记录、数据和相应的分析。
7.实验结论(结果):根据实验过程中得到的结果,做出结论。
8.实验小结:本次实验心得体会、思考和建议。
9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价。