常微分方程matlab算法(常微分方程MATLAB解析解法入门)
有很多的常微分方程解析解求解困难,部分微分方程可能需要使用数值解法。这里根据MATLAB软件,介绍一些常微分方程的解析解求解方法。
齐次微分方程
syms y(x)
ode=diff(y,x)-y==0;
cond=y(0)==1;
ys(x)=dsolve(ode,cond)
syms y(x)
ode=diff(y,x)-y==x;
cond=y(0)==1;
latex(dsolve(ode,cond))%打印latex格式
一阶非线性微分方程
syms y(x)
ode=diff(y,x)^2-y==0;
cond=y(0)==[];
ys(x)=dsolve(ode,cond)%通解
syms y(x)
ode=diff(y,x)-y^2==0;
cond=y(0)==1;
ys(x)=dsolve(ode,cond)
二阶常微分方程syms y(x)
ode=diff(y,x,2)-y==0;
% cond=y(0)==1;
cond=[];
ys(x)=dsolve(ode,cond)
dy=diff(y,x);
cond=[y(0)==2,dy(0)==0];
ys(x)=dsolve(ode,cond)
syms y(x)
ode=x^2*diff(y,x,2) x*diff(y,x)-y==0;
% cond=y(0)==1;
cond=[];
ys(x)=dsolve(ode,cond)
dy=diff(y,x);
cond=[y(1)==2,dy(1)==2];
ys(x)=dsolve(ode,cond)
syms y(x)
ode=diff(y,x,2)-(1-y^2)*diff(y,x) 2*y==0;
% cond=y(0)==1;
cond=[];
ys(x)=dsolve(ode,cond,'implicit',true)
%不能求解符号解,添加属性'implicit',true,隐式解析解
%若隐式求解仍不能,则使用数值解法
三阶常微分方程syms y(x)
ode=diff(y,x,3)-y==0;
% cond=y(0)==1;
cond=[];
ys(x)=dsolve(ode,cond)
dy=diff(y,x);
dyy=diff(y,x,2);
cond=[y(0)==2,dy(0)==0,dyy(0)==0];
ys(x)=dsolve(ode,cond,'IgnoreAnalyticConstraints',true)%不使用简化规则
syms y(x) a b c d e
ode=a*diff(y,x,3)-b*y==0;
% cond=y(0)==1;
cond=[];
ys(x)=dsolve(ode,cond)
dy=diff(y,x);
dyy=diff(y,x,2);
cond=[y(0)==c,dy(0)==d,dyy(0)==e];
ys(x)=dsolve(ode,cond,'IgnoreAnalyticConstraints',true)%不使用简化规则
simplify(ys(0))
解微分方程组syms x(t) y(t)
ode1=diff(x,t)==x y;
ode2=diff(y,t)==-x y;
ode=[ode1,ode2];
cond1=x(0)==0;
cond2=y(0)==1;
cond=[cond1,cond2];
[xs(t) ys(t)]=dsolve(ode,cond)
sol=dsolve(ode,cond);
sol.x
sol.y
这是一篇MATLAB求微分方程解析解的很好的入门教程,注意代码可幅值粘贴使用哦!记得点赞收藏!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com