快捷搜索:  汽车  科技

matlab常微分方程数值解:常微分方程MATLAB解析解法入门

matlab常微分方程数值解:常微分方程MATLAB解析解法入门latex(dsolve(ode cond))%打印latex格式cond=y(0)==1;ys(x)=dsolve(ode cond)syms y(x)ode=diff(y x)-y==x;

有很多的常微分方程解析解求解困难,部分微分方程可能需要使用数值解法。这里根据MATLAB软件,介绍一些常微分方程的解析解求解方法。

齐次微分方程

matlab常微分方程数值解:常微分方程MATLAB解析解法入门(1)

matlab常微分方程数值解:常微分方程MATLAB解析解法入门(2)

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格式

一阶非线性微分方程

matlab常微分方程数值解:常微分方程MATLAB解析解法入门(3)

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求微分方程解析解的很好的入门教程,注意代码可幅值粘贴使用哦!记得点赞收藏!

猜您喜欢: