微分方程式の求解

조회 수: 10 (최근 30일)
takeshi moriya
takeshi moriya 2019년 7월 27일
답변: Etsuo Maeda 2019년 8월 1일
以下の方程式について解を求めようとしています
dsolveを用いてこれを解こうとしてみましたが,陽的な解を見つけれませんでした.
どのようにすれば解を求めることができるか教えていただければ幸いです
以下に作成したコードを示します
syms x(t) y(t) t
eqn1 = diff(x,t,3)+3/4*x*diff(x,y,2)-1/2*(diff(x,t))^2+y==0;
eqn2 = diff(y,t,2)+3/4*x*diff(y,t)==0;
eqns = [eqn1 , eqn2];
Dx=diff(x,t);
cond = [x(0)==0, Dx(0)==0,y(0)==1,Dx(Inf)==0,F(Inf)==0];
sol = dsolve(eqns)

답변 (1개)

Etsuo Maeda
Etsuo Maeda 2019년 8월 1일
dsovle に cond が与えられていないようです。
また、cond の x(0) == 0 は画像にある境界条件に明示されていないようです。
正確な式を正確にコードに記述・実行しても Warning: Unable to find explicit solution となるのであれば、当該の式は少なくともMuPADエンジンで陽的に解ける問題ではありません(閉じた式ではない)。
"xは常に正の実数" など条件を追加できれば解けることもあります。その際は assume を使ってください。
いずれにせよ、dsolveで解けないのであれば、ode45などを使って数値解を求めることになります。
odeToVectorField を使って微分方程式の次元を 1 に簡約したあとに、matlabFunctionを使って無名関数をつくり、ソルバに渡します。
境界値問題を解くことになるのでbvpがよいかもしれません。
HTH

제품


릴리스

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!