搜档网
当前位置:搜档网 › 计算方法拉格朗日插值

计算方法拉格朗日插值

计算方法拉格朗日插值
计算方法拉格朗日插值

第二章 插值法

知识点:拉格朗日插值法,牛顿插值法,误差,龙格现象,分段插值。

1.背景

实践活动中,表现事务变化的信息往往只是一些离散点值,例如 每个6小时记录一次温度,以此反映一天的气温变化状况,如下表图

能从已知这些离散点值信息知道10时的气温是多少吗?如果能通过这些离散点值找到气温变化的规律,也就是说能找到一个反映气温变化规律的“原”函数,就可以知道10时的气温是多少。但我们能采集到的信息只有这些离散点值,时常给不出反映气温变化规律“原”函数的解析表达式,怎么办?通常可以用近似的办法解决这个问题,办法是构造一个通过所有离散点值的“近似”函数,用这个“近似”函数逼近“原”函数。如图

构造这个“近似”函数的方法称为插值方法。

34 32 30 28 26 24 22 20

时间(时)

温度(。C )

34 32 30 28 26 24 22 20

温度(。C )

2.概念

实际问题中,能采集到的信息只是一些离散点值{x i,f(x i)}(i=0,1,2,…n),时常给不出一个函数f(x)的解析表达式,因之,转而考虑选择一个简单的函数?(x)近似替代(原来)f(x)。

定义:设f(x)为定义在区间[a,b]上的函数,x0,x1,…,x n为[a,b]上的互异点,

y i=f(x i)。若存在一个简单函数?(x),满足

(插值条件)?(x i)=f(x i),i=0,1,…,n。

则称 ?(x)为f(x)插值函数,f(x)为被插函数,点x0,x1,…,x n为插值节点,点

{x i,f(x i)},i=0,1,2,…n为插值点。

若用?(x)≈f(x),则计算f(x)就转换为计算 ?(x)。

插值需要解决:插值函数是否存在唯一;插值函数如何构造;插值函数与被插函数的误差估计和收敛性。

对插值函数的类型有多种不同的选择,代数多项式p n(x)常被选作插值函数 ?(x)。

P23(2.18)和(2.19)指出,存在唯一的满足插值条件的n次插值多项式p n(x)。但是需要计算范德蒙行列式,构造插值多项式工作量过大,简单表达式不易得到,实际中不采用这类方法。

拉格朗日(Lagrange)、牛顿(Newton)等分别给出了不同的解决方法。

3.拉格朗日插值

插值法是一种古老的数学方法,拉格朗日(Lagrange)插值的基本思想是把插值多项式p n(x)的构造问题转化为对n+1个插值基函数l i(x)(i=0,1,…,n)的构造。

(1)线性插值

①构造插值函数

已知函数y=f(x)的两个插值点(x0,y0),(x1,y1),构造多项式y=p1(x),使p1(x0)=y0,p1(x1)=y1。

由直线两点式可知,通过A,B的直线方程为

则p1(x)=l0(x)y0+l1(x)y1≈f(x),满足:

l0(x0)=l1(x1)=1,l0(x1)=l1(x0)=0,p1(x0)=y0,p1(x1)=y1。

插值完毕!

这种插值方法称作为拉格朗日插值,l0(x),l1(x)称为点x0、x1的线性插值基函数,插值函数p1(x)是这两个插值基函数的线性组合,相应的多项式称拉格朗日线性插值多项式,记作L1(x),即L1(x)≈f(x)。

②误差

设L1(x)为插值点(x0,y0),(x1,y1)的插值函数,f(x0)=y0,f(x1)=y1,f(x)一阶连续可导,二阶导数存在.则对任意给定的x∈[a,b],存在一点ξ∈[a,b],使

引进辅助函数,利用洛尔定理即证,见P17定理2.1。

(2)二次插值

①构造插值函数

给定三个点{x i,f(x i)},i=0,1,2,其中x i互不相同,构造函数f(x)的二次插值多项式L2(x),满足:L 2(x0)=y0,L2(x1)=y1,L2(x2)=y2。

通过三点的插值问题称为二次插值或抛物插值。仿线性插值,用插值基函数构造插值多项式。

L 2(x )=l 0(x )y 0+l 1(x )y 1+l 2(x )y 2

待定函数l i (x )应是二次函数,满足约束条件

l i (x i )=1,l i (x j )=0(i ≠j ),i ,j =0,1,2。

此设l 0(x )=A(x-x 1)(x-x 2),l 1(x )=B(x-x 0)(x-x 2),l 2(x )=C(x-x 0)(x-x 1)。根据约束条件确定系数

由此得

②误差

证明见P22定理2.2。

(3)一般情况

两个插值点可求出一次插值多项式L 1(x ),而三个插值点可求出二次插值多项式

L 2(x )。当插值点增加到n +1个时,利用Lagrange 插值方法写出n 次插值多项式L n (x )。详细说明见P22-24,(2.20),(2.21)至(2.24)。

(4) 例子

设sin11°=0.190809,sin12°=0.207912,sin13°=0.224951,计算sin11°30ˊ。 解:(1)线性插值计算

插值:L1(11.5)=0.199361≈sin11°30ˊ

误差

(2)二次插值计算

L2(11.5)=0.199369.

(5)关于Langrange插值的几点说明

L

(x)仅与已知数据(x i,y i),(i =0,1,…,n)有关,与f(x)的原来形式无关,但余式与f(x) n

密切相关。

若f(x)本身是一个不超过n次多项式,则R n(x)=0,即L n(x)≡f(x).

内插(x位于x0,x1,…,x n之间)误差较小,外插有可能误差变大,慎用!

插值点的增减,基函数要重新计算,很不方便!插值节点过多其精度不一定很好;

lim L n(x)=f(x)(x∈[a,b])一般不成立.

哈工大_计算方法实验_1拉格朗日

实验题目1 Lagrange插值 摘要 给定平面上n+1个不同的数据点:则满足条件 的n次拉格朗日插值多项式 是存在唯一的。 若,且充分光滑,则当时,有误差估计式 前言 利用拉格朗日插值多项式求的近似值

程序设计流程 拉格朗日插值框图

问题1 (1) N = 5时,程序运行如下: TestLag(inline('1./(1+x.^2)'), -5, 5, 5, :;将区间[-5,5]分为了5段 计算插值的点 xi = 计算出的插值 yi = 插值点处函数值 yFact = 计算误差 err = N = 10时,程序运行如下: TestLag(inline('1./(1+x.^2)'), -5, 5, 10, :;将区间[-5,5]分为了10段 计算插值的点 xi = 计算出的插值 yi = 插值点处函数值 yFact = 计算误差 err = N = 20时,程序运行如下: TestLag(inline('1./(1+x.^2)'), -5, 5, 20, :;将区间[-5,5]分为了20段 计算插值的点 xi = 计算出的插值 yi = 插值点处函数值 yFact = 计算误差 err =

问题1 (2) N = 5时,程序运行如下: TestLag(inline('exp(x)'), -1, 1, 5, [ ]);将区间[-1,1]分为了5段 计算插值的点 xi = 计算出的插值 yi = 插值点处函数值 yFact = 计算误差 err = * N = 10时,程序运行如下: TestLag(inline('exp(x)'), -1, 1, 10, [ ]);将区间[-1,1]分为了10段 计算插值的点 xi = 计算出的插值 yi = 插值点处函数值 yFact = 计算误差 err = * N = 20时,程序运行如下: TestLag(inline('exp(x)'), -1, 1, 20, [ ]);将区间[-1,1]分为了20段 计算插值的点 xi = 计算出的插值 yi = 插值点处函数值 yFact = 计算误差 err = *

拉格朗日插值公式的证明及其应用

拉格朗日插值公式的证明及其应用 摘要: 拉格朗日(Lagrange)插值公式是多项式中的重要公式之一,在理论和实践中都有着广泛的应用.本文阐述了Lagrange 插值的基本理论,譬如:线形插值,抛物插值,Lagrange 多项式等.然后将线形插值,抛物插值,Lagrange 多项式插值分别应用到高中知识中,并且学会用计算机程序来编写.插值法的思想与中国剩余定理一脉相承, 体现了代数中"线性化" (即表示为求和和数乘的形式) 这一基本思路, 大巧若拙.本文的目的是通过介绍拉格朗日插值公式的推导,唯一性,证明过程及其在解题与实际生活问题中的应用来寻找该公式的优点,并且引人思考它在物理,化学等领域的应用.通过实际鉴定过程,利用插值公式计算生活中的成本问题,可以了解它的计算精度高,方法快捷. 关键词: 拉格朗日插值公式 唯一性 证明 解题应用 资产评估 曲线插值问题,直观地说,认为已知的一批数据点()n k k k f x 0,=是准确的,这些数据点所表现的 准确函数关系()x f 是未知的,在这种情况下要作一条近似曲线()x P 且点点通过这些点,插值问题不仅要讨论这种近似曲线()x P 的构造方法,还要讨论点增多时这种近似曲线()x P 是否稳定地收敛于未知函数()x f ,我们先研究一种简单常用的插值——拉格朗日插值. 一.定义,推导及其在解题中的应用 1.线性插值 1.1. 线性插值的定义 假定已知区间[]1,+k k x x 的端点处的函数值()k k x f y =, ()11++=k k x f y ,要求线性插值多项式()x L 1使它满足()k k y x L =1, ()111++=k k y x L . ()x L y 1=的几何意义:通过两点()k k y x ,和()11,++k k y x 的直线, 如图1所示,()x L 1的表达式由几何意义直接给出,即 ()()k k k k k k x x x x y y y x L ---+ =++111 (点斜式), 图1 ()11111++++--+--= k k k k k k k k y x x x x y x x x x x L (两点式). y=L 1x () y=f x () y k+1 y k x k+1 x k o y x

数值计算方法—拉格朗日插值

数值计算方法作业 专业:测控1002 学号:10540226 姓名:崔海雪

拉格朗日插值的算法及应用 【摘要】 本文简介拉格朗日插值,它的算法及程序和拉格朗日在实际生活中的运用。运用了拉格朗日插值的公式,以及它在MATLAB 中的算法程序,并用具体例子说明。拉格朗日插值在很多方面都可以运用,具有很高的应用价值。 【关键词】 拉格朗日;插值;公式;Matlab 算法程序; 一、绪论 约瑟夫·拉格朗日(Joseph Louis Lagrange),法国数学家、物理学家。他在数学、力学和天文学三个学科领域中都有历史性的贡献,其中尤以数学方面的成就最为突出。拉格朗日对流体运动的理论也有重要贡献,提出了描述流体运动的拉格朗日方法。数据建模有两大方法:一类是插值方法,另一类是拟合函数一般的说,插值法比较适合数据准确或数据量小的情形。然而Lagrange 插值有很多种,1阶,2阶,…n 阶。我们可以利用拉格朗日插值求方程,根据它的程序求原方程的图像。下面我具体介绍分析一下拉格朗日插值的算法设计及应用。 二、正文 1、基本概念 已知函数y=f(x)在若干点i x 的函数值i y =()i x f (i=0,1,???,n )一个差值问题就是求一“简单”的函数p(x):p(i x )=i y ,i=0,1,???,n, (1) 则p(x)为f(x)的插值函数,而f(x)为被插值函数会插值原函数,0x ,1x ,2x ,...,n x 为插值节点,式(1)为插值条件,如果对固定点-x 求f(-x )数值解,我们称- x 为一个插值节点,f(-x )≈p(-x )称为-x 点的插值,当-x ∈[min(0x ,1x ,2x ,...,n x ),max(0x ,1x ,2x ,...,n x )]时,称为内插,否则称为外插式外推,特别地,当p(x)为不超过n 次多项式时称为n 阶Lagrange 插值。 2、Lagrange 插值公式 (1)线性插值)1(1L 设已知0x ,1x 及0y =f(0x ) ,1y =f(1x ),)(1x L 为不超过一次多项式且满足 )(01x L =0y ,)(11x L =1y ,几何上,)(1x L 为过(0x ,0y ) ,(1x ,1y )的直线,从而得到 )(1x L =0y +0101x x y y --(x-0x ). (2)

拉格朗日乘子法约束最优化

一、 编程实现以下科学计算算法,并举一例应用之。 “拉格朗日乘子法约束最优化” 拉格朗日乘子法求约束最优化问题实例。采用拉格朗日乘子法如下最优化问题: )(),(min 212121x x x x x l +++=λλ。 在MA TLAB 中编写函数ex1208.m 来进行求解,具体代码如下所示。 %%%ex1208.m 拉格朗日乘子法求最优化解 x=zeros(1,2) %用syms 表示出转化后的无约束函数 syms x y lama f=x+y+lama*(x^2+y^2-2); %分别求函数关于x 、y 、lama 的偏导 dx=diff(f,x); dy=diff(f,y); dlama=diff(f,lama); %令偏导为零,求解x 、y xx=solve(dx,x); %将x 表示为lama 函数 yy=solve(dy,y); %将y 表示为lama 函数 ff=subs(dlama,{x,y},{xx,yy}); %代入dlama 得关于lama 的一元函数 lamao=solve(ff); %求解得lama0 xo=subs(xx,lama,lamao) %求得取极值处的x0 yo=subs(yy,lama,lamao) %取极值处的y0 fo=subs(f,{x,y,lama},{xo,yo,lamao}) %取极值处的函数值 程序运行结果为: xo= 1 -1 yo= 1 -1 fo= 2 -2 流程图:

二、编程解决以下科学计算和工程实际问题。、 1、利用MA TLAB提供的randn函数声称符合正态分布的10 5随机矩阵A, 进行如下操作: (1)A各列元素的均值和标准方差。 (2)A的最大元素和最小元素。 (3)求A每行元素的和以及全部元素之和。 (4)分别对A的每列元素按升序、每行元素按降序排序。 代码: clear all;close all; clc; A=randn(10,5); meanA=mean(A); %(1)A各列元素的均值 stdA=std(A); %(1)A各列元素的标准方差 maxA=max(max(A)); %(2)A的最大元素 minA=min(min(A)); %(2)A的最小元素 rowsumA=sum(A,2); %(3)A每行元素的和 sumA=sum(rowsumA); %(3)A全部元素的和 sort1=sort(A); %(4)A的每列元素按升序排列 sort2=sort(A,2,’descend’); %(4)A的每列元素按降序排列 运行结果:因生成矩阵随机,故无固定结果 流程图:

多元函数求极值(拉格朗日乘数法)

第八节多元函数的极值及其求法 教学目的:了解多元函数极值的定义,熟练掌握多元函数无条件极值存在的判定 方法、求极值方法,并能够解决实际问题。熟练使用拉格朗日乘数法求条件极值。 教学重点:多元函数极值的求法。 教学难点:利用拉格朗日乘数法求条件极值。 教学内容: 一、 多元函数的极值及最大值、最小值 定义设函数),(y x f z =在点),(00y x 的某个邻域内有定义,对于该邻域内异于 ),(00y x 的点,如果都适合不等式 00(,)(,)f x y f x y <, 则称函数(,)f x y 在点),(00y x 有极大值00(,)f x y 。如果都适合不等式 ),(),(00y x f y x f >, 则称函数(,)f x y 在点),(00y x 有极小值),(00y x f .极大值、极小值统称为极值。使函数取得极值的点称为极值点。 例1 函数2 243y x z +=在点(0,0)处有极小值。因为对于点(0,0)的任 一邻域内异于(0,0)的点,函数值都为正,而在点(0,0)处的函数值为零。从 几何上看这是显然的,因为点(0,0,0)是开口朝上的椭圆抛物面 2 243y x z +=的顶点。

例2函数2 2y x z +-=在点(0,0)处有极大值。因为在点(0,0)处函 数值为零,而对于点(0,0)的任一邻域内异于(0,0)的点,函数值都为负, 点(0,0,0)是位于xOy 平面下方的锥面2 2y x z +-=的顶点。 例3 函数xy z =在点(0,0)处既不取得极大值也不取得极小值。因为在点(0,0)处的函数值为零,而在点(0,0)的任一邻域内,总有使函数值为正的点,也有使函数值为负的点。 定理1(必要条件)设函数),(y x f z =在点),(00y x 具有偏导数,且在点),(00y x 处有极值,则它在该点的偏导数必然为零: ),(,0),(0000==y x f y x f y x 证不妨设),(y x f z =在点),(00y x 处有极大值。依极大值的定义,在点),(00y x 的某邻域内异于),(00y x 的点都适合不等式 ),(),(00y x f y x f < 特殊地,在该邻域内取0y y =,而0x x ≠的点,也应适合不等式 000(,)(,)f x y f x y < 这表明一元函数f ),(0y x 在0x x =处取得极大值,因此必有 0),(00=y x f x 类似地可证 ),(00=y x f y

《计算方法》

插值法 引言 许多实际问题都有用函数来表示某种内在规律的数量关系,其中相当一部分函数是通过实验或观测得到的.虽然某个区间上是存在的,有的 还是连续的,但却只能给出上一系列点的函数值, 这只是一张函数表.有的函数虽有解析表达式,但由于计算复杂,使用不方便,通常也造一个函数表,如大家熟悉的三角函数表、对数表、平方根和立方根表等等.为了研究函数的变化规律,往往需要求出不在表上的函数值.因此,我们希 望根据给定的函数表做一个既能反映函数的特性,又便于计算的简单函数 ,用近似.通常选一类较简单的函数(如代数多项式或分段代数 多项式)作为,并使对成立.这样确定的就是我们希望得到的插值函数.例如,在现代机械工业中用计算机等程序控制加工机 械零件,根据设计可给出零件个形曲线的某些型值点(,)(), 加工时为近年第步走刀方向步数,就要算出零件外形曲线其他点的函数值,才能加工出外表光滑的零件,这就是求插值函数的问题。下面我们给出有关插值法的定义。 设函数在区间上有定义,且已知在点上的值,若存在一简单函数,使 () (1.1) 成立,就称为的插值函数,点称为插值节点,包含插值节 点的区间称为插值区间,求插值函数的方法称为插值法。若是次数不超过的代数多项式,即

, (1.2) 其中为实数,就称为插值多项式,相应的插值法称为多项式插值,若 为分段的多项多,就称为分段插值。若为三角多项式,就称为三角插值。本章只讨论多项式插值与分段插值。 从几何上看,插值法就是求曲线,使其通过给定的+1个点, ,并用它近似已知曲线,见图2-1。 由已知的离散因变量的值来估计未知的中间插值的方法。 插值法又称“内插法”。 利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这里的方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。

计算方法实验报告 插值

实验名称:插值计算 1引言 在生产和科研中出现的函数是多种多样的。常常会遇到这样的情况:在某个实际问题中,虽然可以断定所考虑的函数f(x)在区间[a,b]上存在且连续,但却难以找到它的解析表达式,只能通过实验和观测得到在有限个点上的函数值。用这张函数表来直接求出其他点的函数值是非常困难的,在有些情况下,虽然可以写出f(x)的解析表达式,但由于结构十分复杂,使用起来很不方便。面对这些情况,构造函数P(x)作为f(x)的近似,插值法是解决此类问题比较古老却目前常用的方法,不仅直接广泛地应用与生产实际和科学研究中,而且是进一步学习数值计算方法的基础。 设函数y=f(x)在区间[a,b]上连续,且在n+1个不同的点a≤x0,x1……,xn≤b上分别取值y0,y1……,yn. 插值的目的就是要在一个性质优良、便于计算的函数φ中,求一简单函数P(x),使P(xi)=yi(i=0,1…,n)而在其他点x≠xi上,作为f(x)的近似。 通常,称区间[a,b]为插值区间,称点x0,x1,…,xn为插值节点,上式为插值条件,称函数类φ为插值函数类,称P(x)为函数f(x)在节点x0,x1,…,xn处的插值函数,求插值函数P(x)的方法称为插值法。 2实验目的和要求 用matlab定义分段线性插值函数、分段二次插值函数、拉格朗日插值函数,输入所给函 数表,并利用计算机选择在插值计算中所需的节点,计算f(0.15),f(0.31),f(0.47)的近似值。

3算法描述 1.分段线性插值流程图

2.分段二次插值流程图

3.拉格朗日插值流程图

4程序代码及注释 1.分段线性插值

计算方法上机实验报告——拉格朗日插值问题

计算方法上机实验报告——拉格朗日插值问题 一、方法原理 n次拉格朗日插值多项式为:Ln(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+ynln(x) n=1时,称为线性插值,L1(x)=y0(x-x1)/(x0-x1)+y1(x-x0)/(x1-x0)=y0+(y1-x0)(x-x0)/(x1-x0) n=2时,称为二次插值或抛物线插值,精度相对高些 L2(x)=y0(x-x1)(x-x2)/(x0-x1)/(x0-x2)+y1(x-x0)(x-x2)/(x1-x0)/(x1-x 2)+y2(x-x0)(x-x1)/(x2-x0)/(x2-x1) 二、主要思路 使用线性方程组求系数构造插值公式相对复杂,可改用构造方法来插值。 对节点xi(i=0,1,…,n)中任一点xk(0<=k<=n)作一n次多项式lk(xk),使它在该点上取值为1,而在其余点xi(i=0,1,…,k-1,k+1,…,n)上为0,则插值多项式为Ln(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+ynln(x) 上式表明:n个点xi(i=0,1,…,k-1,k+1,…,n)都是lk(x)的零点。可求得lk 三.计算方法及过程:1.输入节点的个数n 2.输入各个节点的横纵坐标 3.输入插值点 4.调用函数,返回z 函数语句与形参说明 程序源代码如下: 形参与函数类型 参数意义 intn 节点的个数 doublex[n](double*x) 存放n个节点的值 doubley[n](double*y) 存放n个节点相对应的函数值 doublep 指定插值点的值 doublefun() 函数返回一个双精度实型函数值,即插值点p处的近似函数值 #include #include usingnamespacestd; #defineN100 doublefun(double*x,double*y,intn,doublep); voidmain() {inti,n; cout<<"输入节点的个数n:"; cin>>n;

插值算法之拉格朗日插值

记一下拉格朗日插值公式的推导和一些要点【这里说的都是二维插值,多维上的以此类推】 1、插值问题:在做实验的过程中,往往得到一堆离散的数据,现在想用数学公式模拟这堆离散数据。怎么办,数学家们提出了插值问题。插值问题的提法是这样的给定一堆数据点(x0, y0), (x1, y1), (x2, y2)...(xn, yn),要求一个函数y = f(x) ,要求该函数经过上面所有的数据点。 2、多项式插值及其唯一性:在所有的函数中,多项式函数是最简单的函数,所以只要是人就会想到用多项式函数来作为插值函数,好,以上给定了n+1个点,现在要求一个n次多项式y = an * x^n + ... a1 * x + a0, 使它们经过这n+1个点;通过范德蒙行列式和克莱姆法则,可以判定如果这n+1个点的x值各不相同,那么这个多项式是唯一的。结果唯一,但是用直接法很不好求。现在用别的办法来求之。这就是:拉格朗日多项式 3、拉格朗日多项式的构造,以四个点为例子进行说明 由于函数经过4个点(x0, y0),(x1, y1),(x2, y2),(x3, y3),所以可以设函数为: f(x) = b0(x) * y0 + b1(x) * y1 + b2(x) * y2 + b3(x) * y3 注意:b0(x),...,b3(x)都是x的3次多项式,称之为拉格朗日插值基函数。 由于要求当x为x0时候,f(x) = y0, 所以最简单的做法就是让b0(x0) = 1, b1(x0) = b2(x0) = b3(x0) = 0; 同理可知,在x1,x2,x3点上,插值基函数的值构造如下:

b0(x) b1(x) b2(x) b3(x) x=x0 1 0 0 0 x=x1 0 1 0 0 x=x2 0 0 1 0 x=x3 0 0 0 1 问题1、根据这些值来确定b0(x)的表达式, 由于b0(x1) = b0(x2) = b0(x3) = 0,所以x1, x2, x3是b0(x)的零点,由于b0(x)是三次多项式,所以设 b0(x) = c0 * (x-x1) * (x-x2) * (x-x3) 由于b0(x0) = 1,所以1 = c0 * (x0-x1) * (x0-x2) * (x0-x3) 得到c0 = 1/[(x0-x1)(x0-x2)(x0-x3)] 所以:b0(x) = (x-x1)*(x-x2)*(x-x3)/[(x0-x1)*(x0-x2)*(x0-x3)] 同理可求b1(x)、b2(x),略 问题2、根据上面的表格说明插值基函数的一个性质:无论x取和值,它们的和都为1.【这

拉格朗日乘数法

§4 条件极值 (一) 教学目的:了解拉格朗日乘数法,学会用拉格朗日乘数法求条件极值. (二) 教学内容:条件极值;拉格朗日乘数法. 基本要求: (1)了解拉格朗日乘数法的证明,掌握用拉格朗日乘数法求条件极值的方法. (2) 较高要求:用条件极值的方法证明或构造不等式. (三) 教学建议: (1) 本节的重点是用拉格朗日乘数法求条件极值.要求学生熟练掌握. (2) 多个条件的的条件极值问题,计算量较大,可布置少量习题. (3) 在解决很多问题中,用条件极值的方法证明或构造不等式,是个好方法.可推荐给 较好学生. —————————————————————— 在许多极值问题中,函数的自变量往往要受到一些条件的限制,比如,要设计一个容积为V 的长方体形开口水箱,确定长、宽和高, 使水箱的表面积最小. 设水箱的长、宽、高分别为 z y x ,,, 则水箱容积 xyz V = 焊制水箱用去的钢板面积为 xy yz xz z y x S ++=)(2),,( 这实际上是求函数 ),,(z y x S 在 xyz V = 限制下的最小值问题。 这类附有条件限制的极值问题称为条件极值问题, 其一般形式是在条件 )(,,,2,1,0),,,(21n m m k x x x n k <== ? 限制下,求函数 ),,,(21n x x x f 的极值 条件极值与无条件极值的区别 条件极值是限制在一个子流形上的极值,条件极值存在时无条件极值不一定存在,即使存在二者也不一定相等。 例如,求马鞍面 12 2+-=y x z 被平面 XOZ 平面所截的曲线上的最低点。请看这个问题的几何图形(x31马鞍面) 从其几何图形可以看出整个马鞍面没有极值点,但限制在马鞍面被平面 XOZ 平面所截的曲线上,有极小值 1,这个极小值就称为条件极值。

计算方法论文 浅谈拉格朗日插值法

盐城师范学院课程考查论文 课程名称:《计算方法》 学院: 专业: 班级: 姓名: 学号: 论文题目:浅谈拉格朗日插值法

浅谈拉格朗日插值法 插值法又称“内插法”,是利用函数f (x)在某区间中若干点的函数值,作出适当的特定函数,在这些点上取已知值,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。 下面将主要谈谈拉格朗日插值法。 一、问题的背景 在实际问题中常遇到这样的函数y=f(x),其在某个区间[a,b]上是存在的。但是,通过观察或测量或试验只能得到在区间[a,b]上有限个离散点x0 ,x1 ,…,xn 上的函数值yi =f(xi ) ,(i=0,1,…,n) 。或者f(x)的函数f(x)表达式是已知的,但却很复杂而不便于计算;希望用一个既能反映函数f(x)的特性,又便于计算的简单函数来描述它。二、插值问题的数学提法: 已知函数在n+1个点x0 ,x1 ,…,xn 上的函数值 yi =f(xi ), (i=0,1,…,n) 求一个简单函数y=P(x),使其满足: P(xi )=yi ,(i=0,1,…,n) 。 即要求该简单函数的曲线要经过y=f(x)上已知的这个n+1个点:

(x0 ,y0 ),(x1 ,y1 ),…,(xn ,yn ), 同时在其它x∈[a,b]上要估计误差: R(x) = f(x) - P(x) 其中P(x)为f(x)的插值函数,x0 ,x1 ,…,xn 称为插值节点,包含插值节点的区间[a,b] 称为插值区间,求插值函数P(x)的方法称为插值法。若P(x)是次数不超过n的代数多项式,就称P(x)为插值多项式,相应的插值法称为多项式插值。若P(x)是分段的多项式,就是分段插值。若P(x)是三角多项式,就称三角插值。 下面是对拉格朗日插值法的介绍: 已知函数y=f(x)在n+1个不同的点x0,x1,…,x2上的函数值分别为: y0,y1,…,y n,求一个次数不超过n的多项式P n(x),使其满足: P n(x i)=y i, (i=0,1,…,n), 即n+1个不同的点可以唯一决定一个n次多项式。 (1). 插值基函数 过n+1个不同的点分别决定n+1个n次插值基函数 l0(x),l1(x),…,l n(X)

流体运动描述方法(欧拉法和拉格朗日法)

在流体力学里,有两种描述流体运动的方法:欧拉(Euler)和拉格朗日(Lagrange)方法。欧拉法描述的是任何时刻流场中各种变量的分布,而拉格朗日法却是去追踪每个粒子从某一时刻起的运动轨迹。 在一个风和日丽的午后,YC坐在河岸边看河水流,恩,她总是很闲。如果YC的位置不动,她在自己目光能及的河面上划出一块区域,数某一时刻经过的船只数,如果可能的话,再数数经过的鱼儿数;当然,如果手头有些仪器,她可以干干正事,比如测测水流的速度、水的压力、水的温度等,由此得到每一时刻这一河流区域水流各物理量的分布。那么YC是在用欧拉方法研究流体。 这时,YC忽然看到一条船上坐着她的初恋情人,虽然根据陈安对初恋情人的定义,YC根本没有初恋情人。现在假设她有,天哪,他们有20年没见面了,他还欠她20元呢,不能放了他。于是YC记下第一眼看到初恋情人的时间,并迅速测出此时船的位置和速度,然后撒腿追去。假设这条船是顺水而下,船的速度即是水流的速度。每隔一个时间点,她便测一下船的速度和位置。为了曾经的爱情,还有那不计利息的20元,她越过山岗,淌过小溪,直到那条船离开了她的视线。于是,她得到了这条船在河流中的运动轨迹。YC此时所用的研究方法就是拉格朗日法。 Understood? 而在一些复杂的两相流动问题里,比如粒子在流场中运动的问题,我们关注的是粒子的运动轨迹,因此,我们可以用拉格朗日方法追踪粒子在流场中的运动,同时,用欧拉方法来计算流场的各物理量。 在许多工程领域,都有纤维在流场中运动的问题。如果将纤维在流场中的运动视为两相流动,必须为纤维作一些改变,因为它不同于一般的刚性粒子。它细长,细长到你无法用一个粒子来代表一根纤维;它柔,柔得自己的每一部分可以相对于其他部分发生变形。我在《柔性纤维的妖娆运动》里,为slender and flexible纤维建立了模型,把纤维离散成一个个粒子,并在粒子之间建立了弹性或粘弹性的连接。为了研究纤维在流场中运动的问题,我们首先用欧拉法来研究流场,通过求解Navier-Stokes方程,得到流场中每一时刻每一位置的各个物理量。根据这些物理量,我们算出每个纤维粒子在这一时刻这一位置流场中所受的流体动力(hydrodynamic force),则可以算出每个纤维粒子的运动。假设一根纤维离散为100个粒子,算出每个粒子的运动,将每一时刻这些粒子的位置连接起来,就回复成一根纤维的运动轨迹了。所以说,我们是用拉格朗日方法在追踪纤维的运动轨迹,同时还可以得到变形纤维的妖娆模样呢! 我在前一篇博文中说:“在某年某月某一天,两个毫无关系的人,走到了同一个学校、同一个班级,并从此没再分开。这其实是个很危险的旅程,如果一个人早一年,另一个人晚一年;又或许,如果一个人开始想去一个大学,却在最后改变了主意。这样,两个人就失去了相识的初始条件和边界条件,陪在他们身边的,就会是另外的人了。”你们看出来了吗?这里其实用的是拉格朗日方法,因为我是在追踪人的轨迹。如果我和他不能在某一时空同时出现,那么我和他就不可能相遇、相爱、结为夫妻,因为他的轨迹和我是不同的。但是,即使在1987年9月1日,我没有在中国纺织大学的纺织871班级里遇到他,那么我也可能遇见并爱上另一个男生,因为在这样一个时空区域里,总会有人出现。这就是欧拉方法,我不去追踪他,我只坐在我的时空里,静静等待属于我的那个人。 也就是说,获得爱情有两种方法。一种是拉格朗日法,你拼命去追踪你爱的人;另一种是欧拉法,你静静地坐在你的时空里,等待属于你的那个人。 那么,哪种方法更能获得幸福呢?

对拉格朗日插值法与牛顿插值法的学习和比较

对拉格朗日插值法与牛顿插值法的学习和比较 摘要:根据对拉格朗日插值法和牛顿插值法的理解,本文主要介绍了拉格朗日插值法和牛顿插值法的相关内容以及它们的区别。 关键词:拉格朗日插值法;牛顿插值法 The leaning and comparison of the Lagrange interpolation and Newton interpolation Abstract: Based on the understanding of the Lagrange interpolation and Newton interpolation ,this paper mainly describes some related knowledge as well as the difference between these two methods. Keywords: Lagrange interpolation ; Newton interpolation 前言 在工程和科学研究中出现的函数是多种多样的。常常会遇到这样的情况:在某个实际问题中,虽然可以断定所考虑的函数)(x f 在区间],[b a 上存在且连续,但却难以找到它的解析表达式,只能通过实验和观测得到在有限个点上的函数值(即一张函数表)。显然,要利用这张函数表来分析函数)(x f 的性态,甚至直接求出其他一些点上的函数值可能是非常困难的。面对这些情况,总希望根据所得函数表(或结构复杂的解析表达式),构造某个简单函数)(x P 作为)(x f 的近似。这样就有了插值法,插值法是解决此类问题目前常用的方法。 如设函数)(x f y =在区间],[b a 上连续,且在1+n 个不同的点b x x x a n ≤≤,,,10 上分别取值n y y y ,,,10 。 插值的目的就是要在一个性质优良、便于计算的函数类Φ中,求一简单函数)(x P ,使 ),,1,0()(n i y x P i i == 而在其他点i x x ≠上,作为)(x f 的近似。 通常,称区间],[b a 为插值区间,称点n x x x ,,,10 为插值节点,称式i i y x P =)(为插值条件,称函数类Φ为插值函数类,称)(x P 为函数)(x f 在节点n x x x ,,,10 处的插值函数。求插值函数)(x P 的方法称为插值法。 插值函数类Φ的取法不同,所求得的插值函数)(x P 逼近)(x f 的效果就不同。它的选择取决于使用上的需要,常用的有代数多项式、三角多项式和有理函数等。当选用代数多项式作为插值函数时,相应的插值问题就称为多项式插值。本文讨论的拉格朗日插值法与牛顿插值法就是这类插值问题。 在多项式插值中,最常见、最基本的问题是:求一次数不超过n 的代数多项式 n n x a x a a x P +++= 10)( 使),,1,0()(n i y x P i i n ==,其中,n a a a ,,,10 为实数。

拉格朗日插值法C语言的实现

实验 一 .拉格朗日插值法C 语言的实现 1.实验目的: 进一步熟悉拉格朗日插值法。 掌握编程语言字符处理程序的设计和调试技术。 2.实验要求: 已知:某些点的坐标以及点数。 输入:条件点数以及这些点的坐标 。 输出:根据给定的点求出其对应的拉格朗日插值多项式的值 。 3.程序流程: (1)输入已知点的个数; (2)分别输入已知点的X 坐标; (3)分别输入已知点的Y 坐标; (4)通过调用函数lagrange 函数,来求某点所对应的函数值。 拉格朗日插值多项式如下: 0L ()()0,1,n n j k k j j k x y l x y j n ====∑…… 其中00()()0,1,,()k k x x l x k n x x -= =-k-1k+1n k k-1k k+1k n ……(x-x )(x-x ) …(x-x )…………(x -x )(x -x ) …(x -x ) 程序流程图:

↓ 程序如下: #include #include #include float lagrange(float *x,float *y,float xx,int n) /*拉格朗日插值算法*/ { int i,j; float *a,yy=0.0; /*a作为临时变量,记录拉格朗日插值多项式*/ a=(float *)malloc(n*sizeof(float)); for(i=0;i<=n-1;i++) { a[i]=y[i]; for(j=0;j<=n-1;j++) if(j!=i) a[i]*=(xx-x[j])/(x[i]-x[j]); yy+=a[i]; } free(a); return yy; } int main() { int i; int n; float x[20],y[20],xx,yy; printf("Input n:"); scanf("%d",&n); if(n>=20) { printf("Error!The value of n must in (0,20)."); getch();return 1; } if(n<=0) { printf("Error! The value of n must in (0,20)."); getch(); return 1; } for(i=0;i<=n-1;i++) {

Lagrange插值程序1

在Matlab中,可以编写如下程序来利用Lagrange插值公式进行计算: function f=Lagrange(x,fx,inx) n=length(x);m=length(inx); for i=1:m; z=inx(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x(j))/(x(k)-x(j)); end end s=p*fx(k)+s; end f(i)=s; end plot(x,fx,'O',inx,f) x=[1:12] fx=[12 234 34 -1 34 2 5 23 34 9 45 23] xi=[1:0.2:12] Lagrange(x,fx,xi) 得出结果: 12.0000 -60.5937 18.2765 124.9778 202.5952 234.0000 223.3757 184.1249 131.4738 78.4253 34.0000 2.9467 -13.6885 -17.5810 -12.0379 -1.0000 11.7556 23.1624 31.1611 34.7730 34.0000 29.6054 22.8332 15.1153 7.8099 2.0000 -1.6307 -2.8397 -1.7907 1.0404 5.0000 9.4024 13.6643 17.4033 20.4834 23.0000 25.2037 27.3769 29.6858 32.0400 34.0000 34.7742 33.3426 28.7320 20.4439 9.0000 -3.4848 -12.8605 -12.8873 4.0592 4 5.0000 112.3788 197.1817 267.9699 254.3439 23.0000

拉格朗日插值法理论及误差分析

目录: 一、 引言 二、 插值及多项式插值的介绍 三、 拉格朗日插值的理论及实验 四、 拉格朗日插值多项式的截断误差及实用估计式 五、 参考文献 一、引言 插值在数学发展史上是个古老问题。插值是和拉格朗日(Lagrange )、牛顿(Newton )、高斯(Gauss )等著名数学家的名字连在一起的。在科学研究和日常生活中,常常会遇到计算函数值等一类问题。插值法有很丰富的历史渊源,它最初来源人们对天体研究——有若干观测点(我们称为节点)计算任意时刻星球的位置(插值点和插值)。现在,人们在诸如机械加工等工程技术和数据处理等科研都有很好的应用,最常见的应用就是气象预报。插值理论和方法能解决在实际中当许多函数表达式未知或形式复杂,如何去构造近似表达式及求得在其他节点处的值的问题。 二、插值及多项式插值 1、插值问题的描述 设已知某函数关系()y f x =在某些离散点上的函数值: 插值问题:根据这些已知数据来构造函数()y f x =的一种简单的近似表达式,以便于计算点,0,1,,i x x i n ≠=的函数值()f x ,或计算函数的一阶、二阶导数 值。 2、插值的几何意义 x x 0 y y 1 y 1 n y -n y 1 x 1 n x -n x

插值的几何意义如图1所示: 图1 3、多项式插值 基本概念 假设()y f x =是定义在区间,a b ????上的未知或复杂函数,但一直该函数在点01n a x x x b ≤<< <≤处的函数值01,,n y y y 。找一个简单的函数,例如函数 ()P x ,使之满足条件 (),0,1,2, ,,i P x y i n == () 通常把上述01n x x x << < 称为插值节点,把()P x 称为()f x 的插值多项 式,条件()称为插值条件,并把求()P x 的过程称为插值法。 插值多项式的存在性和唯一性 如果插值函数是如下m 次的多项式: 1011()m m m m m P x a x a x a x a --=++ + 那么插值函数的构造就是要确定()m P x 表达式中的m+1个系数 011,, ,m m a a a a -。由于插值条件包含n+1独立式,只要m=n 就可证明插值函数多 项式是唯一存在。 实际上,由n+1个插值条件可得

拉格朗日插值多项式

数值计算方法上机报告拉格朗日插值多项式 学院:计算机与通信学院 班级:计算机科学与技术05级3班姓名:柴小辉 学号:05240326

尽管满足插值条件P n(x i)=y i(i=0,1,2,…,n) (1) 的n次插值多项式是唯一的,然而它的表达式却可以有多种形式。如果取满足条件 1 i=k l k(x i)= (i=0,1,2,…,n) (2) 0 i≠k 的一组n次的代数多项式l0(x)、l1(x)、…、l n(x)作为上述线性空间的基,容易看出 y0l0(x)+ y1l1(x)+…+y n l n(x)=∑y k l k(x) (3) 必是一个不高于n次的代数多项式,而且它在节点x0、x1、…、x n 上的值依次是y0、y1、…、y n也就是说,由n+1个n次代数多项式y0l0(x)、y1l1(x)、…、y n l n(x)线性生成的多项式(3),就满足插值条件(1)的n次插值多项式。 满足条件(2)的n次代数多项式l k(x)(k=0,1,2…,n),称为在n+1个节点x i (i=0,1,2,…,n)上的n次基本插值多项式;形如(3)的插值多项式称为拉格朗日插值多项式,记作L n(x),即 (4) 其中基函数 例给定函数表如下: 试求e0.285的近似值。 附: #define M 5 struct data {double x; double y; }; main() {int i,j,k; double x,sum=0,p; struct data z[M];

printf("Your data:\n"); for(i=0;i

计算方法编程作业1_拉格朗日插值与牛顿插值

西华数学与计算机学院上机实践报告 课程名称:计算方法年级:2012级上机实践成绩: 指导教师:严常龙姓名:贺容英 上机实践名称:拉格朗日插值和牛顿插值法学号:上机实践日期:yyyy.mm.dd 上机实践编号:1312012070102209 上机实践时间:2014.10.27 一、目的 1.通过本实验加深对拉格朗日插值和牛顿插值法构造过程的理解; 2.能对上述两种插值法提出正确的算法描述编程实现。 二、内容与设计思想 自选插值问题,编制一个程序,分别用拉格朗日插值法和牛顿插值法求解某点的函数近似值。(从课件或教材习题中选题) 已知y=f( 三、使用环境 操作系统:win7 软件环境:vs2012 四、核心代码及调试过程 4.1核心代码 1、拉格朗日插值法代码如下 double lagrangesf(point points[],int t) { int n=t; int i,j; double x,tmp=1,lagrange=0; printf("请输入需要计算的x的值:"); scanf("%lf",&x); for(i=0;i<=n-1;i++) { tmp=1; for(j=0;j<=n-1;j++) {

if(j!=i) tmp=tmp*(x-points[j].x)/(points[i].x-points[j].x); } lagrange=lagrange+tmp*points[i].y; } printf("lagrange(%lf)=%lf\n",x,lagrange); return 0; } 2、牛顿插值法代码如下 double newtonsf(point points[],int t) { int n=t; int i,j; double d[maxt+1]; double x,tmp,newton=0; printf("差商表\n"); printf("***************************************************\n"); printf("x "); for(i=0;i<=n-1;i++) { printf("%lf ",points[i].x); } printf("\n"); printf("y "); for(i=0;i<=n-1;i++) { d[i]=points[i].y; printf("%lf ",points [i].y); } printf("\n"); for(i=0;ii;j--) { d[j]=(d[j]-d[j-1])/(points[j].x-points[j-i-1].x);//计算差商 printf("%lf ",d[j]); } printf("\n"); } printf("***************************************************\n"); printf("请输入需要计算的x的值:"); scanf("%lf",&x); tmp=1; newton=d[0]; for(i=0;i

相关主题