matlab电子教案概要.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab电子教案概要

第6章 数值微积分与常微分方程求解 在许多实际问题中要采用数值方法来求函数的微分或积分。 而在实际问题中遇到的常微分方程往往很复杂,在许多情况下得不出一般解,所以,一般是要求获得解在若干个点上的近似值。 【本章学习目标】 ● 掌握微分与积分的数值计算方法。 ● 掌握常微分方程的数值求解方法。 6.1 数 值 微 分 6.1.1 数值差分与差商 6.1.2 数值微分的实现 数值微分的基本思想是先用逼近或拟合等方法将已知数据在一定范围内的近似函数求出,再用特定的方法对此近似函数进行微分。 1.多项式求导法 用多项式或样条函数g(x)对f(x)进行逼近(插值或拟合),然后用逼近函数g(x)在点x处的导数作为f(x)在点x处的导数。该种方法一般只用在低阶数值微分。 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))。 ● DX?=?diff(A,n,dim):计算矩阵A的n阶差分,dim?=?1时(默认状态),按列计算差分;dim?=?2,按行计算差分。 对于求向量的微分,函数diff计算的是向量元素间的差分,故所得输出比原向量少了一个元素。 【例6.1】设f(x)?=?sinx,用不同的方法求函数f(x)的数值导数,并在同一个坐标系中做出f?(x)的图像。 为确定计算数值导数的点,假设在[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)在假设点的导数。 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在假设点的导数 gx=cos(x); %作图 plot(x,dpx,x,dx,o,x,gx,+); 对于求矩阵的差分,即为求各列或各行向量的差分,从向量的差分值可以判断列或行向量的单调性、是否等间距以及是否有重复的元素。 【例6.2】生成一个5阶魔方矩阵,按列进行差分运算。 M=magic(5) M= 17 24 1 8 15 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列是等间距的。 6.2.2 定积分的数值求解实现 在MATLAB中可以使用quad或quadl来进行数值积分。 1.自适应辛普生法 MATLAB提供了基于自适应Simpson法的quad函数和自适应Lobatto法的quadl函数来求定积分。函数的调用格式为 [I,n]=quad(@fname,a,b,tol,trace) [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。 function f=fe(x) f=x.*sin(x

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档