슬라이드 1

Similar documents
(Microsoft PowerPoint - Ch3_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

2 장 MATLAB 기초 2.1 MATLAB 환경 2.2 배정 2.3 수학적연산 2.4 내장함수의사용 그래픽 2.6 다른자원

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

Microsoft PowerPoint - m05_Equation1(Print) [호환 모드]

C 언어 프로그래밊 과제 풀이

<4D F736F F D20BACEB7CF2D4D61744C616220B1E2C3CA20B9D720C7C1B7CEB1D7B7A1B9D62E646F63>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

Microsoft PowerPoint - m22_ODE(Print) [호환 모드]

Open methods

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

(Microsoft PowerPoint - Ch6_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

설계란 무엇인가?

슬라이드 1

Microsoft PowerPoint - 기계공학실험1-1MATLAB_개요2D.pptx

해양모델링 2장5~ :26 AM 페이지6 6 오픈소스 소프트웨어를 이용한 해양 모델링 물리적 해석 식 (2.1)의 좌변은 어떤 물질의 단위 시간당 변화율을 나타내며, 우변은 그 양을 나타낸 다. k 5 0이면 C는 처음 값 그대로 농

Modern Javascript

Microsoft PowerPoint - e pptx

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

140307(00)(1~5).indd

public key private key Encryption Algorithm Decryption Algorithm 1



SIGPLwinterschool2012

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

15 홍보담당관 (언론홍보담당) 김병호 ( 金 秉 鎬 ) 16 (행정담당) 박찬해 ( 朴 鑽 海 ) 예산담당관 17 (복지행정담당) 이혁재 ( 李 赫 在 ) 18 (보육담당) 주사 이영임 ( 李 泳 任 ) 기동근무해제. 19 (장애인담당) 박노혁 ( 朴 魯 爀 ) 기동

Tcl의 문법

Java ...

歯엑셀모델링

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

fl 2

PowerPoint 프레젠테이션

기본자료형만으로이루어진인자를받아서함수를결과값으로반환하는고차함수 기본자료형과함수를인자와결과값에모두이용하는고차함수 다음절에서는여러가지예를통해서고차함수가어떤경우에유용한지를설명한다. 2 고차함수의 예??장에서대상체만바뀌고중간과정은동일한계산이반복될때함수를이용하면전체연산식을간 단

PowerPoint Presentation

adfasdfasfdasfasfadf

<C6F7C6AEB6F5B1B3C0E72E687770>

PowerPoint 프레젠테이션

Microsoft PowerPoint - 7-Work and Energy.ppt

목차 v M-file v 제어 v 변수 함수 스크립트 v 데이터타입 v Plot v variable save/load v File Open/Close, 데이터를쓰고, 읽는 fprintf, fscanf v Graphics with MatLab v 본강의자료는 MATLAB

슬라이드 1

(Microsoft PowerPoint - Ch21_NumAnalysis.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - chap05-제어문.pptx

딥러닝 첫걸음

23

산선생의 집입니다. 환영해요

쉽게 풀어쓴 C 프로그래밍

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

2005 7

untitled

Microsoft PowerPoint - semantics

PowerPoint Presentation

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

歯mp3사용설명서

Microsoft PowerPoint 세션.ppt

금오공대 컴퓨터공학전공 강의자료

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

fx-82EX_fx-85EX_fx-350EX

PART

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

Part Part

£01¦4Àå-2

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

MATLAB HCH switch-case case 문 v switch case 문은 switch 다음의표현식의값에따라여러명령그룹들중에서한그룹을골라실행시킬때사용한다. switch문-case 문은 if 문을사용하여똑같이실행시킬수있지만, switch 문이프로그램을이해하기가더

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). *


11장 포인터


Microsoft Word - SAS_Data Manipulate.docx

PRO1_14E [읽기 전용]

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

SRC PLUS 제어기 MANUAL

4장.문장

13주-14주proc.PDF

T100MD+

3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < >

°¡°Ç6¿ù³»ÁöÃÖÁ¾

(001~006)개념RPM3-2(부속)

슬라이드 1

Index

슬라이드 제목 없음

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

Infinity(∞) Strategy

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

Microsoft PowerPoint - 05장(함수) [호환 모드]

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

MATLAB and Numerical Analysis

¿¡À̽º ÃÖÁ¾¿ø°í

중간고사

Microsoft PowerPoint - [2009] 02.pptx

윈도우즈프로그래밍(1)

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

장연립방정식을풀기위한반복법 12.1 선형시스템 : Gauss-Seidel 12.2 비선형시스템 12.1 선형시스템 : Gauss-Seidel (1/10) 반복법은초기근을가정한후에더좋은근의값을추정하는체계적인절차를이용한다. G-S 방법은선형대수방정

<31325FB1E8B0E6BCBA2E687770>

Transcription:

3.1 M- 파일 3.2 입력 - 출력 3.3 구조프로그래밍 3.4 내포화와들여쓰기 3.5 M- 파일로의함수전달 3.6 사례연구 : 번지점프하는사람의속도

수학적모델 : Euler 법 : dv dt = g c d m v2 v i+1 = v i + dv i dt t

3.1 M- 파일 (1/5) 스크립트파일 - 일련의 MATLAB 명령어를구성되어저장된 M- 파일이다. %scriptdemo.m g=9.81; m=68.1; cd=0.25; t=12; v=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t) >> scriptdemo v = 50.6175

3.1 M- 파일 (2/5) 함수파일 - function 이라는단어로시작하는 M- 파일이다. function outvar = funcname(arglist) %helpcomments statements outvar = value; 여기서 outvar = 출력변수의이름 funcname = 함수의이름 arglist = 함수의인수목록 helpcomments = 사용자가제공하는함수에관한정보 statements = value 를계산하여그값을 outvar 에배정하는문장

예제 3.2 (1/3) Q. 번지점프하는사람의자유낙하속도를함수파일을사용하여구하라. function v = freefallvel(t, m, cd) %freefallvel: bungee velocity with second-order drag %v=freefallvel(t,m,cd) computes the free-fall velocity % of an object with second-order drag %input: %t=time(s) %m=mass(kg) %cd=second order drag coefficient (kg/m) %output: %v=downward velocity (m/s) g=9.81; %accelearation of gravity v=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t);

예제 3.2 (2/3) Q1. 68.1 kg 인사람의 12 초후의속도를구하려면 >> freefallvel(12, 68.1, 0.25) ans = 50.6175 Q2. 100 kg 인사람의 8 초후의속도를구하려면 >> freefallvel(8, 100, 0.25) ans = 53.1878

예제 3.2 (3/3) 도움설명을불러내려면다음과같이입력한다. >> help freefallvel freefallvel: bungee velocity with second-order drag v=freefallvel(t,m, cd) computes the free-fall velocity of an object with second-order drag. input: v = downward velocity (m/s)

3.1 M- 파일 (3/5) - 함수 M- 파일은 2 개이상의결과를반환할수있다. 예 ) 벡터의평균과표준편차의계산 function [mean, stdev] = stats(x) n=length(x); mean=sum(x)/n; stdev=sqrt(sum((x-mean).^2/(n-1))); >> y=[8 5 10 12 6 7.5 4]; >> [m,s] =stats (y) m = 7.5000 S = 2.8137

3.1 M- 파일 (4/5) 부함수 (subfunctions) - 함수가다른함수를부를수있다. 이러한함수는 M- 파일을구분하여작성할수도있고, 한개의 M 파일에포함시킬수도있다. function v= freefallsubfunc(t, m, cd) v=vel(t, m, cd); end function v=vel(t, m, cd) g=9.81; v=sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t); end

3.1 M- 파일 (5/5) >> freefallsubfunc (12, 68.1, 0.25) ans = 50.6175 >> vel (12, 68.1, 0.25)??? Undefined command/function vel.

3.2 입력 - 출력 (1/4) input 함수 - 사용자로하여금명령창에서직접입력하도록한다. m = input ('Mass (kg): ') name = input ('Enter your name: ', 's') % 문자열을받는경우

3.2 입력 - 출력 (2/4) disp 함수 - 어떤값을손쉽게나타낸다. disp(' ') disp('velocity (m/s): ') % 문자열을나타내는경우

3.2 입력 - 출력 (3/4) fprintf 함수 - 정보를표현할때추가적인제어를제공한다. fprintf ('format', x, ) % 포맷코드와제어코드를넣어서나타내는경우 >> fprintf( The velocity is %8.4f m/s\n velocity) The velocity is 50.6175 m/s

3.2 입력 - 출력 (4/4) 표 3.1 fprintf 함수에서사용하는포맷코드와제어코드 포맷코드설명 %d %e %E %f %g 정수포맷 e를사용하는과학포맷 E를사용하는과학포맷소수포맷 %e나 %f 중간단한포맷 제어코드설명 \n \t 새로운줄로시작 탭

예제 3.3 (1/3) Q. 예제 3.2 에서와같이번지점프하는사람의자유낙하속도를계산하라. 입출력으로 input 과 disp 함수를사용하라. function freefalli % freefalli: interactive bunge velocity % freefalli interactive computation of the % free-fall velocity of an object % with second-order drag. g=9.81; % acceleration of gravity m=input('mass(kg):'); cd=input('drag Coefficient(kg/m):');

예제 3.3 (2/3) Q. 예제 3.2 에서와같이번지점프하는사람의자유낙하속도를계산하라. 입출력으로 input 과 disp 함수를사용하라. t=input('time(s):'); disp(' ') disp('velocity (m/s):') disp(sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t)) minusvelocity= -sqrt(g*m/cd)* tanh(sqrt(g*cd/m)*t); fprintf('the velocity is %8.4f m/s\n', minusvelocity) name = input ('Enter your name: ', 's'); disp('your name is'); disp(name)

예제 3.3 (3/3) 명령창에서다음과같이입력한다. >> freefalli Mass (kg): 68.1 Drag coefficient (kg/m): 0.25 Time (s): 12 Velocity (m/s): 50.6175 The velocity is -50.6175 m/s Enter your name: Kim Your name is Kim

3.3 구조프로그래밍 (1/12) 명령을연속적으로수행하지않는것을허용하는구문 - 판정 ( 또는선택 ): 판정에기초를둔흐름의분기점이다. - 루프 ( 또는반복 ): 반복을허용하는흐름의루프이다. 판정 [if 구조 ] if condition statements end

3.3 구조프로그래밍 (2/12) function grader(grade) if grade >= 60 disp('passing grade:') disp(grade) end >> grader(95.6) passing grade: 95.6000 < > < 명령창 >

3.3 구조프로그래밍 (3/12) [ 에러함수 ] error ( msg) function f = errortest(x) if x==0, error(' zero value encountered'), end f=1/x; >> errortest(10) ans = 0.1000 >> errortest(0)??? Error using ==> errortest zero value encountered

3.3 구조프로그래밍 (4/12) [ 논리조건 ] value1 relation value2 ~ (Not) - 논리적부정을나타낼때사용한다. & (And) - 두식에서논리적곱을나타낼때사용한다. (Or) - 두식에서논리적합을나타낼때사용한다.

3.3 구조프로그래밍 (5/12) < 복잡한논리식의단계별계산 >

3.3 구조프로그래밍 (6/12) [if else 구조 ] [if elseif 구조 ] if condition statements1 else statements2 end if condition1 statements1 elseif condition2 statements2 else statementselse end

예제 3.4 (1/3) Q. 내장함수인 sign 함수와같은기능을갖도록 if else 구조를사용하여 mysign 함수를작성하라. 풀이 ) 내장함수인 sign 함수의기능을알아보자. >> sign(25.6) ans = 1 >> sign(-0.776) ans = -1 >> sign(0) ans = 0

예제 3.4 (2/3) function sgn = mysign(x) % mysign(x) returns 1, -1, and 0 for positive, negative, and zero values, respectively. % if x > 0 sgn = 1; elseif x < 0 sgn = -1; else sgn = 0; end

예제 3.4 (3/3) 명령창에서다음과같이확인할수있다. >> mysign(25.6) ans = 1 >> mysign(-0.776) ans = -1 >> mysign(0) ans = 0

3.3 구조프로그래밍 (7/12) 루프 [for end 구조 ] for index = start:step:finish end statements

예제 3.5 (1/3) Q. 순차곱셈을위한 for 루프 풀이 ) factorial 함수와같은기능을갖도록 for 루프를사용하여 프로그램을작성한다. >> factorial(5) ans = 120

예제 3.5 (2/3) function fout = factor(n) % computes the product of all integers from 1 to n. % x = 1; for i=1:n x = x * i; end fout = x; end

예제 3.5 (3/3) 명령창에서다음과같이확인할수있다. >> factor(5) ans = 120

3.3 구조프로그래밍 (8/12) [ 벡터화 ] i = 0; for t = 0:0.02:5 i = i + 1; y(i) = cos(t); end 위와같은 for 루프를다음과같이벡터화할수있다. t = 0:0.02:5; y = cos(t);

3.3 구조프로그래밍 (9/12) [while 구조 ] while condition end statements while 과 end 사이의조건이참인동안에만반복한다. (while 루프의종료는시작위치에서조건이맞지않을경우발생한다.)

3.3 구조프로그래밍 (10/12) >> x = 8 x = 8 >> while x > 0 x = x - 3; disp(x) end 5 2-1

3.3 구조프로그래밍 (11/12) [while break 구조 ] while (1) statements if condition, break, end statements end while 과 end 사이의조건이참인동안반복하나, while 루프내의어떤 위치에서도종료할수있다. 그예는다음과같다.

3.3 구조프로그래밍 (12/12) >> x= 0.24 x = 0.2400 >> while(1) x = x - 0.05 end x = 0.1900 x = 0.1400 x = 0.0900 x = 0.0400 x = -0.0100 if x<0, break, end % 후기점검루프

3.4 내포화와들여쓰기 내포화 - 다른구조안에구조를배치하는것이다.

예제 3.6 (1/3) Q. 2 차방정식을풀기위해내포화를이용함 f x = ax 2 + bx + c x = b ± b2 4ac 2a

예제 3.6 (2/3) function quadroots(a, b, c) % quadroots : roots of a quadratic equation % quadroots(a, b, c) : real and complex roots % of quadratic equation % input: % a = second-order coefficient % b = first-order coefficient % c = zero-order coefficient % output: % r1: real part of first root

예제 3.6 (2/3) % i1: imaginary part of first root % r2: real part of second root % i2: imaginary part of second root if a == 0 %special cases if b~= 0 %single root r1=-c/b else %trivial root error(' Trivial solution. Try again! ') end

예제 3.6 (2/3) else %quadratic formula d=b^2 4*a*c; %discriminant if d>=0 % real roots r1 = (-b+sqrt(d))/(2*a) r2 = (-b-sqrt(d))/(2*a) else

예제 3.6 (2/3) end %complex roots r1 = -b/(2*a) i1 = sqrt(abs(d))/(2*a) r2=r1 i2=-i1 end

예제 3.6 (3/3) 명령창에서다음과같이확인할수있다. >> quadroots(1,1,1) r1 = -0.5000 i1 = 0.8660 r2 = -0.5000 i2 = -0.8660

예제 3.6 (3/3) 명령창에서다음과같이확인할수있다. >> quadroots(1,5,1) r1 = -0.2087 r2 = -4.7913 >> quadroots(0,0,0)??? Error using ==> quadroots Trivial solution. Try again!

3.5 M- 파일로의함수전달 (1/7) 무명함수 - M-파일을만들지않고간단한함수를생성할수있게한다. 명령창에서다음과같은구문을사용한다. fhandle = @(arglist) expression >> outvar =feval('cos',pi/6) >> fl = @(x,y) x^2 + y^2; >> fl (3,4) ans = 25

3.5 M- 파일로의함수전달 (2/7) inline 함수 - Matlab 7 이전에서무명함수와같은역할수행. funcname = inline('expression',`'var1', 'var2', ) >> f1 =inline('x^2 + y^2', 'x', 'y') f1 = inline function: f1(x,y) = x^2 + y^2 >> f1(3,4) ans = 25

3.5 M- 파일로의함수전달 (3/7) function 함수 - 다른함수에작동하는함수. 예 ) fplot (fun, lims) >> vel= @(t) sqrt(9.81*68.1/0.25)* tanh(sqrt(9.81*0.25/68.1)*t); >> fplot(vel, [0 12])

예제 3.7 Q. 어떤범위에서함수의평균값을구하기위한 M- 파일만들기 v t = gm C d tanh gm C d t 풀이 ) t=0 에서 t=12 까지의범위에서함수값을그래프로그릴수있다. >> t=linspace(0, 12); >> v= sqrt(9.81*68.1/0.25)*tanh(sqrt(9.81*0.25/68.1)*t); >> mean(v) ans = 36.0870

3.5 M- 파일로의함수전달 (4/7) function favg = funcavg(f, a, b, n) % input: % f = function to be evaluated % a= lower bound of range % b= upper bound of range % n= number of intervals % output: % favg = average value of function x = linspace(a,b,n); y=f(x); favg=mean(y);

3.5 M- 파일로의함수전달 (5/7) 명령창에서다음과같이확인할수있다. >> vel= @(t) sqrt(9.81*68.1/0.25)*tanh(sqrt(9.81*0.25/68.1)*t); >> funcavg(vel, 0, 12, 60) ans = 36.0127 >> funcavg(@sin, 0, 2*pi, 180) ans = -6.3001e-017

3.5 M- 파일로의함수전달 (6/7) 매개변수의전달 - 매개변수에새로운값을취할때편리함. - function 함수의마지막입력인수에 varargin 추가함. [ funcavg 의수정 ] function favg = funcavg (f, a, b, n, varargin) x = linspace(a,b,n); y = f(x, varargin{:}); favg = mean(y)

3.5 M- 파일로의함수전달 (7/7) 명령창에서다음과같이확인할수있다. >> vel= @(t, m, cd) sqrt(9.81*m/cd)*tanh(sqrt(9.81*cd/m)*t); >> funcavg(vel, 0, 12, 60, 68.1, 0.25) %m=68.1, cd=0.25 ans = 36.0127 >> funcavg(vel, 0, 12, 60, 100, 0.28) %m=100, cd=0.28 ans = 38.9345

3.6 사례연구 : 번지점프하는사람의속도 (1/4) 수학적모델 : Euler 법 : dv dt = g C d m v i+1 = v i + dv i dt t

3.6 MATLAB M- 파일 : 번지점프하는사람의속도 (2/4) function vend = velocity1(dt, ti, tf, vi) % velocity1: Euler solution for bungee velocity % vend = velocity1(dt, ti, tf, vi) % Euler method solution of bunge % jumper velocity % inputs: % dt = time step (s) % ti = initial time (s) % tf = final time (s) % vi = initial value of dependent variable (m/s)

3.6 MATLAB M- 파일 : 번지점프하는사람의속도 (2/4) % output: % vend = velocity at tf (m/s) t = ti; v = vi; n = (tf - ti)/dt; for i=1:n dvdt= deriv(v); v = v + dvdt *dt; t = t + dt; end vend = v; end

3.6 MATLAB M- 파일 : 번지점프하는사람의속도 (3/4) function dv = deriv( v) dv = 9.81 (0.25 / 68.1)*v^2; end

3.6 MATLAB M- 파일 : 번지점프하는사람의속도 (4/4) 명령창에서다음과같이확인할수있다. >> velocity1(0.5, 0, 12, 0) %0.5초간격, 24번을계산 ans = 50.9259 >> velocity1(0.01, 0, 12, 0) %0.01초간격, 1,200번을계산 ans = 50.6239 >> velocity1(0.001, 0, 12, 0) %0.001초간격, 12,000번을계산 ans = 50.6181