1 / 45

MATLAB 개요와 응용 3 장 2 차원 ,3 차원 그래프

MATLAB 개요와 응용 3 장 2 차원 ,3 차원 그래프. 소속 : 인하대학교 수학과 전공 : 응용수학 ( 수치해석 ) 강사 : 정 신 자. 강의 내용. 2 차원 그래프에 대하여 plot 명령어 fplot 명령어 같은 그래프에 여러 곡선 출력하기 그래프의 형식지정 로그 축 그래프 특수 그래프 같은 페이지에 여러 그래프 그리기 다중 그림 창. 3 차원 그래프에 대하여. 그래프. 정보를 표현하는 데 그래프는 매우 유용한 도구이다 .

Télécharger la présentation

MATLAB 개요와 응용 3 장 2 차원 ,3 차원 그래프

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MATLAB개요와 응용3장 2차원,3차원 그래프 소속 : 인하대학교 수학과 전공 : 응용수학(수치해석) 강사 : 정 신 자

  2. 강의 내용 2차원 그래프에 대하여 • plot명령어 • fplot명령어 • 같은 그래프에 여러 곡선 출력하기 • 그래프의 형식지정 • 로그 축 그래프 • 특수 그래프 • 같은 페이지에 여러 그래프 그리기 • 다중 그림 창 3차원 그래프에 대하여 5장 2차원 그래프

  3. 그래프 • 정보를 표현하는 데 그래프는 매우 유용한 도구이다. MATLAB에는 여러 유형의 그래프를 생성 할 수 있다. • 그래프 종류: 로그스케일그래프, 극좌표 그래프, 막대그래프 , 계단그래프, 3차원 선(윤곽), 구, 등고선, 2변수함수, 벡터장 등 • 그래프 형식지정: 선 형태(직선, 파선 등), 색깔, 두께 등을 지정. 그래프의 제목과 텍스트 설명, 데이터 표식(marker)과 격자선(grid line) 추가. 여러 개의 곡선을 한 그래프에 표시하기, 여러 그래프를 한 페이지에 나타내기. 범례(legend) 표시하기 등. 5장 2차원 그래프

  4. Figure window title Figure window title number Plot title Legend Marker Y axis label Text label X axis label 그래프 생성 프로그램 예 x=[10:0.1:22]; y=95000./x.^2; plot(x,y) xlabel('거리(cm)') ylabel('세기(lux)') axis([8 24 0 1200]) title('거리 함수인 빛의 세기') text(14,700, '이론과 실험의 비교') grid, hold on xd=[10:2:22]; yd=[950 640 460 340 250 180 140]; plot(xd, yd, 'r--o') legend('이론', '실험') hold off 5장 2차원 그래프

  5. plot(x, y, ‘line specifiers', 'PropertyName', PropertyValue) 선의 굵기, marker의 크기∙테두리 ∙배경 색 지정 선과 marker의 모양∙색 지정 그래프 형식 지정자 • plot 명령어의 옵션으로 선 색깔과 종류, marker 모양 등을 지정할 수 있다. 옵션을 사용하기 위한 plot 명령어의 형식 : :여러 개의 지정자를 문자열 내에 'LineWidth',2, 'MarkerEdgeColor','k', ... 표시하는 경우 순서는 상관 없다.'MarkerFaceColor','g', 'MarkerSize',10) (page7) 5장 2차원 그래프

  6. 그래프 형식 지정 예 5장 2차원 그래프

  7. 속성 지정의 예 plot(x,y,'-ro', ‘MarkerSize',12, 'MarkerEdgeColor','g', ‘MarkerFaceColor', 'y', 'LineWidth', 2) 원형 marker 표시, red색 실선 marker의 크기: 12 point. Marker는 녹색 테두리에 노란 색으로 채워짐 선 두께 2 point 그래프 속성(property) 지정 • plot 명령어에서 그래프 속성 이름과 속성값을 지정함으로써 선 두께,marker의 크기와 테두리 색,채움 색을 지정할 수 있다. • 속성 이름(Property name)과 해당 속성값(Property value) : 5장 2차원 그래프

  8. >> yr=[1988:1994]; >> sales=[8 12 20 22 18 24 27]; >> plot(yr,sales,'--r*','LineWidth',2, … ‘MarkerSize',12) 주어진 데이터로부터 그래프 그리기 • 주어진 데이터를 이용하여 벡터를 생성하고, 이 벡터들을 이용하여 plot 명령어로 그래프를 그린다. 예) 어떤 회사의 1988~1994년 판매 데이터를 그래프로 표시하기 5장 2차원 그래프

  9. 벡터 x의 원소 간격을 미세하게 생성함 >> x=[-2:0.3:4]; >> y=3.5.^(-0.5*x).*cos(6*x); >> plot(x, y) >> x=[-2:0.01:4]; >> y=3.5.^(-0.5*x).*cos(6*x); >> plot(x, y) 함수의 그래프 그리기 • plot 명령어로 함수 y=f(x)를 그리기 • 함수의 정의역 x값 벡터를 생성. • x값 벡터에서의 f(x) 값들을 구하여 벡터 y를 생성. • 생성된 두 벡터로부터 plot 명령어로 그래프를 그린다. 예)정의역 -2≤x≤4에 대한 함수 y=3.5-0.5xcos(6x)의 그래프 5장 2차원 그래프

  10. fplot('function', limits, 'Line Specifiers') 선과 marker의 종류 및 색 그래프를 그릴 함수 x 의 정의역과 y 의 치역(옵션) • 'function' • fplot명령어 안에 문자열로 직접 입력할 수 있다. 예) f(x)=8x2+5cos(x) : '8*x^2+5*cos(x)' • limits • x의 정의역을 지정하는 두 원소의 벡터 [xmin, xmax], 또는 x의 정의역과 y축의 경계값을 지정하는 네 원소 벡터, [xmin, xmax, ymin, ymax]이다. • Line specifier : 선 지정자와 동일 fplot 명령어로 함수 그래프 그리기 • fplot명령어로 함수 y=f(x)의 그래프를 그릴 수 있다. • fplot명령어의 형식 5장 2차원 그래프

  11. >> fplot( 'x^2+4*sin(2*x)-1', [-3,3] ) 예) -5≤x≤5에 대해함수 y = sin(t2)/t2의 그래프 그리기 >> func='sin(t^2)/t^2' ; fplot( func, [-5, 5] ) fplot에 의한 함수 그래프 그리기 예) -3≤x≤3에 대해함수 y = x2 + 4sin(2x)-1 의 그래프 그리기 5장 2차원 그래프

  12. plot(X1, Y1, [LineSpec1], X2, Y2, [LineSpec2], X3, Y3, [LineSpec3]) (X1, Y1)과 (X2, Y2), (X3, Y3) 등 세 곡선을 같은 그림 창에 나타낸다. LineSpec을 각각 지정하지 않는 경우, MATLAB이 각 곡선의 구분을 위해 곡선 색깔을 자동으로 다르게 표시한다. 예) plot(x, y, '-r', u, v, '--b', t, h, 'g:') (x, y) 곡선은 빨간 실선, (u, v) 곡선은 파란 파선, (t, h) 곡선은 녹색 점선으로 한 그래프에 출력된다. 한 그래프에 여러 곡선 출력하기 • 한 그래프에 여러 곡선을 표시하는 세 가지 방법 : 1. plot 명령어 속에 표시할 곡선 데이터를 나열하는 방법 2. hold on, hold off 명령어를 사용하는 그래프를 계속 그리는 방법 3. line 명령어를 사용하는 방법 • plot 명령어를 이용한 다중 그래프 출력 5장 2차원 그래프

  13. x=[-2:0.01:4]; y=3*x.^3-26*x+6; yd=9*x.^2 - 26; ydd = 18*x; plot(x,y,'-b',x,yd,'--r',x,ydd,':k' ) 예제 함수와 도함수의 그래프 그리기 -2≤x≤4에 대해 함수 y = 3x3 - 26x + 10과 이 함수의 1차 도함수 및 2차 도함수 그래프를 같은 그림 창에 표시하라. 풀이) y'=9x2 – 26, y'' = 18x 5장 2차원 그래프

  14. x=[-2:0.01:4];y=3*x.^3-26*x+6; yd=9*x.^2 - 26;ydd = 18*x; plot(x,y,'-b') hold on plot( x,yd,'--r‘) plot( x,ydd,':k‘) hold off % 3개의 그래프 plot( x,ydd,':k‘) % 새로운 그래프 hold on/off를 이용한 다중 그래프 • hold on/off 명령어를 이용한 다중 그래프 작성 • plot명령어를 이용하여 첫 번째 그래프를 그린다. • hold on명령어를 이용해 기존의 그래프위에 그려준다. • 이후부터 plot명령어를 추가하면 현재 그래프에 곡선이 추가된다. • hold off명령어를 입력하면, plot명령어를 수행할 때마다 이전 그래프를 지우고 초기설정 모드(default mode)로 MATLAB을 원상회복시킨다. 5장 2차원 그래프

  15. (옵션)선 종류와 색, 두께, 데이터 표식의 모양과 크기, 표식의 테두리선 색 및 배경색 등을 지정하는 데 사용할 수 있는 속성과 값 line 명령어를 이용한 다중 그래프 • 이미 존재하는 그래프에 line 명령어를 이용하여 곡선을 추가로 더 표시할 수 있다. line 명령어의 형식은 다음과 같다: line(X, Y, ‘PropertyName’, PropertyValue) • line 명령어는 선 지정자를 갖지 않지만, PropertyName과 PropertyValue를 이용하여 선 종류와 색, 데이터 표식 등을 지정할 수 있다. 속성은 옵션이며, 아무 것도 입력하지 않으면 기본 속성 및 값들을 이용한다. • 예를 들어:line(x, y, 'linestyle', '--', 'color', 'r', 'marker', 'o') • plot 명령어는 실행될 때마다 새로운 그래프를 시작하는 반면, line 명령어는 기존 그래프에 선들을 추가한다.여러 곡선을 한 그래프에 그리려면, plot 명령어를 먼저 실행하고 line 명령어로 곡선을 추가한다. 5장 2차원 그래프

  16. x=[-2:0.01:4]; y=3*x.^3-26*x+6; yd=9*x.^2 - 26; ydd = 18*x; plot(x,y,'LineStyle', '-', 'color', 'b') line(x, yd, 'LineStyle', '--', 'color', 'r') line(x, ydd, 'LineStyle', ':', 'color', 'k') line 명령어를 이용한 다중 그래프 • line 명령어를 plot 명령어보다 먼저 입력하면 에러 메시지가 출력된다. 5장 2차원 그래프

  17. 그래프의 형식 지정 • plot 명령어와 fplot명령어는 기본 형태로 그래프를 출력한다. 따라서 그래프가 특정한 모양을 갖도록 하거나 추가 정보 표시를 위해서는 그래프 형식 지정이 필요하다. (page4) • 격자(grid) 표시하기, 축 범위 재설정 하기 • 축 라벨과 그래프 제목, 범례(legend), 텍스트 라벨 등 추가하기 • 그래프 형식 지정 방법 • plot 또는 fplot 명령어 실행 후, MATLAB 형식지정 명령어를 사용하는 방법. 이 방법은 plot 명령어가 스크립트 파일에 포함되어 있을 때 유용하며, 프로그램이 실행될 때마다 지정한 형식이 적용된 그래프가 그려진다. • 그림 창의 그래프 편집기(Plot Editor)를 이용하여 대화식으로 지정하는 방법. 그래프가 생성된 후 그래프 편집기로 해당 그래프에 대해 형식 지정을 하므로, 해당 그래프에 대해서만 지정한 형식이 유효하며, 그래프가 새로 생성되면 형식지정을 다시 해야 한다. (page 23) 5장 2차원 그래프

  18. MATLAB 형식 지정 명령어 5장 2차원 그래프

  19. title, text, xlabel에서의 텍스트 형식지정 • xlabel, ylabel, title, text, legend 명령어에 포함된 텍스트 문자열의 글자 폰트와 크기, 위치(위첨자, 아래첨자), 모양(이탤릭, 볼드 등), 글자 색 등을 지정하여 화면에 표시할 수 있다. • 문자열의 형식은 문자열 안에 수정자(modifier)를 추가하거나 명령어 옵션인 PropertyName과 PropertyValue 인자들을 문자열 다음에 추가하여 조정할 수 있다. • 수정자(modifier) • 수정자는 해당 문자열의 삽입한 위치 이후의 문자에 대해서만 효력을 미친다. • 문자열 중 일부 텍스트만 수정하려는 경우, 수정할 텍스트를 수정자 뒤에 중괄호 { } 안에 삽입하면 된다. • 폰트 색깔이름: blue, magenta, … 5장 2차원 그래프

  20. 문자열 내에서의 텍스트 형식지정 • 위 첨자와 아래첨자 • _(밑줄 글자)나 ^뒤의 낱개 글자를 아래 첨자나 위 첨자로 출력시킨다. • _나 ^ 다음에 여러 개의 연속된 글자들을 중괄호 { } 속에 표시하면 여러 개의 글자를 아래 첨자나 위 첨자로 표시할 수 있다. • 그리스 문자 • 문자열 안의 ‘\그리스 문자이름’은 실행 시 그리스 문자로 변환되어 출력된다. • 그리스 문자이름을 전부 영어 소문자로 표기하면 그리스 문자가 소문자, 대문자로 표기하면 그리스 문자가 대문자로 출력된다. 5장 2차원 그래프

  21. '\fontname{휴먼옛체}\fontsize{18}\color{red}1자유도 감쇠진동' '\fontname{Times New Roman} \fontsize{15}x(\itt\rm)=3.5^{-0.5\itt} \rmcos(2\pi\itt\rm)' 문자열 내에서의 텍스트 형식지정 5장 2차원 그래프

  22. 단위 원 그리기 • 반지름이 1인 단위 원 그리기 % 데이터 생성( x=cos , y=sin  , 0≤  ≤2 ) theta = linspace(0, 4*pi, 100); x=cos(theta); y=sin(theta); % 원과 격자선 그리기 plot(x, y) grid on % 좌표축 조정 axis equal 5장 2차원 그래프

  23. 을 변경할 수 있는 Property Editor창이 그림 창 밑에 나타난다. 라벨, 범례 등은 마우스로 드래깅하여 위치를 바꿀 수 있다. Figure Toolbar 그래프 편집기를 이용한 형식지정 • 그림 창에서 그래프 편집기를 이용하여 대화식으로 그래프를 편집할 수 있다. • Figure Toolbar의 화살표(Edit Plot)를 클릭하면 편집모드가 되며, 편집대상 주위에 검은 점들이 표시된다. 편집할 개체를 선택하여 더블 클릭하면, 해당 개체의 속성 5장 2차원 그래프

  24. Show Edit Tools 속성 편집창(Property Editor) • Property Editor 창에서 해당 그래프 요소의 속성을 편집할 수 있다. • Figure Toolbar 우측 끝의 ‘Show Edit Tools’ 버튼을 눌러도 속성 편집창이 나타난다. 5장 2차원 그래프

  25. Plot Edit Toolbar 그래프 편집기를 이용한 형식지정 • 그림 창의 View메뉴에서 Plot Edit Toolbar를 체크하면 Plot Edit Toolbar가 메뉴 밑에 표시되어 개체를 수정하거나 새로운 개체를 추가할 수 있다. • 그림 창의 Insert메뉴를 이용하여 다양한 그래프 개체들을 추가할 수 있다. 5장 2차원 그래프

  26. 과학/공학 응용분야에서는 한 축 또는 두 축 모두 로그 눈금인 그래프가 종종 필요하다. 로그 눈금은 넓은 범위의 데이터 값을 나타내는 데 적절하다. 또 주어진 수치 데이터의 특성을 파악하거나 수학식으로 모델링 할 때 적합한 식을 확인하는데도 필요하다 (8.2.2절 참조) • 로그축 그래프를 그리기 위한 MATLAB 명령어: • 로그축 그래프에서도 plot 명령어에서와 같이 선 지정자와 속성 이름, 속성 값 등을 옵션으로 추가할 수 있다. • 로그축 그래프에서는 0과 음수의 로그가 정의되지 않으므로 수 0과 음수는 로그 눈금에서 그릴 수 없다. 로그축 그래프 5장 2차원 그래프

  27. 함수 y=2(-0.2x+10) 0.1≤x≤60 로그축 그래프 예 5장 2차원 그래프

  28. 이론모델에 의한 수치데이터에는 • 입력 인자의 정확도와 사용된 수학모델의 가정에 따라 오차 또는 불확실성(uncertainty)이 • 존재하며, 실험에서 얻은 측정 데이터에도 오차가 포함되어 있다. • 데이터에 포함된 불확실성, 즉 오차를 그래프에 표시하기 위해 오차막대(error bar)를 이용할 수 있다. 오차막대는 데이터 점이 나타내는 값과 관련된 오차의 크기를 데이터 점에 짧은 수직선으로 나타낸 것이다. 오차막대(error bar)를 가진 그래프 5장 2차원 그래프

  29. errorbar(x, y, e) : 그래프의 각 데이터 점에서 [y-e(i) y+e(i)]의 오차막대를 가지므로 오차막대는 데이터 점에 대해 대칭이다. errorbar(x, y,e) 각 데이터 점에서의 오차 값을 가진 벡터 데이터 점들의 (x, y)좌표 벡터 • errorbar(x, y, L, U) :각 데이터 점에서 [y-L(i) y+U(i)] 길이의 오차 막대를 가지므로 오차막대는 각 데이터 점에 대해 비대칭이다. 네 벡터의 length는 모두 동일해야 한다. errorbar(x, y,d, u) 각 점에서의 오차의 상한값을 가진 벡터 각 점에서의 오차의 하한값을 가진 벡터 데이터 점들의 (x, y)좌표 벡터 errorbar명령어 5장 2차원 그래프

  30. 특수 그래프 5장 2차원 그래프

  31. 특수 그래프 5장 2차원 그래프

  32. 파이 차트(pie chart)는 서로 상관관계가 있는 어떤 양들의 상대적인 크기를 시각화하는 데 유용하다. 예를 들어, 어떤 학급 학생들의 성적 분포를 파이 차트로 나타낼 수 있다. MATLAB이 자동으로 색을 다르게 그린다. 성적(A, B, …)은 그래프 편집기로 추가하였다. 특수 그래프 5장 2차원 그래프

  33. polar(theta, radius, 'line specifiers') 선과 marker의 종류와 색 정의. 예) ‘:r’, ‘-g’ 데이터 점들의 좌표 벡터 • 주어진 정의역에 대한 함수 r =f( )의 극좌표 그래프 그리기 • 주어진  값의 범위에 대해 벡터를 생성한다. • r= f( ) 값을 계산하여 r벡터를 생성한다. • 생성된 두 벡터 , r을 polar 명령어의입력인자로 하여 그래프를 그린다. r  극좌표 그래프 • 극좌표는 평면 상의 한 점의 위치를 각도  와 이 점까지의 반경(거리) r로 정의한다. 함수를 극좌표로 그리기 위해서는polar 명령어를 사용한다. • polar명령어의 형식 5장 2차원 그래프

  34. 0≤t≤2에 대해 r=sin(2t)cos(2t)의 그래프를 그려라. t=linspace(0, 2*pi, 200); r=3*cos(0.5*t).^2 + t; polar(t, r) t = 0:.01:2*pi; polar( t, sin(2*t).*cos(2*t), '--r‘ ) 극좌표 그래프 예 • 0≤≤2에 대해 r=3cos2(0.5)+의 극좌표 그래프를 그려라. 5장 2차원 그래프

  35. 그림 창을 m×n의 작은 사각형 그래프 영역으로 나누고, 각 그래프 영역에 대해 첫 줄부터 마지막 줄까지 왼쪽에서 오른쪽 순서대로 차례로 일련번호를 부여한 후, p 번째 영역을 그래프 출력 대상 영역으로 만든다. 즉, 이 명령어 뒤에 오는 plot 명령어와 형식지정 명령어는 p 번째 영역에 적용된다. subplot(m, n, p) 예) subplot(3, 2, 1)은 우측 그림과 같이 세 줄과 두 칸으로 배열된 6개의 그래프 영역을 만 든 후, 첫 번째 그래프 영역을 활성화한다. (3,2,1) (3,2,2) (3,2,3) (3,2,4) (3,2,5) (3,2,6) 같은 페이지에 여러 그래프 그리기 • subplot명령어를 이용하여 동일한 페이지에 여러 개의 그래프를 그릴 수 있다. • Subplot명령어의 형식 5장 2차원 그래프

  36. 같은 페이지에 여러 그래프 그리기 • subplot명령어 사용 예 5장 2차원 그래프

  37. 그래프 생성 명령어는 활성창(active window)이나 현재창(current window)으로 불리는 가장 최근에 열린 그림 창에 새 그래프를 출력한다. • figure 명령어의 형식 Figure window title 새로운 그림 창을 연다. 창 제목의 번호는 생성된 순서대로 일련번호가 붙여진다. figure 창 제목 번호가 n인 새로운 그림 창을 열거나(신규 생성), 활성창으로 만든다(특정 창 지정). figure(n) 여러 개의 그림 창(Figure Window) 열기 • plot과 같은 그래프 생성 명령어가 실행되면, 그림 창이 새로 열리거나 이미 열려있는 그림 창의 그래프를 대체한다. 이때 그림 창의 제목(Figure window title)은 항상 “Figure 1”이 된다. • 기존의 그림 창을 그대로 두고 추가로 그림 창을 열려면, figure명령어를 사용한다. figure명령어가 입력될 때마다 새 그림 창이 만들어지며, 그림 창 제목은 생성 순서에 따라 Figure 2, Figure 3, … 등이 된다. 5장 2차원 그래프

  38. 여러 개의 그림 창 열기 예제 • figure명령어를 이용한 여러 그림 창 열기 5장 2차원 그래프

  39. 스크립트 파일로 여러 그림 창에 그래프를 출력하는 경우, figure(n) 명령어 대신 figure 명령어를 여러 번 사용하면, 스크립트 파일을 실행할 때마다 새 그림 창을 계속 만들게 되므로 주의가 필요하다. 여러 개의 그림 창 열기 예제 • figure(n)명령어를 이용한 여러 그림 창 열기 5장 2차원 그래프

  40. close 현재 그림 창을 닫는다. close(n) n번째 그림 창을 닫는다. close all 열린 모든 그림 창을 닫는다. • 그림 창의 속성을 이용하여 제목을 변경하거나 번호를 표시하지 않을 수도 있다. 여러 개의 그림 창 열기 예제 • 그림 창은 close 명령어로 닫을 수 있다. 명령어 형식은 다음과 같다. 5장 2차원 그래프

  41. 3차원 그래프에 대하여 5장 2차원 그래프

  42. 등고선 그래프 * contour(z) 행렬 z에 대한 값을 높이로 하는 등고선을 나타낸다. * contour(z,n) 등고선의 수가 n인 그래프를 출력한다. * peaks 함수의 그래프 위의 2변수함수가 MATLAB에 peaks라는 함수로 저장되어 있다. >> z=peaks; >> contour(z,20) >> contour(z,30) 5장 2차원 그래프

  43. Meshgrid 명령어로 2변수 그래프그리기 >> [X,Y]=meshgrid(-2:0.1:2, -2:0.1:2); >> Z=sin(X.^2+Y.^2); >> mesh(Z) %축이 맞지않다 %딱맞게 하자 >> axis tight %x,y,z축설정 >> xlabel(‘X(i,j)') >> ylabel(‘Y(i,j)') >> zlabel(‘z') >> title('sin(x^2+y^2)') *X,Y가 행렬이면 X(I,j),Y(I,j)로 grid의 num이다. >> x=[-1:1] x= -1 0 1 >> y=[2:4] y= 2 3 4 5장 2차원 그래프

  44. 예제 meshc: mesh 그래프 아래에 등고선을 그려준다. meshz: mesh 그래프아래에 참조평면을 그려준다. surf: 선사이를 착색한다는 점을 제외하고 mesh와 동일하다. 5장 2차원 그래프

  45. 그래디언트와 벡터장 >> [px,py]=gradient(z,dx,dy) >> quiver(x,y,u,v) %(x,y)에서 (u,v) 성분을 갖는 벡터장을 그리는 명령어 5장 2차원 그래프

More Related