Chaos is a lad|

West11

园龄:11个月粉丝:1关注:1

微分方程模型

matlab求解微分方程

%dsolve('equations','initial conditions')
%使用
syms y(x); %定义y是关于x的函数
eq = y-diff(y,x) == 2*x %将方程付给eq
dsolve(eq)%求通解
dsolve(eq,y(0) == 3)%求特解

对多元微分方程

{dxdt=ydydt=x

syms x(t),y(t);
eq1 = diff(x,t)==y;
eq2 = diff(y,t)==-x;
eqs = [eq1 eq2];
conds = [x(0)==0 y(0)==0];
[xsol,ysol] = dsolve(eqs, conds);

对于大多数微分方程,很难求解解析解,一般求数值解。

数值解一般是通过将函数离散化,例如dfdx=f(n+1)f(n)Δx,然后将Δx.

ODE系类函数(Ordinary Differential Equation)

求数值解常用ode系列函数(常微分方程)

ode函数分为两类,求解刚性非刚性问题

两类问题的分类大体上是根据变化的陡峭程度来分的。

非刚性ode求解命令
求解器solver 功能 说明
ode45 一步算法:4、5阶龙格库塔方程:累计截断误差(Δx)^5 大部分尝试的首选算法
ode23 一步算法:2、3阶龙格库塔方程:累计截断误差(Δx)^3 适用于精度较低的情形
ode113 多步算法:Adams 计算时间比ode45短
刚性ode求解命令
求解器solver 功能 说明
ode23t 梯形算法 适度刚性情形
ode15s 多步法:Gear’s反向数值微分:精度中等 若ode45失效时,可以尝试使用
ode23s 一步法:2阶Rosebrock算法:精度低 当精度较低时,计算时间比ode15s短
ode23tb 梯形算法:精度低 当精度较低时,计算时间比ode15s短

函数使用见常微分方程的函数:常微分方程 - MATLAB & Simulink - MathWorks 中国

本文作者:West11

本文链接:https://www.cnblogs.com/cxy1114blog/p/18292555

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   West11  阅读(12)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起