数值计算方法报告
数值计算方法实验报告

数值计算方法实验报告一、实验介绍本次实验是关于数值计算方法的实验,旨在通过计算机模拟的方法,实现对于数值计算方法的掌握。
本次实验主要涉及到的内容包括数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等。
二、实验内容1. 数值微积分数值微积分是通过计算机模拟的方法,实现对于微积分中的积分运算的近似求解。
本次实验中,我们将会使用梯形公式和辛普森公式对于一定区间上的函数进行积分求解,并比较不同公式的计算误差。
2. 线性方程组的求解线性方程组求解是数值计算领域中的重要内容。
本次实验中,我们将会使用高斯消元法、LU分解法等方法对于给定的线性方程组进行求解,并通过比较不同方法的计算效率和精度,进一步了解不同方法的优缺点。
3. 插值与拟合插值与拟合是数值计算中的另一个重要内容。
本次实验中,我们将会使用拉格朗日插值法和牛顿插值法对于给定的数据进行插值求解,并使用最小二乘法对于给定的函数进行拟合求解。
4. 常微分方程的数值解常微分方程的数值解是数值计算中的难点之一。
本次实验中,我们将会使用欧拉法和龙格-库塔法等方法对于给定的常微分方程进行数值解的求解,并比较不同方法的计算精度和效率。
三、实验结果通过本次实验,我们进一步加深了对于数值计算方法的理解和掌握。
在数值微积分方面,我们发现梯形公式和辛普森公式都能够有效地求解积分,但是辛普森公式的计算精度更高。
在线性方程组求解方面,我们发现LU分解法相对于高斯消元法具有更高的计算效率和更好的数值精度。
在插值与拟合方面,我们发现拉格朗日插值法和牛顿插值法都能够有效地进行插值求解,而最小二乘法则可以更好地进行函数拟合求解。
在常微分方程的数值解方面,我们发现欧拉法和龙格-库塔法都能够有效地进行数值解的求解,但是龙格-库塔法的数值精度更高。
四、实验总结本次实验通过对于数值计算方法的模拟实现,进一步加深了我们对于数值计算方法的理解和掌握。
在实验过程中,我们了解了数值微积分、线性方程组的求解、插值与拟合、常微分方程的数值解等多个方面的内容,在实践中进一步明确了不同方法的特点和优缺点,并可以通过比较不同方法的计算效率和数值精度来选择合适的数值计算方法。
数值计算方法上机实验报告

数值计算方法上机实验报告
一、实验目的
本次实验的主要目的是熟悉和掌握数值计算方法,学习梯度下降法的
原理和实际应用,熟悉Python语言的编程基础知识,掌握Python语言的
基本语法。
二、设计思路
本次实验主要使用的python语言,利用python下的numpy,matplotlib这两个工具,来实现数值计算和可视化的任务。
1. 首先了解numpy的基本使用方法,学习numpy的矩阵操作,以及numpy提供的常见算法,如矩阵分解、特征值分解等。
2. 在了解numpy的基本操作后,可以学习matplotlib库中的可视化
技术,掌握如何将生成的数据以图表的形式展示出来。
3. 接下来就是要学习梯度下降法,首先了解梯度下降法的主要原理,以及具体的实际应用,用python实现梯度下降法给出的算法框架,最终
可以达到所期望的优化结果。
三、实验步骤
1. 熟悉Python语言的基本语法。
首先是熟悉Python语言的基本语法,学习如何使用Python实现变量
定义,控制语句,函数定义,类使用,以及面向对象编程的基本概念。
2. 学习numpy库的使用方法。
其次是学习numpy库的使用方法,学习如何使用numpy库构建矩阵,学习numpy库的向量,矩阵操作,以及numpy库提供的常见算法,如矩阵分解,特征值分解等。
3. 学习matplotlib库的使用方法。
数值计算方法学习报告

数值计算方法学习报告数值计算方法是数学中研究数值计算的一门学科。
它主要研究用数学方法解决实际问题时所涉及的数值计算方法和计算技巧。
数值计算方法主要包括近似计算、数值逼近、数值微积分、数值代数等方面,广泛应用于科学工程计算、金融、图像处理等领域。
本文将对数值计算方法进行学习总结。
首先,在学习数值计算方法之前,我们需要了解数值计算的基本概念和原理。
数值计算是通过计算机等数值工具获得问题的数值解。
在实际应用中,往往无法用解析方法求得问题的精确解,而需要通过数值方法来近似求解。
数值计算方法的基本原理是将问题转化为数学模型,通过选择适当的数值算法和计算技巧,利用计算机进行数值计算,得到问题的数值解。
其次,数值计算方法的学习可以从近似计算开始。
近似计算是指通过代数运算或函数逼近得到问题的近似解。
常见的近似计算方法包括二分法、牛顿迭代法、泰勒展开法等。
这些方法在求解非线性方程、方程组、最优化问题等方面有广泛应用。
学习近似计算方法需要掌握数值误差的估计和控制方法,这是保证数值计算结果有效性和可靠性的关键。
然后,数值逼近是数值计算方法的核心内容之一、数值逼近是指用其中一种函数或多项式逼近待求函数或曲线的方法。
常见的数值逼近方法包括插值法、最小二乘法等。
插值法通过已知数据点之间的插值多项式来逼近待求函数,最小二乘法通过最小化残差平方和来逼近待求曲线。
在实际应用中,数值逼近方法常用于数据拟合、信号处理、图像处理等领域。
此外,数值微积分也是数值计算方法的重要内容。
数值微积分是将微积分的基本概念和方法用数值算法来实现。
常见的数值微积分方法包括数值积分和数值微分。
数值积分是通过数值近似方法计算函数的定积分,常用的数值积分方法有梯形法则、辛普森法则等。
数值微分是通过数值逼近方法计算函数的导数,常用的数值微分方法有前向差分法、后向差分法等。
最后,数值代数是数值计算方法的另一个重要组成部分。
数值代数主要研究线性方程组和矩阵的数值计算方法。
数值计算方法实验报告

数值分析实验报告实验一、解线性方程组的直接方法——梯形电阻电路问题利用追赶法求解三对角方程组的方法,解决梯形电阻电路问题:电路中的各个电流{1i ,2i ,…,8i }须满足下列线性方程组:R V i i =- 22 210 252321=-+-i i i 0 252 432=-+-i i i 0 252 543=-+-i i i 0 252 654=-+-i i i 0 252 765=-+-i i i 0 252 876=-+-i i i 052 87=+-i i设V 220=V ,Ω=27R ,运用追赶法,求各段电路的电流量。
问题分析:上述方程组可用矩阵表示为:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--------------00000001481.8522520000002520000002520000002520000002520000002520000002287654321i i i i i i i i问题转化为求解A x b =,8阶方阵A 满足顺序主子式(1,2...7)0i A i =≠,因此矩阵A存在唯一的Doolittle 分解,可以采用解三对角矩阵的追赶法!追赶法a=[0 -2 -2 -2 -2 -2 -2 -2]; b=[2 5 5 5 5 5 5 5];c=[-2 -2 -2 -2 -2 -2 -2 0]; d=[220/27 0 0 0 0 0 0 0];Matlab 程序function x= zhuiganfa( a,b,c,d )%追赶法实现要求:|b1|>|C1|>0,|bi|>=|ai|+|ci| n=length(b); u=ones(1,n); L=ones(1,n); y=ones(1,n); u(1)=b(1); y(1)=d(1); for i=2:nL(i)=a(i)/u(i-1);u(i)=b(i)-c(i-1)*L(i); y(i)=d(i)-y(i-1)*L(i); endx(n)=y(n)/u(n); for k=n-1:-1:1x(k)=(y(k)-c(k)*x(k+1))/u(k); end endMATLAB 命令窗口输入:a=[0 -2 -2 -2 -2 -2 -2 -2]; b=[2 5 5 5 5 5 5 5];c=[-2 -2 -2 -2 -2 -2 -2 0] d=[220/27 0 0 0 0 0 0 0];x= zhuiganfa(a,b,c,d )运行结果为:x =8.1478 4.0737 2.0365 1.0175 0.5073 0.2506 0.1194 0.0477存在问题根据电路分析中的所讲到的回路电流法,可以列出8个以回路电流为独立变量的方程,课本上给出的第八个回路电流方程存在问题,正确的应该是78240i i -+=;或者可以根据电路并联分流的知识,同样可以确定78240i i -+=。
《数值计算方法》上机实验报告

《数值计算方法》上机实验报告华北电力大学实验名称数值il•算方法》上机实验课程名称数值计算方法专业班级:电力实08学生姓名:李超然学号:200801001008 成绩: 指导教师:郝育黔老师实验日期:2010年04月华北电力大学实验报告数值计算方法上机实验报吿一.各算法的算法原理及计算机程序框图1、牛顿法求解非线性方程*对于非线性方程,若已知根的一个近似值,将在处展开成一阶xxfx ()0, fx ()xkk泰勒公式"f 0 / 2 八八,fxfxfxxxxx 0 0 0 0 0 kkkk2!忽略高次项,有,fxfxfxxx 0 ()()(),,, kkk右端是直线方程,用这个直线方程来近似非线性方程。
将非线性方程的**根代入,即fx ()0, X ,* fxfxxx 0 0 0 0, ,, kkkfx 0 fx 0 0,解出fX 0 *k XX,, k' fx 0 k水将右端取为,则是比更接近于的近似值,即xxxxk, Ik, Ikfx ()k 八XX, Ikk* fx()k这就是牛顿迭代公式。
,2,计算机程序框图:,见,,3,输入变量、输出变量说明:X输入变量:迭代初值,迭代精度,迭代最大次数,\0输出变量:当前迭代次数,当前迭代值xkl,4,具体算例及求解结果:2/16华北电力大学实验报吿开始读入l>k/fx()0?,0fx 0 Oxx,,01* fx ()0XX,,,?10kk, ,1,kN, ?xx, 10输出迭代输出X输出奇异标志1失败标志,3,输入变量、输出变量说明: 结束例:导出计算的牛顿迭代公式,并il •算。
(课本P39例2-16) 115cc (0), 求解结果:10. 75000010.72383710. 72380510. 7238052、列主元素消去法求解线性方程组,1,算法原理:高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘 -个 方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上 对上三角3/16华北电力大学实验报告方程组求解。
数值计算基础实验报告(3篇)

第1篇一、实验目的1. 理解数值计算的基本概念和常用算法;2. 掌握Python编程语言进行数值计算的基本操作;3. 熟悉科学计算库NumPy和SciPy的使用;4. 分析算法的数值稳定性和误差分析。
二、实验内容1. 实验环境操作系统:Windows 10编程语言:Python 3.8科学计算库:NumPy 1.19.2,SciPy 1.5.02. 实验步骤(1)Python编程基础1)变量与数据类型2)运算符与表达式3)控制流4)函数与模块(2)NumPy库1)数组的创建与操作2)数组运算3)矩阵运算(3)SciPy库1)求解线性方程组2)插值与拟合3)数值积分(4)误差分析1)舍入误差2)截断误差3)数值稳定性三、实验结果与分析1. 实验一:Python编程基础(1)变量与数据类型通过实验,掌握了Python中变量与数据类型的定义方法,包括整数、浮点数、字符串、列表、元组、字典和集合等。
(2)运算符与表达式实验验证了Python中的算术运算、关系运算、逻辑运算等运算符,并学习了如何使用表达式进行计算。
(3)控制流实验学习了if-else、for、while等控制流语句,掌握了条件判断、循环控制等编程技巧。
(4)函数与模块实验介绍了Python中函数的定义、调用、参数传递和返回值,并学习了如何使用模块进行代码复用。
2. 实验二:NumPy库(1)数组的创建与操作通过实验,掌握了NumPy数组的基本操作,包括创建数组、索引、切片、排序等。
(2)数组运算实验验证了NumPy数组在数学运算方面的优势,包括加、减、乘、除、幂运算等。
(3)矩阵运算实验学习了NumPy中矩阵的创建、操作和运算,包括矩阵乘法、求逆、行列式等。
3. 实验三:SciPy库(1)求解线性方程组实验使用了SciPy库中的线性代数模块,通过高斯消元法、LU分解等方法求解线性方程组。
(2)插值与拟合实验使用了SciPy库中的插值和拟合模块,实现了对数据的插值和拟合,并分析了拟合效果。
数值计算方法实验报告

数值计算方法实验报告实验目的:通过实验验证不同数值计算方法在求解数学问题时的精度和效率,并分析其优缺点。
实验原理:实验内容:本实验选取了三个典型的数值计算问题,并分别采用了二分法、牛顿迭代法和梯度下降法进行求解。
具体问题和求解方法如下:1. 问题一:求解方程sin(x)=0的解。
-二分法:利用函数值的符号变化将解空间不断缩小,直到找到满足精度要求的解。
-牛顿迭代法:通过使用函数的斜率来逼近方程的解,并不断逼近真实解。
-梯度下降法:将方程转化为一个极小化问题,并利用梯度下降的方式逼近极小值点,进而找到方程的解。
2.问题二:求解函数f(x)=x^2-3x+2的极小值点。
-二分法:通过确定函数在一个区间内的变化趋势,将极小值所在的区间不断缩小,从而找到极小值点。
-牛顿迭代法:通过使用函数的导数和二阶导数来逼近极小值点,并不断逼近真实解。
-梯度下降法:将函数转化为一个极小化问题,并利用梯度下降的方式逼近极小值点,进而找到函数的极小值点。
3. 问题三:求解微分方程dy/dx = -0.1*y的解。
-二分法:通过离散化微分方程,将微分方程转化为一个差分方程,然后通过迭代计算不同点的函数值,从而得到函数的近似解。
-牛顿迭代法:将微分方程转化为一个积分方程,并通过迭代计算得到不同点的函数值,从而得到函数的近似解。
-梯度下降法:将微分方程转化为一个极小化问题,并利用梯度下降的方式逼近极小值点,从而得到函数的近似解。
实验步骤:1.编写代码实现各个数值计算方法的求解过程。
2.对每个数值计算问题,设置合适的初始值和终止条件。
3.运行程序,记录求解过程中的迭代次数和每次迭代的结果。
4.比较不同数值计算方法的精度和效率,并分析其优缺点。
实验结果:经过实验测试,得到了如下结果:-问题一的二分法迭代次数为10次,求解结果为x=0;牛顿迭代法迭代次数为4次,求解结果为x=0;梯度下降法迭代次数为6次,求解结果为x=0。
-问题二的二分法迭代次数为10次,求解结果为x=1;牛顿迭代法迭代次数为3次,求解结果为x=1;梯度下降法迭代次数为4次,求解结果为x=1-问题三的二分法迭代次数为100次,求解结果为y=e^(-0.1x);牛顿迭代法迭代次数为5次,求解结果为y=e^(-0.1x);梯度下降法迭代次数为10次,求解结果为y=e^(-0.1x)。
数值计算方法 实验报告4

实验四 数值微积分实验学院:数学与计算机科学学院 专业:数学与应用数学 学号: 姓名:一. 实验目的1 利用复化求积公式计算定积分,并比较误差;2 比较一阶导数和二阶导数的数值方法,并绘图观察特点.二. 实验题目用复化梯形公式、复化辛普森公式、龙贝格公式求下列定积分,要求绝对误差为8105.0-⨯=ε,并将计算结果与精度解进行比较:⑴dx e x e x2321432⎰= ⑵dx x x ⎰-=322326ln .利用等距节点的函数值和端点的导数值,用不同的方法求下列函数的一阶和二阶导数,分析各种方法的有效性,并用绘图软件绘出函数的图形,观察其特点. ⑴35611201x x y -=,[]2,0∈x ⑵xey 1-=,[]5.0,5.2--∈x三. 实验原理1 复化梯形公式将积分区间[]b a ,剖分为n 等分,分点为)2,1,0( =+=k kh a x k ,其中n a b h /)(-=.在每个区间[]1,+k k x x 上用梯形公式,则有 ()()dx x fdxx fn k x xba k k∑⎰=⎰-=+11()()[][]∑⎭⎬⎫⎩⎨⎧++-=-=++1112n k k k kkk f R x f x f x x()()[][]f R x f x f h n k k n k k k ∑+∑+=-=-=+1112.记()()[]()()()[]∑++=∑+=-=-=+111222n k kn k k knx f b f a f hx f x f h T .2 复化辛普森公式 将积分区间[]b a ,剖分为n 等分,分点为)2,1,0( =+=k kh a xk,其中n a b h /)(-=.记区间[]1,+k k x x 的中点为21+k x ,在每个区间[]1,+k k x x 上用辛普森公式,则得到所谓的复化辛普森公式:()()⎥⎦⎤⎢⎣⎡+⎪⎭⎫⎝⎛+∑-=++-=+1211146k k kn k k k n xfx f x f x x S ,即()()()⎥⎦⎤⎢⎣⎡∑⎪⎭⎫ ⎝⎛+∑++=-=+-=1211426n k k n k knx f x fb f a f h S .3 龙贝格公式的算法步骤为: I.输入b a ,及精度ε; II.置,a b h -=()()()b f a f h T+=211;III. 置2,1,1===n j i ,对分区间[]b a ,,并计算111,+++i j i j T T :∑⎪⎭⎫ ⎝⎛+==-+nk k ii x f hT T 121111221,144111--=+++jijj jj i j T T T ;IV.若不满足终止条件,做循环:n n h h i i 2:,2/:,1:==+=, 计算∑⎪⎭⎫ ⎝⎛+==-+nk k ii x f hT T121111221, 对,,,1i j =计算:144111--=+++jijj jj i j T T T .4 向前差商公式:()()()ha f h a f a f -+≈';向后差商公式:()()()h h a f a f a f --≈';中心差商公式:()()()hh a f h a f a f 2--+≈';二阶导数公式:()()()()22hh a f a f h a f a f ++--≈''.四. 实验内容 实验一第一小题:对于方程dx e x e x2321432⎰=,利用程序shiyan1_01.m内容如下:%第一个函数的实验 clear clcfun=inline('(2/3)*x.^3.*exp(x.^2)'); S1=matrap(fun,1,2,170000); S2=masimp(fun,1,2,250); S3=maromb(fun,1,2,.5e-8); s=exp(4); Er1=abs(S1-s) Er2=abs(S2-s) Er3=abs(S3-s)第二小题:对于方程dx x x ⎰-=322326ln ,利用程序shiyan1_02.m内容如下:%第二个函数的实验 clearclcfun=inline('2*x./(x.^2-3)'); S1=matrap(fun,2,3,15000); S2=masimp(fun,2,3,100); S3=maromb(fun,2,3,.5e-8); s=log(6); Er1=abs(S1-s) Er2=abs(S2-s) Er3=abs(S3-s)实验二第一小题:对于方程35611201x x y -=,[]2,0∈x ,利用程序shiyan2_01.m内容如下:clear clcfun=inline('x.^5/20-(11./6)*x.^3'); dfun=inline('x.^4/4-(11./2)*x.^2'); ddfun=inline('x.^3-11*x'); n=8;h=2/n;x=0:h:2;x1=x(2:n); y=feval(fun,x); dy=feval(dfun,x1); ddy=feval(ddfun,x1); for i=2:ndy1(i)=(y(i+1)-y(i))/h; dy2(i)=(y(i)-y(i-1))/h;dy3(i)=(y(i+1)-y(i-1))/(2*h);ddy1(i)=(y(i+1)-2*y(i)+y(i-1))/(h*h); endfor i=1:n-1err1(i)=abs(dy1(i)-dy(i)); err2(i)=abs(dy2(i)-dy(i)); err3(i)=abs(dy3(i)-dy(i));errd2(i)=abs(ddy1(i)-ddy(i)); end[err1' err2' err3' errd2'] plot(x,y,'r')hold onplot(x1,dy,'y') plot(x1,ddy,'k')第二小题:对于方程xey 1-=,[]5.0,5.2--∈x ,利用程序shiyan2_02.m内容如下:clear clcfun=inline('exp(-1./x)');dfun=inline('(-1./x).*exp(-1./x)');ddfun=inline('(-1./(x.^2)).*exp(-1./x)+1./(x.^2)'); n=8;h=2/n;x=-2.5:h:-0.5;x1=x(2:n); y=feval(fun,x); dy=feval(dfun,x1); ddy=feval(ddfun,x1); for i=2:ndy1(i)=(y(i+1)-y(i))/h; dy2(i)=(y(i)-y(i-1))/h; dy3(i)=(y(i+1)-y(i-1))/(2*h);ddy1(i)=(y(i+1)-2*y(i)+y(i-1))/(h*h); endfor i=1:n-1err1(i)=abs(dy1(i)-dy(i)); err2(i)=abs(dy2(i)-dy(i)); err3(i)=abs(dy3(i)-dy(i)); errd2(i)=abs(ddy1(i)-ddy(i)); end[err1' err2' err3' errd2'] plot(x,y,'r')hold onplot(x1,dy,'y')plot(x1,ddy,'')五.实验结果实验一第一小题T =146.5012 0 0 0 0 0 0 083.9243 63.0653 0 0 0 0 0 062.6132 55.5095 55.0058 0 0 0 0 056.6535 54.6669 54.6108 54.6045 0 0 0 055.1154 54.6027 54.5984 54.5982 54.5982 0 0 054.7277 54.5984 54.5982 54.5982 54.5982 54.5982 0 054.6305 54.5982 54.5982 54.5982 54.5982 54.5982 54.5982 0 54.6062 54.5982 54.5982 54.5982 54.5982 54.5982 54.5982 54.5982Er1 =4.5922e-009Er2 =4.8409e-009Er3 =1.4211e-014第二小题T =2.5000 0 0 0 0 0 0 0 2.0192 1.8590 0 0 0 0 0 0 1.8564 1.8022 1.7984 0 0 0 0 0 1.8088 1.7929 1.7922 1.7921 0 0 0 0 1.7961 1.7918 1.7918 1.7918 1.7918 0 0 0 1.7928 1.7918 1.7918 1.7918 1.7918 1.7918 0 0 1.7920 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918 0 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918 1.7918Er1 =4.9383e-009Er2 =4.0302e-009Er3 =1.0132e-012实验二第一小题ans =0.2196 0.2196 0.2196 2.1920 0.3627 0.8003 0.5815 2.1480 0.5711 1.4367 1.0039 2.0560 0.7667 2.0411 1.4039 1.91600.9447 2.5991 1.7719 1.72801.1003 3.09632.0983 1.4920 1.22873.5183 2.3735 1.2080 1.3251 3.8507 2.5879 0.87601.3847 4.07912.7319 0.4960第二小题ans =0.6932 0.6932 0.6932 0.1105 0.4680 0.5532 0.5106 0.5030 0.5236 0.6555 0.5895 0.7793 0.5907 0.8102 0.7005 1.2991 0.6692 1.0727 0.8709 2.3982 0.7473 1.6071 1.1772 5.15720.7567 3.0873 1.9220 14.2888六.实验结果分析1.利用复化辛普森公式比利用复化梯形公式,所取的n更小,当达到相同精度时,利用辛普森公式等分次数n更小,减少计算次数.2.若利用同一公式,所取n的大小与题设给出的精度ε之间的关系:当n越大时,与精度ε之间的误差越小;反之,当n越小时,与精度ε之间的误差越大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j1 xi x j
ji
2.2 n 次Newton插值公式
给定n+1个插值点(xi,f(xi)),i =0,1,2,…,n,xi互异,
f (x) f (x0 ) (x x0 ) f [x, x0 ],
f [x, x0 ]
f (x) f (x0) x x0
类似地,由二阶至 n 阶差商的定义得:
(1.1)式称为一次Lagrange插值。 由求解过程知,用待定系数法,需要求解线性方程
组,当已知节点较多时,即方程的未知数多,计算量较大, 不便向高阶插值推广。
★ n 次插值多项式的构造
插值基函数法
分别构造x0 , x1, …, xn 上的 n 次插值基函数 l0(x), l1(x), …,
ln(x),满足性质:
或 x x* x .
• 相对误差
设 x* 为精确值,x 为近似值,相对误差为:
e x*x
er x *
. x*
当绝对误差 e 较小时,相对误差可写为:
er
e x
x*x . x
相对误差限
如果有正数εr使得 误差限。
er =
e x*
r,
则称εr为
x*
的相对
• 有效数字
设 x* 的近似值为x= 0.12L n 10p 0.1L pp1L n 10p
(x−x0)× (x−x0)(x−x1) ×
…… (x−x0)…(x−xn−1)
f [x, x0 ] f [x0, x1] (x x1) f [x, x0, x1], f [x, x0, x1] f [x0, x1, x2 ] (x x2 ) f [x, x0, x1, x2], L L L
li (x j ) ij
1, i 0, i
j j
0,1, 2,L
, n
即
节点x0x1 Nhomakorabeax2
…
xn
基函数
l0(x)
1
0
0
…
0
l1(x)
0
1
0
…
0
l2(x)
0
0
1
…
0
…
…
…
…
…
…
ln(x)
0
0
0
…
1
所以我们得到 n 次Lagrange插值多项式:
Ln (x) l0 (x) f (x0 ) l1(x) f (x1) L ln (x) f (xn )
(xi)=f(xi) , i=0, 1, 2, …,n (1.0)
则称(x)为关于节点x0,x1,...,xn的插值函数;称x0 ,x1, ... , xn 为插值节点;称(xi,f (xi)), i=1,2,…,n 为插 值点;f(x) 称为被插值函数。(1.0)式称为插值条件。这
类问题称为插值问题。
(1)模型误差 指数学模型与实际问题之间出现的误差。
(2)观测误差 由观测产生的误差 (3)截断误差
当数学模型不能得到精确解时,通常要用数值方法求 它的近似解,其近似解与精确解之间的误差称为截断误差。
如函数 f (x)用Taylor展式的有限项来近似代替。
(4)舍入误差 由于受计算机字长的限制,计算时只能 取有限位数进行运算,由此产生的误差称舍入误差。
现代数值计算报告
2012年9月8日
主讲内容
• 误差及有效数字 • 几种插值 • 曲线拟合的最小二乘法
• 什么是数值计算方法?
数值建模
数值计算
实际问题
数学问题
近似解
• 什么是“好的”数值计算方法?
✓ 误差小 ─ 误差分析
✓ 耗时少 ─ 复杂度分析
✓ 抗干扰 ─ 稳定性分析
1误差及有效数字
• 1.1误差的来源
即插值条件: L1(xi)= f(xi)=yi,i=0,1
解之得,
a0
x0 y1 x1 y0 x0 x1
, a1
y0 x0
y1 . x1
因此,
L1 ( x)
x0 y1 x0
x1 y0 x1
y0 x0
y1 x1
x
x x1
x0 x1
y0
x x0 x1 x0
y1 (1.1)
2.1 Lagrange插值
选用代数多项式作为插值函数。Lagrange插值就是选 用节点上的函数值作为插值条件。
线性插值
给定两个点(x0,y0),(x1,y1), x0≠x1,确定一个一次多项式插值函数, 简称线性插值。
待定系数法
设 L1(x)=a0+a1x, 代入插值点 当x0≠x1时,方程组的解存在唯一。
• 1.2 误差的概念
• (绝对)误差
设 x* 为精确值(或准确值),x 为 x* 的近似值, 称 e = x*- x 为近似值x的(绝对)误差。 • (绝对)误差限(ε)
如果精确值 x* 与近似值 x 的误差的绝对值不超过 某个正数ε,即|e|=|x*-x|≤ε。 于是,精确值也可表示为 x* = x ± ε,
(x),来逼近函数 f(x)。
• 常用的函数逼近方法有: ► 插值法; ► 最小二乘法(或称均方逼近); ► 一致逼近等。
插值法是函数逼近的重要方法之一,有着广泛的应
用。简单地说,插值法就是用给定的(未知)函数 f(x)的 若干点上的函数值(或其导数值) 来构造f(x)的近似函数 (x),要求(x)与f(x)在给定点的函数值相等。
有很多种插值法,其中以拉格朗日(Lagrange)插值和
牛顿(Newton)插值为代表的多项式插值最有特点,常用的
插值还有Hermite插值,分段插值和样条插值。
• 插值法的定义
设 f(x)为[a,b]上的函数,在互异点x0 ,x1,...,xn 处的函数值分别为f(x0),f(x1),…,f(xn),构造一个简单 函数(x)作为函数f(x)的近似表达式y=f(x)(x),使
1 0,p为整数,若 x 的绝对误差限不超过末位的半个
单位,即
表示数x的末位
x * x 1 10(n p) 1 10 pn.
2
2
的半个单位
则称用 x 近似 x*是具有“ n 位有效数字。”
2 几种插值
• 插值问题的背景 在生产和实验中,函数 f(x)或者其表达式不便于计算,
或者无表达式而只有函数在给定点的函数值(或其导数值) ,此时我们希望建立一个简单的而便于计算的近似函数
n
li (x) f (xi ) (1.8) i0
其中:
li (x)
(x x0)L (xi x0 )L
(x (xi
xi1)(x xi1)L xi1)(x xi1)L
(x xn) (xi xn )
n
x x j , i 1, 2,L , n (1.7)