matlab解常微分方程,Matlab中解常微分方程的ode45
ode是专门用于解微分方程的功能函数,他有ode23,ode45,ode23s等等,采用的是Runge-Kutta算法。ode45表示采用四阶,五阶runge-kutta单步算法,截断误差为(Δx)^3。解决的是Nonstiff(非刚性)的常微分方程.是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,换用ode23来解.其他几个也是类似的用法
使用方法
[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)/t^2; %定义函数
tspan=[1 4]; %求解区间
y0=-2; %初值
[t,y]=ode45(odefun,tspan,y0);
plot(t,y) %作图
title('t^2y''=y+3t,y(1)=-2,1
legend('t^2y''=y+3t') xlabel('t')
ylabel('y') % 精确解
% dsolve('t^2*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 + e^t*y'' +3sin2t')
xlabel('t') ylabel('y')
function y=odefun(t,x)
y=zeros(2,1); % 列向量
y(1)=x(2);
y(2)=-t*x(1)+exp(t)*x(2)+3*sin(2*t);
end
end
matlab解常微分方程,Matlab中解常微分方程的ode45相关推荐
- python序列解包_python中解包
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 序列解包(sequence unpacking)是python中非常重要和常用的 ...
- matlab中sinks,MATLAB Simulink模块库详解(二)Sinks篇
MATLAB Simulink模块库详解(二)Sinks篇 Simulink模块库概述 1.Sources模块库,为仿真提供各种信号源 2.Sinks模块库,为仿真提供输出设备元件 3.Continu ...
- matlab在数值计算中的应用,详解MATLAB在科学计算中的应用
详解MATLAB在科学计算中的应用 编辑 锁定 讨论 上传视频 <详解MATLAB在科学计算中的应用>是2011年电子工业出版社出版的图书,作者是陈泽占海明. 书 名 详解MATLA ...
- matlab中gad,10大经典算法matlab代码以及代码详解【数学建模、信号处理】
[实例简介] 10大算法程序以及详细解释,包括模拟退火,禁忌搜索,遗传算法,神经网络.搜索算法. 图论. 遗传退火法.组合算法.免疫算法. 蒙特卡洛.灰色预测.动态规划等常用经典算法.是数学建模.信号 ...
- matlab solve 保留正实数解,matlab solve命令中解的顺序问题
满意答案 ____阿牛 2013.04.06 采纳率:57% 等级:12 已帮助:12175人 在matlab里面solve命令主要是用来求解代数方程(即多项式)的解,但是也不是说其它方程一个也 ...
- 常微分方程matlab求解
常微分方程matlab求解 一般格式 matlab求解常微分方程的调用格式为: 例如,现在需要求解常微分方程 则有 y=dsolve('Dy=-2*y+2*x^2+2*x','x') 这个常微分方程的 ...
- 差商近似1阶导数matlab,常微分方程的解法 (一): 常微分方程的离散化 :差商近似导数、数值积分方法、Taylor 多项式近似...
常微分方程的解法求解系列博文: 常微分方程的解法 (一): 常微分方程的离散化 :差商近似导数.数值积分方法.Taylor 多项式近似 常微分方程的解法 (二): 欧拉(Euler)方法 常微分方程的 ...
- matlab微分方程实例,Matlab常微分方程的解法
[实例简介] 和Matlab应用有关的,具体介绍常微分方程的使用和解法,原理性介绍,帮助理解. 局部截断误差指的是,按()式计算由到这一步的计算值与精确值 之差 +.为了估计它,由 展开得到的精确值 ...
- matlab求二阶微分方程的通解,二阶常微分方程matlab的数值解和解析解分析总报告.ppt...
方程求解程序清单 a=-1,b=2,c=-1; w=1; m=2; n=1; h = 0.02; t=0:h:30; s1=dsolve('a*D2y+b*Dy+c*y=sin(w*t)','y(0) ...
- matlab研究微分方程,matlab求微分方程的解.doc
matlab求微分方程的解.doc matlab求微分方程的解一.问题背景与实验目的二.相关函数(命令)及简介三.实验内容四.自己动手一.问题背景与实验目的实际应用问题通过数学建模所归纳而得到的方程, ...
最新文章
- 《系统集成项目管理工程师》必背100个知识点-64采购文件
- MFC列表控件ListControl和树控件TreeControl
- 开启linux ssh
- CoolUIViewAnimations
- ExtJs六(ExtJs Mvc首页展示)
- 人们的Live Meeting系列 (floyd)
- 重温微积分 —— 偏微分与链式法则
- 删数问题(Noip1994)--贪心
- SpringCloud学习(SPRINGCLOUD微服务实战)一
- 认识以及安装redis
- 软工视频-----系统结构图
- 解决Kaggle新用户注册无法弹出验证提示的问题
- Python实现八大排序算法
- python怎么重启内核_python怎么重启服务器
- 计算机解决科学研究,EndNote在Word中插入文献时电脑变卡的解决方法 | 科研动力...
- 超级计算机还是超级烂尾?天河一号闲置近1年
- vue-easy-print批量分页打印
- [数据可视化] 图表设计原则
- java计算机毕业设计个性化穿搭推荐系统MyBatis+系统+LW文档+源码+调试部署
- 【区块链技术与应用】(一)
热门文章
- 计算机课例,计算机的基本组成教学课例
- csol永恒python怎么升级_python|怎么升级python的pip
- jQuery中ajax的触发时机,javascript - 如何在启动Ajax查询的jQuery中触发方法change() - 堆栈内存溢出...
- 树型列表结构宽度调整_Material Design 网格列表
- solidworks无法获得下列许可standard_无法获取下列许可solidworks standard解决方法SW实战营...
- intellij2019.1 破jie不了的解决办法
- 看了这个总结,其实 Matplotlib 可视化,也没那么难!
- 网易裁员事件,除了气愤,我们还该思考些什么?
- 这些超实用的电脑快捷键,你都get到了吗?
- java实现语法分析器_200 行 JS 代码,带你实现代码编译器