论述matlab的数值微积分简单总结,MATLAB编程基础第7讲-数值微积分、多项式.ppt

《MATLAB编程基础第7讲-数值微积分、多项式.ppt》由会员分享,可在线阅读,更多相关《MATLAB编程基础第7讲-数值微积分、多项式.ppt(22页珍藏版)》请在装配图网上搜索。

1、2020/11/14 1 MATLAB编程基础 之 数值微积分、多项式 第七讲 2020/11/14 2 3.7 MATLAB数值积分与微分 3.7.1 差分和偏导数 1. 差分 在 MATLAB中 , 没有直接提供求数值导数的函数,只有计算 向前差分的函数 diff, 其调用格式为 DXdiffX计算向量 X的向前差分, DXiXi1-Xi, i1,2n -1。 DXdiffX,n计算 X的 n阶向前差分 。例如, diffX,2diffdiffX。 DXdiffA,n,dim 计算矩阵 A的 n阶差分, dim1时 缺省状 态 ,按列计算差分; dim2,按行计算差分 。 2020/11。

2、/14 3 例 1 差分运算示例 命令如下 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; 生成 1维矩阵 A1 reshapeA,6,3 转换为 3 6维矩阵 A1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 B1 diffA1 求 1维 1阶差分 B1 6 6 6 6 6 6 6 6 6 6 6 6 B2 diffA1,1,2 求 2维 1阶差分 B2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B3 diffA1,2 求 1维 2阶差分 B3 0 0 。

3、0 0 0 0 2020/11/14 4 2. 梯度和偏导数 二元及多元函数 Fx,y, 的求导 FXgradientF FX,FYgradientF gradientF,h 2020/11/14 5 例 2求二元函数的偏导数 生成二元函数 v -20.22; x,y meshgridv; z x .* exp-x.2 - y.2; 绘制曲面,如图 3-4所示 figure1 meshx,y,z; px,py gradientz,.2,.2; 求偏导数 figure2 contourv,v,z 绘制等高线,如图 3-5所示 hold on quiverv,v,px,py 绘。

4、制矢量场图, 小箭头表示梯度 hold off 2020/11/14 6 数值积分 数值积分基本原理 求解定积分的数值方法多种多样,如简单的 梯形 法、辛普生 Simpson 法、牛顿柯特斯 Newton- Cotes法等都是经常采用的方法。 它们的基本思想 都是将整个积分区间 a,b分成 n个 子区间 xi,xi1, i1,2n ,其中 x1a, xn1b。这 样求定积分问题就分解为求和问题。 2020/11/14 7 3.7.2 一元函数的数值积分 数值积分的实现方法 1变步长辛普生( Simpson)法 (精度较高,较常使用) 基于变步长辛普生法, MATLAB给出了 quad函数来求定。

5、积分。 该函数的调用格式为 I,nquadfname,a,b,tol,trace 其中 fname是被积函数名。 a和 b分别是定积分的下限和上限。 tol用来控制积分精度,缺省时取 tol0.001。 trace控制是否 展现积分过程,若取非 0则展现积分过程,取 0则不展现, 缺省时取 trace0。 返回参数 I即定积分值, n为被积函数的 调用次数 。 2020/11/14 8 函数部分 function fquad1x f1./x.3-2*x-5; 编制函数 m文件 调用命令 Q quadquad1,0,2 在同一目录下,计算积分值 Q -0.4605 2020/11/14 9。

6、 求定积分。 1 建立被积函数文件 fesin.m。 function ffesinx fexp-0.5*x.*sinxpi/6; 2 调用数值积分函数 quad求定积分。 S,nquadfesin,0,3*pi S 0.9008 n 77 2020/11/14 10 2. 自适应 Lobatto法 精度较高,最常使用 qquadlfun,a,b qquadlfun,a,b,tol 采用 内联函数形式 ,第二个参数为变量 例 3-25求 Qsin2xcosx从 2*pi到 0的定积分 f inlinesin2*xcosx.2,x; Q quadlf,0,2*pi 求取积分值 Q 。

7、 3.1416 训练任务请采用编制 m函数求该函数积分 2020/11/14 11 3.7.3 多重数值积分 使用 MATLAB提供的 dblquad函数就可以 直接求出上述二重定积分的数值解。 该函数的调用格式为 Idblquadf,a,b,c,d,tol,trace 该函数求 fx,y在 a,b c,d区域上的二 重定积分 。参数 tol, trace的用法与函 数 quad完全相同。 2020/11/14 12 计算二重定积分 1 建立一个函数文件 fxy.m function ffxyx,y global ki; kiki1; ki用于统计被积函数的调用次数 fexp-x.2/2.*s。

8、inx.2y; 2 调用 dblquad函数求解。 global ki;ki0; Idblquadfxy,-2,2,-1,1 ki I 1.57449318974494 ki 1038 ( 3)匿名函数方法 f x,yy*sinxx*cosy; 编写匿名函数,将句柄赋给 f S dblquadf,pi,2*pi,0,pi 计算二重积分 2020/11/14 13 3.8 多项式 3.8.1 多项式的构造 使用行向量表示多项式的系数, 行向量中各元素按多项式 次数从高到低排列。 即多项式 Pxanxnan-1xn- 1a 1xa0的系数向量 P为 an an-1a 1 a0。 Ppo。

9、lyA通过 n阶方阵 A生成特征多项式 p,A为特征多项式 的根,满足 PAanAnan-1An-1a 1Aa0 Ppolyr通过向量 r r1 r2 r n方阵 A生成多项式 ,向量元素 为多项式的根,即满足 x-r1 x-r2x -rn anxnan-1xn- 1a 1xa0 Spoly2strP,s将多项式系数行向量表达形式 P转换成变量 为 s的标准多项式形式 S。 2020/11/14 14 例 3-29求多项式 r 1 2 3; 生成向量 r P1 polyr 计算根为 r的多项式 P1 1 -6 11 -6 S1 poly2strP1,x 转换成变量为 x的标准形式。

10、 S1 x3 - 6 x2 11 x - 6 A magic3 创建 3阶魔方矩阵 P2 polyA 计算方阵的特征多项式 P2 1.0000 -15.0000 -24.0000 360.0000 S2 poly2strP2,s 转换成变量为 s的标准形式 S2 s3 - 15 s2 - 24 s 360 2020/11/14 15 3.8.2多项式的运算 1.多项式的根 RrootsP求多项式向量 P的根 p 1 -6 -72 -27; 多项式向量 p r rootsp 求多项式的根 2020/11/14 16 2.多项式的值 ypolyvalp,x计算多项式向。

11、量为 p变量为 x时的数值 y, x可以是向量也可以是矩阵 例 3-31计算多项式的值 p 3 2 1; 创建一个多项式向量 x 5,7,9; 变量为向量形式 yx polyvalp,x 计算多项式的值 yx 86 162 262 A pascal4 变量为矩阵形式 A 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 ya polyvalp,A 计算多项式的值 ya 6 6 6 6 6 17 34 57 6 34 121 321 6 57 321 1241 2020/11/14 17 3.多项式的乘法 cconvu,v求向量为 u的多项式与向量为。

12、 v的多项式的乘积 c。 例 3-32求( x22x6) x32的乘积 a 1 2 6; b 1 0 0 2; 生成多项式向量 c conva,b 计算乘积 s poly2strc,x 标准形式表示 c 1 2 6 2 4 12 s x5 2 x4 6 x3 2 x2 4 x 12 训练任务 ( x42x6) x32x6 2020/11/14 18 3.conv,convs多项式乘运算 例 axx22x3; bx4x25x6; c x22x34x25x6 a1 2 3;b4 5 6; cconva,b or conv1 2 3,4 5 6 c 4.00 13.。

13、00 28.00 27.00 18.00 ppoly2strc,x p 4 x4 13 x3 28 x2 27 x 18 2020/11/14 19 4.多项式的除法 cdeconvv, u v为被除数, u为除数, q返回商,余数为 r。 例 3-33求( 2x34x28x3) x22x3 v 2 4 8 3; u 1 2 3; 生成多项式向量 c convv,u 计算多项式乘积 c 2 8 22 31 30 9 q1,r1 deconvc,v 求商,整除 r1为 0,商多项式与 u相同 q1 1 2 3 r1 0 0 0 0 0 0 q2,r2 deconv。

14、v,u 多项式求商,带余数 2020/11/14 20 4.deconv多项式除运算 a1 2 3; c 4.00 13.00 28.00 27.00 18.00 ddeconvc,a d 4.00 5.00 6.00 d,rdeconvc,a 余数 c除 a后的整数 2020/11/14 21 5.多项式微分 matlab提供了 polyder函数多项式的微分。 命令格式 polyderp 求 p的微分 polydera,b 求多项式 a,b乘积的微分 p,qpolydera,b 求多项式 a,b商的微分 例 a1 2 3 4 5; poly2stra,x ans x4 2 x3 3 x2 4 x 5 bpolydera b 4 6 6 4 poly2strb,x ans 4 x3 6 x2 6 x 4 2020/11/14 22 5.多项式微分 polyderp 求 p的微分 polydera,b 求多项式 a,b乘积的微分 p,qpolydera,b 求多项式 a,b商的微分 例 axx22x3; bx4x25x6; c x22x34x25x6 a1 2 3;b4 5 6; cconva,b X1polydera,b X2polyderc 。

你可能感兴趣的:(论述matlab的数值微积分简单总结,MATLAB编程基础第7讲-数值微积分、多项式.ppt)