ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

matlab——微分方程

2021-07-22 18:00:33  阅读:207  来源: 互联网

标签:matrix 方程组 dsolve matlab 常微分 微分方程 diff


@

目录


前言

本文将介绍如何用matlab求解一阶常微分方程(组)的特解,通解。
如果你对微分方程的常见解法感兴趣,可以参考这篇文章常微分方程的常见题型与解法


一、常微分方程

在matlab中,命令dsolve专用于求解微分方程的符号解,格式如下:

\[[y_1,...,y_N]=dsolve(eqns,conds,name,value) \]

\(eqns\)为符号微分方程或符号微分方程组;\(conds\)为初值条件或边值条件;\(name\)和\(value\)为可选的成对参数。

\(eg.\)试求微分方程

\[y'''-y''=x,y(1)=8,y'(1)=7,y''(2)=4 \]

code:

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)	//化简

二、常微分方程组

1.普通常微分方程组

\(eg.\)

\[y= \begin{cases} f''+3g= sinx\\ g'+f'=cosx \end{cases} \]

code:

syms f(x) g(x);
df=diff(f);
[f1,g1]=dsolve(diff(f,2)+3*g==sin(x),diff(g)+df==cos(x),df(2)==0,f(3)==3,g(5)==1);
f1=simplify(f1),g1=simplify(g1)

2.线性常微分方程组

\(eg.\)

\[X'= \left( \begin{matrix} 1 & 0 & 0\\ 2 & 1 & -2 \\ 3 & 2 & 1 \end{matrix} \right) X+ \left( \begin{matrix} 0\\ 0\\ e^tcos2t \end{matrix} \right),X(0)= \left( \begin{matrix} 0\\ 1 \\ 1 \end{matrix} \right) \]

code:

syms=x(t) y(t) z(t);
X=[x;y;z];
A=[1,0,0;2,1,-2;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) %分数线居中的显示方式

参考书目

《数学建模算法与应用》

标签:matrix,方程组,dsolve,matlab,常微分,微分方程,diff
来源: https://www.cnblogs.com/Tarjan-Zeng/p/15045405.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有