고래밥 이야기
수학프로그래밍_2 본문
건국대학교 수학과 정은옥 교수님의 수학프로그래밍 강의 및 "제대로 배우는 MATLAB& SIMULINK" 책을 참고하였습니다.
- 출력서 서식
명령어 | 기능 | pi를 출력한 예 |
format short | 소수점 아래 네 자리까지 출력 | 3.1416 |
format short e | 지수승 e를 사용하여 소수점 아래 네 자리까지 출력 | 3.1416e + 000 |
format long | 소수점 아래 열다섯 자리까지 출력 | 3.141592653589793 |
format long e | 지수승 e를 이용하여 소수점 아래 열다섯 자리까지 출력 | 3.141592653589793 + 000 |
# 본 책 67p 참고
- 2차원 그래프 그리기
plot(x1,y1,x2,y ....) : 기본 형태
plot(x,y,"s") : x는 독립변수, y는 종속변수, "s"는 자료 기호, 선 형태, 색상지정(생략 가능하며 순서는 상관 없음)
자료 기호 | 선 형태 | 색상 | |||
동그란 점(.) | . | 실선 | - | 검은색 | k |
별표(*) | * | 일점쇄선 | -- | 파란색 | b |
X 표(X) | X | 쇄선, 점선 혼합 | -. | 청록생 | c |
원형(O) | O | 점선 | : | 초록색 | g |
플러스 기호(+) | + | 자홍색 | m | ||
정사각형(□) | s | 빨간색 | r | ||
다이아몬드(◇) | d | 흰색 | w | ||
별(★) | p | 노란색 | y |
# 본 책 70p 참고
ex) 거대한 예시
x = 0:pi/180:2*pi
y1 = cos(x)
y2 = sin(x)
y3 = tan(x)
subplot(2,2,1)
# subplot(mnp) : m은 행의 갯수, n은 열의 갯수, p는 칸의 위치를 나타낸다.
plot(x,y1)
title("y = cos(x)")
# title("text") : "text"는 그래프의 제목을 나타낸다.
xlabel("x-axis")
ylabel("y-axis")
# xlabel("text"), ylabel("text") : "text"은 축 이름을 나타낸다.
axis([min(x),max(x),min(y1),max(y1)])
# axis([xmin, xmax, ymin, ymax]) : xmin, xmax은 x축의 최소값 최대값 설정, ymin, ymax은 y축의 최소값 최대값 설정한다.
subplot(2,2,2)
plot(x,y2)
title("y = sin(x)")
xlabel("x-axis")
ylabel("y-axis")
axis([min(x),max(x),min(y2),max(y2)])
subplot(2,2,[3,4])
plot(x,y1,".-g",x,y2,"p-.r")
hold
#hold는 해당 그래프를 순차적으로 추가하고 싶을 때 쓰인다.
plot(x,y3,":b")
hold
grid
# grid는 모눈을 생성할 때 쓰인다.
title("all")
xlabel("x-axis")
ylabel("y-axis")
axis([min(x),max(x),-3,3])
legend("y = cos(x)","y = sin(x)","y = tan(x)","SW")
- 3차원 그래프 그리기
예시로 살펴 보겠다.
ex) plot3
t=0 : pi/30 : 15*pi;
x = cos(t)
y = sin(t)
z = t
plot3(x,y,z)
grid
ex) meshgrid , mesh
x = linspace(-3,3,100)
y = linspace(-6,6,100)
[X,Y] = meshgrid(x,y)
# 1차원으로 형성된 x,y를 좌표(x,y)로 만들기 위한 일종의 트릭같은 것이다. 가령 x = [-1,1], y = [2,3]이라고 해보자 그리고 3차원 공간의 xy평면을 생각해보자.[X,Y] = meshgrid(x,y)를 적용해본다면, X = [-1,1;-1,1] ,Y = [2,2;3,3]가 나온다. (x,y) 각각 (-1,2),(-1,3),(1,2),(1,3)이 나오게 만들기 위해서 이런 방법을 쓰는 것이다.(X,Y의 각각 1행1열, 2행1열, 1행2열, 2행2열 원소를 넣은 것.)
Z = X.^2 - Y.^2
mesh(X,Y,Z)
ex) surf
x = linspace(-3,3,100)
y = linspace(-6,6,100)
[X,Y] = meshgrid(x,y)
Z = X.^2 - Y.^2
surf(X,Y,Z)
# 위의 mesh 함수에 색을 채운 것이다.
ex) contour
x = linspace(-3,3,100)
y = linspace(-6,6,100)
[X,Y] = meshgrid(x,y)
Z = X.^2 - Y.^2
contour(X,Y,Z)
# 3차원 그래프를 등고선으로 표현한 것이다.
ex) meshc
x = linspace(-3,3,100)
y = linspace(-6,6,100)
[X,Y] = meshgrid(x,y)
Z = X.^2 - Y.^2
meshc(X,Y,Z)
# mesh + contour 그래프이다.
ex) meshz
x = linspace(-3,3,100)
y = linspace(-6,6,100)
[X,Y] = meshgrid(x,y)
Z = X.^2 - Y.^2
meshz(X,Y,Z)
# z값을 xy평면으로 수직선으로 내린 그래프이다.
ex) waterfall
x = linspace(-3,3,100)
y = linspace(-6,6,100)
[X,Y] = meshgrid(x,y)
Z = X.^2 - Y.^2
waterfall(X,Y,Z)
# x축 또는 y축 한 방향으로 수직선을 그리며 폭로 형태를 생성한다.
'학부수업 > 수학프로그래밍' 카테고리의 다른 글
수학프로그래밍_6 감염병모델 in 2009 InFluenza (0) | 2021.11.01 |
---|---|
수학 프로그래밍_5 감염병 모델 (0) | 2021.10.25 |
수학프로그래밍_4 심벌릭 툴박스 (0) | 2021.10.25 |
수학프로그래밍_3 (0) | 2021.10.25 |
수학프로그래밍_1 (0) | 2021.10.24 |