이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
연립미분방정식 풀기
초기 조건의 유무와 상관없이 dsolve
함수를 사용하여 몇 가지 변수로 여러 개의 연립상미분방정식을 풉니다. 단일 미분 방정식을 풀려면 미분 방정식 풀기 항목을 참조하십시오.
연립미분방정식 풀기
다음 1계 선형 연립미분방정식을 풀어 보십시오.
기호 함수 u(t)
및 v(t)
를 생성하려면 우선 syms
를 사용하여 및 를 나타냅니다.
syms u(t) v(t)
==
를 사용하여 방정식을 정의하고 diff
함수를 사용하여 미분을 표현합니다.
ode1 = diff(u) == 3*u + 4*v; ode2 = diff(v) == -4*u + 3*v; odes = [ode1; ode2]
odes(t) =
해를 구조체의 요소로 반환하는 dsolve
함수를 사용하여 방정식을 풉니다.
S = dsolve(odes)
S = struct with fields:
v: C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t)
u: C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t)
dsolve
로 방정식을 풀 수 없다면 수치적으로 방정식을 풀어 보십시오. 수치적으로 2계 미분 방정식 풀기 항목을 참조하십시오.
u(t)
및 v(t)
에 액세스하려면 구조체 S
의 요소를 참조하십시오.
uSol(t) = S.u
uSol(t) =
vSol(t) = S.v
vSol(t) =
또는 여러 개의 출력 인수를 제공하여 직접 u(t)
및 v(t)
를 저장할 수도 있습니다.
[uSol(t),vSol(t)] = dsolve(odes)
uSol(t) =
vSol(t) =
조건을 지정하지 않았기 때문에 상수 C1
및 C2
가 나타납니다. 초기 조건 u(0) == 0
및 v(0) == 0
을 사용하여 연립방정식을 풉니다. dsolve
함수는 이러한 조건을 만족하는 상수 값을 구합니다.
cond1 = u(0) == 0; cond2 = v(0) == 1; conds = [cond1; cond2]; [uSol(t),vSol(t)] = dsolve(odes,conds)
uSol(t) =
vSol(t) =
fplot
을 사용하여 해를 시각화합니다.
fplot(uSol) hold on fplot(vSol) grid on legend('uSol','vSol','Location','best')
행렬 형식의 미분 방정식 풀기
dsolve
를 사용하여 행렬 형식의 미분 방정식을 풀어 보십시오.
다음 연립미분방정식이 있다고 가정해 보겠습니다.
이 방정식의 행렬 형식은 다음과 같습니다.
다음과 같이 가정하겠습니다.
이 방정식은 이제 가 됩니다.
다음 행렬과 행렬 방정식을 정의합니다.
syms x(t) y(t) A = [1 2; -1 1]; B = [1; t]; Y = [x; y]; odes = diff(Y) == A*Y + B
odes(t) =
dsolve
를 사용하여 행렬 방정식을 풉니다. simplify
함수를 사용하여 해를 단순화합니다.
[xSol(t),ySol(t)] = dsolve(odes); xSol(t) = simplify(xSol(t))
xSol(t) =
ySol(t) = simplify(ySol(t))
ySol(t) =
조건을 지정하지 않았기 때문에 상수 C1
및 C2
가 나타납니다.
초기 조건 및 을 사용하여 연립방정식을 풉니다. 방정식을 행렬 형식으로 지정할 때 초기 조건 역시 행렬 형식으로 지정해야 합니다. dsolve
는 이러한 조건을 만족하는 상수 값을 구합니다.
C = Y(0) == [2;-1]; [xSol(t),ySol(t)] = dsolve(odes,C)
xSol(t) =
ySol(t) =
fplot
을 사용하여 해를 시각화합니다.
clf fplot(ySol) hold on fplot(xSol) grid on legend('ySol','xSol','Location','best')