数学建模MATLAB培训2.ppt

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

1、非线性方程求解 ,fzero ,贷款买房利率. 2、常微分方程数值解、ode45、火箭问题 * 包含三角函数、指数函数及对数函数等的超越方程与n(≥2)次代数方程一起统称为非线性方程。 如 1.1 求解非线性方程的方法 图形法:绘图确定根的近似位置; 二分法: 是基于连续函数的性质。设f(x)是连续函数,若对于ab,有f(a)·f(b)0,则在(a,b)内f(x)至少有一个零点。(参考书王沫然P258程序erfen,收敛速度较慢.) 牛顿切线法、割线法: ⑴、fzero:用于求单变量方程的根,所采用的算法主要是二分法、割线法。 ⑵、fsolve:主要用于求解非线性方程组 ⑶、roots:用于单变量多项式求根。 常 用 x=fzero(‘f’, [a,b]) 1.2 Matlab中的库函数 [x,fv,ef,out]=fzero(@f,x0,opt,p1,p2,…) [x,fv,ef,out,jac]=fsolve(@f,x0,opt,p1,p2,…) 常 用 x=fsolve(‘f’, x0) f 须为函数名 r=roots(c) c为多项式系数(按降幂排列) 输出 r 为f(x)=0的全部根(包括复根) c=poly(r) 与roots的功能相反。roots与poly互为逆函数。 例1、小张夫妇欲贷款50万元买房,他咨询了两家银行,第一家银行开出的条件是每月还4500元,15年还清;第二家银行开出的条件是每年还45000元,20年还清,从利率方面看哪家银行较优惠(简单地假设年利率=月利率×12) 解、设年利率为r,贷款额A,每年还B,贷款期限n年,则 设有常微分方程初值问题: 常微分方程数值解:计算(精确)解y(x)在一系列离散点 x0 x1 x2 … xn …上的近似值 ,通常选取相等的计算步长 h。 常微分方程结论: f 适当光滑,对y 满足Lipschitz条件,则方程存在唯一解 例2、求解下列微分方程: 龙格-库塔方法的MATLAB实现 先对所解方程或方程组(高阶方程)编写ODE文件(M函数文件,Ordinary Differential Equation)保存在MATLAB设置的搜索路径,然后在解方程的脚本文件中调用: [t, x]=ode23(@f,ts,x0,options) [t, x]=ode45(f,tspan,x0,options) 或 options用于设置误差限(缺省时相对误差为10-3,绝对误差 为10-6),用语句实现为: options=odeset(reltol,rt,abstol,at) ts=[a, b]表示自变量的初值到终值的区间 或ts=[t0,t1,t2,…tf] 其中 火箭发射 小型火箭初始重量为1400kg,其中包括1080kg燃料。火箭竖直发射时,燃料燃烧率为18kg/s,由此产生推力32000N,火箭引擎在燃料用尽时关闭。设火箭上升时,空气阻力与速度的平方成正比,比例系数为0.4kg/m。求引擎关闭瞬间火箭的高度、速度、加速度及火箭到达最高点时的高度和加速度,并画出高度、速度和加速度随 时间变化的图形。 建立数学模型应考虑分有燃料和燃料已用尽两个阶段。设燃料燃烧率为常量,燃料燃烧的时间可以确定第一阶段的时间。第二阶段的初值由第一阶段的终值确定。引擎关闭的时刻即第一阶段终止第二阶段开始的时刻。火箭先加速,后减速,达到最高点的时刻火箭的运动有什么特征? 第一阶段,燃料燃烧推动阶段,为变加速运动,初值问题为 M0=1400kg,Q0=1080kg,r=18kg/s,k=0.4kg/m,N=32000N 第二阶段,燃料烧尽,火箭作减速运动,初值问题为 求x=T 时,hT =x(T ), 求当 时的高度hm和加速度a。 建立数学模型,明确所要求出的量 function dx=odehj1(t,x) global M r N k g=9.8; dx=zeros(2,1); dx(1)=x(2); dx(2)=(N-(M-r*t)*g-k*x(2)^2)/(M-r*t); function dx=odehj2(t,x) global M Q k g=9.8; dx=zeros(2,1); dx(1)=x(2); dx(2)=-g-k*x(2)^2/(M-Q); 引擎关闭前的阶段: 引擎关闭后的阶段 clear global M Q r N k %声明全局变量 M=1400;Q=1080

文档评论(0)

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

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

1亿VIP精品文档

相关文档