


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用MATLAB实现的四阶龙格库塔,并用来求解微分方程组function x,y=Runge_kutta(ufunc,y0,h,a,b)%参数表顺序依次是微分方程组的函数名称,初始值向量,步长,时间起点,时间终点(参数形式参考了ode45函数)n=floor(b-a)/h); %求步数,迭代次数%x=zeros(n+1,1); %n+1行1列的全零矩阵x(1)=a; %时间起点y(:,1)=y0; %赋初值,可以是向量,但是要注意维数for ii=1:nx(ii+1)=x(ii)+h;k1=ufunc(x(ii),y(:,ii);k2=ufunc(x(ii)+h/2,y(:,ii)+h*k1/2);k3=ufunc(x(ii)+h/2,y(:,ii)+h*k2/2);k4=ufunc(x(ii)+h,y(:,ii)+h*k3);y(:,ii+1)=y(:,ii)+h*(k1+2*k2+2*k3+k4)/6;%按照龙格库塔方法进行数值求解% y(:,ii+1)=roundn(y(:,ii+1),-8);endendclc;clear all;close all;%-初值和参数-a=16.923;b=20.653;r=0.51;G=1.41;k1=1/1.355;%k1=1/2.5;k2=1.25;k3=0;x0=0.001;0.1;0;0;%-定义方程-fun = (t,y) a*(y(2)-y(1)+G*y(1)-y(1)*( k1*(1-k2*(y(4)-k3)(-1/2) ); y(1)-y(2)+y(3); -b*y(2)-r*y(3); y(1); ;%-龙格库塔解-t,x=Runge_Kutta(fun,x0,0.01,0,200);%测试时改变test_fun的函数维数,别忘记改变初始值的维数%-龙格库塔解-v=x(1,3000:end);i=( (k1.*(1-k2.*(x(4,3000:end)-k3).(-1/2) ).*x(1,3000:end);x(1,:)=round(x(1,:)+13)*10+1);x(2,:)=round(x(2,:)+13)*10+1);x(3,:)=round(x(3,:)+13)*10+1);x(4,:)=round(x(4,:)+13)*10+1);v=fix(v+15)*10);i=fix(i+15)*10);figure(1)plot(t,x(1,:)%自编的龙格库塔函数效果xlabel(x) ylabel(y);使用方法 T,Y = ode45(odefun,tspan,y0) odefun 是函数句柄,可以是函数文件名,匿名函数句柄或内联函数名 tspan 是区间 t0 tf 或者一系列散点t0,t1,.,tf y0 是初始值向量 T 返回列向量的时间点 Y 返回对应T的求解列向量 T,Y = ode45(odefun,tspan,y0,options) options 是求解参数设置,可以用odeset在计算前设定误差,输出参数,事件等 T,Y,TE,YE,IE =ode45(odefun,tspan,y0,options) 每组(t,Y)之产生称为事件函数。每次均会检查是否函数等于零。并决定是否在零时终止运算。这可以在函数中之特性上设定。例如以events 或events产生一函数。 value, isterminal,direction=events(t,y)其中,value(i)为函数之值,isterminal(i)=1时运算在等于零时停止,=0时继续;direction(i)=0时所有零时均需计算(默认值), +1在事件函数增加时等于零, -1在事件函数减少时等于零等状况。此外,TE, YE, IE则分别为事件发生之时间,事件发生时之答案及事件函数消失时之指针i。 sol =ode45(odefun,t0 tf,y0.) sol 结构体输出结果 应用举例 1 求解一阶常微分方程 程序: odefun=(t,y) (y+3*t)/t2; %定义函数 tspan=1 4; %求解区间 y0=-2; %初值 t,y=ode45(odefun,tspan,y0); plot(t,y) %作图 title(t2y=y+3t,y(1)=-2,1t4) legend(t2y=y+3t) xlabel(t) ylabel(y) % 精确解 % dsolve(t2*Dy=y+3*t,y(1)=-2) % ans = % (3*Ei(1) - 2*exp(1)/exp(1/t) - (3*Ei(1/t)/exp(1/t) 2 求解高阶常微分方程 关键是将高阶转为一阶,odefun的书写. F(y,y,y.y(n-1),t)=0用变量替换,y1=y,y2=y.注意odefun方程定义为列向量 dxdy=y(1),y(2). 程序: function Testode45 tspan=3.9 4.0; %求解区间 y0=2 8; %初值 t,x=ode45(odefun,tspan,y0); plot(t,x(:,1),-o,t,x(:,2),-*) legend(y1,y2) title(y =-t*y + et*y +3sin2t) xlab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科幻星际战争创新创业项目商业计划书
- 科研成果翻译与分享创新创业项目商业计划书
- 智能车辆速度控制创新创业项目商业计划书
- 农业生态修复与节水创新创业项目商业计划书
- 直播内容版权监测与维权服务创新创业项目商业计划书
- 2025年工业污染场地修复技术革新与成本效益对比报告
- 2025年生态环境修复工程资金申请项目申报流程与政策支持分析报告
- 2025年注册土木工程师(市政)考试市政工程设计专项训练试卷 提高市政工程设计能力
- 2025年高考物理电学基础专项训练试题
- 2025年考研英语(一)阅读理解篇章结构分析试卷 深度理解
- 2025年教科版新教材科学三年级上册全册教案设计(含教学计划)
- 从+“心”+出发遇见更好的自己-开学第一课暨心理健康教育主题班会-2025-2026学年高中主题班会
- GB 46031-2025可燃粉尘工艺系统防爆技术规范
- 近十年中职试卷及答案
- 医院信息互联互通化成熟度测评
- 股票k线图入门图解
- GB/T 15812.1-2005非血管内导管第1部分:一般性能试验方法
- 无轨运输安全操作规程
- 专升本英语统考试翻译技巧课堂教学课件2
- 除颤仪的使用及护理
- 内科医生工作总结PPT课件
评论
0/150
提交评论