2013-04-14 1 views
0

방정식은 다음과 같다Matlab에서이 미분 방정식 시스템을 표현하고 해결하는 방법은 무엇입니까?</p> <p>DXI (t)/DT = -c * XI (t) * 이순신 (t)</p> <p>dyi (t)/DT = A *의 Σ {I = 1 :

여기서 a, b 및 c는 원하는 상수 값 (예 : a = 1)이고, b = 2, c = 3이다. x1 (t) * y1 (t) + x2 (x1 (t) * y1 (t))는 i = 1에서 n까지의 합을 의미하며, 예를 들어 n = 3 일 때 을 의미한다. (t) * y2 (t) + x3 (t) * y3 (t)

따라서 &을 어떻게 matlab을 사용하여 해결할 수 있습니까?

+1

http://www.mathworks.com/help/symbolic/solve-a-system-of-differential-equations.html을 확인 했습니까? –

+0

네,하지만 두 번째 방정식에서 이와 같은 용어가 있기 때문에 dsolve로 해결할 수 있다고 생각하지 않습니다 : xi (t) * yi (t - 1). – JZ555

답변

1

지연 미분 방정식을 작성해야합니다. 나는 어떻게해야 하는지를 설명하려했으나,이 멋진 것을 발견했다. tutorial 그냥 그렇게해라. 예 1은 기본적으로 필요한 것입니다. 을 유지 :

유일한 여분주의해야 할 점은 당신이

편집 당신이 더 많은 도움이 필요하면 알려주세요 미분 방정식

의 동일한 집합으로 DX/DT 및 DY의/DT을 통합해야한다는 것입니다 하나의 파일로

function dYdt = ddefun(t,Y,Z) 
    % assume Y = [x;y] 
    x = Y(1:n); % 2n is the size of Y. this step is unnecessary ... 
    y = Y(n+1:2*n); % but helps visualize what is happening 

    ytau = Z(:,1); 

    dYdt(1:n) = -c*x.*y; 
    dYdt(n+1:2*n) = a*dot(x,y) + x.*ytau + b 

end 
+0

감사합니다. 이 지연 미분 방정식에 대한 연구를 수행하고 여기에 또 다른 예제를 발견했습니다. http://matlab.cheme.cmu.edu/tags/delay-differential-equation/ – JZ555

+0

이 예제에서 실제로 방정식을 다음과 같이 통합 할 필요는 없습니다. 같은 세트. 그래서, 제가해야만하는 것은 xi와 yi의 과거 값을 나에게주는 역사 함수를 만드는 것입니다. 이제 유일한 문제는 내 dde를 포함하는 함수 내에서 합계를 만드는 방법입니다. – JZ555

+0

@ user2280026 방정식이 얽혀 있기 때문에 방정식을 같은 세트에 통합해야합니다. 그런 다음 변수에 대한 [dot] (http://www.mathworks.com/help/matlab/ref/dot.html) 제품이 있습니다. 문제를 너무 심각하게 생각하지 마십시오. 위에 편집하십시오. – Rasman

0

숫자 솔루션 (초기 조건도 필요함)을 찾으려면 가장 일반적인 솔버는 ode45입니다. 링크는 특정 ODE를 표현하는 방법에 대한 예제를 제공합니다.

나중에 편집 : 용어에 대한 Y 내가 ( − 1) t에 대한 길이 1의 "덩어리"에 기능을 통합 할 수 있습니다 — 예를 들어, t ∈ {[0,1], [1,2], [2,3] ...} — 그리고 실제 시간 "청크"에서 이전에 발견 된 해를 계수로 사용합니다. 이와 같이 해답은 그들 자신으로부터 "피드"를받으며, 당신은 회선에 의해 귀찮게하지 않을 것입니다. 물론 초기 반복에서 yi (t 1) = 0 (또는 다른 알려진 함수)을 고려해야합니다.

관련 문제