编程的德彪 爱学习的小胖娃
关注数: 967 粉丝数: 507 发帖数: 1,515 关注贴吧数: 11
matlab-微分方程求解ode45 在基础教程完结后,一直苦于没有内容更新,在后续更新中,会针对同学们在日常学习中经常用到的基础应用进行针对性更新,主要包括数学建模、语音处理、信号与系统、模式识别等内容。 针对于微分方程的求解,本期主要针对于微分方程的数值解,解析解可参考dsolve函数对其进行求解,微分方程数值解有多种求解方法,从matlab求解方式来看: (1)可以在脚本中编程求解实现,即编写程序求解实现; (2)可以在simulink中调用模块求解。 首先对程序求解进行研究,关于微分方程的求解,大家一定有过相关的了解,比如常见的欧拉法、龙格库塔法等等,后续针对于该部分内容都会进行相应研究,关于微分方程求解,先给大家提振信心,本次教程主要针对于matlab自带函数ode45如何求解微分方程进行应用。 对于ode45函数的调用,大家可以在matlab命令行中输入helpode45,观察相关函数的调用方式,其内核为4,5阶龙格库塔法,咱们先不了解具体的数学原理,在本次求解中,先利用matlab可以实现简单的微分方程的求解。Ode45调用格式如下: [t,y] = ode45(odefun,tspan,y0) 其中odefun为要求解的微分方程的标准形式,tspan为求解区间,y0为初始解。 (1) 针对于一阶微分方程在区间[0,10]上的解的情况,其中y(0)=1 在matlab中首先构建odefun,即函数表达式,上述形式即为标准形式,构建函数如下(个人喜欢用子函数定义,这样便于后续调用): function dydt=fun(t,y) dydt=y+t*sin(t); end 关于子函数的调用基础知识,同学可参考之前的基础教程1. 创建主函数,调用上述,主程序如下: clc;clear;close all; tspan=[0,10]; y0=1; [t,y]=ode45(@fun,tspan,y0); 主要调用的函数为函数句柄,即在前加一个@,这样就可以求解出y了。求解结果如下图所示.这样就可以完成一阶简单微分方程的求解了!后续会更新多阶微分方程求解和其他数值解的方法。本次教程主要针对于ode45函数应用。
1 下一页