고래밥 이야기

수학프로그래밍_2 본문

학부수업/수학프로그래밍

수학프로그래밍_2

Whale_Rice 2021. 10. 24. 18:34

건국대학교 수학과 정은옥 교수님의 수학프로그래밍 강의 및 "제대로 배우는 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축 한 방향으로 수직선을 그리며 폭로 형태를 생성한다.

Comments