help me to solve this second order non-linear differential eq?

3 ビュー (過去 30 日間)
pedram
pedram 2012 年 12 月 26 日
can anyone help me to solve this?
y''+a*sign(y')*|y'|^1.8+by=c*sin(wt)
y=y(t) ;
y(0)=0 ; y'(0)=0
  4 件のコメント
Walter Roberson
Walter Roberson 2012 年 12 月 27 日
Where is the "x" in your revised ODE ?
pedram
pedram 2012 年 12 月 27 日
i assumed x=c*sin(wt)

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

採用された回答

Teja Muppirala
Teja Muppirala 2012 年 12 月 27 日
Well you're almost there
Rewrite this:
y(2)=y'(1)
y'(2)+a*sign*y'(1)*|y'(1)|^1.8+by(1)-c*sin(wt)=0
Like this:
y'(1) = y(2)
y'(2) = -a*sign(y(2))*abs(y(2))^1.8 - b*y(1) + c*sin(w*t)
And then now it is in a form that you can use with MATLAB's many ODE solvers.
% Just picking some values for a,b,c,w
a = 1.2;
b = 2.4;
c = 0.4;
w = 3;
dYdt = @(t,y) [y(2); -a*sign(y(2))*abs(y(2))^1.8 - b*y(1) + c*sin(w*t)]
ode45(dYdt, [0 30], [0 0])
  2 件のコメント
Greg Heath
Greg Heath 2012 年 12 月 28 日
As Walter has stated, previously, the answer is y(t)= y'(t)=y''(t)= 0 for all t because at t=0 y, y' and y'' are all zero.
However if x = cos(w*t) there will be a solution that can be obtained numerically.
Walter Roberson
Walter Roberson 2012 年 12 月 28 日
When I used Teja's formulation, then with non-negative "a" I get what appears to be a sine-convolved sine wave. With small negative "a" on the order of -1/10000 then the sine wave still looks more or less sine-convolved but with an expanding function, but once the wave gets to around +/- 1000 then the second derivative heads towards +/- infinity. Also, there are repeated small sections of the primary output which are not especially sine-convolved.
With cos() instead of sin() the output looks much the same.

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2012 年 12 月 27 日
The solution is y(t) = 0, x(t) = 0
  2 件のコメント
Greg Heath
Greg Heath 2012 年 12 月 27 日
Only because this is an ill-posed problem with the silly condition x(0)=0. Typically. the assumption would be that x is an arbitrary known input, not necessarily zero at t=0. For example, your solution is correct for x(t) = sin(t), but not for x(t) = cos(t).
Then
y1' = 0*y1 + 1*y2
y2' = - b*y1 - a*y2*abs(y2)^0.8 + x
Which, as far as I can see, can only be solved numerically.
Walter Roberson
Walter Roberson 2012 年 12 月 27 日
The original problem had x(t) on the right-hand side rather than c*sin(wt)

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

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by