매트랩을 이용한 미분방정식 풀이.docx




매트랩 Matlab 프로그램을 이용한 미분방정식 풀이


매트랩 Matlab의 diff() 함수와 dsolve() 함수를 이용하여 미분방정식을 푼다.


환경:   OS – Windows 7 Ultimate K SP1 64bit

MATLAB – R2016a (9.0.0341360) 64-bit


예시: 매트랩 Matlab의 명령창 Command Window에서 dsolve() 함수를 아래와 같이 사용할 수 있다.


설명: 매트랩의 미분방정식을 푸는 함수인 dsolve() 함수는 아래와 같이 사용된다.

dsolve(f)

dsolve(f, x)

dsolve(f, cond1, cond2)

즉, dsolve() 함수의 인자로 반드시 미분방정식 하나를 입력해야 하고, 필요에 따라서 독립변수 또는 초기값 조건과 경계값 조건을 입력한다. dsovle() 함수로 풀이할 미분방정식과 초기 및 경계 조건의 종속 및 독립변수는 반드시 심볼릭 함수 Symbolic functions과 심볼릭 변수 Symbolic variables로 구성되어 있어야 한다. 이때 독립변수와 초기, 경계 조건은 같이 사용할 수 없는데, 독립변수 인자는 입력하지 않아도 되므로 이후의 설명에서는 생략한다. 정리하면 dsolve() 함수는 다음과 같은 형식으로 사용된다.

dsolve([미분방정식:심볼릭 변수/함수], {초기/경계 조건}, {초기/경계 조건}, …, {초기/경계 조건})

[인자] 대괄호 안의 심볼릭 변수와 함수로 이루어진 미분방정식은 반드시 입력되어야 하지만, {인자} 중괄호 안의 인자는 초기값 조건 또는 경계값 조건에 대한 식으로 미분방정식에 따라 입력한다. 초기/경계 조건이 없으면 풀이된 미분방정식의 해에는 상수가 포함되어 나타나게 된다.


초기/경계 조건없이 dsolve() 함수를 이용하여 미분방정식을 풀면 위와 같이 미분방정식의 해는 적분상수를 포함하고 있다. 적분상수는 C14, C24, C25 등등 대문자 C와 숫자로 표현되며, 매트랩 프로그램에서 자동으로 할당하므로 과정에 따라 적분상수 이름의 숫자는 매번 바뀐다. 다음과 같이 초기/경계 조건이 주어질 경우 미분방정식의 해는 다음과 같이 출력된다.


미분방정식은 위와 같이 도함수를 다른 변수에 할당하고 미분방정식을 만들거나 diff() 함수 자체를 포함한 미분방정식을 변수에 할당 또는 dsolve() 함수에 바로 사용할 수 있다. 초기/경계 조건의 경우, 심볼릭 함수를 이용하여 값을 입력하여 사용하거나 subs() 함수를 이용하여 독립변수에 값을 할당하여 초기/경계 조건을 설정할 수 있다. 위와 같은 방법들로 dsolve() 함수를 사용하여 미분방정식을 풀 수 있지만, 복잡한 수식이나 고계 미분방정식에서는 변수와 함수 사용이 복잡하다. 이때 dsolve() 함수에는 다음과 같이 미분방정식 및 초기/경계 조건을 사용할 수 있다.


위와 같이 미분방정식 및 초기/경계 조건을 문자열로 할당하고 도함수는 문자열 D를 이용하여 표현한다. 즉, 함수 y의 도함수는 Dy, 2계 도함수는 D2y, 3계 도함수는 D3y 등으로 표현되며 반드시 문자열 내에서만 사용가능하다. 위와 같은 방법은 개인적으로 미분방정식 풀이 사용에 더 편하다고 생각되어 이후의 내용에는 문자열로 표현하여 풀이한다. 단, 위와 같이 문자열을 이용하여 미분방정식을 풀 때 심볼릭 변수 사용에 주의해야 한다.


문자열로 미분방정식을 표현하여 미분방정식을 풀이할 때 독립변수는 이전의 어떠한 변수 선언과 상관없이 t로 선언되므로 이에 주의하며, 종속변수를 따로 설정하지 않아도 D 문자 뒤의 문자를 종속변수로 자동 인식한다. 하지만 위와 같이 심볼릭 변수를 사용하지 않고 미분방정식을 풀 경우 아래와 같이 모든 문자가 변수로 인식되지 않으므로 해 함수에 대입, subs() 함수를 이용한 대입을 사용할 수 없다.


즉, 아래와 같이 필요한 심볼릭 변수를 선언하여 값을 대입할 수 있도록 한다.


요약: 미분방정식 풀이에 사용될 변수와 함수는 모두 심볼릭 변수와 심볼릭 함수로 미리 선언하여 후에 상수를 대입할 수 있도록 하며, 문자열을 이용하여 미분방정식과 초기/경계 조건 식을 나타낸다. 문자열로 수식을 표현할 때, 미분식은 [D 문자 + n 계수 + 종속변수]를 이용하여 나타내고, 독립변수는 t로 자동 할당되므로 이에 유의하여 심볼릭 변수를 선언한다.

Posted by 귀여운촌아
: