matlab——微分方程


@


前言

本文將介紹如何用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) %分數線居中的顯示方式

參考書目

《數學建模算法與應用》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM