Main Content

미분 방정식 풀기

초기 조건의 유무와 관계없이 dsolve 함수를 사용하여 해석적으로 미분 방정식의 해를 구합니다. 연립미분방정식의 해를 구하려면 연립미분방정식 풀기 항목을 참조하십시오.

1계 선형 ODE

다음 미분 방정식을 풀어 보겠습니다.

dydt=ty.

기호 함수 y(t)를 생성하려면 우선 syms를 사용하여 y를 나타내십시오.

syms y(t)

==를 사용하여 방정식을 정의하고 diff 함수를 사용하여 미분을 표현합니다.

ode = diff(y,t) == t*y
ode(t) =
diff(y(t), t) == t*y(t)

dsolve를 사용하여 방정식을 풉니다.

ySol(t) = dsolve(ode)
ySol(t) =
C1*exp(t^2/2)

조건이 있는 미분 방정식 풀기

이전 해법에서는 조건을 지정하지 않았기 때문에 상수 C1이 나타납니다. 초기 조건 y(0) == 2를 사용하여 방정식을 풉니다. dsolve 함수는 이 조건을 충족시키는 C1의 값을 구합니다.

cond = y(0) == 2;
ySol(t) = dsolve(ode,cond)
ySol(t) =
2*exp(t^2/2)

dsolve로 방정식을 풀 수 없다면 수치적으로 방정식을 풀어 보십시오. 수치적으로 2계 미분 방정식 풀기 항목을 참조하십시오.

초기 조건이 있는 비선형 미분 방정식

초기 조건이 있는 다음 비선형 미분 방정식을 풀어 보십시오. 이 방정식에는 여러 개의 해가 있습니다.

(dydt+y)2=1,y(0)=0.

syms y(t)
ode = (diff(y,t)+y)^2 == 1;
cond = y(0) == 0;
ySol(t) = dsolve(ode,cond)
ySol(t) =
 exp(-t) - 1
 1 - exp(-t)

초기 조건이 있는 2계 ODE

2개의 초기 조건이 있는 다음 2계 미분 방정식을 풀어 보십시오.

d2ydx2=cos(2x)y,y(0)=1,y'(0)=0.

방정식과 조건을 정의합니다. 두 번째 초기 조건은 y의 1계 도함수를 포함합니다. 기호 함수 Dy = diff(y)를 작성하여 도함수를 표현한 다음 Dy(0)==0을 사용하여 조건을 정의합니다.

syms y(x)
Dy = diff(y);

ode = diff(y,x,2) == cos(2*x)-y;
cond1 = y(0) == 1;
cond2 = Dy(0) == 0;

y에 대해 ode를 풉니다. simplify 함수를 사용하여 해를 단순화합니다.

conds = [cond1 cond2];
ySol(x) = dsolve(ode,conds);
ySol = simplify(ySol)
ySol(x) =
1 - (8*sin(x/2)^4)/3

초기 조건이 있는 3계 ODE

3개의 초기 조건이 있는 다음 3계 미분 방정식을 풀어 보십시오.

d3udx3=u,u(0)=1,u(0)=1,u(0)=π.

초기 조건에는 1계 및 2계 도함수가 포함되어 있으므로 두 개의 기호 함수 Du = diff(u,x)D2u = diff(u,x,2)를 작성하여 초기 조건을 지정합니다.

syms u(x)
Du = diff(u,x);
D2u = diff(u,x,2);

방정식과 초기 조건을 작성하고 이 방정식을 풉니다.

ode = diff(u,x,3) == u;
cond1 = u(0) == 1;
cond2 = Du(0) == -1;
cond3 = D2u(0) == pi;
conds = [cond1 cond2 cond3];

uSol(x) = dsolve(ode,conds)
uSol(x) =
 
(pi*exp(x))/3 - exp(-x/2)*cos((3^(1/2)*x)/2)*(pi/3 - 1) -...
(3^(1/2)*exp(-x/2)*sin((3^(1/2)*x)/2)*(pi + 1))/3

기타 ODE 예

다음 표에는 여러 미분 방정식의 예와 관련 Symbolic Math Toolbox™ 구문이 나와 있습니다. 마지막 예제는 에어리 미분 방정식이며, 이러한 방정식의 해를 에어리 함수라고 합니다.

미분 방정식

MATLAB® 명령

dydt+4y(t)=et,y(0)=1.

syms y(t)
ode = diff(y)+4*y == exp(-t);
cond = y(0) == 1;
ySol(t) = dsolve(ode,cond)
ySol(t) =
exp(-t)/3 + (2*exp(-4*t))/3

2x2d2ydx2+3xdydxy=0.

syms y(x)
ode = 2*x^2*diff(y,x,2)+3*x*diff(y,x)-y == 0;
ySol(x) = dsolve(ode)
ySol(x) =
C2/(3*x) + C3*x^(1/2)

에어리 방정식.

d2ydx2=xy(x).

syms y(x)
ode = diff(y,x,2) == x*y;
ySol(x) = dsolve(ode)
ySol(x) =
C1*airy(0,x) + C2*airy(2,x)

참고 항목