2013-04-15 2 views
1
Dx=y 
Dy=-k*y-x^3+9.8*cos(t) 
inits=('x(0)=0,y(0)=0') 

이들은 내가 구하고자하는 미분 방정식입니다.어떻게 MATLAB에 비선형 미분 방정식을 그립니 까

먼저 미분 방정식을 풀고 그래프를 그려 봅니다.

Dsolve('Dx=y','Dy=-k*y-x^3+9.8*cos(t)', inits) 

그러나이 시스템에는 명시적인 해결책이 없습니다.

는 지금은 붙어 :(

어떻게 당신이 방정식을 해결하지 않고이 시스템을 플롯 할 수 있습니다

+0

는 X, Y, t 및 사용을 정의하는 다음 플롯 결과

plot(y(:,1), y(:,2)), xlabel('x'), ylabel('y'), grid 

을 수행하여 Y에 대한 위상 초상화 X을 플롯 할 수 있습니다 줄거리 후 – apomene

답변

3

먼저 그것은 2 개 개의 인수를 취하는 함수가 될 필요가 해결하고자하는 미분 방정식 정의?.를 - 현재 시간 t와 현재 위치 x 및 열 벡터를 반환합니다. 대신에 x와 y, 우리는 x(1)x(2)를 사용합니다.

k = 1; 
f = @(t,x) [x(2); -k * x(2) - x(1)^3 + 9.8 * cos(t)]; 

데프을 당신을 통해 해결하려는 시간 범위 및 초기 조건 중첩에 :

tspan = [0, 10]; 
xinit = [0, 0]; 
이제

방정식을 해결 수치 ode45를 사용하여 :

enter image description here

이 음모에 결과

ode45(f, tspan, xinit) 

특정 시점에 솔루션의 값을 얻으려면 일부 출력 인수를 요구하십시오 :

[t, y] = ode45(f, tspan, xinit); 

당신은

enter image description here

+0

Yoy 감사합니다. 하지만 이제 어떻게 x (1) 대 x (2)의 그래프를 얻을 수 있습니까? 그러나 나를 도와 주셔서 고맙습니다. –

+0

@ShawnSihyunJeon 그래프를 만드는 방법을 보여주기 위해 편집했습니다. –

+0

와우. 고마워요! –

관련 문제