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

조회 수: 2 (최근 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 CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by