프로그래밍/Octave 8

Octave 를 이용하여 정사각형 그리기

명령 프롬프트> octave -qi octave:1> x = [0, 1, 1, 0, 0]; octave:2> y = [0, 0, 1, 1, 0]; octave:3> plot(x, y), axis([-1,2, -1,2]) octave:4> axis equal octave:5> close octave:6> plot(x, y), axis equal, axis([-1,2, -1,2]) octave:7> close * 위의 3번 줄 명령으로 정사각형을 그렸지만, aspect ratio 가 맞지 않아 직사각형으로 보인다, * 그래프 창을 그대로 둔 채 위의 4번 줄 명령울 내리면, 그래프 창이 다시 열리면서 정사각형이 그려진다. (위의 3번과 4번 줄 대신 6번 줄 하나만 내려도 된다. close 는 그래프 창을 ..

Octave 로 구하는 이차방정식의 근

프롬프트> octave -qi octave:1> # Let's find roots of the equation x^2 - 5 = 0. octave:1> c = [1, 0, -5]; # 다항식의 계수들 octave:2> roots(c) ans = -2.2361 2.2361 octave:3> x = roots(c); octave:4> x(1) ans = -2.2361 octave:5> x(2) ans = 2.2361 octave:6> sqrt(5) ans = 2.2361 octave:7> format long octave:8> x x = -2.23606797749979 2.23606797749979 octave:9> x(1), x(2) ans = -2.23606797749979 ans = 2.23606797..

Octave 로 계산 하는 집합 연산 몇 가지

프롬프트> octave -qi octave:1> a = [1, 2, 3]; octave:2> b = [5, 3, 4, 3]; octave:3> union(a, b) # 합집합 ans = 1 2 3 4 5 octave:4> intersect(a, b) # 공통집합 ans = 3 octave:5> setdiff(a, b) # 차집합 ans = 1 2 octave:6> setdiff(b, a) # 차집합 ans = 4 5 octave:7> setxor(a, b) # 대칭차(symmetric difference) ans = 1 2 4 5 octave:8> unique(b) # 중복 허용 않는 집합 ans = 3 4 5 octave:9> ismember(a, b) # 원소 확인 ans = 0 0 1 octave:..

Cygwin 의 Octave 로 그린 평면 매개곡선을 jpg 파일로 저장하기

Cygwin 의 터미널에서 $ xinit 하여 X 터미널을 열고, X 터미널의 쉘 프롬프트에서 $ octave -qi 하여 Octave 를 시작하여 다음 Octave 명령들을 입력한다. (saveas() 명령으로 그림을 파일로 저장할 수 있다.) octave:1> t = linspace(0, 2*pi, 500); octave:2> x = cos(t).**3; octave:3> y = sin(t).**3; octave:4> plot(x, y); # => error! octave:5> setenv("GNUTERM", "X11"); # 윈도우즈에서는 graphics_toolkit gnuplot; octave:6> plot(x, y); octave:7> saveas(1, "figure_asterisk.jpg",..

Octave 를 이용하여 비선형 연립미분방정식의 해곡선 그리기

다음 연립 미분방정식과 초기조건 x(0) = 1, y(0) = 2 를 만족하는 두 함수 x = x(t), y = y(t) 의 그래프를 그려보자. dx/dt = r*x*(1 -x/k) -a*x*y/(1 + b*x) dy/dt = c*a*x*y/(1 + b*x) - d*y 단, 여기서 r = 0.25 k = 1.4 a = 1.5 b = 0.16 c = 0.9 이다. 즉, dx/dt = 0.25*x*(1 -x/1.4) - 1.5*x*y/(1 + 0.16*x) dy/dt = 3*1.5*x*y/(1 + 0.16*x) - 0.8*y [Octave 소스파일: f.m]-------------------------------- function xdot = f (x, t) r = 0.25; k = 1.4; a = 1.5;..

Octave 를 이용하여 간단한 그래프 그리기

plot 명령을 내리기 전에 graphics_toolkit gnuplot 명령을 먼저 내린다. 명령 프롬프트> octave -qi octave:1> graphics_toolkit gnuplot octave:2> x = linspace(0,1,400); octave:3> y = x.^2; octave:4> plot(x,y) * 위의 코드로 그래프 창이 나타나지 않을 경우 다음 코드를 시도한다. 명령 프롬프트> octave -qi octave:1> graphics_toolkit gnuplot octave:2> setenv('GNUTERM','wx'); octave:3>x = linspace(0,1,400); octave:4>y = x.^2; octave:5> plot(x,y) Cygwin 의 X 터미널에서 ..

이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with Octave

Octave 언어 소스: % Filename: testHexView_02.m % % Execute: octave -qf testHexView_02.m [filename] % % Date: 2013. 8. 18. function printUsage() printf("Usage: octave -qf testHexView_02.m [filename]\n"); endfunction function y = getFileSize(fd) n = ftell(fd); fseek(fd, 0, SEEK_END); x = ftell(fd); fseek(fd, n, SEEK_SET); y = x; endfunction function y = toHex(n) s = ""; x1 = bitshift(bitand(n, 0xF0), ..

Octave 언어로 역삼각함수, 역쌍곡선함수 값을 구하는 예제

역삼각함수란 삼각함수의 역함수를 의미하고, 역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다. 수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, Octave 언어에서는 asin 함수로 구현되어 있다. 또한 Octave 언어에는 쌍곡선함수 sinh 와 cosh 의 역함수로 각각 asinh 와 acosh 가 구현되어 있지만, 비교를 위해 arcsinh 와 arccosh 라는 이름의 함수로 아래의 소스에 구현해 보았다. %{ % Filename: testArcSine.m % % Execute: octave -qf testArcSine.m % % Date: 2013. 1. 8. % Copyright (c) pkim _AT_ scripts.pe.kr %} function y = arcsinh(x) y = ..