第四章 数值计算

合集下载

数值分析-第4章 数值积分和数值微分

数值分析-第4章  数值积分和数值微分

A0+A1=2 A0x0+A1x1=0 A0x02+A1x12=2/3 A0x03+A1x13=0
A0 A1 1 解得: 1 x 0 x1 3
求积公式为
1 1 1 f ( x)dx f ( ) f ( ) 3 3
x f(x)
数值分析
1 4
2 4.5
3 6
4 8
5 8.5
1
一、数值积分的基本概念 求积节点 数值积分定义如下:是离散点上的函数值的线性组合
I [ f ] f ( x)dx I n [ f ] Ai f ( xi )
b a i 0 n
称为数值积分公式
称为求积系数,与f (x)无关,与积分区间和求积节点有关
b a
Rn ( x) dx
定理:形如 Ak f ( xk ) 的求积公式至少有 n 次代数精度
A 该公式为插值型(即: k a l k ( x)dx )
数值分析
b
5
例1 试确定参数A0,A1,A2,使求积公式
1 f ( x)dx A0 f (1) A1 f (0) A2 f (1)
证明 因为Simpson公式对不高于三次的多项式精确成立。即

b
a
p 2 ( x)dx
ba ab [ p 2 (a) 4 p 2 ( ) p 2 (b)] 6 2
构造三次多项式H3(x),使满足 H3(a)=(a) ,H3(b)=(b),
H 3 (( a b) / 2) f (( a b) / 2), H 3 (( a b) / 2) f (( a b) / 2), 这时插值误差为
1

matlab入门经典教程--第四章数值计算

matlab入门经典教程--第四章数值计算

m a t l a b入门经典教程--第四章数值计算-CAL-FENGHAI.-(YICAI)-Company One1第四章数值计算4.1引言本章将花较大的篇幅讨论若干常见数值计算问题:线性分析、一元和多元函数分析、微积分、数据分析、以及常微分方程(初值和边值问题)求解等。

但与一般数值计算教科书不同,本章的讨论重点是:如何利用现有的世界顶级数值计算资源MATLAB。

至于数学描述,本章将遵循“最低限度自封闭”的原则处理,以最简明的方式阐述理论数学、数值数学和MATLAB计算指令之间的内在联系及区别。

对于那些熟悉其他高级语言(如FORTRAN,Pascal,C++)的读者来说,通过本章,MATLAB卓越的数组处理能力、浩瀚而灵活的M函数指令、丰富而友善的图形显示指令将使他们体验到解题视野的豁然开朗,感受到摆脱烦琐编程后的眉眼舒展。

对于那些经过大学基本数学教程的读者来说,通过本章,MATLAB精良完善的计算指令,自然易读的程序将使他们感悟“教程”数学的基础地位和局限性,看到从“理想化”简单算例通向科学研究和工程设计实际问题的一条途径。

对于那些熟悉MATLAB基本指令的读者来说,通过本章,围绕基本数值问题展开的内容将使他们体会到各别指令的运用场合和内在关系,获得综合运用不同指令解决具体问题的思路和借鉴。

由于MATLAB的基本运算单元是数组,所以本章内容将从矩阵分析、线性代数的数值计算开始。

然后再介绍函数零点、极值的求取,数值微积分,数理统计和分析,拟合和插值,Fourier分析,和一般常微分方程初值、边值问题。

本章的最后讨论稀疏矩阵的处理,因为这只有在大型问题中,才须特别处理。

从总体上讲,本章各节之间没有依从关系,即读者没有必要从头到尾系统阅读本章内容。

读者完全可以根据需要阅读有关节次。

除特别说明外,每节中的例题指令是独立完整的,因此读者可以很容易地在自己机器上实践。

MATLAB从版升级到版后,本章内容的变化如下:MATLAB从版起,其矩阵和特征值计算指令不再以LINPACK和EISPACK库为基础,而建筑在计算速度更快、运行更可靠的LAPACK和ARPACK程序库的新基础上。

数值计算方法第2版 第4章 插值法

数值计算方法第2版 第4章 插值法


l ( x ) 1 ( k i ) , k i l ( x ) 0 ( k i ) , i 、 k 0 , 1 , , n k i
lk (x)称为关于节点xi( i=0,1,…,n)的n次插值基函数。
基函数的特点
1. 基函数的个数等于节点数。 2. n+1个节点的基函数是n次代数多项式。 3. 基函数和每一个节点都有关。节点确定,基函数就唯 一的确定。 4. 基函数和被插值函数无关。 5. 基函数之和为1。
公式的结构:它是两个一次函数的线性组合 线性插值基函数
x x 1 l ( x ) , 0 x x 0 1 x x 0 l ( x ) 1 x x 1 0
3 线性插值的几何意义 用直线 P ( x ) 近似代替被插值函数 f ( x ) 。

造数学用表。平方根表
给定函数在100、121两点的平方根如下表,试用线性 插值求115的平方根。 x 100 121
其系数行列式
a0 a1 x0 a2 x02 an x0n y0 2 n a0 a1 x1 a2 x1 an x1 y1 2 n a a x a x a x n n yn 0 1 n 2 n
1 x 0 x 02
x 0n
2 n 1 x x x 1 1 ( x x 0 V ( x , x , , x ) 1 i j) 0 1 n 0 j i n
1 xn
x n2 x nn
,a , ,a 0 1 n ,因此P(x)存在且唯一。 方程组有唯一解 a
唯一性说明不论用那种方法构造的插值多 项式只要满足相同的插值条件,其结果都是互 相恒等的。 推论 当f(x)是次数不超过n的多项式时, 其n次插值多项式就是f(x)本身。

数值计算方法第四章第四节 三次样条

数值计算方法第四章第四节 三次样条

yi f (xi )(i 0,1,...,n) 以及边界点上的一阶导数值f '(x0 ), f '(xn). 求一个三次样条函数S( x)使之满足
S(xi ) yi
(i 1,2,...,n 1)
S(xj ) yj , S'(xj ) f '(xj ) ( j 0, n) 8-
三弯矩插值法的基本思想 ( 1)yi'' f''(xi )未知,但可设S''(xi)Mi,
上的一个分划 ,:ax0x1 xn1xnb 给定节点上函数值f(xi),i0,1,2, ,n。 若函数S(x)满足 (1)S(xi ) yi i 0,1, n; (2)S(x)Ck1[a,b],即在整体上是k-1阶连续的; (3)S(x)在每一个小区间[xi, xi1]是k次多项式
(i 0,1, n1) 则称S(x)为k次样条函数。x1,..., xn1称为内节点, x0, xn称为外节点.
2-
样条是绘图员用于描绘光滑曲线的一种机 械器件,它是一些易弯曲材料制成的窄条或棒条. 或接近图 表上确定的描绘点.“样条函数”这个术语意在 点出这种函数的图象与机械样条画出的曲线很 象.
3-
一.k次样条函数的定义
定义 若函数yf(x)在 [a,b]上连续,对于区间[a,b]
( 4 ) 再 由 三 弯 矩 方 程 边 界 条 件 ( 补 充 两 个 方 程 ) 封 闭 的 方 程 组 , 可 求 出 M i,(i 0 ,1 ,2 ,...,n )9-
1、建立三弯矩方程 在[xi,xi1]上,三次样条函数可表示为 Si(x)ai(xxi )3 bi(xxi )2 ci(xxi )di (i 0, 1,,n1)

数值计算方法第四章插值1

数值计算方法第四章插值1

代数插值
代数插值
当f(x)是次数不超过n的多项式时,给定n+1个节点,其n次插值多项式就是f(x)本身.
代数插值几何意义
拉格朗日插值 逐次线性插值 牛顿插值 等距节点插值 反插值 埃尔米特插值 分段插值法 三次样条插值
拉格朗日插值 线性插值
格朗日插值 抛物线插值
基函数之和为1.
拉格朗日插值 n次插值
当插值点x∈(a,b)时称为内插,否则称为外插。
内插的精度高于外插的精度。
拉格朗日插值余项
余项 设函数f(x)在包含节点x0 , x1 ,…, xn的区间[a,b]上有n+1阶导数,则
拉格朗日插值
活动14
写出3次拉格朗日插值多项式及余项
拉格朗日插值
拉格朗日插值
作业5
已知函数表
应用拉格朗日插值公式计算f(1.300)的近似值.
数值计算方法
苏 强
江苏师范大学连云港校区
数学与信息工程学院 E-mail: 412707233@
数值计算方法 第四章 插值与曲线拟合
没有明显的解析表达式
使用不便的解析表达式
简单函数代替
插值问题
插值问题
代数插值 插值函数
被插值函数 插值节点
插值区间
三角多项式插值 有理函数插值
代数插值
抛物线插值
三点插值
拉格朗日插值 抛物线插值
抛物线插值
三点插值
拉格朗日插值 抛物线插值
拉格朗日插值 n次插值
称为关于节点
的n次插值基函数.
拉格朗日插值n次插值
基函数的个数等于节点数.
n+1个节点的基函数是n次代数多项式 基函数和每一个节点都有关。节点确定,基函数就唯一的确定。 基函数和被插值函数无关

第四章热传导热问题的数值解法

第四章热传导热问题的数值解法
数值求解的高斯-赛德尔(Gauss- Seidel)迭代法
4-1 导热问题数值求解的基本思想
4.1.1 数值求解的基本思想(见P162): 把原来在时间、空间坐标系中连续的
物理量的场,用有限个离散点上的值的集 合来代替,通过求解按一定方法建立起来 的关于这些值的代数方程(组),来获得 离散点上被求物理量的值(其集合称为该 物理量的数值解)
t2(℃)
t3(℃)
0
0
5.675
3.769
4.545 (-1.13) 4.996 (1.227)
4.029 (-0.516) 5.061 (0.065)
3.979 (-0.05) 5.013 (-0.048)
3.994 (0.015) 5.000 (-0.013)
4.000 (0.006) 5.000 (0.000)
y
t4
t0

xy
0
x
△x=△y,且无内热源时,有
t1 t2 t3 t4 4t0 0
即:
t0
1 4
(t1
t2
t3
t4 )
一维问题 推广
三维问题
t0
1 2
(t1
t2
)
t0
1 6
(t1
t2
t3
t4
t5
t6)
一维问题 : t1 t2 2t0 0 二维问题 : t1 t2 t3 t4 4t0 0 三维问题 : t1 t2 t3 t4 t5 t6 6t0 0
流入控制体的总热流量+控制体内热源生成热 = 流出控制体的总热流量+控制体内能的增量 注意:上面的公式对内部节点和边界节点均适用
如图, 以元体(m,n)为研究对象
(1) 元体(m,n)的能量守恒方程为:

数值计算04-插值与拟合

数值计算04-插值与拟合

二维插值的定义
第一种(网格节点):
y
O
x
已知 mn个节点 其中 互不相同,不妨设
构造一个二元函数
通过全部已知节点,即
再用
计算插值,即
第二种(散乱节点):
y



0
x
已知n个节点
其中 互不相同,
构造一个二元函数
通过全部已知节点,即
再用
计算插值,即
最邻近插值
y
( x1 , y2 ) ( x2 , y2 )
( x1 , y1 ) ( x2 , y1 )

x
O
注意:最邻近插值一般不连续。具有连续性的最简单 的插值是分片线性插值。
分片线性插值
速度最快,但平滑性差
linear
占有的内存较邻近点插值方法多,运算时间 也稍长,与邻近点插值不同,其结果是连续 的,但在顶点处的斜率会改变 运算时间长,但内存的占有较立方插值方法 要少,三次样条插值的平滑性很好,但如果 输入的数据不一致或数据点过近,可能出现 很差的插值结果 需要较多的内存和运算时间,平滑性很好 二维插值函数独有。插值点处的值和该点值 的导数都连续
x=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 y=0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6
海拔高度数据为: z=89 90 87 85 92 91 96 93 90 87 82 92 96 98 99 95 91 89 86 84 82 84 96 98 95 92 90 88 85 84 83 81 85 80 81 82 89 95 96 93 92 89 86 86 82 85 87 98 99 96 97 88 85 82 83 82 85 89 94 95 93 92 91 86 84 88 88 92 93 94 95 89 87 86 83 81 92 92 96 97 98 96 93 95 84 82 81 84 85 85 81 82 80 80 81 85 90 93 95 84 86 81 98 99 98 97 96 95 84 87 80 81 85 82 83 84 87 90 95 86 88 80 82 81 84 85 86 83 82 81 80 82 87 88 89 98 99 97 96 98 94 92 87

第四章_MATLAB的数值计算功能

第四章_MATLAB的数值计算功能

第四章MATLAB 的数值计算功能Chapter 4: Numerical computation of MATLAB数值计算是MATLAB最基本、最重要的功能,是MATLAB最具代表性的特点。

MATLAB在数值计算过程中以数组和矩阵为基础。

数组是MATLAB运算中的重要数据组织形式。

前面章节对数组、矩阵的特征及其创建与基本运算规则等相关知识已作了较详尽的介绍,本章重点介绍常用的数值计算方法。

一、多项式(Polynomial)`多项式在众多学科的计算中具有重要的作用,许多方程和定理都是多项式的形式。

MATLAB提供了标准多项式运算的函数,如多项式的求根、求值和微分,还提供了一些用于更高级运算的函数,如曲线拟合和多项式展开等。

1.多项式的表达与创建(Expression and Creating of polynomial)(1) 多项式的表达(expression of polynomial)_Matlab用行矢量表达多项式系数(Coefficient)和根,系数矢量中各元素按变量的降幂顺序排列,如多项式为:P(x)=a0x n+a1x n-1+a2x n-2…a n-1x+a n则其系数矢量(V ector of coefficient)为:P=[a0 a1… a n-1 a n]如将根矢量(V ector of root)表示为:ar=[ ar1 ar2… ar n]则根矢量与系数矢量之间关系为:(x-ar1)(x- ar2) … (x- ar n)= a0x n+a1x n-1+a2x n-2…a n-1x+a n(2)多项式的创建(polynomial creating)a,系数矢量的直接输入法利用poly2sym函数直接输入多项式的系数矢量,就可方便的建立符号形式的多项式。

例1:创建给定的多项式x3-4x2+3x+2poly2sym([1 -4 3 2])ans =x^3-4*x^2+3*x+2也可以用poly2str.求一个方阵对应的符号形式的多项式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MATLAB仿真与应用》
实验报告
第四章数值计算
一、实验目的
1、熟悉根据已知数据进行回归法曲线拟合
2、熟悉根据已知数据进行多项式曲线拟合
3、熟悉根据已知数据利用指定方法进行数据插值(临近插值、线性插值、立方插值、三次样条插值)
4、熟悉脚本文件和函数文件的概念,各自的特点,以及二者的区别
5、熟悉主函数和私有函数的特点
6、了解Matlab编程的特点
二、实验内容
1、多项式拟合 x已知自变量的取值 y相应的函数值 n多项式的系数
p=polyfit(x,y,n)
2、多项式计算求值函数 p=polyval(p,x2)
3、产生图例 legend(‘fitting’,’origin’)
4、多项式插值 yi=interp1(x,y,xi,method)
5、外插运算 yi=interp1(x,y,xi,method,’extrap’)
6、二维插值 y=interp2(x,y,z,xi,yi,method)
7、临近插值 ynearest=interp1(time,temp,xi,’nearest’)
8、线性插值 ylinear=interpre1(time,t emp,xi,’linear’)
9、立方插值 ycublic=interp1(time,temp,xi,’cublic’)
10、三次样条插值 yspline=interp1(time,temp,xi,’spline’)
11、延时函数 pause
12、比较 function compare_interp()
13、一个典型多元函数 peaks
14、数组A、B共同产生网格[A,B]= meshgrid(A,B)
15、将多个图画到一个平面 subplot
16、绘制矩阵的等高线 contour
三、思考练习题
1、给出两组数据x=[0 0.3 0.8 1.1 1.6 2.3]' y=[0.82 0.72 0.63 0.60 0.55 0.50]',我们可以简单地认为这组数据在一条衰减的指数函数曲线上,y=C1+C2e^-t通过曲线拟合求出这条衰减曲线的表达式,并且在图形窗口画出这条曲线,已知的点用*表示
>> x=[0 .3 .8 1.1 1.6 2.3]';y=[0.82 0.72 0.63 0.60 0.55 0.50]';
>> X=[ones(size(x)) exp(-x)];
>> c=X\y
c =
0.4760
0.3413
>> T=(0:0.1:2.5)';Y=[ones(size(T)) exp(-T)]*c;
>> plot(T,Y,'-',x,y,'*')
2、通过测量得到一组数据
t 1 2 3 4 5 6 7 8 9 10
y 4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005 分别采用y1(t)=C1+C2e^-t和y2(t)=d1+d2te^-t进行拟合,并画出拟合曲线进行对比
t=(1:1:10)';y=[4.842 4.362 3.754 3.368 3.169 3.083 3.034 3.016 3.012 3.005]'; >> X1=[ones(size(t)) exp(-t)];
>> c=X1\y
c =
3.1621
5.1961
>> X2=[ones(size(t)) t.*exp(-t)];
>> d=X2\y
d =
3.0039
5.0046
T=(1:0.1:10)';Y1=[ones(size(T)) exp(-T)]*c;plot(T,Y1,'-',t,y,'o')
T=(1:0.1:10)';Y2=[ones(size(T)) T.*exp(-T)]*d;plot(T,Y2,'-',t,y,'o')
3、从某一个过程中通过测量得到:
t 0 0.2 0.4 0.6 0.8 1.0 2.0 5.0
y 1.0 1.51 1.88 2.13 2.29 2.40 2.60 -4.00 分别采用多项式拟合和指数函数进行拟合。

>> t=[0 .2 .4 .6 .8 1.0 2.0 5.0]';y=[1.0 1.51 1.88 2.13 2.29 2.40 2.60 -4.00]'; >> x=[ones(size(t)) t t.^2];
>> a=x\y;
>> T=(0:0.1:5.0)';Y=[ones(size(T)) T T.^2]*a;
>> plot(T,Y,'-',t,y,'O')
>> x=[ones(size(t)) exp(-t) t.*exp(-t)];
>> a=x\y;
>> T=(0:0.1:5.0)';Y=[ones(size(T)) exp(-T) T.*exp(-T)]*a;
>> plot(T,Y,'-',t,y,'O')
4、对应时间矢量t,测得一组矢量y
t 0 0.3 0.8 1.1 1.6 2.3
y 0.5 0.82 1.14 1.25 1.35 1.40
采用一个带有线性参数的指数函数进行拟合,y=a0+a1e^-t+a2te^-t,利用回归方法求出拟合函数,并画出拟合曲线,已知点用圆点表示。

>> t=[0 .3 .8 1.1 1.6 2.3]';y=[0.5 0.82 1.14 1.25 1.35 1.40]';
>> x=[ones(size(t)) exp(-t) t.*exp(-t)];a=x\y
1.3974
-0.8988
0.4097
>> T=(0:0.1:2.5)';X=[ones(size(T)) exp(-T) T.*exp(-T)]*a;
>> plot(T,X,'-',t,y,'o')
5、某钢材厂的产量从1990到2010年的产量如下表所示,请利用三次样条插值的方法1999年该钢材厂的产量,并画出曲线,已知数据用‘*’表示。

>> t=1990:2:2010;y=[75.995 91.972 105.711 123.203 131.669 150.697 179.323 203.212 226.505 249.633 256.344]';interp1(t,y,1999,'spline')
139.2796
>> T=(1990:0.2:2010)';Y=interp1(t,y,T,'spline');plot(t,y,'*',T,Y,'-')
四、实践中遇到的问题及解决方法
1、混淆曲线拟合编程步骤
在进行实际操作中,无法对每一条指令的作用做到特别了解,并且经过反复的操作,并询问同学,掌握了曲线拟合的指令。

2、插值各种算法不理解内涵
插值种类很多,查阅网络资料例子,并询问同学,互相讨论,最终了解各种算法的意义与实际应用方式。

3、错误使用polyval
使用时输入了过多的参数
4、polyfit
使用该函数时,误将()打成[],报错:圆括号或方括号不对称或异常
4、M函数语句与算法
由于在前几章并未过多接触M文件,对于Matlab编程本身掌握甚少。

在例子中出现的多个语句例如meshigrid、surfc、figure(2)、,其中包括数据可视化的概念。

为了快速了解并掌握,进行了借鉴网络资料的步骤,通过对一些查阅到的例子进行理解与操作,使得自己在M文件、编程内容有了些许的掌握,但是想要熟练运用,应当更广泛学习并多加练习。

相关文档
最新文档