이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

미분 방정식 풀기

초기 조건의 유무와 관계없이 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)

참고 항목