




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB编程基础 之 数值微积分、多项式 第七讲 Date1 3.7 MATLAB数值积分与微分 3.7.1 差分和偏导数 1. 差分 在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)。 DX=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(缺省状 态),按列计算差分;dim=2,按行计算差分。 Date2 例1 差分运算示例 命令如下: A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; % 生成1维矩阵 A1 = reshape(A,6,3) % 转换为36维矩阵 A1 = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 B1 = diff(A1) % 求1维1阶差分 B1 = 6 6 6 6 6 6 6 6 6 6 6 6 B2 = diff(A1,1,2) % 求2维1阶差分 B2 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B3 = diff(A1,2) % 求1维2阶差分 B3 = 0 0 0 0 0 0 Date3 2. 梯度和偏导数 二元及多元函数F(x,y,)的求导 FX=gradient(F) FX,FY=gradient(F) =gradient(F,h) Date4 例2求二元函数的偏导数 % 生成二元函数 v = -2:0.2:2; x,y = meshgrid(v); z = x .* exp(-x.2 - y.2); % 绘制曲面,如图3-4所示 figure(1) mesh(x,y,z); px,py = gradient(z,.2,.2); % 求偏导数 figure(2) contour(v,v,z) % 绘制等高线,如图3-5所示 hold on quiver(v,v,px,py) % 绘制矢量场图,小箭头表示梯度 hold off Date5 数值积分 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形 法、辛普生(Simpson)法、牛顿柯特斯(Newton- Cotes)法等都是经常采用的方法。 它们的基本思想都是将整个积分区间a,b分成n个 子区间xi,xi+1,i=1,2,n,其中x1=a,xn+1=b。这 样求定积分问题就分解为求和问题。 Date6 3.7.2 一元函数的数值积分 数值积分的实现方法 1变步长辛普生(Simpson)法(精度较高,较常使用) 基于变步长辛普生法,MATLAB给出了quad函数来求定积分 。该函数的调用格式为: I,n=quad(fname,a,b,tol,trace) 其中fname是被积函数名。a和b分别是定积分的下限和上限 。tol用来控制积分精度,缺省时取tol=0.001。trace控制是否 展现积分过程,若取非0则展现积分过程,取0则不展现,缺 省时取trace=0。返回参数I即定积分值,n为被积函数的调用 次数。 Date7 函数部分 function f=quad1(x) f=1./(x.3-2*x-5); %编制函数m文件 调用命令 Q = quad(quad1,0,2) % 在同一目录下,计算积分值 Q = -0.4605 Date8 求定积分。 (1) 建立被积函数文件fesin.m。 function f=fesin(x) f=exp(-0.5*x).*sin(x+pi/6); (2) 调用数值积分函数quad求定积分。 S,n=quad(fesin,0,3*pi) S = 0.9008 n = 77 Date9 2. 自适应Lobatto法(精度较高,最常使用) q=quadl(fun,a,b) q=quadl(fun,a,b,tol) % 采用内联函数形式,第二个参数为变量 例3-25求Q=sin2x+cosx从2*pi到0的定积分 f = inline(sin(2*x)+cos(x).2,x); Q = quadl(f,0,2*pi) % 求取积分值 Q = 3.1416 训练任务:请采用编制m函数求该函数积分 Date10 3.7.3 多重数值积分 使用MATLAB提供的dblquad函数就可以 直接求出上述二重定积分的数值解。该 函数的调用格式为: I=dblquad(f,a,b,c,d,tol,trace) 该函数求f(x,y)在a,bc,d区域上的二 重定积分。参数tol,trace的用法与函数 quad完全相同。 Date11 计算二重定积分 (1) 建立一个函数文件fxy.m: function f=fxy(x,y) global ki; ki=ki+1; %ki用于统计被积函数的调用次数 f=exp(-x.2/2).*sin(x.2+y); (2) 调用dblquad函数求解。 global ki;ki=0; I=dblquad(fxy,-2,2,-1,1) ki I = 1.57449318974494 ki = 1038 (3)匿名函数方法 f = (x,y)y*sin(x)+x*cos(y); % 编写匿名函数,将句柄赋给f S = dblquad(f,pi,2*pi,0,pi) % 计算二重积分 Date12 3.8 多项式 3.8.1 多项式的构造 使用行向量表示多项式的系数,行向量中各元素按多项式 次数从高到低排列。即多项式P(x)=anxn+an-1xn-1+a1x+a0 的系数向量P为an an-1a1 a0。 P=poly(A):通过n阶方阵A生成特征多项式p,A为特征多项式 的根,满足 P(A)=anAn+an-1An-1+a1A+a0 P=poly(r):通过向量r= r1 r2 rn方阵A生成多项式,向量元素 为多项式的根,即满足(x-r1) (x-r2)(x-rn)= anxn+an-1xn- 1+a1x+a0 S=poly2str(P,s):将多项式系数行向量表达形式P转换成变量 为s的标准多项式形式S。 Date13 例3-29求多项式 r = 1 2 3; % 生成向量r P1 = poly(r) % 计算根为r的多项式 P1 = 1 -6 11 -6 S1 = poly2str(P1,x) % 转换成变量为x的标准形式 S1 = x3 - 6 x2 + 11 x - 6 A = magic(3) % 创建3阶魔方矩阵 P2 = poly(A) % 计算方阵的特征多项式 P2 = 1.0000 -15.0000 -24.0000 360.0000 S2 = poly2str(P2,s) % 转换成变量为s的标准形式 S2 = s3 - 15 s2 - 24 s + 360 Date14 3.8.2多项式的运算 1.多项式的根 R=roots(P):求多项式向量P的根 p = 1 -6 -72 -27; % 多项式向量p r = roots(p) % 求多项式的根 Date15 2.多项式的值 y=polyval(p,x):计算多项式向量为p变量为x时的数值y,x可以是向量也可以是矩阵 例3-31计算多项式的值 p = 3 2 1; % 创建一个多项式向量 x = 5,7,9; % 变量为向量形式 yx = polyval(p,x) % 计算多项式的值 yx = 86 162 262 A = pascal(4) % 变量为矩阵形式 A = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 ya = polyval(p,A) % 计算多项式的值 ya = 6 6 6 6 6 17 34 57 6 34 121 321 6 57 321 1241 Date16 3.多项式的乘法 c=conv(u,v):求向量为u的多项式与向量为v的多项式的乘积c。 例3-32求(x2+2x+6)(x3+2)的乘积 a = 1 2 6; b = 1 0 0 2; % 生成多项式向量 c = conv(a,b) % 计算乘积 s = poly2str(c,x) % 标准形式表示 c = 1 2 6 2 4 12 s = x5 + 2 x4 + 6 x3 + 2 x2 + 4 x + 12 训练任务: (x4+2x+6)(x3+2x+6) Date17 3.conv,convs多项式乘运算 例:a(x)=x2+2x+3; b(x)=4x2+5x+6; c = (x2+2x+3)(4x2+5x+6) a=1 2 3;b=4 5 6; c=conv(a,b) or =conv(1 2 3,4 5 6) c = 4.00 13.00 28.00 27.00 18.00 p=poly2str(c,x) p = 4 x4 + 13 x3 + 28 x2 + 27 x + 18 Date18 4.多项式的除法 c=deconv(v, u):v为被除数,u为除数,q返回商,余数为r。 例3-33求(2x3+4x2+8x+3)(x2+2x+3) v = 2 4 8 3; u = 1 2 3; % 生成多项式向量 c = conv(v,u) % 计算多项式乘积 c = 2 8 22 31 30 9 q1,r1 = deconv(c,v) % 求商,整除r1为0,商多项式与u相同 q1 = 1 2 3 r1 = 0 0 0 0 0 0 q2,r2 = deconv(v,u) % 多项式求商,带余数 Date19 4.deconv多项式除运算 a=1 2 3; c = 4.00 13.00 28.00 27.00 18.00 d=deconv(c,a) d =4.00 5.00 6.00 d,r=deconv(c,a) 余数 c除a后的整数 Date20 5.多项式微分 matlab提供了polyder函数多项式的微分。 命令格式: polyder(p): 求p的微分 polyder(a,b): 求多项式a,b乘积的微分 p,q=polyder(a,b): 求多项式a,b商的微分 例:a=1 2 3 4 5; poly2str(a,x) ans = x4 + 2 x3 + 3 x2 + 4 x + 5 b=polyder(a) b = 4 6 6 4 poly2str(b,x) ans =4 x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业信用评级与授信咨询服务协议
- 产品推广代理合同协议
- 过春节的活动作文(8篇)
- 早期教育概论课件
- 《新编商务应用文写作》第一章 习题参考答案
- 水孩子读后感250字(9篇)
- 早教分离焦虑课件
- 2025年瑞典语等级考试B1试卷:2025秋季学期词汇拓展
- 农业种植保险替代型风险管理与合作协议
- 平和双语数学试卷
- 2025年山东青岛海关缉私局辅警招聘考试笔试试卷【附答案】
- 2025年社区工作者考试真题库及答案
- 血症中医护理方法
- 飞灰处置再生资源化利用项目可行性研究报告模板-立项备案
- 2025年中国药典试题及答案
- 昆明一中实验班数学试卷
- 2025年腾讯校招综合素质测评试题及答案
- 2025至2030中国旅游保险行业深度发展研究与企业投资战略规划报告
- 房屋应急维修管理办法
- 大隐静脉护理课件
- 卫生法规模考试题含答案
评论
0/150
提交评论