Microsoft Word - MATLAB.docx

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

PowerPoint Presentation

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

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

MATLAB

OCW_C언어 기초

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

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

Tcl의 문법

Microsoft PowerPoint - ch07 - 포인터 pm0415

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - MDA 2008Fall Ch2 Matrix.pptx

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

슬라이드 1

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

MAX+plus II Getting Started - 무작정따라하기

Microsoft PowerPoint - chap04-연산자.pptx

Advanced Engineering Mathematics

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

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

PowerPoint 프레젠테이션


MATLAB and Numerical Analysis

PowerPoint 프레젠테이션

<4D F736F F F696E74202D204D41544C4142B0ADC0C7B7CF28B9E8C6F7BFEB295F3031C0E55FBDC3C0DBC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 웹 연동 기술.pptx

MATLAB for C/C++ Programmers

Microsoft Word - matlab_manual.doc

슬라이드 1

확률 및 분포

Microsoft Word - matlab.doc

MATLAB for C/C++ Programmers

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

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

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

설계란 무엇인가?

π >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) π

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - lect03.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]


% Rectangular Value 입력 t = -50 : 1 : 50; % 시간영역 for i = 1 : 101 if abs ( t ( i ) ) < 10 x ( i ) = 1; else x ( i ) = 0; % 화면을 2 열 1 행으로나눈후 % 2 열 1 행에 R

슬라이드 1

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

Microsoft Word - PLC제어응용-2차시.doc


MATLAB for C/C++ Programmers

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

PowerPoint Presentation

<4D F736F F D20BACEB7CF2D4D61744C616220B1E2C3CA20B9D720C7C1B7CEB1D7B7A1B9D62E646F63>

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

BIOROBOTICS LAB. MATLAB 수업자료 ( 기계항공시스템해석 ) 1. Matlab 의소개 1.1 Matlab 이란? Matlab이란 MATrix LABoratory를뜻하는말로서, 수치해석, 행렬연산, 신호처리및간편한그래픽기능등을통합하여고성

11장 포인터

설계란 무엇인가?

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - e pptx

MATLAB for C/C++ Programmers

PowerPoint Presentation

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

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

02장.배열과 클래스

< 고급 C 프로그래밍및실습 > 11 장구조체실습문제 문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시

Microsoft PowerPoint - additional01.ppt [호환 모드]

Matlab Graphics

fx-82EX_fx-85EX_fx-350EX

기초 Matlab 교육 여성공학인재양성 (WE UP) WE UP MATLAB 1

Microsoft PowerPoint - [2009] 02.pptx

슬라이드 1

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

MATLAB for C/C++ Programmers

컴파일러

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - chap11-포인터의활용.pptx

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

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

Microsoft PowerPoint - lect08.ppt [호환 모드]

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - chap05-제어문.pptx

Visual Basic 반복문

SIGPLwinterschool2012

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-1Array.ppt

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft PowerPoint - lect08

MySQL-.. 1

PowerPoint Presentation

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속

슬라이드 1

MATLAB for C/C++ Programmers

Microsoft PowerPoint - chap10-함수의활용.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Observational Determinism for Concurrent Program Security

슬라이드 1

슬라이드 1

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

Transcription:

MATLAB 서론 MATLAB Version 7 (R14) Why MATLAB 배우기쉽다. 반나절정도만투자하면배울수있다. VBA 와유사하며, 프로그래머가많이신경쓰지않아도된다. 예를들어, [1] 변수선언이필요없다. [2] 배열관리가간단하다. 그밖의장점은다음과같다. 그래프기능이강력하다. 최적화함수가탑재되어있다. 그림 (1.1) 기본경로설정 1

그림 (1.2) 환경설정 DOS 처럼쓰기 clear x; x변수를메모리에서지우라. clear all; clear; clc; command prompt를지운다. echo on; M-file 명령어가 command prompt로출력된다. echo off; M-file 명령어가 command prompt로출력되지않는다. 기본설정은 echo off delete(1); figure no.1 창을닫는다.!dir/w; 도스창이뜨면서디렉토리를보여준다.!notepad; 시작 > 실행에서 notepad를치는것과같다. dir, cd, type 등을느낌표없이사용해보자. lookfor inverse; help와비슷하다. what; 현재디렉토리에있는 m-file 목록을보여준다. open ; 파일또는변수를연다. MATLAB 에서사용되는기호 ;Symbols Part 1. 행렬다루기 0 표기 (Notation) 와정의 0.1. MATALB 화면구성 과관련된용어 2

작업공간 ; Workspace 명령창 ; Command Window 명령기록 ; Command History 배열편집 ; Array Editor 그림 (1.3) MATLAB 화면구성 1 행렬조작 1.1. 개요 Matrix 연산을위해만들어졌다. 따라서행렬조작을이해하는것이첫번째할일이다. 문제다음행렬을입력하라. 1 2 a = 5 9 6 10 13 14 입력 >> a=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16] 3 4 7 11 8 12 15 16 출력 a = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 문제행렬의요소에접근하기풀이 >> a(1,2) >> a(1:2,2:3) >> a(3,:) 3

2 2 3 6 7 9 10 11 12 문제날짜순 ( 내림차순 ) 으로된데이터 X 에서 y = α + βy + ϵ 의회귀분석을하려고한다. y 벡터와 y 벡터를만들라. 2 파일로부터데이터읽어오기 텍스트파일로부터데이터를읽어오고자한다. 미리작성해둔텍스트파일은다음과같다. :reading_file.txt 1 2 2 5 3 10 4 17 5 26 다음과같이명령창에입력하자. 입력 >> load reading_file.txt 출력 그림 (1.4) reading_file.txt 을읽어들인결과화면 읽어들인데이터는 reading_file 이라는이름의행렬로저장된다. 즉, 다음을실행해보자. >> reading_file(3,:) 3 10 4

문제위에서읽어들인데이터를열 (column) 별로 x, y 라는벡터에입력해보자. 풀이 >> x=reading_file(:,1); >> y=reading_file(:,2) 실습폴더를지정해서텍스트파일읽어오기 dirname=['c:\documents and Settings\feel\My Documents\MATLAB']; loadname=[dirname '\text.txt']; load(loadname) 실습엑셀파일읽어오기 01_clc 02_clear 03_tmp_dirName=['D:\_kaist\_ 재무계량분석 \mid_term']; 04_tmp_fileName=[tmp_dirName '\data_edited.xls']; 05_sheet=2; 06_xDATE=xlsread(tmp_fileName,sheet,'b2:b961'); 07_num_data=size(xDATE,1); 08_num_exp_variable=7; 09_y=ones(num_data-1,num_exp_variable); 10_x=ones(num_data-1,num_exp_variable); 11_ascii = char(reshape(32:127, 32, 3)'); %alphabet 12_for(i=1:num_exp_variable) 13_ tmp_range=[ascii(2,i+3) '3:' ascii(2,i+3) '961']; 14_ y(:,i)=xlsread(tmp_filename,sheet,tmp_range); %965' DEF 15_ tmp_range=[str(i) '2:' str(i) '960']; 16_ x(:,i)=xlsread(tmp_filename,sheet,tmp_range); %965' DEF 17_end 18_ 19_flipud(y); 11_str=['c';'d';'e';'f';'g';'h';'i']; 2 특수한행렬 rand >> rand(3) 0.8147 0.9134 0.2785 0.9058 0.6324 0.5469 0.1270 0.0975 0.9575 randn >> randn(2,3) 1.1892 0.3273-0.1867-0.0376 0.1746 0.7258 3 벡터의입력 3.1. 대괄호를이용한입력벡터의요소는쉽표 (,), 공백, 세미콜론 (;) 으로구분한다. 3.2. 콜론을이용한입력 5

다음을입력해보자. 입력 >> a=1:2:10 a = 1 3 5 7 9 즉, 변수명 = 시작값 : 증분 : 종료값 의형식으로간단히벡터를만들수있다. 4 배열연산 입력 >> t=0:0.1:10; >> x=exp(-0.5*t).*sin(0.5*t); >> plot(t,x) 결과 그림 (1.5) 배열연산출력결과 배열연산의이해 t 벡터의 1 번째요소로수식계산 x 벡터의 1 번째요소 t 벡터의 n 번째요소로수식계산 x 벡터의 n 번째요소따라서 x 는 t 벡터와크기가동일하다. 5 스칼라연산 특이한것은 우측나누기 라는것이있다는것 : b\a= 참조우측나누기가필요한이유 행렬에서보면 A B = 로생각할수있는데, MATLAB 에서이식을 A\B 로쓸 수있게지원하기때문에, 스칼라연산에도이방식이적용된것이다. 나머지연산자는엑셀과같다. 6

6 행렬연산 6.1. 행렬더하기와빼기상식과같다. 두행렬의차원이같아야정의된다. 수학에서는행렬 (A) 과스칼라 (b) 의더하기는정의되지않지만, MATLAB 에서는다음과같은의미에서정의된다. A + b = A + bi 6.2. 행렬의곱하기상식과같다. 6.3. 행렬의나누기 (1) 역행렬 >> A=[1,2;3,4]; >> inv(a) -2.0000 1.0000 1.5000-0.5000 (2) 나누기다음의의미에서나누기가정의된다. A / B AB : 왼쪽나누기 A\B A B : 오른쪽나누기 6.4. 행렬의거듭제곱지수 (power) 가양의정수인경우는상식과같다. 지수가양수가아닌경우에도다음의의미에서정의된다. Find A. such that solves A = A. A. 연구지수가양의정수가아닌경우 6.5. 행렬의조작 rot90(matrix) rot90(matrix,integer) fipud(matrix) ; flip upside-down fiplr(matrix); fiip left-to-right reshape(matrix,m,n) transpose 또는 A 라고해도된다. 즉 transpose(a)=a 입력 >> rot90(a) 2 4 1 3 7 배열연산정의 Array operation(.*,*/,*\,*^) 행렬의요소에대해곱셈, 나눗셈, 지수연산을하고자할때적용되는연산 ( 함수 ) 7

노트 [1] 더하기와빼기는원래연산이요소별 (pairwise) 더하기 / 빼기로정의되므로배열연산이불필요하다. [2] 배열연산이정의되기위해서는두행렬의차원이같아야한다. a = [1 2 3 4] 와 b = [5,4,3,2] 의요소별곱 (pairwise product) 를하고자한다. 다음을실습해보자. >> a=[1 2 3 4]; >> b=[5,4,3,2]; >> a.*b 5 8 9 8 문제배열연산을이용해서다음두벡터의내적을계산하라. a = [1 2 3], b = [3, 0, 1] 풀이 >> a=[1 2 3]; >> b=[3,0,-1]; >> sum(a.*b) 0 위풀이는간단히 dot(a,b) 로도쓸수있다. 참고로외적은 cross(a,b) 이다. 활용배열연산이많이쓰이는경우배열연산을이용하면반복문 (for, while) 을간단히쓸수있다. 다음을보자. MATLAB C++ >> x=0:0.1:10; for(i=0;i<=100;i++){ >> y=x.^3; x[i]=i/100; >> plot(x,y) y[i]=x[i]^3; } 문제다음그래프를그려보라. y = exp x sin x, x [0,10] 풀이 >> x=0:0.1:10; >> y=exp(-0.5*x).*sin(5*x); >> plot(x,y) 8

Part 2. 그래프 1 기본적그래프그리기 plot 을사용한다. 다음을따라해보자. 01_function rtn=graphxy() 02_ x=0:0.1:10; 03_ y=(x+2).*(x-5).*x; 04_ plot(x,y); 05_ xlabel('this is x'); 06_ ylabel('this is y'); 07_ title('this is my first graph'); 08_ legend('x_data'); 09_ gtext('\leftarrow y=x(x+2)(x-5)'); 10_end 08 x_a 라고쓰면 x 로나타난다. 즉 tex 타입의수식입력이가능하다. 09 gtext 는마우스로텍스트가나타날곳을지정해줄수있는함수이다. 2 하나의그림창에여러개의그래프그리기 subplot 을사용하면된다. subplot(m,n,i) 또는 subplot(mni) 하나의창을 m n 개의영역으로나누고 i 번째영역을활성화한다. 문제 4 개의하부영역을만들고각각에아래함수의그래프를그려보자. y = x, y = x, y = x, y = x 단, x [ 5,5] 명령창 >> x=-5:0.1:5; >> f1=x; >> f2=x.^2; >> f3=x.^3; >> f4=x.^4; >> subplot(221); >> plot(x,f1); >> subplot(222) >> plot(x,f2) >> subplot(223) >> plot(x,f3) >> subplot(224) >> plot(x,f4) 문제 subplot 세번째창을활성화하여그리드 (grid) 를넣어보라. subplot(223); grid on 3 이중축그래프그리기 plotyy(x1,y1,x2,y2) 문제다음두개의함수를하나의창에그려보라. 9

y = exp(x), y = ln(x) 단, x [0,1] 명령창 01_>> x=0:0.1:10; 02_>> f1=exp(x); 03_>> f2=log(x); 04_>> figure(2) 05_>> plotyy(x,f1,x,f2) 04 새로운창 (2) 을연다. 4 여러그래프를하나의창에그리기 정의 CSM 그래프선의요소 ; Color, (Line) Style, Marker C c,m,y,r,g,b,w,k S -,--,none,:,-. M +,^,O,*,.,x,square,diamond, v,>,<,pentagram,hexagram,none 문제위문제의그래프를하나의창에그려보라 01_>> plot(x,f1,'b-',x,f2,'b:') 02_>> plot(x,f1,'-',x,f2,':') 03_>> plot(x,f1,x,f2) 01_ 파란색선 & 실선으로첫그래프를, 파란색선 & 점선으로두번째그래프를그림 02_ 색을지정하지않으면, 임의로색을지정 03_ 아무것도지정하지않을수도있다. 5 3 차원그래프 plot3(x,y,z) contour(x,y,z,n); N= 등고선의개수 10

mesh(x,y,z,c) C; 생략가능 surf(x,y,z,c) 문제 3 차원그물형그래프그리기 >> x=0:1:50; >> y=0:0.1:10; >> [X,Y]=meshgrid(x,y); >> Z=exp(-0.05*X).*sin(1.5*Y); >> mesh(x,y,z) 11

Part 3. 프로그래밍 0 무작정따라하기 1 File>New>M-File 을선택한다. 2 편집창이열리면, 왼쪽과같이입력한다. 3 File>Save 를선택해서저장한다. 4 MATLAB 화면으로 >> result=determinant(2,3,4); 돌아와서 명령창에 >> result 왼쪽처럼쓴다. 5 결과는다음과같다. result = -23 질문 [1]m-file 은아무곳에저장해도되는가? [2]m-file 은반드시저장하고실행해야하는가? [3]m-file 이름과함수이름은같아야하는가? [4] 변수선언 ( 데이터타입, 배열의크기등 ) 은필요없나? [5]m-file 에는함수가하나만있어야하는가? 정의 M-file 주목적 외부예서값을받아연산 / 처리후외부로값을넘겨줌 ( 함수 ) 파일명 가급적 함수이름 과같도록지정 구조 function 출력변수명 = 함수이름 ( 입력변수 ) 함수본문 end 변수범위 global M-file과 workspace에서모두사용가능 local M-file에서만의미있음 1 산술연산자앞에서언급한바와같다. 12

2 관계연산자 C++ 관계연산자와같다. 같지않다 만다르다. MATLAB C++ ~=!= 3 논리연산자 C++ 과같다. ~ 이아니다 ( 부정 ) 연산자만다르다. 4 비트연산자아직까지는불필요. 5 IS 함수 isfinite; isinf; isnan; isequal; isnumeric; isreal; isglobal; 6 문자열의처리 abs; double; isstr; strcmp; C++ upper; lower; [string1,string2] ischar; num2str; int2str; str2double; 연구 eval 함수 7 GUI 프로그램수행중에잠시기다리라는메시지를보여주고싶다. 다음함수를이용하면된다. msgbox( message, title, icon ) 입력 >> msgbox('wait a moment','message') 8 파일입출력 13

9 제어문 9.1. if 문 9.2. switch 문 9.3. while 문 9.4 for문 for문은벡터로대체가능하다. 다음을보자. for문벡터문 >> n=1; >> x=1:0.1:10; >> for(x=1:0.1:10) >> y=x.^2; y(n)=x.^2; n=n+1; end 벡터로처리한것이간결하고속도도빠르다. 9.5. 기타유용한함수 error warning disp input break return 9.6. 디버깅 10 Tips 요구메모리를모두지우고싶다. clear Remove items from workspace, freeing up system memory Part 4 Application 1 기호연산 주의 Symbolic math toolbox 가필요하다! 14

2 Numerical Analysis 수치적방법을이용한분석 / 해석 2.1. 해찾기 (solver) 사용가능한함수의종류 함수명 설명 엑셀 fzero 1 변수방정식의해 목표값찾기 fsolve 최소자승법 (Least Square) 에의한비선형 해찾기 연립방정식의해 solve 연립방정식의기호적 (symbolic) 해 문제 f = x + 2x + 1 의해를찾아보자.. 풀이 [1]m-file: ts_optm.m 01_function f=ts_optm(x) 02_ f=x.^3+2*x+1; 03_end 01_x 가스칼라면어떻게될까? [2] 명령창 >> x=fzero( ts_optm,1) x = -0.4534 문제다음비선형연립방정식의해를구하라. 2x x e = 0 x + 2x e = 0 풀이 [1]m-file; ts_nonlin_optm.m 01_function f=ts_nonlin_optm(x) 02_ f=[2*x(1)-x(2)-exp(-x(1)); 03_ -x(1)+2*x(2)-exp(-x(2))]; 04_end [2] 명령창 >> x0=[-5;5]; >> x=fsolve( ts_nonlin_optm,x0) Optimization terminated: first-order optimality is less than options.tolfun. x = 0.5671 0.5671 2.2. 보간법 문제 1 차원선형보간 [1]M-file function f=ts_linintp() x=[3 91]; y=[4.5 4.7]; f=interp1(x,y,32); end 결과 4.5659 15

문제 Cubic spline Syntax pp = spline(x,y)yy = spline(x,y,xx) 예제 x = 0:10; y = sin(x); xx = 0:.25:10; yy = spline(x,y,xx); plot(x,y,'o',xx,yy) 2.3. 최적화 fminbnd(fun 1,x1,x2) ; 입력변수가스칼라이고, 출력변수가스칼라인경우사용 문제다음함수의최소값을구하라. 단, x [0,2] f = x 2x 5 풀이 01_>> f = @(x)x.^3-2*x-5; 02_>> x = fminbnd(f, 0, 2) 03_x = 04_ 0.8165 01_Anonymous function 을보라. 문제다음함수의최소값을구하라. y = x 2x 5 풀이 [1]M-file function y=myfun(x) y=x.^2-2*x-5; end [2] 명령창 1 fun is the function to be minimized. fun accepts a scalar x and returns a scalar f, the objective function evaluated at x. The function fun can be specified as a function handle for an M-file function x = fminbnd(@myfun,x1,x2); where myfun.m is an M-file function such as function f = myfun(x) f =... % Compute function value at x. or as a function handle for an anonymous function:x = fminbnd(@(x) sin(x*x),x1,x2); 16

>> x=fminbnd(@myfun,-2,2) x = 1.0000 x0: 초기값 문제다음함수의최소값을구하라. f(x ) = 100(x x ) + (1 x ) 풀이명령창 >> banana = @(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2; >> [x,fval] = fminsearch(banana,[-1.2, 1]) x = 1.0000 1.0000 fval = 8.1777e-010 3 서브함수정의메인함수 m-file 제일위에있는함수 정의서브함수메인함수를제외한 m-file 내의함수 4 전역변수 정리 m-file 내의함수는기본적으로지역변수로설정된다. 10 프로그램예제 문제균등분포확률변수두개의산포도를그려보라. 풀이 17

01_function rtn=graphxy() 02_ x=rand(1,100); %row vector 03_ y=rand(1,100); 04_ plot(x,y,'x'); 05_ xlabel('this is x'); 06_ ylabel('this is y'); 07_ title('this is my first graph'); 08_end 02 column vector 여도상관없다! 예를들어, x=rand(100,1); 04 marker 를 X 로선택한다. 문제 1 부터 n 까지합구하기 function f=func(n) sum=0; for(i=1:1:n) sum=sum+i; end f=sum end 문제 1. 변수의차원을설정하는방법은? 2. 원소가모두 1 인행렬만들기 >> ones(3) 1 1 1 1 1 1 1 1 1 3. row vector or column vector? function tmp=test() for(i=1:1:10) tmp(i)=i; end tmp 는 row vector 이다! 문제지수분포함수와확률밀도함수를그려라 (λ = 0.5) 풀이 문제블랙숄즈공식 function out=bso(pc,s,k,r,t,v) d1=log(s/k)+(r+v^2/2)*t; d1=d1/(v*sqrt(t)); d2=d1-v*sqrt(t); out=pc*s*normcdf(pc*d1)-pc*k*exp(-r*t)*normcdf(pc*d2); end 다음이실행되지않는이유는? 18

k=1:1:100; y=bso(1,100,k,0.05,1,0.2); x=0:0.1:10; lambda=0.5; y=lambda*exp(-lambda*x); Y=1-exp(-lambda*x); plot(x,y,x,y); %plot(x,y,'-ro',x,y,'-.b'); legend('density','distribution'); legend('boxoff') Part 5. 함수목록 mean sum 참고자료 [1] 김용수 (2002), MATLAB 입문과활용, 높이깊이 [2]B. Hunt et al (2001), A Guide to MATLAB for Beginners and Experienced Users, Cambridge University press 19