17
화공전산응용 1 차시 시작과 그래프 그리기 시작 교재는 매트랩 입문 교재를 사용하기로 했다. 앞 부분은 매틀랩 기초 부분으로 ‘매틀랩 입문, 교양’ 수업에서 하고 뒤 부분은 매틀랩 고급 부분과 수치해석 부분이 들어있어 이를 우리 수업에서 진행하기로 한다. 화학공학에 필요한 연습문제는 ‘응용수치해석’이나 ‘화학공학자를 위한 매틀랩’ 등의 다른 교재에서 찾아 쓰기로 하였다. 학생들이 빠르게 나가는 진도에 휘둘리기 보다는 천천히 차근히 나가는 것이 화공전산응용에 도움이 되리라는 생각이다. 전에는 빨리 빨리 나가는 것을 최선으로 생각했지만 오늘 천천히 차분히 진행해 보니 이 또한 좋았다. ‘멈추서면 비로서 보이는 것들’ 이란 책이 생각난다. 중간 중간에 화공문제풀이 연습이 들어있어 본 교재와 다른 책에서 우리 진도에 맞는 화공연습문제를 풀어보는 시간을 갖는다. 다음 주에도 그래프 그리기를 계속할 수 있어 여유가 있다(연습문제 풀이 앞 시간에 전주에 못다한 진도를 나가면 된다). 앞으로 할 화공전산응용 수업 내용을 간단히 살펴보고 그래프 그리기로 들어가도록 한다. 그래프 그리기, 그래프는 수학/매틀랩 출력으로서 중요하다. 예를 들어 y=f(x) 함수가 정의역 범위에서 y(즉 f(x))가 어떤 값을 갖는지를 그래프로 그리면 쉽게 전체적은 내용을 알 수 있다. 최대값, 최소값, f(x)=0 이 되는 x 값, 각 구간에서의 기울기(즉 미분값) 변화, 따라서 급 경사 구간도 알 수 있고(이러한 구간은 미분방정식 수치해석에서 조심해야 한다) 등등 많은 정보가 한 눈에 들어온다. 이를 숫자 자료로 보면 내용도 너무 많고 알아 볼 수도 없다. 그래프는 수학과 매틀랩에서 중요한 출력(결과를 알아보는) 수단이다. 여기선 주로 plot(x,y)에 주력한다. MATLAB help, help (메뉴)를 잘 사용하는 사람이 성공하는 사람이다. 인생이나 매틀랩에서 모르면, 힘들면 ‘help(살려줘!)’ 하면 도와주고 살려준다. 이를 하지 않는 사람은 정말 잘못되고 도와줄 필요가 없다. 프로그램 언어를 공부할 때에도 이 ‘help’ 메뉴를 잘 쓰면 쉽게 나아갈 수 있다. 사용자 정의 함수(6 장)를 만들 때에도 주석 첫 줄은 ‘help’ 명령으로 불러 볼 수 있다. 행렬 다루기, 매틀랩은 행렬(Matrix)기반 수치해석 S/W 이다. 많은 자료를 한군데 묶어(행렬) 한번에(병렬로) 처리한다. 따라서 매틀랩에선 행렬을 잘 써야 한다. 행렬과 함수의 최소, 최대값, 불연속 자료의 묶음인 행렬과 벡터, 그리고 연속 자료인 함수에서 최고, 최소값을 찾는 것은 중요하며 최적화 과정이기도 하다. 간단한 min(), max() 내장함수를 이용하고 응용한 방법을 알아보고 최적화 내장함수인 fminbnd()와 fminsearch()도 조금 살펴보기로 한다. 또한 원함수의 최고, 최소값을 구하기 위해 도함수가 영이 되는 값을 구하기 위해 fzero() 내장함수를 이용하는 것까지 알아본다.

그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

화공전산응용 1 차시

시작과 그래프 그리기

시작

교재는 매트랩 입문 교재를 사용하기로 했다. 앞 부분은 매틀랩 기초 부분으로 ‘매틀랩 입문,

교양’ 수업에서 하고 뒤 부분은 매틀랩 고급 부분과 수치해석 부분이 들어있어 이를 우리

수업에서 진행하기로 한다. 화학공학에 필요한 연습문제는 ‘응용수치해석’이나 ‘화학공학자를 위한

매틀랩’ 등의 다른 교재에서 찾아 쓰기로 하였다. 학생들이 빠르게 나가는 진도에 휘둘리기

보다는 천천히 차근히 나가는 것이 화공전산응용에 도움이 되리라는 생각이다.

전에는 빨리 빨리 나가는 것을 최선으로 생각했지만 오늘 천천히 차분히 진행해 보니 이 또한

좋았다. ‘멈추서면 비로서 보이는 것들’ 이란 책이 생각난다. 중간 중간에 화공문제풀이 연습이

들어있어 본 교재와 다른 책에서 우리 진도에 맞는 화공연습문제를 풀어보는 시간을 갖는다.

다음 주에도 그래프 그리기를 계속할 수 있어 여유가 있다(연습문제 풀이 앞 시간에 전주에

못다한 진도를 나가면 된다).

앞으로 할 화공전산응용 수업 내용을 간단히 살펴보고 그래프 그리기로 들어가도록 한다.

그래프 그리기, 그래프는 수학/매틀랩 출력으로서 중요하다. 예를 들어 y=f(x) 함수가 정의역

범위에서 y(즉 f(x))가 어떤 값을 갖는지를 그래프로 그리면 쉽게 전체적은 내용을 알 수 있다.

최대값, 최소값, f(x)=0 이 되는 x 값, 각 구간에서의 기울기(즉 미분값) 변화, 따라서 급 경사

구간도 알 수 있고(이러한 구간은 미분방정식 수치해석에서 조심해야 한다) 등등 많은 정보가 한

눈에 들어온다. 이를 숫자 자료로 보면 내용도 너무 많고 알아 볼 수도 없다. 그래프는 수학과

매틀랩에서 중요한 출력(결과를 알아보는) 수단이다. 여기선 주로 plot(x,y)에 주력한다.

MATLAB help, help (메뉴)를 잘 사용하는 사람이 성공하는 사람이다. 인생이나 매틀랩에서 모르면,

힘들면 ‘help(살려줘!)’ 하면 도와주고 살려준다. 이를 하지 않는 사람은 정말 잘못되고 도와줄

필요가 없다. 프로그램 언어를 공부할 때에도 이 ‘help’ 메뉴를 잘 쓰면 쉽게 나아갈 수 있다.

사용자 정의 함수(6 장)를 만들 때에도 주석 첫 줄은 ‘help’ 명령으로 불러 볼 수 있다.

행렬 다루기, 매틀랩은 행렬(Matrix)기반 수치해석 S/W 이다. 많은 자료를 한군데 묶어(행렬)

한번에(병렬로) 처리한다. 따라서 매틀랩에선 행렬을 잘 써야 한다.

행렬과 함수의 최소, 최대값, 불연속 자료의 묶음인 행렬과 벡터, 그리고 연속 자료인 함수에서

최고, 최소값을 찾는 것은 중요하며 최적화 과정이기도 하다. 간단한 min(), max() 내장함수를

이용하고 응용한 방법을 알아보고 최적화 내장함수인 fminbnd()와 fminsearch()도 조금

살펴보기로 한다. 또한 원함수의 최고, 최소값을 구하기 위해 도함수가 영이 되는 값을 구하기

위해 fzero() 내장함수를 이용하는 것까지 알아본다.

Page 2: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

사용자 정의 함수(User defined function), 수학과 프로그램밍에서 함수는 가장 중요하다.

매틀랩에선 사용자가 쉽게 사용하도록 많은 내장함수(Built-in function)을 만들어 넣었다. 그러나

자신에 딱 들어맞는(환경과 조건 등) 함수는 스스로 만들어 쓸 경우가 많다. 매틀랩 스크립트를

편집창에서 여럿 묶어 파일로 저장한 것을 스크립트 M-파일이라 한다. M-파일은 확장자가 *.m

이기 때문에 이리 부른다. 함수도 M-파일이지만 스크립트 파일과는 다르게 정확한 형식을

요구한다. 함수 선언과 함수 이름, 입력 인자. 출력인자 등을 형식에 맞게 작성해야 한다.

입출력, 프로그램 언어를 배울 때 맨 처음에 부딪치는 일이 바로 입출력(명령)이다. 프로프램은

기본적으로 ‘입력 처리 출력’ 이므로 어떤 명령문보다 입출력문이 우선한다. 그러나

매틀랩에선 입출력(문)이 약화(?)되어 있다. 매틀랩 스크립트 끝에 ‘;’을 붙이면 명령 하나가

‘끝났습니다’라는 의미보다는 ‘출력하지 마세요’란 의미가 된다. 반대로 ‘;’을 생략하면 바로 출력이

된다. 변수에 행렬(매틀랩에서 가장 중요한)을 입력하는 과정에서 입력이 된다. 또 그래프가 바로

중요한 출력이므로 매틀랩에서 가장 먼저 입출력을 이야기 하지 않아도 된다.

그러나 정교한, 의도하는 대로, 형식에 맞춰 출력하고자 하면 입출력문을 따로 공부해야 한다.

논리함수와 선택구조, 선택구조에는 조건문과 반복문이 있다. 반복문은 그 형식과 내용이

조건문과 거의 같다. 조건이 맞을 때까지 스크립트를 반복한다. 이는 순차적인 프로그램 실행에서

벗어나는 구조를 갖는다. 논리함수는 매틀랩에서 중요한 함수로 조건에 맞는 자료를 선택하는

함수로 조건, 선택 구조를 대신한다. 즉 자료를 하나 하나 그 조건을 검색하고 (다른 과정으로

처리하도록)선택하는 것이 아니라 많은 자료 묶음(행렬)을 동시에 조건 검색, 처리하는 길을

열어놓은 것이다.

조건문(if, case), 프로그램의 논리구조를 만드는 아주 중요한 내용이다. 프로그램(문제 해결 과정,

순서)은 위에서 아래로 하나 하나 차례대로 실행되면서 문제를 풀어간다. 그러나 그 순서가

다르게 나뉘어 나갈 수 있다. 이는 어떤 조건에 맞거나 맞지 않으면 다른 과정으로 문제를

풀어가도록 하는 방법이다. if 문이 많이 쓰이고 다중 분기(여러 조건)에는 Switch Case 문도

쓰인다.

행렬연산, 자료(숫자)를 묶어(행렬로 만들어) 처리하는 방법이 매틀랩에선 중요하고 이러한

연산에는 요소곱/나누기/누승(.*, ./, .^)을 써야 한다. 수학적인 행렬 곱셈이 있고 물리학적인

내적과 외적도 있고 이를 매틀랩에서 처리하는 함수도 있다. 행렬연산에서 최종적으로

연립방정식 풀이가 나온다.

미적분, 미분방정식, 우린 수치해석을 하지 않고 넘어가므로 여기선 맛보기로 미적분과

미분방정식을 건드려 본다. 이는 앞으로 여러분에 해야 할 넘어가야 할 분야이다. 이는

화공수학에서 자세히 건드릴 것이다. 여기선 매틀랩을 이용해 쉽고 편하게 수치해석 방법으로

풀어가는 과정을 살펴본다.

Page 3: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

시뮬링크(Simulink), 새로 추가된 내용이다. ‘지금까지 시뮬링크로 모델을 만들어 풀어본 문제들은

매틀랩으로도 쉽게 해결할 수 이는 것들이었다. 하지만 미분방정식을 푸는데 있어서는

시뮬링크가 훨씬 뛰어나다’. 재미난 블록 쌓기 놀이를 하면서 미분방정식이나 수학 문제를

풀어가는 시뮬링크를 간단히 살펴보자.

매틀랩 그래프 그리기

그래프 그리기’에서 핵심적인 내용만 간추렸다. 최소한 이것만은 꼭 가슴에 앉고 가기를 바란다.

여러분 손으로 머리로 반복 연습해야 한다(과제물을 꼭 자신을 손으로 풀어 제출하도록).

PLOT() 함수 사용법이 필수이고 이를 이용해 그래프를 여럿 그리고 (비교하는) 방법이 4 가지가

있다.

(1) figure, 새로운 그래프 창을 열어 새 그래프를 넣는다. figure(3)로 그래프 창 번호를 지정할

수도 있다. 그래프를 지울 때는 ‘close’, ‘close all’, ‘close figure 3’을 쓴다.

(2) plot(x1, y1, x2, y2, x3, y3 … )로 여러 개 그래프를 한번에 그린다.

x1=x2=x3 … 이면 plot(x1, [y1; y2; y3; …]) 로 쓸 수 있다.

(3) hold on, hold off, 그래프를 그리고 여기에 다음 그래프를 겹쳐 그리려면 ‘hold on’을 하여 현재

그래프 창을 잡아 놓는다. 다른 그래프 명령을 넣으면 이 그래프가 추가된다. 나중에 모든 그래프

추가가 끝나면 ‘hold off’하여 그래프 창을 풀어주면 된다.

(4) subplot(r, c, n), 한 그래프 창에 여러 그래프를 넣는다. ‘r 행 x c 열’로 그래프 창을 나누어

그래프를 넣는다. ‘n’은 그래프 행렬의 순서로 행부터 먼저 움직여 간다. 즉 오른쪽에서 왼쪽으로

하나 내려가 다시 오른쪽에서 왼쪽으로 번호를 매겨간다. 행렬의 요소 번호 순과는 다르다(요소

번호는 열 먼저 시작한다. 즉, 왼쪽 맨 위에서 아래로 내려가고 다음에 한 열 오른쪽으로

이동하여 다시 아래로 내려간다).

매틀랩에서 가장 중요한 그리프 함수는 PLOT( )이다. 이를 중점적으로 살펴보고 다른 것은 잠깐

한번 해보거나 지나간다.

1. plot(x,y);

(x, y)가 쌍(또는 짝)으로 된 자료 묶음을 가지고 (x, y)에 해당되는 점을 이어간다. 자료가 떨어져

있으면 '꺽은선' 그래프가 된다.

따라서 x, y 자료 수는 같아야 한다.

Page 4: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

x=[1, 2, 5, 8, 10]; y=[2 5 8 7 13];

plot(x,y)

(1) plot(x,y,'o')

(x, y) 좌표(위치)에 표식자(symbols)를 넣으려면 '표식자 첫 영문자'를 넣으면 된다.

예를 들면 영소문자 'o'는 동그라미를 넣는다.

선 표시는 '-' 실선, ':' 점선 등이 있다.

마지막으로 색깔 표시는 영문자 첫 자를 사용한다. 주의 할 것은 'k'는 검은색(기본설정)이다.

선 종류와 표식자(symbols), 색깔은 다음을 따른다.

b blue . point - solid

g green o circle : dotted

r red x x-mark -. dashdot

c cyan + plus -- dashed

m magenta * star (none) no line

y yellow s square

k black d diamond

v triangle (down)

^ triangle (up)

< triangle (left)

0 5 100

5

10

15

0 5 100

5

10

15

0 5 100

5

10

15

0 5 100

5

10

15

Page 5: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

> triangle (right)

p pentagram

h hexagram

(2) plot(x, y1, x, y2,x, y3)

한 화면에 여러 자료의 그래프를 같이 그린다.

>> x=1:10;

>> y=[58.5 63.8 64.2 67.3 71.5 88.3 90.1 90.6 89.5 90.4];

>> plot(x,y,':ok',x,y*2,'--xr',x,0.5*y,'-b')

(3) 축 조정과 설명 넣기

>> axis([0,11,0,200])

>> legend(': 원래',': 2배',': 0.5배') % 그래프 순서대로 입출력, 글상자는 마우스로 위치 변경

>> text(7,120,'e^{\alpha}*log_{e}\beta 문자연습')

>> title('그래표 꾸미기 연습')

>> xlabel('x 축은 1에서 10까지')

>> xlabel('x 축은 1에서 10까지')

>> ylabel('y 축은 거래금액?')

1 2 3 4 5 6 7 8 9 1020

40

60

80

100

120

140

160

180

200

Page 6: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

(4) 그래프 꾸미기는 Fig. 메뉴에서 쉽게 할 수 있다.

(5) Subplot(행, 열, 번호)

한 화면의 여러 개의 Plot 그래프를 그린다.

>> x=0:pi/32:2*pi;

>> subplot(1,2,1)

>> plot(x,sin(x))

1 2 3 4 5 6 7 8 9 1020

40

60

80

100

120

140

160

180

200

x 축은 1에서 10까지

y 축

은 거

래금

액?

그래표 꾸미기 연습

e*loge 문자연습

: 원래

: 2배

: 0.5배

Page 7: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

>> subplot(1,2,2)

>> plot(x,cos(x))

x 자료의 간격을 좁히면 부드러운 곡선을 그릴 수 있다.

(6) Plotyy(y축 2개 그리기)

>> x=0:pi/34:2*pi;

>> y1=sin(x);

>> y2=exp(x);

>> plotyy(x,y1,x,y2)

(7) plot3(x, y, z)

3 차원 선 그래프 그리기

>> x=linspace(0,10*pi,1000);

>> y=cos(x);

0 2 4 6 8-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

0 2 4 6 8-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

0 1 2 3 4 5 6 7-1

0

1

0 1 2 3 4 5 6 70

500

1000

Page 8: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

>> z=sin(x);

>> plot3(x,y,z);

>> grid

>> xlabel('각도'),ylabel('cos(x)'),zlabel('sin(x)'),title('스프링')

Animation graph

>> comet3(x,y,z)

0

10

20

30

40

-1

-0.5

0

0.5

1-1

-0.5

0

0.5

1

각도

스프링

cos(x)

sin

(x)

Page 9: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

2. Polar(극좌표)

>> x=0:pi/32:2*pi;

>> y=sin(x);

>> clf

>> polar(x,y)

>> subplot(1,2,2)

>> polar(x,y)

>> subplot(1,1,1)

>> polar(x,y)

>> polar(x,sin(x))

>> hold

Current plot held

>> polar(x,cos(x))

0.2

0.4

0.6

0.8

1

30

210

60

240

90

270

120

300

150

330

180 0

0.2

0.4

0.6

0.8

1

30

210

60

240

90

270

120

300

150

330

180 0

Page 10: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

3. 다양한 그래프 그리기

>> x=[1 2 5 4 8];

>> y=[x;1:5];

>> subplot(2,2,1)

>> bar(x), title('벡터 x의 막대그래프')

>> subplot(2,2,2)

>> bar(y), title('행렬 y의 막대그래프')

>> subplot(2,2,3)

>> bar3(y), title('3차원 막대그래프')

>> subplot(2,2,4)

>> pie(x), title('x의 파이차트')

4. Histogram 그리기

>> x=randn(2,5)*10+70;

>> hist(x(:),10)

>> A=hist(x(:))

A =

1 3 1 1 1 0 2 0 0 1

1 2 3 4 50

2

4

6

8벡터 x의 막대그래프

1 20

2

4

6

8행렬 y의 막대그래프

12

34

51

2

0

5

10

3차원 막대그래프

5%10%

25%

20%

40%

x의 파이차트

Page 11: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

>> A=randn(1,100)*10+50; %평균이 50이고 표준편차가 10인 가우시안 분포

>> subplot(2,2,1), hist(A), subplot(2,2,2), hist(A,10)

>> subplot(2,2,3), hist(A,5), subplot(2,2,4), hist(A,20)

히스토그램을 그리는 hist( ) 함수는 가로축에는 자료 값을 적당한 크기 별로 분류하여 그 분류

값(계급)을 표시하고 세로축에는 계급에 해당하는 자료 수(빈도, 분포)를 표시한다.

위의 예에서 보듯이 hist(A)는 자료 값 전체 범위를 10 등분한 계급을 만들어 이에 따른

분포(빈도)를 그린다. hist(A,10)은 자료 값을 10등분하라는 뜻이며 따라서 hist(A)와 같다. 아래

그림의 hist(A,5)와 hist(A,10)을 각각 5등분, 10 등분하여 히스토그램을 그리라는 뜻이다.

55 60 65 70 75 80 850

0.5

1

1.5

2

2.5

3

20 40 60 800

5

10

15

20

25

20 40 60 800

5

10

15

20

25

20 40 60 800

10

20

30

40

20 40 60 800

5

10

15

20 40 60 800

10

20

30

40

hist(A) hist(A,10)

hist(A,5) hist(A,20)

Page 12: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

5. fplot(함수 그래프)

>> fplot('sin(x)',[-2*pi,2*pi])

6. Surface Plot(면 그래프)

Mash graph

행렬의 행 수에 따라 x 값이 1 부터 끝까지 차례로 붙여진다(x=1:end).

y 값은 행 수에 맞춰지면 첫 행은 y=1 에 두번 째 행은 y=2 에 세번 째 행은 y=3 에 연결된다.

행렬의 1,행 2 행, 3 행을 각각 z 값(z1, z2, z3)이 된다.

x, y 값을 변경하려면 x, y 값을 주면 된다.

>> x=linspace(1,50,10);

>> y=[500 750 1000];

>> z=[1:10; 2:2:20; 3:12] % 전에 누락되어 추가했습니다.

-6 -4 -2 0 2 4 6-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1Sin(x)의 함수 그래프

02

46

810

1

1.5

2

2.5

30

5

10

15

20

Page 13: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

>> mesh(x,y,z)

(1) mesh(x,y,z)

(2) surf(x,y,z)

(3) surf(x,y,z), shading interp

(4) surf(x,y,z), shading flat

010

2030

4050

400

600

800

10000

5

10

15

20

Page 14: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

>> x=[-2:0.2:2];

>> y=[-2:0.2:2];

>> [X,Y]=meshgrid(x,y);

>> Z=X.*exp(-X.^2-Y.^2);

>> subplot(2,2,1);

>> mesh(X,Y,Z)

>> subplot(2,2,2);

>> surf(X,Y,Z)

>> subplot(2,2,3);

>> contour(X,Y,Z)

>> subplot(2,2,4);

>> surfc(X,Y,Z)

-20

2

-2

0

2-0.5

0

0.5

-20

2

-2

0

2-0.5

0

0.5

-2 -1 0 1 2-2

-1

0

1

2

-20

2

-2

0

2-0.5

0

0.5

Page 15: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

>> subplot(2,2,1)

>> pcolor(x,y,z)

>> subplot(2,2,2)

>> pcolor(x,y,z), shading interp

>> subplot(2,2,3)

>> pcolor(x,y,z), shading interp

>> hold on

>> contour(x,y,z,20,'k')

>> subplot(2,2,4)

>> contour(x,y,z)

-2 0 2-3

-2

-1

0

1

2

3

-2 0 2-3

-2

-1

0

1

2

3

-2 0 2-3

-2

-1

0

1

2

3

-2 0 2-3

-2

-1

0

1

2

3

Page 16: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

7. Fig. Tools

Insert

-1

-0.5

0

0.5

1

-1

-0.5

0

0.5

1

-1

-0.5

0

0.5

1

X 축

Sphere Graph

Y 축

Z 축

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1연습용 텍스트상자 추가하기

Page 17: 그리기contents.kocw.net/KOCW/document/2015/hankyong/kwaknotae1/... · 2016-09-09 · 위해 fzero() 내장함수를 이용하는 것까지 알아본다. 사용자 정의 함수(User

8. 작업공간창에서 변수를 선택하여 그래프 그리기

9. 그래프 저장하기

(1) M 파일로 저장

(2) 파일 메뉴에서 'Save As'

2015-06-25, 곽노태