MATLAB-第6章共21页文档

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

6.2.2 定积分的数值求解实现 在MATLAB中可以使用quad或quadl来进行数值积分。 1.自适应辛普生法 MATLAB提供了基于自适应Simpson法的quad函数和自适应Lobatto法的
quadl函数来求定积分。函数的调用格式为
[I,n]=quad(fname,a,b,tol,trace)
gx=cos(x); %作图
plot(x,dpx,x,dx,'o',x,gx,'+');
对于求矩阵的差分,即为求各列或各行向量的差分,从向量的差分值可 以判断列或行向量的单调性、是否等间距以及是否有重复的元素。
【例6.2】生成一个5阶魔方矩阵,按列进行差分运算。
M=magic(5)
M=
17 24 1 8 15
● DX = diff(A,n,dim):计算矩阵A的n阶差分,dim = 1时(默认状态), 按列计算差分;dim = 2,按行计算差分。
对于求向量的微分,函数diff计算的是向量元素间的差分,故所得输出比 原向量少了一个元素。
【例6.1】设f(x) = sinx,用不同的方法求函数f(x)的数值导数,并在同一 个坐标系中做出f '(x)的图像。
b
n
S f (x)dx
xi1 f (x)dx
a
i 1 xi
而在每一 个小的 子区间 上定积 分的值 可以近 似求得 。例如 ,矩形 法是用 矩形面 积代替曲 边梯形 的
面积,如图 6.2(a)所示;梯形法是用斜边梯形面积代替曲边梯形的面积,如图 6.2(b)所示;
而辛普生 法是用 抛物线 代替曲 边。
为确定计算数值导数的点,假设在[0,20]区间内以π为步长求数值导数。 下面用3种方法求f(x)在这些点的导数。首先用一个5次多项式p(x)拟合 函数f(x),并对p(x)求一般意义下的导数dp(x),求出dp(x)在假设点的 值;第2种方法用diff函数直接求f(x)在假设点的数值导数;第3种方法 先求出导函数f ‘(x) = cosx,然后直接求f ’(x)在假设点的导数。
function f=fe(x)
f=x.*sin(x)./(1+abs(cos(x))); (2)调用数值积分函数quad求定积分。
f '(x) f (x) h
f '(x) f (x) h
f '(x) f (x) h
和差分一样,称f(x)/h、f(x)/h 及 δf(x)/h 分别为函数在 x 点处以 h(h>0)为步长的向前差商、 向后差商和中心差商。当步长 h(h >0)充分小时,函数 f 在点 x 的微分接近于函数在该点的任意 种差分,而 f 在点 x 的导数接近于函数在该点的任意种差商。
6.2 数 值 积 分
6.2.1 数值积分的原理
求解 定积 分 的数 值 方法 多种 多 样, 如 矩形 ( Rectangular) 法、 梯 形(Trape zia) 法 、辛 普生
(Simpson)• 法等都是经常采用的方法。它们的基本思想都是将整个积分区间 [a,b]分成 n 个子区间
[xi,xi + 1],i = 1,2,…,n,其中 x1 = a,xn + 1 = b。这样求定积分问题就分解为下面的求和问题 :
2.用diff函数计算差分
用f(x)在点x处的某种差商作为其导数。在MATLAB中,提供计算向前差 分的函数diff,其调用格式如下。
● DX = diff(X):计算向量X的向前差分,DX(i) = X(i+1) −X(i), i = 1,2, …,n −1。
● DX = diff(X,n):计算X的n阶向前差分。例如,diff(X,2) = diff(diff(X))。
在许多实际问题中要采用数值方法来求函数的微分或积分。
而在实际问题中遇到的常微分方程往往很复杂,在许多情况 下得不出一般解,所以,一般是Hale Waihona Puke Baidu求获得解在若干个点上 的近似值。
【本章学习目标】 ● 掌握微分与积分的数值计算方法。 ● 掌握常微分方程的数值求解方法。
6.1 数 值 微 分
6.1.1 数值差分与差商
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
DM=diff(M)
%计算V的一阶差分
DM=
6 −19 6 6 1
−19 1 6 6 6
6 6 6 1 −19
1 6 6 −19 6
可以看出,diff函数对矩阵的每一列都进行差分运算,因而结果矩阵的列 数是不变的,只有行数减1。矩阵DM第3列值相同,表明原矩阵第3列 是等间距的。
[I,n]=quadl(fname,a,b,tol,trace) 其中fname是被积函数名。a和b分别是定积分的下限和上限。tol用来控
制积分精度,默认时取tol = 10-6。trace控制是否展现积分过程,若 取非0则展现积分过程,取0则不展现,默认时取trace = 0。返回参数I 即定积分值,n为被积函数的调用次数。 【例6.3】求S = 。 (1)建立被积函数文件fe.m。
x=0:pi/24:pi; %用5次多项式p拟合f(x),并对拟合多项式p求导数dp在假设点的函数值
p=polyfit(x,sin(x),5);
dp=polyder(p);
dpx=polyval(dp,x); %直接对sin(x)求数值导数
dx=diff(sin([x,pi+pi/24]))/(pi/24); %求函数f的导函数g在假设点的导数
f (x) f (x h) f (x) f (x) f (x) f (x h) f (x) f (x h / 2) f (x h / 2) 称f(x)、f(x)及 δf(x)分别为函数在 x 点处以 h(h >0)为步长的向前差分、向后差分和中心差分。 当步长 h 充分小时,有
6.1.2 数值微分的实现
数值微分的基本思想是先用逼近或拟合等方法将已知数据在一定范围内 的近似函数求出,再用特定的方法对此近似函数进行微分。
1.多项式求导法
用多项式或样条函数g(x)对f(x)进行逼近(插值或拟合),然后用逼近函 数g(x)在点x处的导数作为f(x)在点x处的导数。该种方法一般只用在低 阶数值微分。
相关文档
最新文档