매트랩을 이용한 미분방정식 풀이.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 귀여운촌아
:

열역학 1-102.docx



열역학 Thermodynamics 5th Edition.

Fundamentals and Applications

-Yunus A. Cengel

-Michael A. Boles

-부준홍 김덕줄 김세웅 김수현 신세현 이교우 정우남 최경민 공역

McGraw-Hill



문제 1-102



고도의 함수로 주어진 대기압 관계식을 이용하여 각 도시에서의 대기압을 계산한다.

가정: 주어진 관계식 외에 대기압에 영향을 주는 요소는 고려하지 않는다.

풀이: 주어진 관계식에 각 도시의 고도를 대입하면 다음과 같다.


Posted by 귀여운촌아
:


열전달 1-123.docx


Q_loss.m



열전달 HEAT AND MASS TRANSFER 4th Edition SI Units.

Fundamentals and Applications

-YUNUS A. CENGEL

-AFSHIN J. GHAJAR

-유성연, 김경훈, 김병철, 김창녕, 이종붕, 조형희 공역

McGraw-Hill



1-123


가정 : 정상상태이며, 창문의 틈이나 열고 닫거나에 대한 열손실은 고려하지 않는다.


EES를 이용한 풀이 :

메뉴의 [File] [New] 또는 ctrl + N 을 이용하여 새로운 Equations Window를 연다.

Q=U*A*(Tin-Tout)

A=1.2*1.8

Tin=20

Tout=-8

위 식을 Equations Window에 적는다.

각각의 식의 구분은 줄바꿈 또는 세미콜론(;)으로 구분한다.

사용한 문자는 직접 계산하여 기입해도 되며 그림과 같이 문자에 대입하여도 된다.






인자 도표화를 사용하기 위해 메뉴의 Tables > New Parametric Table을 선택하거나 바로가기 아이콘을 선택한다.


No. of Runs를 설정하고 변수 두 개를 선택한다. 독립변수인 U-factor U와 종속변수인 열손실 Q를 각각 선택하고 Add 버튼을 클릭하여 Variables in Table로 설정한다.


독립변수 U에 적당한 값을 설정합니다.



Parametric Table은 다음과 같으며 그래프로 표현하기 위해

메뉴의 Plots > New Plot Window를 선택하거나 바로가기 아이콘을 클릭한다.



다음 Y-Axis에 종속변수 Q를 선택한다.



































Matlab을 이용한 풀이 :

크게 복잡한 문제는 아니지만 매트랩에 사용자 정의 함수를 이용해보겠습니다.

 

매트랩의 메뉴에 New Script 또는 ctrl + N 또는 New > Script (또는 Function)으로 Script Editor를 연다. 다음과 같이 스크립트를 작성한다.

function [ Q ] = Q_loss( U )

A = 1.2 * 1.8;

Tin = 20;

Tout = -8;

Q = U .* A * (Tin - Tout);

end


함수 정의가 모두 끝나고 입력값을 Command Window에서 바로 생성합니다.


U_range = [처음값 : 증가량 : 마지막값]

위와 같이 요령으로 적당한 값의 범위를 만들어 줍니다.

그 다음 미리 정의해둔 함수에 값을 전달하면 원하는 결과값을 얻을 수 있습니다.


마지막으로 plot을 이용하여 그래프로 나타냅니다.


검토

문제 1-122에서 U-factor1.25W/m2•K일 때와 6.25W/m2•K일 때 계산한 열손실 값이 같다.

Posted by 귀여운촌아
: