フィルターのクリア

2nd order non linear ODE

1 回表示 (過去 30 日間)
Ahsan Mujtaba
Ahsan Mujtaba 2021 年 3 月 16 日
コメント済み: Star Strider 2021 年 3 月 25 日
I cannot figure out how to solve the folowing non linear eigen value ODE numerically on MATLAB.
I know the value of the second term, g as well. My boundary conditions are and . I know how to solve it by hand but MATLAB is a different story for me. Please help out.
  2 件のコメント
KSSV
KSSV 2021 年 3 月 17 日
Have a look on ode45
Ahsan Mujtaba
Ahsan Mujtaba 2021 年 3 月 18 日
Do I have to convert it into system of 2 first order equation?

サインインしてコメントする。

回答 (1 件)

Star Strider
Star Strider 2021 年 3 月 18 日
Do I have to convert it into system of 2 first order equation?
Yes.
The Symbolic Math Toolbox can make that easier. Use the odeToVectorField and matlabFunction functions to create it as an anonymous function.
Also, since this is a boundary value problem, bvp4c or similar functions may be most appropriate. (I have no idea what ‘E’ and ω are, however using this approach and using random values for those and guessing 9.81 for ‘g’, I got it to work with bvp4c.)
I would post my solution, however I would not want to deprive you of the experience of discovering how to do all this for yourself.
  15 件のコメント
Ahsan Mujtaba
Ahsan Mujtaba 2021 年 3 月 25 日
function dydx = bvpfcn(x,y)
dydx = zeros(2,1);
dydx = [y(2)
(2*0.4878-(((sin(sqrt(10))*x)^2)/10))*y(1)];
end
function res = bcfcn(ya,yb)
res = [ya(1)
yb(1)];
end
function g = guess(x)
g = [sin(x)
4*cos(x)];
end
xmesh = linspace(-pi/2,pi/2,100);
solinit = bvpinit(xmesh, @guess);
sol = bvp4c(@bvpfcn, @bcfcn, solinit);
plot(sol.x, sol.y)
Can you please see this code this time I have carefuly coded the BCs but still my plots are not coming right. I am a beginner I would appreciate any leads. Thanks
Star Strider
Star Strider 2021 年 3 月 25 日
I am not certain what it is supposed to look like, or if my plot is correct. (It would appear to be correct, however I am not certain it is.)
I used a different ‘guess’, and when I use the same in your code, I get essentially the same result I got in mine, although your ‘dydx’ is different from the function I used, that being the result of the matlabFunction call in my code. I also used only 25 points in ‘xmesh’, and that made for a smoother plotted result.
UPDATE — I did not previously realise it, however Mathieu’s equation is actually in the MATLAB documentation. (I just now discovered that in an Interweb search.) See Solve BVP with Unknown Parameter for details. It woulld appear that my result is correct, given that the parameters may not be the same (I have not checked them, since it is late here, and the end of my day.).
I find that comforting!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeBoundary Value Problems についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by