MATLAB之家

专注于收录分享MATLAB代码、技巧、经验!
当前位置:网站首页 / MATLAB基础 / 正文

如何用Matlab求微分方程de符号解

2020-02-03 / MATLAB基础 / 1096 次围观 / 0 次吐槽

1.dsolve()函数

求解常微分方程的通解

在求通解问题
% syms y(x) 
% y=dsolve(x^2+y+(x-2*y)*diff(y)==0)这里插入代码片


求解常微分方程的初边值问题

% syms y(x)% 定义符号变量
% dy=diff(y);%一阶导数
% d2y=diff(y,2);%二阶导数,用于初值或边值条件的赋值
% y=dsolve(diff(y,3)-diff(y,2)==x,y(1)==8,dy(1)==7,d2y(2)==4)
% y=simplify(y) %把计算结果化解


求解常微分方程组

% syms f(x) g(x)
% df=diff(f);%用于初值或边值条件的赋值
% [f1,g1]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+diff(f)==cos(x))%求通解
% f1=simplify(f1),g1=simplify(g1)
% 
% [f2,g2]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+diff(f)==cos(x),df(2)==0,f(3)==3,g(5)==1)
% f2=simplify(f2),g2=simplify(g2)


求解线性常微分方程组

一阶齐次线性微分方程组

% syms x(t) y(t) z(t)
% X=[x;y;z]% 定义符号向量
% A=[2 1 3;0 2 -1;0 0 2];
% B=[1 2 1]';
% [x, y, z]=dsolve(diff(X)==A*X,X(0)==B)


非齐次线性方程组

syms x(t) y(t) z(t)
X=[x;y;z]% 定义符号向量
A=[1 0 0;2 1 -1;3 2 1];
B=[0;0;exp(t)*cos(2*t)];
x0=[0;1;1];%初值条件
X=dsolve(diff(X)==A*X+B,X(0)==x0)%求符号解
X=simplify([X.x;X.y;X.z])%显示解的各个分量
pretty(X) %分数线居中的显示方式


推荐您阅读更多有关于“MATLAB微分方程组MATLAB之家求解非线性方程,”的文章

请在这里放置你的在线分享代码
本站所有文章如无特别注明均为原创。作者: ,复制或转载请以超链接形式注明转自 MATLAB之家
原文地址《如何用Matlab求微分方程de符号解
额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP,Theme By zblog模板

Copyright©2021. MatlabHome All Rights Reserved. 蜀ICP备15004325号-1

分享:

支付宝

微信

扫一扫,想赞多少就多少~