Matlab原理与工程应用第二版(函数)培训讲义.pptVIP

Matlab原理与工程应用第二版(函数)培训讲义.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab原理与工程应用第二版(函数)培训讲义

* 例:著名的Van der Pol方程 令 降为一阶 初始条件 * 3. 根据式(5.3)编写计算导数的M函数文件-ODE文件 把t,Y作为输入宗量,把 作为输出宗量 %M function file name: dYdt.m function Yd = f (t, Y) Yd = f (t,Y) 的展开式 例Van der Pol方程 %M function file name: dYdt.m function Yd=f(t,Y) Yd=zeros(size(Y)); Yd(1)=Y(2); Yd(2)=-(Y(1).^2-1)*Y(2)-Y(1); * 4. 使编写好的ODE函数文件和初值 供微分方程解算指令(solver)调用 Solver解算指令的使用格式 [t, Y]=solver (‘ODE函数文件名’, t0, tN, Y0, tol); ode45 输出宗量形式 说明: t0:初始时刻;tN:终点时刻Y0:初值; tol:计算精度 * 例题1:著名的Van der Pol方程 % 主程序 (程序名:VanderPol _ex1.m) t0=0; tN=20; tol=1e-6; Y0=[0.25; 0.0]; [t,Y]=ode45(f,t0,tN, Y0,tol); subplot (121), plot (t,Y) subplot (122), plot (Y(:,1), Y(:,2)) 解法:采用ODE命令 * Van der Pol方程 % 子程序 (程序名: dYdt.m ) function Ydot = dYdt (t, Y) Ydot=[Y(2);-Y(2)*(Y(1)^2-1)-Y(1)]; 或写为 function Ydot = dYdt (t, Y) Ydot=zeros(size(Y)); Ydot(1)=Y(2); Ydot(2)=-Y(2)*(Y(1).^2-1)-Y(1)]; * * 常微分方程一阶方程组边值问题MATLAB标准形式: 调用格式 Sinit=bvpinit(tinit,yinit) 由在粗略结点tinit的预估解yinit生成粗略解网格sinit Sol=bvp4c(odefun,bcfun,sinit) odefun是微分方程组函数,bcfun为边值条件函数,sol.x为求解结点,sol.y是y(t)的数值解 Sx=deval(sol,ti) 计算由bvp4c得到的解在ti的值 * 例题:求解边值问题 解:首先改写成方程组 边界条件为 * 求解用M函数eg6_5fun.m % M函数eg6_5fun.m clear;close; sinit=bvpinit(0:4,[1;0]) odefun=inline(‘[y(2);-abs(y(1))]’,’t’,’y’); bcfun=inline(‘[ya(1);yb(1)+2]’,’ya’,’yb’); sol=bvp4c(odefun,bcfun,sinit) t=linspace(0,4,101); y=deval(sol,t); plot(t,y(1,:),sol.x,sol.y(1,:),’o’,sinit.x,… sinit.y(1,:),’s’) legend(‘解曲线’,’解点’,’粗略解’) * 最优化是求最优解,也就是在某个区间内有条件约束或者无条件约束地找到函数的最大值或者最小值。MATLAB使用数字方法求函数的最小值。使用迭代算法,也就是有些步骤要重复许多次。现在,假设要求函数f在某个区间内的最小值xmin。 迭代方法需要一个初始估计值x0。从x0开始找到一个更接近xmin的新值x1,这个值的好坏取决于使用的数学方法。直到找到有足够精度的近似值xi才停止迭代,也就是绝对值|xmin-xi|足够小。 这里提到了标准MATLAB系统的两个最优化命令,fmin命令可以求单变量函数的最小值;fmins命令可以求多变量函数的最小值,同时它还要求有一个初始向量。 在新版本中,fmin和fmins分别被fminbnd和fminsearch取代。 Matlab中没有求函数f的最大值的命令,但可以通过求其相反函数h=-f 的最小值间接求得。 * 函数格式: x=fminbnd( fcn , x1 , x2 , options) 求函数在区间(x1,x2 )内取最小值时的x值,采用黄金分割法和二次插值。fcn是目标函数名。如果没有局部最小值,则返回区间内的最小x值。向量options为控

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档