MATLAB Answers

0

微分方程式の求解

Asked by takeshi moriya on 27 Jul 2019
Latest activity Answered by Etsuo Maeda on 1 Aug 2019
以下の方程式について解を求めようとしています
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)

  0 Comments

Sign in to comment.

Products


Release

R2019a

1 Answer

Answer by Etsuo Maeda on 1 Aug 2019

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

  0 Comments

Sign in to comment.