matlab预备知识:微分方程及其解法.pptx

matlab预备知识:微分方程及其解法.pptx

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

第五章matlab预备知识微分方程及其解法

微分方程微分方程(DE)指描述未知函数的导数与自变量之间的关系的方程。微分方程的解是一个符合方程的函数。常微分方程(ODE),偏微分方程(PDE).

Matlab中微分方程解法四阶经典龙格库塔法

例题5.6根据四阶经典龙格库塔格式,编写MATLAB数值求解程序,并对人口数据的逻辑斯谛初值问题进行数值求解,求解区间[0.5],步长分别为1,0.1和0.01.并对区间[0.5]数值曲线与精确解进行对比。

x=linspace(0,5,10);y=8./(1+7*exp(-8*x/3));[x1,y1]=RK4(Logistic,[0,5,1],1);[x2,y2]=RK4(Logistic,[0,5,.1],1);[x3,y3]=RK4(Logistic,[0,5,.01],1);plot(x,y,*,x1,y1,--,x2,y2,-.,x3,y3);xlabel(x)ylabel(y)legend(exactsolution,h=1,h=0.1,h=0.01)axis([05010])

function[xout,yout]=RK4(odefile,xspan,y0)x0=xspan(1);xh=xspan(2);iflength(xspan)=3h=xspan(3);elseh=(xspan(2)-xspan(1))/100;endxout=[x0:h:xh];yout=[];forx=xoutK1=h*eval([odefile(x,y0)]);K2=h*eval([odefile(x+h/2,y0+0.5*K1)]);K3=h*eval([odefile(x+h/2,y0+0.5*K2)]);K4=h*eval([odefile(x+h,y0+K3)]);y0=y0+(K1+2*K2+2*K3+K4)/6;yout=[yout;y0];end四阶龙格库塔求解程序

functiondydx=Logistic(x,y)dydx=1/3*y*(8-y);逻辑斯谛微分方程

Matlab中自带的常微分方程初值问题求解以odemnx命名,mn代表数值方法的阶数,x代表了方法的特殊属性,可以没有。ode23(),ode45()函数是runge-kutta-fehlberg法的自适应步长算法。Matlab中ode求解函数

调用方法[T,Y]=solver(odefun,tspan,y0)[T,Y]=solver(odefun,tspan,y0,options)[T,Y,YE,TE,IE]=solver(odefun,tspan,y0,options)sol=solver(odefunn,[t0tf],y0…)

输入odeset得到常微分方程解法器所有参数值和它们的默认值

例题5.7因为在ρ取不同数值的情况下对洛伦兹微分方程组进行数值求解,可以先利用inline()函数来编写带多个参数的洛伦兹微分方程组,然后在调用matlab中常微分方程初值问题求解函数ode45()来进行数值求解。

高阶常微分方程的MATLAB数值求解例题5.8f=@(t,x)[x(2);80*cos(5*t)-9*x(1)];x0=[0;0];t_final=6*pi;[t,x]=ode45(f,[0,t_final],x0);ts=linspace(0,t_final,201);xs=5*cos(3*ts)-5*cos(5*ts);plot(ts,xs,*,t,x(:,1))xlabel(t)ylabel(x)legend(exactsolution,numericalsolution)

谢谢O(∩_∩)O

文档评论(0)

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

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

1亿VIP精品文档

相关文档