数学建模(MathematicalModeling)黑龙江科技学院理学院工程数学教研室第六章数值分析模型黑龙江科技学院数学建模理学院弦截法和抛物线法数值分析模型第六章非线性方程求根迭代法重点:插值法和非线性方程求根难点:利用数值分析方法建立数学模型插值法黑龙江科技学院数学建模理学院建模举例黑龙江科技学院数学建模理学院数值分析(numericalanalysis)是研究用计算机求解各种数学计算问题的数值计算方法及其理论与软件实现的学科。数值分析就是介绍如何用计算机来解决数学问题,以各种各样的程序语言来设计出数值计算程序,然后依靠计算机的强大计算能力来求解这些数学问题,数值分析对数学理论与程序设计并重。运用数值分析解决问题的过程可分为如下几步:实际问题→数学模型→数值计算方法→程序设计→上机计算求出结果。数值分析这门学科有如下特点:(1)面向计算机(2)有可靠的理论分析(3)要有好的计算复杂性(4)要有数值实验(5)要对算法进行误差分析函数逼近问题设y=f(x),若对以函数y=f(x)来说①其值是通过实验或观测得到,不知其解析表达式;②解析表达式很复杂,不便分析。问题:能否构造一个较为简单的函数P(x)近似地表示f(x)。这就是函数逼近问题。•上述函数f(x)称为被逼近函数,P(x)称为逼近函数。•逼近方式有两种:插值和拟合。理学院黑龙江科技学院数学建模•在生产和科学研究中,经常出现这样的问题:由实验或测量得到的某一函数在一系列点处的值,需要构造一个简单函数作为函数的近似表达式:,使得•这类问题称为插值问题.()yfx01,,,nxxx01,,,nyyy()x()yfx()()yfxx0011(),(),,()nnxyxyxy(61)()fx----被插值函数()x----插值函数01,,,nxxx----插值节点-----插值条件(61)6.1插值法插值函数:有各种类型,如代数多项式,三角函数,有理函数等。当插值函数为多项式时,称为(代数)插值多项式。[min{xi},max{xi}]=[a,b]----插值区间x0xixy0yi•••••yy=f(x)o从几何上看,插值法就是要求一条曲线它通过已知的n+1个点(xi,yi)(i=0,1,…,n),并用近似表示f(x).(下图)黑龙江科技学院数学建模理学院()yx()x一、插值基函数与Lagrange插值1.简单情形(1)n=1时.设yi=f(xi)i=0,1.作直线方程:令:称为两点式插值或线性插值。nnyyyxfyxxxx1010)()(001010xxxxyyyy)()()(1000101001xxyxxyxxyxx)()(1011001xxyxxyxx.101001011yxxxxyxxxxx黑龙江科技学院数学建模理学院)(x1(2)n=2时.设yi=f(xi)i=0,1,2.令:称为三点式插值或抛物插值。2120210121012002010212))(())(())(())(())(())((yxxxxxxxxyxxxxxxxxyxxxxxxxxx黑龙江科技学院数学建模理学院)(x12.推广n=1时,记则n=2时,记则01011010)(,)(xxxxxlxxxxxl11001)()(yxlyxlxL))(())(()(,))(())(()(,))(())(()(120210221012012010210xxxxxxxxxlxxxxxxxxxlxxxxxxxxxl2211002)()()(yxlyxlyxlx黑龙江科技学院数学建模理学院•一般地令则lj(x)(j=0,1,2,…,n)为n次多项式称为Lagrange插值基函数,为Lagrange插值多项式。njiiijinjjjjjjnjjjxxxxxxxxxxxxxxxxxxxxxl1110110)()()())(()()())(()()(.)()(010njnjiiijijnjjjnxxxxyxlyxnjiiijijxxxxxl1)()()(黑龙江科技学院数学建模理学院)(xn黑龙江科技学院数学建模理学院例6.1.1给定数组xy3.1533.0622.9792.9032.8332.768907978777675()x(1)作一分段线性插值函数75.5x78.3x(2)用上述插值函数计算和的函数值。黑龙江科技学院数学建模理学院0175,76xx100176()767576xxxlxxxx011075()757675xxxlxxxx10011()()()xylxylx=2.76876x2.833x7565x2107/1000[75,76]解由插值基函数的表达式,在75到80的6个点间有5个线性插值函数,以区间为例,此时[75,76]则在区间上有.黑龙江科技学院数学建模理学院Matlab代码如下:function[Y,Phi]=FenDuanXianXingChaZhi(xx)clcx1=75:80;y=[2.768,2.833,2.903,2.979,3.062,3.153];n=size(x1,2);symsxpositivefori=1:(n-1)Phi(i)=y(i)*(x-x1(i+1))/(x1(i)-x1(i+1))+y(i+1)*(x-x1(i))/(x1(i+1)-x1(i));endPhi=Phi';l=find(x1xx);Y=subs(Phi(l(1)-1),xx);end•函数的调用格式为xx=75.5[Y,Phi]=FenDuanXianXingChaZhi(xx)•得到的结果为:Y=2.8005Phi=(13*x)/200-2107/1000(7*x)/100-2487/1000(19*x)/250-2949/1000(83*x)/1000-699/200(91*x)/1000-4127/1000黑龙江科技学院数学建模理学院75.5x78.3xY=2.8005的值就是的函数值。的函数值是3.0039。同理可得到理学院例6.1.2由函数z()1xesinyy生成以下离散数据,并利用其计算函数在x=1.98,y=0.36处的函数值。并与真值作比较。yx0.10.20.30.40.50.60.50.8485551.9181153.6815226.5888911.3823319.285371.01.0473912.1169513.8803586.78772511.5811619.484211.51.2442412.3138024.0772096.98457611.7780119.681062.01.438142.50774.2711077.17847411.9719119.874962.51.6281472.6977074.4611157.36848212.1619220.06496黑龙江科技学院数学建模(0.36,1.98)z使用了matlab系统函数interp2,代码如下,x=0.5:0.5:3.00.1:0.1:0.6;y=0.5:0.5:3.0;[x,y]=meshgrid(x,y);z=exp(x)+sin(y)+y-1;z_spline=interp2(x,y,z,1.98,0.36,'spline')计算结果为z_spline=6.9554,即对函数使用二次插值后在点计算出的而实际值是6.9550,二次插值的绝对误差为0.0004。值是6.9554。黑龙江科技学院数学建模理学院黑龙江科技学院数学建模二、牛顿插值()nx()fx()nx来计算函数值在理论上,利用插值基函数求出Lagrange插值多项式是很重要的。但用来计算的近似值却不大方便,特别是达不到要求的精度,这就要求增加插值节点,插值节点的增加意味着要重新计算全部的插值基函数。Lagrange插值法的计算量就变得很大了为此我们需要另一种便于计算的插值多项式。)(xf)(xn理学院黑龙江科技学院数学建模理学院()()[,]ijijijfxfxfxxxx[,][,][,,]jkijijkkifxxfxxfxxxxx1011010[,...,][,,...,][,,...,]nnnnfxxfxxxfxxxxxf定义6.1.1函数的一阶均差定义为,ijxx称为函数关于点的一阶均差.n一般地,记阶均差为f01,,...,nxxxn称为关于点的阶均差.类似地,可以定义二阶均差黑龙江科技学院数学建模理学院x[,]ab根据均差定义,把看成上一点,可得0000010110110()()[,]()[,][,][,,]()..........[,,...,][,,...,][,,...,]()nnnnfxfxfxxxxfxxfxxfxxxxxfxxxfxxxfxxxxx只要把后一式代入前一式,就得到牛顿插值多项式()nx0010012010101()()[,]()[,,]()().....[,,]()....()()()nnnnfxfxfxxxxfxxxxxxxfxxxxxxxxRx0010012010101()()[,]()[,,]()()....[,,...,]()...()nnnxfxfxxxxfxxxxxxxfxxxxxxx()()()nnRxfxx其中我们称()nx为Newton均差插值多项式。.黑龙江科技学院数学建模理学院注意:因此Newton插值多项式与Lagrange插值多项式只是形式不同,它们都是同一个多项式。(2)由于插值点固定时插值多项式是存在唯一的。(1)牛顿法比Lagrange插值的计算量少,且便于程序设计浮力问题一个半径为r,密度为ρ的球重,高为h的球冠体体积为,求的球浸在水中部分的深度是半径的几分之几(见图1)。334r)3(332hrh6.06.2非线性方程求根黑龙江科技学院数学建模理学院图1黑龙江科技学院数学建模理学院)3(334323hrhr)3(33433223rkrkrr0415523kk问题分析设ρ=0.6的球浸在水中部分的深度为h由物理学中知识,漂浮时,重力等于浮力可知:令h=kr即:问题:如何求解k的值?黑龙江科技学院数学建模理学院黑龙江科技学院数学建模工程实际与科学计算中都遇到大量求解非线性方程的问题。设非线性方程为()0fx求数使得()0,f则称为方程(6.2.1)的根,也称函数()fx()fx的零点。求解非线性方程在初等代数中就有研究。例如,代数方程(二次、三次方程等)、超越方程(三角方程,指数、对数方程等)。但是我们发现即使是最基本的代数方程,当次数超过4时,一般情况下就不能用公式表示方程的根,至于超越方程那就更难了。(6.2.1)研究用数值方法计算非线性方程的根非常必要。在求根时通常假设非线性方程()0fxx是关于的连续函数若令()yfx它在坐标系下的图像为连续曲线,因此,求()0fx的根就是求与x轴的交点.如果()0fx在区间[,]ab仅有一个根,则称[,]ab为方程()fx的单根区间;如果()0fx在区间[,]ab上有不止一个根,则称[,]ab为方程()fx的多根区间。方程的单根区间和多根区间统称为方程的有根区间。为了研究方便,我们主要研究方程在单根区间上的求解方法。黑龙江科技学院数学建模abx0x1a1b2x*一、区间对分法(二分法)1.确定有根区间:2.逐次对分区间:3.取根的近似值:b1a2黑龙江科技学院数学建模理学院.,),(,0)()(,,)(称其为有根区间的根内必有方程则若babfafbaCxf()0fx