数值分析Runge插值逼近
数值分析实验报告

实验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,…时,拉格朗日插值函数曲线如图所示。
期末数值分析重点总结

期末数值分析重点总结第一部分:数值逼近(Approximation)数值逼近是数值分析的基础,主要研究如何利用有限的计算资源得到逼近数学问题的有效算法。
数值逼近的主要内容包括多项式逼近、插值和最小二乘等。
1. 多项式逼近多项式逼近是指用一个多项式函数来逼近给定函数的值。
通过选择合适的多项式次数和插值点,可以使得多项式逼近误差最小化。
其中最常用的方法是最小二乘法,它可以通过最小化残差来得到最佳的多项式逼近。
多项式逼近在信号处理、图像处理和计算机图形学等领域中有广泛的应用。
2. 插值插值是指通过已知数据点的函数值来估计在其他点的函数值。
常用的插值方法有拉格朗日插值和牛顿插值。
拉格朗日插值通过构造一个满足插值条件的多项式来逼近给定函数。
牛顿插值则利用差商的概念来构造插值多项式。
插值方法在数值微分和数值积分中有广泛的应用。
3. 最小二乘最小二乘是一种在一组离散数据点上拟合曲线的方法。
通过最小化数据点与拟合曲线之间的欧几里得距离,可以得到最佳拟合曲线。
最小二乘法可以用于曲线拟合、参数估计和数据关联等问题。
第二部分:数值解方程(Numerical Solution of Equations)数值解方程是数值分析的重要内容之一,研究如何通过数值计算来求解非线性方程组和线性方程组。
数值解方程的主要方法有迭代法、常微分方程数值解和偏微分方程数值解等。
1. 迭代法迭代法是求解非线性方程组的常用方法之一。
通过不断迭代逼近方程的根,可以得到方程组的数值解。
常用的迭代法有牛顿迭代法和弦截法。
迭代法在计算机辅助设计、优化和数据分析等领域中有广泛的应用。
2. 常微分方程数值解常微分方程数值解研究如何通过数值计算来求解常微分方程。
常微分方程数值解的主要方法有Euler方法、Runge-Kutta方法和线性多步法等。
常微分方程数值解在物理学、工程学和生物学等领域中有广泛的应用。
3. 偏微分方程数值解偏微分方程数值解研究如何通过数值方法来求解偏微分方程。
数值分析实验报告--实验2--插值法

1 / 21数值分析实验二:插值法1 多项式插值的震荡现象1.1 问题描述考虑一个固定的区间上用插值逼近一个函数。
显然拉格朗日插值中使用的节点越多,插值多项式的次数就越高。
我们自然关心插值多项式的次数增加时, 是否也更加靠近被逼近的函数。
龙格(Runge )给出一个例子是极著名并富有启发性的。
设区间[-1,1]上函数21()125f x x=+ (1)考虑区间[-1,1]的一个等距划分,分点为n i nix i ,,2,1,0,21 =+-= 则拉格朗日插值多项式为201()()125nn ii iL x l x x ==+∑(2)其中的(),0,1,2,,i l x i n =是n 次拉格朗日插值基函数。
实验要求:(1) 选择不断增大的分点数目n=2, 3 …. ,画出原函数f(x)及插值多项式函数()n L x 在[-1,1]上的图像,比较并分析实验结果。
(2) 选择其他的函数,例如定义在区间[-5,5]上的函数x x g xxx h arctan )(,1)(4=+=重复上述的实验看其结果如何。
(3) 区间[a,b]上切比雪夫点的定义为 (21)cos ,1,2,,1222(1)k b a b ak x k n n π⎛⎫+--=+=+ ⎪+⎝⎭(3)以121,,n x x x +为插值节点构造上述各函数的拉格朗日插值多项式,比较其结果,试分析2 / 21原因。
1.2 算法设计使用Matlab 函数进行实验, 在理解了插值法的基础上,根据拉格朗日插值多项式编写Matlab 脚本,其中把拉格朗日插值部分单独编写为f_lagrange.m 函数,方便调用。
1.3 实验结果1.3.1 f(x)在[-1,1]上的拉格朗日插值函数依次取n=2、3、4、5、6、7、10、15、20,画出原函数和拉格朗日插值函数的图像,如图1所示。
Matlab 脚本文件为Experiment2_1_1fx.m 。
可以看出,当n 较小时,拉格朗日多项式插值的函数图像随着次数n 的增加而更加接近于f(x),即插值效果越来越好。
数值分析上机实验报告(插值)

数值分析第一次上机练习实验报告——Lagrange 插值与三次样条插值一、 问题的描述设()2119f x x =+, []1,1x ∈-,取15iix =-+,0,1,2,...,10i =.试求出10次Lagrange 插值多项式()10L x 和三次样条插值函数()S x (采用自然边界条件),并用图画出()f x ,()10L x ,()S x .二、 方法描述——Lagrange 插值与三次样条插值我们取15i ix =-+,0,1,2,...,10i =,通过在i x 点的函数值()2119i i f x x =+来对原函数进行插值,我们记插值函数为()g x ,要求它满足如下条件:()()21,0,1,2,...,1019i i i g x f x i x ===+ (1)我们在此处要分别通过Lagrange 插值(即多项式插值)与三次样条插值的方法对原函数()2119f x x=+进行插值,看两种方法的插值结果,并进行结果的比较。
10次的Lagrange 插值多项式为:()()10100i i i L x y l x ==∑ (2)其中:()21,0,1,2,...,1019i i iy f x i x ===+ 以及()()()()()()()()()011011......,0,1,2,...,10......i i n i i i i i i i n x x x x x x x x l x i x x x x x x x x -+-+----==----我们根据(2)进行程序的编写,我们可以通过几个循环很容易实现函数的Lagrange 插值。
理论上我们根据区间[]1,1-上给出的节点做出的插值多项式()n L x 近似于()f x ,而多项式()n L x 的次数n 越高逼近()f x 的精度就越好。
但实际上并非如此,而是对任意的插值节点,当n →+∞的时候()n L x 不一定收敛到()f x ;而是有时会在插值区间的两端点附近会出现严重的()n L x 偏离()f x 的现象,即所谓的Runge 现象。
数值分析(12)Lagrange插值与Newton插值

使
F(x0)=y0 , F(x1)=y1 , , F(xn)=yn ,
(a)
这类问题称为插值问题。 f(x) 称为被插值函数,F(x) 称为插值函数, x0 , x1, ... , xn 称为插值节点。 (a)式称为插值条件。
数值分析
数值分析
插值函数的类型
在函数空间 span i ( x )i=0 中取插值函数.
y
(g( xi ) f ( xi ))2 min
i =0
● ●
n
●
(xn ,yn)
y=g(x)
(x2 ,y2)
●
(x0 ,y0) o x0
(x1 ,y1) x1 x2 xn x
●
数值分析
数值分析
问题2:水深和流速的关系
在水文数据的测量中,不同水深的流速是不同的。水文 数据的测量是天天进行的,为了减少测量的工作量,希望确定 水深和流速之间的关系。为此测量了一系列不同水深和流速值, 下表给出了对某河流的测量数据
代数插值 当插值函数是代数多项式时,插值问题称为代 数插值。 设 Pn(x)=a0+a1x+…+anxn, (1) n次代数插值问题为:求次数≤n的多项式Pn(x),使 满足插值条件 Pn(xi)=yi,, i= 0,1,2,…,n, (2)
定理1 设x0 ,x1,…,xn 是n+1个互异节点,函数f(x)在这 组节点的值yk=f(xk)(k=0,1,…,n)是给定的,那么存在 唯一的次数≤n的多项式Pn (x)满足 Pn (xk)= yk, k=0,1,…,n。
数值分析
插值问题与拟合问题
如果可以将一个实际问题用函数来描述,那么 对这个函数性质以及运算规律的研究,就是对这一 实际问题的某些内在规律的理性揭示。 在工程实践和科学实验中,经常需要建立函数 关系,即y=f(x)。虽然从原则上说,它在某个区间 [a,b]上是存在的,但通常只能观测到它的部分信息, 即只能获取[a,b]上一系列离散点上的值,这些值构 成了观测数据。这就是说,我们只知道一张观测 数据表,
runge定理

runge定理
Runge定理,又称Runge-Kutta定理,是数值分析中一种重要的定理,源于德国数学家K. Runge和G. Kutta的名字。
它是用于求解微分方程的一种重要方法。
该定理曾在20世纪初被流行,在数值计算中也有很重要的作用,它表明对于一阶精确的泰勒展开,任何具有正则步长的方法都不能实现更高精度。
Runge定理以Runge和Kutta两位在1901年发表的论文命名,它解决了流行的Euler鞍点问题。
Euler方法是一种用于数值解决微分方程的高效方法,但它有时会出现鞍点,即解会急剧变化。
在论文中,Runge和Kutta通过对方程进行拟合,建立出一个通用的流行的数值解析方法,解决了Euler鞍点问题,而这种方法就是现今流行的Runge定理。
Runge定理的主要思想是把微分方程的拟合拆分成两步,并利用它追踪解的流行。
首先,根据Euler鞍点问题,用某种方法求解解的初始值;其次,将方程分解为更小的步骤,用特定方法对其进行拟合,这样就可以得到需要的精确解。
Runge定理首先用于用于求解一阶微分方程组,但它通常也会被用于求解更高阶方程组,因此它在许多实际数值分析应用中有重要作用,包括科学研究和工程学。
它不仅能用于一般的拟合泰勒数展开,而且还可以作为对不同问题的拟合。
数值分析实验报告Hermite插值法、Runge现象,比较Language插值、分段线性插值、分段三次Hermie插值

山东师范大学数学科学学院实验报告x 0.1 0.5 1 1.5 2 2.5 3y 0.95 0.84 0.86 1.06 1.5 0.72 1.9y' 1 1.5 2 2.5 3 3.5 4求质点在时刻1.8时的速度,并画出插值多项式的图像。
1)运用Hermite插值法画出图像,如图4-1,并求质点在时刻1.8时的速度。
>>clear>>clc>>X=[0.1 0.5 1 1.5 2 2.5 3;0.95 0.84 0.86 1.06 1.5 0.72 1.9;1 1.5 2 2.5 3 3.5 4];>> x=0.1:0.01:3;>> H=Hermite1(X,x);>> plot(x,H)>> hold on>> plot(X(1,:),X(2,:),'r*')>> H1_8=Hermite(X,1.8);>> plot(1.8,H1_8,'go')>> legend('插值图像','原始点','目标点');图4-1二、验证高次插值的Runge现象问题分析和算法设计(一)Language插值代码function [Ln] =Lagrange(X,x)%请输入2*n+1矩阵X,X中第一行每个元素都是插值节点,X中第二行每个元素都是插值节点对应的函数值;%第二章P24例一拉格朗日插值n=size(X,2);d=0;for m=1:1:nif x==X(1,m);d=m;breakendend运行结果和总结 运行结果 例:给定函数55,11)(2≤≤-+=x xx f ; (1) 验证表2-10的误差结果(高次插值的Runge 现象);(2) 以0.1为步长分别进行Language 插值、分段线性插值、分段三次Hermite插值,画出三种插值函数以及f(x)的图像,比较三种插值结果。
数值分析 插值法

第二章 插值法在科学研究与工程技术中,常常遇到这样的问题:由实验或测量得到一批离散样点,要求作出一条通过这些点的光滑曲线,以便满足设计要求或进行加工。
反映在数学上,即已知函数在一些点上的值,寻求它的分析表达式。
此外,一些函数虽有表达式,但因式子复杂,不易计算其值和进行理论分析,也需要构造一个简单函数来近似它。
解决这种问题的方法有两类:一类是给出函数()f x 的一些样点,选定一个便于计算的函数()x ϕ形式,如多项式、分式线性函数及三角多项式等,要求它通过已知样点,由此确定函数()x ϕ作为()f x 的近似,这就是插值法;另一类方法在选定近似函数的形式后,不要求近似函数过已知样点,只要求在某种意义下在这些样点上的总偏差最小。
这类方法称为曲线(数据)拟合法。
设已知区间[,]a b 上的实值函数f 在1n +个相异点[,]i x a b ∈处的函数值(),0,1,,i if f x i n ==,要求构造一个简单函数()x ϕ作为函数()f x 的近似表达式()()f x x ϕ≈使得()(),0,1,,i i i x f x f i n ϕ=== (2-1)这类问题称为插值问题。
称f 为被插值函数;()x ϕ为插值函数;0,,n x x 为插值节点;(2-1)为插值条件。
若插值函数类{()}x ϕ是代数多项式,则相应的插值问题为代数插值。
若{()}x ϕ是三角多项式,则相应的插值问题称为三角插值。
若{()}x ϕ是有理分式,则相应的插值问题称为有理插值。
§1 Lagrange 插值1.1 Lagrange 插值多项式设函数f 在1n +个相异点01,,,n x x x 上的值(),0,1,,i i f f x i n ==是已知的,在次数不超过n 的多项式集合n P 中,求()n L x 使得(),0,1,,n i i L x f n n == (2-2)定理1 存在惟一的多项式n nL P ∈满足插值条件(2-2)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
y0=1./(1+25*x0.^2);
x=-1:0.01:1; %插值计算点
y=1./(1+25*x.^2);
m=length(x);
n=length(x0);
forj=1:m
fori=1:n-1
if(x(j)>=x0(i))&(x(j)<=x0(i+1))
yx(j)=(x(j)-x0(i+1))/(x0(i)-x0(i+1))*y0(i)+(x(j)-x0(i))/(x0(i+1)-x0(i))*y0(i+1);
由此有 .
牛顿前插公式为
.
其余项为
牛顿后插公式为
.
其余项为
在这里由于x不是等距节点,Lagrange插值曲线与原曲线比较接近,没有出现Runge现象。
给定 ,构造次数不超过 的拉格朗日插值多项式
.
称 为 关于 的 次拉格朗日插值多项式,它满足
.
其中 称为 为结点的 次插值函数,它满足
.
设 是 上关于 的 次插值多项式, 在 上有 阶连续导数, 在 上存在,则其余项为
y=1./(1+25*x.^2);
yx=csape(x0,y0,'second');
figure;
plot(x,fnval(yx,x),'r','LineWidth',2);hold on;
plot(x,y,'b','LineWidth',2);
gridon;
plot(x0,y0,'ok','markersize',6,'LineWidth',6)
1.对Runge函数 用在区间[-1, 1]下列条件作插值逼近,并和 的图像进行比较。
(1)用等距节点 ,h=0.2,绘出它的10次Newton插值多项式的图像。
(2)用节点 (i=0,1,…,10),绘出它的10次Newton插值多项式的图像。
(3)用等距节点 ,h=0.2,绘出它的分段线性插值多项式的图像。
xlabel('x轴','fontsize',20);
ylabel('y轴','fontsize',20);
legend('Newton插值曲线','原曲线:1/(1+25*x^2)');
set(gca,'fontsize',16)
i=1:11
x0=cos((2*i-1)/22*pi)
y0=1./(1+25*x0.^2);
Matlab程序如下:
x0=-1:0.2:1; %初始数据
y0=1./(1+25*x0.^2);
x=-1:0.01:1; %插值点
y=1./(1+25*x.^2);
n=max(size(x0));
l=max(size(x));
s=1; %一次因子的乘积,预设为1
dx=y0; %差商
fork=1:l
s=1; %一次因子的乘积,预设为1
.
分段线性插值函数在区间上是一致收敛的,曲线与原曲线比较接近,不会出现Runge现象,但是需要用分段函数来表示。
①n越大,分段越多,节点间距越小,分段直线越逼近于原函数曲线;
②由于在每个节点处,分段线性插值函数都是取该点的原函数的值,故 具有很好的收敛性,不会像拉格朗日插值那样出现振荡现象;
③由于对于x点的插值,分段线性插值只用到x左右的两个节点,并且用直线直接相连,因此分段线性插值在节点处不光滑。
dx=y0; %差商
yz=y0(1);
fori=1:n-1
dx0=dx;
forj=1:n-i
dx(j)=(dx0(j+1)-dx0(j))/(x0(i+j)-x0(j));
end
df=dx(1);
s=s*(x(k)-x0(i)); %一次因子乘积
yz=yz+s*df; %计算各次Newton插值的值
三次自然样条插值曲线与原曲线很接近。
设 为三次样条插值函数,则有估计式
, .
其中:
.
可见,当 时,三次样条插值函数 及其一阶导数 、二阶导数 分别一致收敛于被插函数 、 及 .
在以上四种插值方法中,三次自然样条插值方法得到的曲线与原曲线最相近。拉格朗日插值曲线在节点附近误差很小,曲线也较为光滑,但在端点处有较为明显的振荡现象;分段线性插值曲线具有良好的收敛性,但在节点处不光滑;而三次样条插值曲线在n较小时也会在端点附近有相对较大的误差,但兼具了收敛和光滑的优点,从直观上看与原函数曲线吻合得最好。
end
yx(k)=yz
end
figure;
plot(x,yx,'r','LineWidth',2);
holdon;
plot(x,y,'b','LineWidth',2);
gridon;
plot(x0,y0,'ok','markersize',6,'LineWidth',6)
holdon
title('Newton插值曲线与原曲线比较','fontsize',24);
end
end
end
figure;
plot(x,yx,'r','LineWidth',2);
holdon;
plot(x,y,'b','LineWidth',2);
gridon;
plot(x0,y0,'ok','markersize',6,'LineWidth',6)
holdon
title('分段线性插值曲线与原曲线比较','fontsize',24);
x=-1:0.01:1; %插值计算点
y=1./(1+25*x.^2);
m=length(x);
n=11;
for k=1:m %分别对每一点进行插值
tx=x(k);%插值点
s=0;
%进入迭代计算过程
forj=0:(n-1)
t=1;
fori=0:(n-1)
ifi~=j
t=t*(tx-x0(i+1))/(x0(j+1)-x0(i+1));
holdon
title('三次样条插值曲线与原曲线比较','fontsize',24);
xlabel('x轴','fontsize',20);
ylabel('y轴','fontsize',20);
legend('三次样条插值曲线','原曲线:1/(1+25*x^2)');
set(gca,'fontsize',16)
xlabel('x轴','fontsize',20);
ylabel('y轴','fontsize',20);
legend('分段线性插值曲线','原曲线:1/(1+25*x^2)');
set(gca,'fontsize',16)
x0=-1:0.2:1ຫໍສະໝຸດ %节点y0=1./(1+25*x0.^2);
x=-1:0.01:1; %插值计算点
end
end
s=s+t*y0(j+1);
end
yx(k)=s;
end
%画图显示结果
figure;
plot(x,yx,'r','LineWidth',2);
holdon;
plot(x,y,'b','LineWidth',2);
gridon;
plot(x0,y0,'ok','markersize',6,'LineWidth',6)
(4)用等距节点 ,h=0.2,绘出它的三次自然样条线性插值多项式的图像。
解:
当x在中间取值范围时,Newton插值曲线与原曲线比较接近,但是当x在两端时,Newton插值曲线与原曲线相差越来越大,出现了Runge现象。
插值余项 .
由插值多项式的唯一性知 ,因此,牛顿插值与拉格朗日插值有相同的余项表达式,即
holdon
title('Lagrange插值曲线与原曲线比较','fontsize',24);
xlabel('x轴','fontsize',20);
ylabel('y轴','fontsize',20);
legend('Lagrange插值曲线','原曲线:1/(1+25*x^2)');
set(gca,'fontsize',16)