下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 20100319 第三讲:求导积分与微分方程数值解(2次课)

20100319 第三讲:求导积分与微分方程数值解(2次课).ppt

20100319 第三讲:求导积分与微分方程数值解(2次课)

要學會放棄
2011-04-27 0人阅读 举报 0 0 暂无简介

简介:本文档为《20100319 第三讲:求导积分与微分方程数值解(2次课)ppt》,可适用于高等教育领域

第三讲极限、导数、积分(补充)内容:本讲针对高等数学一元微积分学补充极限、导数、积分相关运算介绍Funtool符号计算器目的:学习极限导数积分相关函数的指令实现为学习微分方程数值解作准备要求:能够解决高等数学中的一类极限导数积分求解问题了解并会使用Funtool符号计算器掌握极限(左、右极限)函数limit掌握导数(阶导、高阶导、偏导)函数diff掌握积分(不定积分、定积分、数值积分)函数inttrapzquadquadlquad第三讲极限、导数、积分(补充)求极限、求导数与求积分求极限、求导数与求积分极限,导数,积分是我们在高等数学学习中接触过的最基本也是最重要的概念一方面它们是很多数学工具的基础(比如微分方程)另一方面它们又是工程计算和科学研究直接面对的问题微分(导数)运算比较简单,任何一个由基本初等函数经过四则及复合运算构成的函数,都可以用导数公式和求导法则算出它们的导数积分运算则相对复杂得多,仍有许多函数“积不出来”,由于它们的原函数无法由基本初等函数经过四则及复合运算构成,计算这类定积分问题我们也只能采用数值方法借助MATLAB我们得以快速解决这些问题!求极限运算的调用格式基本调用格式:limit(f)功能:计算limit(f,x,a)功能:计算limit(f,x,inf)功能:计算limit(f,x,a,'right')功能:计算limit(f,x,a,'left')功能:计算求极限运算的调用格式注意:默认x趋于在左右极限不相等或有一个不存在时默认为求右极限求极限运算的应用示例求极限运算的应用示例应用示例(熟悉应用类型):例求极限symsxy=((tan(x))(sin(x)))^(x^)limit(y)例求极限symsny=(n)^nlimit(y,n,inf)例求极限symsxy=*xlog(sin(x)exp(sin(x)))limit(y,x,,'left')求导数运算的调用格式求导数运算的调用格式一元函数求导基本调用格式:diff(f)功能求函数f的一阶导数diff(f,n)功能求函数f的n阶导数应用示例:例求的一阶、二阶导数symsabxy=(a*xtan(*x))^()sin(x)*cos(b*x)dy=diff(y),disp('***'),pretty(dy),disp('***')dy=diff(y,),disp('***'),pretty(dy),求导数运算的调用格式求导数运算的调用格式多项式拟合求导(表达式未知或不易求导)方法说明:先利用polyfit将函数拟合成多项式函数然后利用多项式函数求导命令polyder求导或diff求导应用示例:例用阶多项式拟合函数并求x=处的二阶导函数值x=::y=cos(x)*log(x^exp(x^))p=polyfit(x,y,),y=polyval(p,x)plot(x,y,'b',x,y,'r')legend('y','y',)产生数据点拟合成阶多项式函数并作图比较p=polyder(p)p=polyder(p)ans=polyval(p,),利用多项式函数专用求导函数polyder求导并代值y=polysym(p,'x'),yd=diff(y,),ans=subs(yd,),利用通用求导函数diff求导并代值求导数运算的调用格式求导数运算的调用格式参数方程求导方法说明:对参数方程x=x(t)y=y(t)先求出dydt和dxdt然后代入公式dydx=dydtdxdt即可应用示例:例求参数方程symstx=t*(sin(t))y=t*cos(t)ezplot(x,y)gridondx=diff(x,t)dy=diff(y,t)dydx=dydxpretty(dydx)下面在t=处作出参数方程的切线(导数)holdont=x=eval(x)y=eval(y)plot(x,y,'ro')k=eval(dydx)line(x,x,y,yk,'color','r')求导数运算的调用格式求导数运算的调用格式多元函数求导方法说明:对指定变量求导求偏导数应用示例:例求对z的偏导数symsabxyzu=a*exp(b*xyz^)pretty(diff(u,z))例对symsxyz=x^*y^sin(x*y)diff(z,x,)求导数运算的应用示例求导数运算的应用示例例以为例验证罗必塔法则:symsabxf=a^xb^xg=xl=limit(fg,x,)df=diff(f,x)dg=diff(g,x)l=limit(dfdg,x,)ifl==ldisp('罗必塔法则得到验证!')end求不定积分运算的调用格式求不定积分运算的调用格式不定积分方法说明:int(f)对默认变量积分int(f,v)对指定变量积分应用示例:例计算symsxy=(sin(x)^*cos(x)^)pretty(int(y))例计算symsaxy=(a^x^)pretty(int(y,x))例计算二重不定积分symsxyF=int(int(x*exp(x*y),x),y)求定积分运算的调用格式求定积分运算的调用格式定积分解析解法方法说明:int(f,x,a,b)依据微积分基本公式计算应用示例:例计算symsaxf=sqrt(x^a)pretty(int(f,x,,))例对变上限函数求导symstxf=sqrt(t^)pretty(diff(int(f,t,,x^)))求定积分运算的调用格式求定积分运算的调用格式定积分数值解法方法说明:当定积分符号解法失效时必须用定积分数值解法来近似计算定积分的值。矩形公式sum复合梯形公式trapz复合辛普森公式quadquad的区别在于替代等距曲边梯形的方式不同:求定积分运算的应用示例求定积分运算的应用示例应用示例:sum使用一次用于求向量或矩阵每一列的和若使用两次则先按列求和再按行求和(行列总和)例矩形法计算在x=与x=之间所围面积dx=x=:dx:y=x^sum(y(:length(x)))*dx(的近似值)求定积分运算的调用格式求定积分运算的调用格式trapz(x,y)用复合梯形公式计算定积分x为积分变量分点向量y为被积函数分点函数值向量quad('fun',a,b,tol,trace)用复合辛普森公式计算定积分fun为被积函数表达式字符串或m函数文件名ab是积分下上限tol表示精度(缺省)trace=图示积分过程(默认=不显示)quadl采用Lobatto算法精度和速度要优于quadquad采用阶NewtonCotes算法精度优于quad求定积分运算的应用示例求定积分运算的应用示例例用两种方法求定积分x=::y=log(x)(x^)tt=trapz(x,y)复合梯形公式fun=inline('log(x)(x^)','x')ss=quad(fun,,)复合辛普森公式Funtool符号计算器界面Funtool符号计算器界面Funtool符号计算器功能Funtool符号计算器功能图形化符号函数计算器的使用:f=为图形窗口的控制函数其缺省值为xg=为图形窗口的控制函数其缺省值为x=为两窗口函数的自变量取值范围缺省*pi,*pia=为常数缺省值为。dfdx计算函数f对x的导法式并赋给f。intf计算函数f的积分函数并赋给f。simplef计算函数f的最简表达式并赋给f。(symsx)simplify(cos(x)^sin(x)^)simplify((x^*x)(x))expand(cos(xy))expand((x)*(x))symsxyfactor(x^y^)factor(x^*x^*x)numf取表达式f的分子并赋给f。denf取表达式f的分母并赋给f。f求f的倒数函数并赋给f。finv求f的反函数并赋给f。Funtool符号计算器功能Funtool符号计算器功能f±a计算f(x)±a并赋给f。f*a计算f(x)*a并赋给f。fa计算f(x)a并赋给f。f^a计算f^a并赋给f。f(xa)计算f(xa)并赋给f。f(x*a)计算f(ax)并赋给f。fa计算f(x)a并赋给f。f±g计算两函数之和差并赋给f。f*g计算两函数之积并赋给f。fg计算两函数之比并赋给f。f(g)计算复合函数f(g(x))。g=f将f的函数值赋给g。swap交换f与g的函数表达式。That’sall~Q!That’sall~Q!第三讲微分方程数值解第三讲微分方程数值解内容:本讲首先演练单摆微分方程求解的全过程随后由例题入手介绍基于MATLAB的微分方程求解函数然后重点讲解微分方程(组)的图形图像解法最后介绍欧拉方法、改进欧拉方法RK方法目的:掌握微分方程数值解的一般思路和方法。要求:能够处理应用类型微分方程数值解问题。掌握单摆微分方程求解的完整过程(课本引例)掌握基于常用微分方程求解函数dsolveode掌握图形图像求解:斜率场相平面等值线了解欧拉方法、改进欧拉方法、RK方法大多数微分方程无法求解析解大多数微分方程无法求解析解微分方程是研究函数变化规律的有力工具在科技、工程、经济管理、及生态、环境、人口、交通等各个领域有着广泛的应用。建立微分方程可以依据物理的、或其他原理和规律建立的平衡关系但是!更重要的问题是如何求解这些微分方程(组)部分微分方程可以求得解析解但是绝大多数的非线性、变系数微分方程或“难以求解”或“求不出解”所以对于实际问题研究微分方程的数值解具有重要意义!我们所熟悉的微分方程?我们所熟悉的微分方程?微分方程初值问题的最简单形式:简单定义:含有导数的方程就称为微分方程一般形式:解析解:求得具体解析式y=f(x)(早先学过的)数值解:求得系列散点xi对应的近似值yi(表格法)图像解:用图像表示解曲线(有何优势?)表示函数的三种方法?单摆微分方程求解:建立方程单摆微分方程求解:建立方程提示:这是一个完整的微分方程建立、求解的过程通过本例的学习要求完成p容器刻度问题全程求解!(本讲实验题)由牛顿第二定律建立方程:我们要找到符合条件的theta与t的函数关系但是此阶非线性微分方程并不容易求得解析解…除非单摆微分方程求解:求近似解单摆微分方程求解:求近似解除非一简化方程求其近似解:取x=°即x=在此弧度范围内sin所以原微分方程可以简化为:此线性常系数微分方程可以直接用dsolve函数求得:dsolve('Dthetagl*theta=','theta()=a','Dtheta()=','t')其解析解为:a*cos((gl)^()*t)这个解可以作为原方程的近似解单摆微分方程求解:求数值解单摆微分方程求解:求数值解除非二求其数值解:也就是部分点xi对应的近似值yi我们采用ode函数求解所以首先改写方程:由简化方程求得近似解为:代入g=l=得到周期Ts下面考察ts=到tf=内若干点处的近似值i即所谓的数值解单摆微分方程求解:求数值解单摆微分方程求解:求数值解首先建立被调函数danbaimfunctionxdot=danbai(t,x)g=l=xdot()=x()xdot()=gl*sin(x())xdot=xdot'然后是主调指令也可写成主调文件loaddanbaimwarningoffts=tf=a=cond=a,初始化变量t,x=ode('danbai',ts,tf,cond)调用ode函数求解g=l=w=sqrt(gl)y=a*cos(w*t)近似解t,x(:,),y输出t对应的数值解和近似解subplot(,,)stem(t,x(:,),'ro')title('数值解')subplot(,,)holdonstem(t,y,'bp')plot(t,y,'b')title('近似解')用dsolve函数求解微分方程用dsolve函数求解微分方程MATLAB求解微分方程解析解的函数dsolveSymbolicsolutionofordinarydifferentialequationsSyntax~r=dsolve('eq','eq',,'cond','cond',,'v')题例:pexexdsolve('Dy=y^')dsolve('Dtheta=theta^','theta()=','xi')dsolve('x^*Dyx*Dy(x^()^)*y=','y(pi)=','Dy(pi)=pi','x')pretty(ans)提示:一些需要注意的细节…用dsolve函数求解微分方程组用dsolve函数求解微分方程组MATLAB求解微分方程组解析解的函数dsolve题例:pexexf,g=dsolve('Df=*f*g','Dg=*f*g')f,g=dsolve('Df=*f*g','Dg=*f*g','f()=','g()=','x')下面的指令有否区别?dsolve('Dy=x*sin(x)cos(y)')dsolve('Dy=x*sin(x)cos(y)','x')提示:用dsolve求解存在解析解的微分方程相当方便在“只要结果不求过程”的场合节约了大量时间。练习:Malthus人口模型计算练习:Malthus人口模型计算Malthus认为单位时间内人口净增长率为常数:d=::x=t=(d)y=log(x)p=polyfit(t,y,)y=polystr(p,'t')r=p(),a=p()x=exp(a)plot(t,x,'r')holdont=min(t)::max(t)x=x*exp(r*t)plot(t,x,'b')基于RK算法的数值解函数ode基于RK算法的数值解函数odeMATLAB求解微分方程数值解的函数odeSolveinitialvalueproblemsforordinarydifferentialequations(ODEs)Syntax(ode):T,Y=ode(odefun,tspan,y)T,Y=ode(odefun,tspan,y,options)题例:pex解析法数值法的局限解析法数值法的局限解析法~能找到精确解固然好但适应面太窄。数值法~只能得到一些离散点处的近似值不能较好展示全局和趋势。图像法~可能也只有图像法才能避免上述缺陷方法概述:斜率场法是依据y'=f(x,y)得到平面上一些点的斜率值然后过这些点引出自该点出发的短直线通过观察趋势了解解曲线的分布和性态。题例:pex图解法斜率场图解法斜率场用斜率场法求解微分方程:y'=sinxsinysymsxyfun=sin(x)*sin(y)hx=hy=x=y=holdonfori=:x=x(i)*hxforj=:y=y(j)*hyk=eval(fun)图解法斜率场图解法斜率场ifabs(hx*k)>hyplot(x,xhyk*,y,yhy*)elseplot(x,xhx*,y,yhx*k*)endendendtitle('dydx=sinx*siny')xlabel('x')ylabel('y')图解法斜率场图解法斜率场图解法相平面轨迹图解法相平面轨迹方法概述:相平面轨迹法是依据不同的初值条件先用数值解法求出各自对应的数值解(x(t),y(t))最后用plot描点绘图通过观察趋势了解解曲线的分布和性态。题例:pex先用数值解法求出若干初值条件下的(x(t),y(t))tbpmfunctiondequ=tbp(t,x)dequ=*x()*x()*x()*x()*x()*x()图解法相平面轨迹图解法相平面轨迹loadtbpmholdonfori=:tspan=::cond=,*it,x=ode('tbp',tspan,cond)plot(x(:,),x(:,))endaxis()xlabel('x')ylabel('y')图解法相平面轨迹图解法相平面轨迹图解法等值线图解法等值线方法概述:等值线隶属于相平面轨迹法先求出通解(dsolve?)再针对通解中的常数每一个常数定值都对应着一条等值线用contour函数根据三维数据绘出等值线即可通过观察趋势了解解曲线的分布和性态。题例:px,y=meshgrid(::,::)z=*log(y)ylog(x)xcontour(x,y,z,)xlabel('x')ylabel('y')图解法等值线图解法等值线欧拉方法介绍欧拉方法介绍数值解法求得的结果是一系列散点{xi,yi}向前欧拉方法(Euler)欧拉方法介绍欧拉方法介绍向前欧拉方法的几何解释折线:改进欧拉方法介绍改进欧拉方法介绍向前欧拉公式:后退欧拉公式:改进欧拉公式:改进欧拉方法介绍改进欧拉方法介绍改进欧拉方法的几何解释校正:oyxxxyyyx龙格库塔方法介绍龙格库塔方法介绍改进的euler方法比向前euler精度高的原因在于它在确定平均斜率时多取了一个点的斜率值。这启发我们如果在xi,xi上多取几个点的斜率值然后把它们加权平均则有可能构造出精度更高的计算方法这就是rungekutta方法的基本思路。事实上RK方法是计算常微分方程的最重要的方法之一。MATLAB专门提供了基于RK方法的求解函数它们是:odeodeode练习一:Malthus人口模型计算练习二:通用化斜率场程序That’sall~Q!练习一:Malthus人口模型计算练习二:通用化斜率场程序That’sall~Q!

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/45

20100319 第三讲:求导积分与微分方程数值解(2次课)

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利