MATLAB数学实验6
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由图显见,选取左端点计算值编校,选取右端点值偏大。可试取 50 各子区间看一看结 果怎样。
下面按等分区间计算。
的结果 抛物线法:
3) 利用梯形法编写 matlab 程序计算定积分 2 1 dx 的近似值,并求 ln 2 的近似值。
1x
梯形法:
结果:
求 ln2 的近似值:
因为 ln2= 2 1 dx
值积分的章节)。
从前面的求积分中科院看出误差随着 n 的增大(即步长减小)而减小,因此对于给定的
误差限 ,我们可以根据误差估计式确定适当的步长。由于(2-6)式或(2-7)式都含有高
阶导数,一般不容易估计。下面以梯形公式为例说明计算过程。
在编程计算定积分采用如下方法估计误差:
记 Tn
1 2
y0
yn
下面按等分区间计算。
的结果
图 2-2 2) 编程用巨形法计算定积分的近似值
根据
b
f
xdx
n1
f
a
ib a
b a
,编写如下
matlab
程序:
a
i0
n n
存为 juxingfa.m。运行 juxingfa.m,结果为: 可见,子区间个数较少时精确程度不够高,取子区间个数为 10000 时结果就比较精确。
在第
k
个子区间 xk1,
xk
a
k
1 b
n
a
,a
k
b
n
a
上,小曲边梯形上网
面积近似为
f
xk1
f
xk
ba 2n
, 则得到近似公式
Tn
n1
h
k 1
fk
h 2
f0 fn
(2-3)
即
b a
f
xdx
1 2
y0
yn
y1
y2
...
y
n
1
b
n
a
,
其中
yk
f xk 。
它的实际含义是利用逐段线性函数作为 f x 的近似,式(2-3)称为梯形求积公式。
来确定是否中断计算)。
由(2-6)式可知,当 n 增加一倍时, I T2n
1 3
T2n
Tn
,所以只要
T2n
Tn
,
计算出的 T2n 即可满足 I T2n 的精度要求。而每次分点加密一倍时,原分点的函数值 fk
不需要重新计算,只需要求出新分点( xk , xk 1 的中点)的函数值(记作 fk1 2 ),即可算出
,h
称为积分步长。如果子区间的左端点(或右端点)作为
xk
k ,作部分和。用积分和作为定积分
b f xdx 的近似值,公式(2-1)可以表示为
a
n1
n
In h fk 或 In h fk
k 0
k 1
(2-2)
即
b a
f
xdx
na k 0
f
a
k
b a b a
n
n
或
b a
f
结果为:
s1 可作为定积分 2 sin 2xdx 的近似值。 0
若选取右端点:
结果为:
S2 可作为定积分 2 sin 2xdx 的近似值。 0
在上边的语句中,for…end 是循环语句,执行语句体内的语句 20 次,fill 命令可以填充 多边形,在本例中,用的是蓝色(blue)填充。得到图形 2-2.
矩形法在每个小区间 xk , xk 1 上用零次多项式(即常数)代替被积函数,若函数 f x
可导,由泰勒公式得到
f x f xk f 'k x xk ,k xk , xk 1
f xk1 xk
x
f
xk dx
f
'k
x x xk1
xk
k
dx
h2 2
f
' k
,
矩形公式(2-2)的误差为
1) 矩形法 定积分的几何意义是计算曲边梯形的面积,如将区间[a,b]n 等分,每个小区间上都是
一个小的曲边梯形,用一个个小矩形代替这些小曲边梯形,然后把小矩形的面积加起来就近 似地等于整个曲边梯形的面积,于是便求出了定积分的近似值,这就是矩形法的基本原理。
假如 f x 在[a,b]上可积,利用定积分的定义
x2 k
k
x dx h 3
f 2k 4 f 2k 1 f 2k 2
求 m 段之和就得整个区间上的近似积分
Sn
h 3
f0
f 2m
Байду номын сангаас
m1
4
k 0
f 2k 1
m1
2
k 1
f 2k
,h
b a 2m
(2-4)
公式(2-4)称为抛物形公式(辛普森求积公式)。 4) 三种算法的误差计算
在利用数值方法求积分的近似值时,需要根据计算精度的要求,选择一个适合的积分公 式。
3. 实验内容
1) 矩形法计算定积分近似值
取 f x ex ,求定积分 1exdx 的近似值。 0
积分区间为[0,1],等距划分为 20 各子区间。
选取每个子区间的端点,并计算端点处的函数值。
选取每个子区间的左端点处的函数值乘以区间长度全部加起来。
结果为:
s1 可作为定积分 1exdx 的近似值。 0
3) 编程用梯形法计算定积分的近似值
根据
b a
f
xdx
1 2
y0
y
n
y1
y2
...
y
n
1
b
n
a
,编写如下
matlab
程序:
存为 tixingfa.m,运行 tixingfa.m 如下:
4. 练习
1) 编写 matlab 程序计算下列和式: a) 1+3+5+…+999; 解:
b) n1 sin k , 自定 n 的值。
3) 抛物线法
为了提高计算精度,可以用分段二次插值函数 Sk 代替 f x 。由于每段都要用到相邻两个
小区间断电的三个函数值,所以小区间上用三个节点
x2k , f2k , x2k1, f2k1 , x2k2 , f2k2 , 作二次插值函数 Sk x ,然后积分可得
S x2k1
xdx
n k 1
f
a
k
b a b a
n
n
式(2-2)称为计算定积分的矩形公式。 2) 梯形法
将积分区间[a,b]n 等分,用线段一次连接各分点,每段都形成一个小的直角梯形。 如果我们用这些小直角梯形面积之和代替原来的小曲边梯形面积之和代替原来的小曲边 梯形面积之和,就可得定积分的近似值。
R0
f ,In
n1 h2 k0 2
f ' k
或
R0
f ,In
n h2 k 1 2
f ' k 。
记 M1 max
f
'x , max x a ,b
f
' x , 可以粗略的估计误差,得到
R0
f
,
In
h 2
M1
b
a
(2-5)
梯形公式在小区间 xk , xk1 上用线性插值函数 T x 代替 f x ,若函数 f x 二阶可
T2n
Tn 2
h 2
n1 k 0
fk 1 2 ,h
b
a 2
。
对于辛普森公式也可作类似处理。
2. 相关的 matlab 命令
matlab 命令 sum(x)
symsum(s,k,m,n)
用途 如果 x 是向量,则 sum(x)给出 x 的各个元素的累加和;如果 x 是矩阵, 则 sum(x)是一个元素为 x 的每列列和的行向量。
实验二 定积分的近似计算
一、 实验目的
学号:
姓名:XX
1. 加深理解积分理论中分割、近似、求和、取极限的思想方法,了解定积分近 似计算的矩阵形法、梯形法与抛物线法。
2. 会用 matlab 语言编写求定积分近似值的程序。 3. 会用 matlab 中的命令求定积分。
二、 实验内容
1. 定积分近似计算的几种简单数值方法
用指定的绝对误差 tol 代替缺省误差 用高精度进行计算,在同样的精度下高阶方法 quad1 要求的节点较少, 效率可能比 quad 更高 用梯形法计算 y 在 x 点上的积分,其中步长 x=[x0,x1…xn]和函数值 y=[f0 f1…fn]为同维向量。步长取短,结果较精确。 对符号表达式 S 中指定的符号变量 v 计算不定积分 对表达式 S 中指定的符号变量 v 计算从 a 到 b 得定积分
''x , 可以粗略的估计误差,得到
R1
f
,Tn
h2 12
M
2
b
a
(2-6)
上式表明梯形公式(2-3)的误差是 h2 阶的,即是 2 阶收敛的。若函数 f x 四阶可导,还
可以求出辛普森公式(2-4)的误差
R2
f
,
Sn
h4 180
M
4
b
a
其中
M4
max
x a ,b
f 4
x
, 即误差为 h4 阶的(有兴趣的读者可参阅各种数值分析教材关于数
1x
所以:ln2 的近似值为 0.6688
4) 用 matlab 中的符号积分命令 int,求曲线 y x4 上从(1,1)到(2,16)一段的弧长。
解:
三、 实验小结
1. 加深理解积分理论中分割、近似、求和、取极限的思想方法,了解 定积分近似计算的矩阵形法、梯形法与抛物线法。
2. 会用 matlab 语言编写求定积分近似值的程序。 3. 会用 matlab 中的命令求定积分。
y1
y2
...
yn
1
ba, n
误差极限
,逐步计算
Tn
,若
Tn1 Tn
则以 Tn1 作为
b
f
a
x dx 的近似值。
上述程序的效率并不高,因为在计算 Tn 的信息,在实际求积过程中,通常采用步长加
倍法每次将上一次的每个小区间等分为二,因此区间 n 增加一倍,随着 n 的增加,计算精度
也随着增加,直至满足精度要求(通常是通过比较前后两次计算值的误差是否满足精度要求
k 0
nn
解: 取 n=100 则:
2) 取区间等分数 n=200,分别用矩形法及抛物线法编程,计算定积分 2 sin 2xdx 的近似 0
值。 解: 矩形法: 积分区间为[0,π/2],等距划分为 200 各子区间。
选取每个子区间的端点,并计算端点处的函数值。
选取每个子区间的左端点处的函数值乘以区间长度全部加起来。
在许多实际问题中,常常需要计算定积分 I b f x dx 的值。根据微积分学基本原理, a
若被积函数 f x 在区间[a,b]上连续,只需要找到被积函数的一个原函数 F x ,就可以
用牛顿莱布尼兹公式计算。但在工程技术与科学实验中,有一些定积分的被积函数的原函数 可能求不出来,即使可求出,计算也可能很复杂。特别地,当被积函数是图形或表格给出时, 更不能用牛顿—莱布尼兹公式计算。因此必需寻求定积分的近似计算方法。大多数实际问题 的积分需要用数值积分方法求出近似结果。数值积分原则上可以用多项式函数近似代替被积 函数,用对多项式的积分结果近似代替对被积函数的积分。由于所选多项式形式的不同,可 以有许多种数值积分方法,下面介绍最常用的几种插值型数值积分方法。
导,可以得到
f
x T x
f
''
2
k
x
x
k
x
x
k
1
,
x
k
,x
k
1
xk1 xk
f
x
T
x dx
f ''k
2
x x xk1
xk
k
x x k 1
dx
h3 12
f
''k ,
梯形公式(2-3)的误差为
R1 f ,Tn
n h3 k 1 12
f
'' k
记 M2
max
x a ,b
f
若选取右端点:
结果为:
S2 可作为定积分 1exdx 的近似值。 0
下面我们画出图象(见图 2-10.
如果选取右端点,画图命令如下:
在上边的语句中,for…end 是循环语句,执行语句体内的语句 20 次,fill 命令可以填充 多边形,在本例中,用的是蓝色(blue)填充。得到图形 2-2.
由图显见,选取左端点计算值编校,选取右端点值偏大。可试取 50 各子区间看一看结 果怎样。
n
用于求 s k k m
symsum(s,n)
n
用于求 s i i 1
s=quad(fun,a,b) 近似地计算 a 到 b 函数 fun 的数值积分,误差为106
s=quad(fun,a,b,tol) s=quad1(fun,a,b,…)
trapz(x,y)
int(s,v) int(s,v.a,b)
I
b
n
f
a
x
dx
lim
n
I
n
,
I
n
k 1
f
k
b
n
a
(2-1)
可知当 n 充分大时,可将 In 视为积分 I 的近似值,这里k 是取自第 k 个区间 xk1, xk
中的值。
如果将区间[a,b]n 等分,结点分别记为 a x0 x1 ... xn b,
h
ba n
,
fk
f
xk
下面按等分区间计算。
的结果 抛物线法:
3) 利用梯形法编写 matlab 程序计算定积分 2 1 dx 的近似值,并求 ln 2 的近似值。
1x
梯形法:
结果:
求 ln2 的近似值:
因为 ln2= 2 1 dx
值积分的章节)。
从前面的求积分中科院看出误差随着 n 的增大(即步长减小)而减小,因此对于给定的
误差限 ,我们可以根据误差估计式确定适当的步长。由于(2-6)式或(2-7)式都含有高
阶导数,一般不容易估计。下面以梯形公式为例说明计算过程。
在编程计算定积分采用如下方法估计误差:
记 Tn
1 2
y0
yn
下面按等分区间计算。
的结果
图 2-2 2) 编程用巨形法计算定积分的近似值
根据
b
f
xdx
n1
f
a
ib a
b a
,编写如下
matlab
程序:
a
i0
n n
存为 juxingfa.m。运行 juxingfa.m,结果为: 可见,子区间个数较少时精确程度不够高,取子区间个数为 10000 时结果就比较精确。
在第
k
个子区间 xk1,
xk
a
k
1 b
n
a
,a
k
b
n
a
上,小曲边梯形上网
面积近似为
f
xk1
f
xk
ba 2n
, 则得到近似公式
Tn
n1
h
k 1
fk
h 2
f0 fn
(2-3)
即
b a
f
xdx
1 2
y0
yn
y1
y2
...
y
n
1
b
n
a
,
其中
yk
f xk 。
它的实际含义是利用逐段线性函数作为 f x 的近似,式(2-3)称为梯形求积公式。
来确定是否中断计算)。
由(2-6)式可知,当 n 增加一倍时, I T2n
1 3
T2n
Tn
,所以只要
T2n
Tn
,
计算出的 T2n 即可满足 I T2n 的精度要求。而每次分点加密一倍时,原分点的函数值 fk
不需要重新计算,只需要求出新分点( xk , xk 1 的中点)的函数值(记作 fk1 2 ),即可算出
,h
称为积分步长。如果子区间的左端点(或右端点)作为
xk
k ,作部分和。用积分和作为定积分
b f xdx 的近似值,公式(2-1)可以表示为
a
n1
n
In h fk 或 In h fk
k 0
k 1
(2-2)
即
b a
f
xdx
na k 0
f
a
k
b a b a
n
n
或
b a
f
结果为:
s1 可作为定积分 2 sin 2xdx 的近似值。 0
若选取右端点:
结果为:
S2 可作为定积分 2 sin 2xdx 的近似值。 0
在上边的语句中,for…end 是循环语句,执行语句体内的语句 20 次,fill 命令可以填充 多边形,在本例中,用的是蓝色(blue)填充。得到图形 2-2.
矩形法在每个小区间 xk , xk 1 上用零次多项式(即常数)代替被积函数,若函数 f x
可导,由泰勒公式得到
f x f xk f 'k x xk ,k xk , xk 1
f xk1 xk
x
f
xk dx
f
'k
x x xk1
xk
k
dx
h2 2
f
' k
,
矩形公式(2-2)的误差为
1) 矩形法 定积分的几何意义是计算曲边梯形的面积,如将区间[a,b]n 等分,每个小区间上都是
一个小的曲边梯形,用一个个小矩形代替这些小曲边梯形,然后把小矩形的面积加起来就近 似地等于整个曲边梯形的面积,于是便求出了定积分的近似值,这就是矩形法的基本原理。
假如 f x 在[a,b]上可积,利用定积分的定义
x2 k
k
x dx h 3
f 2k 4 f 2k 1 f 2k 2
求 m 段之和就得整个区间上的近似积分
Sn
h 3
f0
f 2m
Байду номын сангаас
m1
4
k 0
f 2k 1
m1
2
k 1
f 2k
,h
b a 2m
(2-4)
公式(2-4)称为抛物形公式(辛普森求积公式)。 4) 三种算法的误差计算
在利用数值方法求积分的近似值时,需要根据计算精度的要求,选择一个适合的积分公 式。
3. 实验内容
1) 矩形法计算定积分近似值
取 f x ex ,求定积分 1exdx 的近似值。 0
积分区间为[0,1],等距划分为 20 各子区间。
选取每个子区间的端点,并计算端点处的函数值。
选取每个子区间的左端点处的函数值乘以区间长度全部加起来。
结果为:
s1 可作为定积分 1exdx 的近似值。 0
3) 编程用梯形法计算定积分的近似值
根据
b a
f
xdx
1 2
y0
y
n
y1
y2
...
y
n
1
b
n
a
,编写如下
matlab
程序:
存为 tixingfa.m,运行 tixingfa.m 如下:
4. 练习
1) 编写 matlab 程序计算下列和式: a) 1+3+5+…+999; 解:
b) n1 sin k , 自定 n 的值。
3) 抛物线法
为了提高计算精度,可以用分段二次插值函数 Sk 代替 f x 。由于每段都要用到相邻两个
小区间断电的三个函数值,所以小区间上用三个节点
x2k , f2k , x2k1, f2k1 , x2k2 , f2k2 , 作二次插值函数 Sk x ,然后积分可得
S x2k1
xdx
n k 1
f
a
k
b a b a
n
n
式(2-2)称为计算定积分的矩形公式。 2) 梯形法
将积分区间[a,b]n 等分,用线段一次连接各分点,每段都形成一个小的直角梯形。 如果我们用这些小直角梯形面积之和代替原来的小曲边梯形面积之和代替原来的小曲边 梯形面积之和,就可得定积分的近似值。
R0
f ,In
n1 h2 k0 2
f ' k
或
R0
f ,In
n h2 k 1 2
f ' k 。
记 M1 max
f
'x , max x a ,b
f
' x , 可以粗略的估计误差,得到
R0
f
,
In
h 2
M1
b
a
(2-5)
梯形公式在小区间 xk , xk1 上用线性插值函数 T x 代替 f x ,若函数 f x 二阶可
T2n
Tn 2
h 2
n1 k 0
fk 1 2 ,h
b
a 2
。
对于辛普森公式也可作类似处理。
2. 相关的 matlab 命令
matlab 命令 sum(x)
symsum(s,k,m,n)
用途 如果 x 是向量,则 sum(x)给出 x 的各个元素的累加和;如果 x 是矩阵, 则 sum(x)是一个元素为 x 的每列列和的行向量。
实验二 定积分的近似计算
一、 实验目的
学号:
姓名:XX
1. 加深理解积分理论中分割、近似、求和、取极限的思想方法,了解定积分近 似计算的矩阵形法、梯形法与抛物线法。
2. 会用 matlab 语言编写求定积分近似值的程序。 3. 会用 matlab 中的命令求定积分。
二、 实验内容
1. 定积分近似计算的几种简单数值方法
用指定的绝对误差 tol 代替缺省误差 用高精度进行计算,在同样的精度下高阶方法 quad1 要求的节点较少, 效率可能比 quad 更高 用梯形法计算 y 在 x 点上的积分,其中步长 x=[x0,x1…xn]和函数值 y=[f0 f1…fn]为同维向量。步长取短,结果较精确。 对符号表达式 S 中指定的符号变量 v 计算不定积分 对表达式 S 中指定的符号变量 v 计算从 a 到 b 得定积分
''x , 可以粗略的估计误差,得到
R1
f
,Tn
h2 12
M
2
b
a
(2-6)
上式表明梯形公式(2-3)的误差是 h2 阶的,即是 2 阶收敛的。若函数 f x 四阶可导,还
可以求出辛普森公式(2-4)的误差
R2
f
,
Sn
h4 180
M
4
b
a
其中
M4
max
x a ,b
f 4
x
, 即误差为 h4 阶的(有兴趣的读者可参阅各种数值分析教材关于数
1x
所以:ln2 的近似值为 0.6688
4) 用 matlab 中的符号积分命令 int,求曲线 y x4 上从(1,1)到(2,16)一段的弧长。
解:
三、 实验小结
1. 加深理解积分理论中分割、近似、求和、取极限的思想方法,了解 定积分近似计算的矩阵形法、梯形法与抛物线法。
2. 会用 matlab 语言编写求定积分近似值的程序。 3. 会用 matlab 中的命令求定积分。
y1
y2
...
yn
1
ba, n
误差极限
,逐步计算
Tn
,若
Tn1 Tn
则以 Tn1 作为
b
f
a
x dx 的近似值。
上述程序的效率并不高,因为在计算 Tn 的信息,在实际求积过程中,通常采用步长加
倍法每次将上一次的每个小区间等分为二,因此区间 n 增加一倍,随着 n 的增加,计算精度
也随着增加,直至满足精度要求(通常是通过比较前后两次计算值的误差是否满足精度要求
k 0
nn
解: 取 n=100 则:
2) 取区间等分数 n=200,分别用矩形法及抛物线法编程,计算定积分 2 sin 2xdx 的近似 0
值。 解: 矩形法: 积分区间为[0,π/2],等距划分为 200 各子区间。
选取每个子区间的端点,并计算端点处的函数值。
选取每个子区间的左端点处的函数值乘以区间长度全部加起来。
在许多实际问题中,常常需要计算定积分 I b f x dx 的值。根据微积分学基本原理, a
若被积函数 f x 在区间[a,b]上连续,只需要找到被积函数的一个原函数 F x ,就可以
用牛顿莱布尼兹公式计算。但在工程技术与科学实验中,有一些定积分的被积函数的原函数 可能求不出来,即使可求出,计算也可能很复杂。特别地,当被积函数是图形或表格给出时, 更不能用牛顿—莱布尼兹公式计算。因此必需寻求定积分的近似计算方法。大多数实际问题 的积分需要用数值积分方法求出近似结果。数值积分原则上可以用多项式函数近似代替被积 函数,用对多项式的积分结果近似代替对被积函数的积分。由于所选多项式形式的不同,可 以有许多种数值积分方法,下面介绍最常用的几种插值型数值积分方法。
导,可以得到
f
x T x
f
''
2
k
x
x
k
x
x
k
1
,
x
k
,x
k
1
xk1 xk
f
x
T
x dx
f ''k
2
x x xk1
xk
k
x x k 1
dx
h3 12
f
''k ,
梯形公式(2-3)的误差为
R1 f ,Tn
n h3 k 1 12
f
'' k
记 M2
max
x a ,b
f
若选取右端点:
结果为:
S2 可作为定积分 1exdx 的近似值。 0
下面我们画出图象(见图 2-10.
如果选取右端点,画图命令如下:
在上边的语句中,for…end 是循环语句,执行语句体内的语句 20 次,fill 命令可以填充 多边形,在本例中,用的是蓝色(blue)填充。得到图形 2-2.
由图显见,选取左端点计算值编校,选取右端点值偏大。可试取 50 各子区间看一看结 果怎样。
n
用于求 s k k m
symsum(s,n)
n
用于求 s i i 1
s=quad(fun,a,b) 近似地计算 a 到 b 函数 fun 的数值积分,误差为106
s=quad(fun,a,b,tol) s=quad1(fun,a,b,…)
trapz(x,y)
int(s,v) int(s,v.a,b)
I
b
n
f
a
x
dx
lim
n
I
n
,
I
n
k 1
f
k
b
n
a
(2-1)
可知当 n 充分大时,可将 In 视为积分 I 的近似值,这里k 是取自第 k 个区间 xk1, xk
中的值。
如果将区间[a,b]n 等分,结点分别记为 a x0 x1 ... xn b,
h
ba n
,
fk
f
xk