数学实验第三讲_第1页
数学实验第三讲_第2页
数学实验第三讲_第3页
数学实验第三讲_第4页
数学实验第三讲_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学实验之三微分方程解的形式①

解析解

y=f(x)②

数值解

(xi,yi)③图形解xyo①简单的微分方程。②复杂、大型的微分方程。一阶微分方程:获取解析解的方法归类:①分离变量法;如dy/dx=x*y;②齐次方程的变换法;如dy/dx=f(y/x)③线性方程的常数变易法或公式法.

……解析解MATLAB软件实现解析解dsolve('eqn1','eqn2',…,'c1',…,'var1',…)微分方程组初值条件变量组注意:①y'Dy,y''D2y②自变量名可以省略,默认变量名‘t’。例①输入:y=dsolve('Dy=1+y^2')y1=dsolve('Dy=1+y^2','y(0)=1','x')输出:y=tan(t-C1)(通解,一簇曲线)

y1=tan(x+1/4*pi)(特解,一条曲线)例②常系数的二阶微分方程y=dsolve('D2y-2*Dy-3*y=0','x')y=dsolve('D2y-2*Dy-3*y=0','y(0)=1,Dy(0)=0','x')输入:x=dsolve('D2x-(1-x^2)*Dx+x=0','x(0)=3,Dx(0)=0')上述两例的计算结果怎样?由此得出什么结论?例③非常系数的二阶微分方程例③无解析表达式!x=dsolve('(Dx)^2+x^2=1','x(0)=0')例④非线性微分方程x=[sin(t)][-sin(t)]若欲求解的某个数值解,如何求解?t=pi/2;eval(x)输入:[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y')[x,y]=dsolve('Dx=3*x+4*y','Dy=-4*x+3*y','x(0)=0,y(0)=1')例④输出:(li3.m)数值解1、欧拉法2、龙格—库塔法数值求解思想:(变量离散化)

引入自变量点列{xn}→{yn},在x0

x1

x2

xn

…上求y(xn)的近似值yn.通常取等步长h,即xn=x0+n×h,或

xn

=xn-1+h,(n=1,2,…)。研究常微分方程的数值解法是十分必要的。1)向前欧拉公式:(y’=f(x,y))

y(xn+1)

y(xn)+hf(xn,y(xn))(迭代式)

yn+1

yn+hf(xn,yn)(近似式)

特点:f(x,y)取值于区间[xn,xn+1]的左端点.1、欧拉方法在小区间[xn,

xn+1]上用差商代替微商(近似),

yn+1

yn

+hf(xn+1,yn

+1)特点:①f(x,y)取值于区间[xn,xn+1]的右端点.②非线性方程,称‘隐式公式’。yn+1

=

yn+hf(xn,yn)2)向后欧拉公式方法:迭代(y’=f(x,y))x=[];y=[];x(1)=x0;y(1)=y0;forn=1:kx(n+1)=x(n)+n*h;y(n+1)=

y(n)+h*f(x(n),y(n));(向前)end例1

观察向前欧拉、向后欧拉算法计算情况。与精确解进行比较。误差有多大?解:1)解析解:y=x+e-xy=dsolve('Dy=-y+x+1','y(0)=1','x')2)向前欧拉法:

yn+1=yn+h(-yn+xn+1)=(1-h)yn+hxn+h3)向后欧拉法:

yn+1=yn+h(-yn+1+xn+1+1)

转化yn+1=(yn+hxn+1+h)/(1+h)y’=f(x,y)=-y+x+1;x1(1)=0;y1(1)=1;y2(1)=1;h=0.1;(died.m)fork=1:10x1(k+1)=x1(k)+h;y1(k+1)=(1-h)*y1(k)+h*x1(k)+h;y2(k+1)=(y2(k)+h*x1(k+1)+h)/(1+h);endx1,y1,y2,(y1——向前欧拉解,y2——向后欧拉解)x=0:0.1:1;y=x+exp(-x)(解析解)plot(x,y,x1,y1,'k:',x1,y2,'r--')x精确解向前欧拉向后欧拉01110.11.004811.00910.21.01871.011.02640.31.04081.0291.05130.41.07031.05611.08300.51.10651.09051.12090.61.14881.13141.16450.71.19661.17831.21320.81.24931.23051.26650.91.30661.28741.324111.36791.34871.3855(1)步长h=0.1的数值解比较表结果(2)步长h=0.01的数值解比较表x精确解向前欧拉向后欧拉01110.11.00481.00441.00530.21.01871.01791.01950.31.04081.03971.04190.41.07031.06901.07170.51.10651.10501.10800.61.14881.14721.15040.71.19661.19481.19830.81.24931.24751.25110.91.30661.30471.308411.36791.36601.3697显然迭代步长h的选取对精度有影响。图形显示

有什么方法可以使精度提高?向后欧拉法

对方程y’=f(x,y),两边由xi到xi+1积分,并利用梯形公式,有:使用数值积分即梯形法:梯形公式

改进的欧拉公式yn+hf(xn,yn)

以例1为例,用改进欧拉公式编程计算,再与精确解的比较。yn+1=yn+(h/2)*[(-yn+xn+1)+(-yn+1+xn+1+1)]=yn+(h/2)*[(-yn+xn+1)-(yn+h*(-yn+xn+1))+xn+1+1]=yn+(h/2)*[(1-h)*xn+xn+1+2-h+(h-2)*yn]died1.mx精确解向前欧拉向后欧拉改进欧拉011110.11.004811.00911.0050.21.01871.011.02641.0190.31.04081.0291.05131.04120.41.07031.05611.08301.07080.51.10651.09051.12091.10710.61.14881.13141.16451.14940.71.19661.17831.21321.19720.81.24931.23051.26651.25000.91.30661.28741.32411.307211.36791.34871.38551.3685步长h=0.1的数值解比较表结果使用泰勒公式

以此方法为基础,有龙格-库塔法、线性多步法等方法。数值公式的精度

当一个数值公式的截断误差可表示为O(hk+1)时(k为正整数,h为步长),称它是一个k阶公式。

k越大,则数值公式的精度越高。欧拉法是一阶公式,改进的欧拉法是二阶公式。龙格-库塔法有二阶公式和四阶公式。线性多步法有四阶阿达姆斯外插公式和内插公式。[t,x]=solver(’f’,ts,x0,options)ode23

ode45ode113ode15sode23s由待解方程写成的m-函数文件ts=[t0,tf],t0、tf为自变量的初值和终值函数的初值ode23:组合的2/3阶龙格-库塔算法ode45:运用组合的4/5阶龙格-库塔算法自变量值函数值用于设定误差限(缺省时设定相对误差10-3,绝对误差10-6),命令为:options=odeset(’reltol’,rt,’abstol’,at),rt,at:分别为设定的相对误差和绝对误差.Matlab软件计算数值解1)首先建立M-文件(weif.m)

functionf=weif(x,y)f=-y+x+1;2)求解:[x,y]=ode23(‘weif’,[0,1],1)3)作图形:plot(x,y,‘r’);4)与精确解进行比较

holdonezplot(‘x+exp(-x)’,[0,1])例1

y’=-y+x+1,y(0)=1标准形式:y’=f(x,y)1、在解n个未知函数的方程组时,x0和x均为n维向量,m-函数文件中的待解方程组应以x的分量形式写成.2、使用Matlab软件求数值解时,高阶微分方程必须等价地变换成一阶微分方程组.注意:注意1:1、建立M文件函数

functionxdot=fun(t,x,y)xdot=[f1(t,x(t),y(t));

f2(t,x(t),y(t))];2、数值计算(执行以下命令)

[t,x,y]=ode23(‘fun',[t0,tf],[x0,y0])注意:执行命令不能写在M函数文件中。xd(1)=f1(t,x(t),y(t));xd(2)=f2(t,x(t),y(t));xdot=xd’;%列向量例如:令注意2:functionxdot=fun1(t,x,y)(fun1.m)xdot=[f(t,x(t),y(t));x(t)];[t,x,y]=ode23(‘fun1',[t0,tf],[x0,y0])M-文件函数如何写呢?注意:y(t)是原方程的解。x(t)只是中间变量。如果方程形式是:z’’’=f(t,z,z’’)?例2Vanderpol方程:令y1=x(t),y2=x’(t);

该方程是否有解析解?(1)编写M文件(文件名为vdpol.m):functionyp=vdpol(t,y);yp=[y(2);(1-y(1)^2)*y(2)-y(1)];(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论