본문 바로가기

programming language484

MATLAB adaptive filtering, Least Mean Square(LMS) 오늘은 적응형 알고리즘 중에서 가장 간단하면서도 많이 사용되는 Least Mean Square(LMS) 알고리즘에 대해 설명 드리겠습니다. 적응형 알고리즘은 임의의 모르는 시스템에 대한 identification이나 inverse response 를 구해서 채널 추정을 한다거나 할 때 주로 이용되며, 그 적용의 예는 무궁무진 하다고 합니다. 그 중에서도 LMS 알고리즘은 1960 년대에 만들어진 알고리즘임에도 불구하고 구현이 간단하고, 성능 또한 복잡도 대비 우수하여 많이 이용되고 있습니다. 계수 조절이 가능한 탭수 N 의 FIR 필터가 있는 경우 이 필터의 출력 신호 y(n)은 다음과 같이 정의 됩니다. FIR 필터와 비교할 원하는 신호를 d(n) 이라 할 때 그 오차를 다음과 같이 계산할 수 있죠. .. 2011. 5. 23.
MATLAB Dependency Report MATLAB 을 이용하여 다음과 같은 간단한 m 파일을 작성해 보겠습니다. 위 Editor 의 왼쪽 창은 test_file.m 파일이며 오른쪽에 있는 파일은 test_file.m 파일에서 이용한 MySin.m 함수 파일 입니다. 위 test_file.m 파일을 다른 사람에서 전달 한다면 당연히 test_file.m 파일과 MySin.m 함수 파일을 같이 전달해야 합니다. 위 예와 같이 함수가 하나인 경우에는 MySin.m 함수 파일을 빼 놓고 전달하는 경우가 없겠지만, 여러 사람이 같이 작업을 한다거나 또는 자신만의 library 를 작성하여 path 를 추가하여 이용하는 경우에는 주요한 함수들을 빼 놓고 전달해서 m 파일이 제대로 실행이 안 되는 경우가 종종 있습니다. 이런 경우에 Dependency .. 2011. 5. 21.
MATLAB ordinary differential equations 를 풀어보자~ dsolve() MATLAB Symbolic math toolbox 를 이용하면 공대생이라면 흔히 접하게 되는 상미분방정식(ordinary differential equations) 문제들을 굉장히 쉽게 풀 수 있습니다. dsolve() 명령어를 이용하여 아래 ordinary differential equations 문제를 풀어 보도록 하죠. dsolve() 함수를 이용하여 ordinary differential equation 을 풀 때 1차 미분은 D 로 표현을 합니다. 2차 미분은 D2로 표현을 하고 3차는 D3 로 표현을 하죠~ 위 식에 대해 MATLAB 의 dsolve() 함수를 이용하여 풀 때는 다음과 같이 합니다. S=dsolve('Dy+6*y=3*exp(-t)', 'y(0)=0') 그럼 다음과 같은 해가 .. 2011. 5. 15.
MATLAB 연립 방정식 해 구하기, least square solution MATLAB 을 이용하여 다음과 같은 연립 방정식의 해를 구해 보죠. 위 식은 다음과 같이 matrix 의 형태로 나타낼 수 있습니다. MATLAB 에서 연립방정식의 해를 구할때는 보통 \(back slash) 연산을 이용합니다. A=[9 7 4; 5 16 8; 56 -2 21]; % A 값 정의 Y=[12 ; -23 ; 17]; % Y 값 정의 X=A\Y % x, y, z 의 해를 구함 위 식의 해는 다음과 같습니다. X = 3.9347 2.0756 -9.4853 물론 다음과 같이 inv() 함수를 이용하여 구할 수도 있죠. X_inverse=inv(A)*Y % inverse 함수를 이용하여 해를 구함 X_inverse = 3.9347 2.0756 -9.4853 위 문제와 같이 A matrix 가 정방.. 2011. 5. 8.
MATLAB Poisson (포아송) r.v. generation 오늘 포스팅에서는 MATLAB 을 이용하여 Poisson r.v. 을 생성하고 이의 pmf 및 cdf, 평균 분산 등의 특징을 알아보도록 하겠습니다. Poisson distribution은 특정 시간 동안의 이벤트 발생 확률 등을 나타내는데 주로 이용되는 r.v. 로서 다음과 같은 확률 질량 함수를 가지고 있습니다. cdf 는 다음과 같습니다. . 평균 및 분산 값은 λ 입니다. cdf 식을 알았으니 이제 uniorm r.v. 을 발생시켜서 Poisson r.v. 을 발생 시킬 수 있을 겁니다. λ = 4 일때의 poisson r.v. 을 생성하고 이에 대한 pmf 및 cdf 평균 및 분산을 구해 보도록 하겠습니다. 코드는 다음과 같습니다. command 창에 나온 평균 및 분산 결과는 다음과 같고 이론.. 2011. 5. 5.
MATLAB central limit theorem simulation 오늘의 포스팅에서는central limit theorem (중심 극한 정리)에 대한 MATLAB 시뮬레이션에 대해 설명 드립니다. 저 개인적으로는 중심 극한 정리에 대해 이해를 하면 왜 가우시안 분포를 정규분포라고도 하는지 이해를 하게 된 것 같습니다. 중심 극한 정리란 어떤 임의의 확률 변수의 합의 횟수가 무한대가 될 때 그 분포가 정규 분포에 가까워진다는 것입니다. 위 식을 보면서 좀더 쉽게 설명 드리자면 위 식의 Xi 라는 변수가 어떤 분포를 갖는 변수던지 간에 N 값이 무한대가 되도록 더하면 SN 이라는 확률 변수의 분포가 정규 분포가 된다는 겁니다. 특정 r.v. 의 합에 대한 평균 및 분산은 다음 수식과 같은 특징이 있습니다. 평균이 μ 이고 분산이 σ2인 정규 분포의 pdf 는 다음과 같습니.. 2011. 5. 5.
윈도우 환경에서 vim Perl IDE 사용하기 개인적으로 윈도우 환경에서 GVim Editor 를 주로 사용하는 편입니다. 뭐 vim 이야 말이 필요 없는 Editor 이니 많은 분들이 이용 할 거라 생각 되는데요. 일단 가볍고 OS 안 가리고 잘 돌아가고~ 나름의 설정이나 코딩하는 맛도 있고 해서 vim을 좋아라 합니다. 요즘 Perl 공부를 하다가 Perl IDE 는 없나 하는 생각으로 찾다 보니…. 역시나 Perl IDE 환경을 제공해주는 script 가 있더군요. Perl IDE vim script 는 다음 주소에서 다운 받습니다. http://www.vim.org/scripts/script.php?script_id=556 위 주소에서 현재 가장 최신 파일인 4.11 version 파일을 다운로드 받습니다. 다운로드 한 zip 파일을 vim .. 2011. 5. 4.
MATLAB symbolic math toolbox 를 이용한 합성 함수, 역함수 MATLAB 의 symbolic math toolbox를 이용하면 합성 함수나 역함수 등을 매우 쉽게 구할 수 있습니다. 합성 함수를 구해주는 함수로는 compose()라는 함수가 있습니다. 다음 식에 대해 간단히 합성 함수를 구해 보죠. , 위 식에 대한 합성 함수f(g(x)) 는 다음과 같습니다. syms x f= x^2+2*x+3; % f(x) g= sin(x); % g(x) fg=compose(f,g) % f(g(x)) ezplot(fg), grid on % f(g(x)) 그래프 결과는 다음과 같습니다. fg = sin(x)^2 + 2*sin(x) + 3 다음으로 역함수를 구해주는 함수인 finverse() 함수에 대해 알아보죠. 위 식에 대한 역 함수를 구하려면 다음과 같이 코딩 하시면 됩니다... 2011. 4. 29.
MATLAB function handle 추가 오늘의 포스팅에서는 function handle 사용법의 추가 적인 내용들에 대하여 정리하겠습니다. 여러 함수에 대해 똑 같은 값을 적용할 때에는 function handle 을 struct class 나 cell class 의 형태로 만들어서 이용할 수가 있습니다. 다음 수식에 대하여 struct 의 형태로 function handle 을 구성하고 그에 따른 값을 알아보죠. 다음과 같이 struct 의 형태로 표현 할 수 있고, x=-1:0.5:1 에 대한 각 수식의 값을 한번에 구할 수가 있습니다. struct 에 한번에 똑 같은 값 또는 함수 등을 적용 할 때는 structfun() 함수를 이용 합니다. 위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. ans = f: [1 0.2500 0.. 2011. 4. 25.
MATLAB ordinary differential equation , ode45 MATLAB 에서 미분 방정식에 대한 해를 구하는 여러 방법 중 수치적인 해를 구할 때 주로 ode23(), ode45() 와 같은 함수를 이용한다. ode 는 ordinary differential equation 의 약자이다. 뒤에 붙은 23이나 45 같은 숫자는 Runge-Kutta formulas 의 차수를 말한다. ode23 은 2차 3차 Runge-Kutta 방식을 이용하는 것이고, ode45 은 4차 5차 Runge-Kutta 방식을 이용하는 것이다. 문제의 유형에 따라 몇 차의 Runge-Kutta 방식을 이용해야 할지 결정 해야 한다. 문제의 유형이 stiff, nonstiff 인지 그리고 해의 정확도 가 High 인지 Low 인지에 따라 solver 의 선택을 달리 해야 한다. 언제 어.. 2011. 4. 24.
MATLAB nargin, nargout MATLAB 의 함수는 종종 입력과 출력 argument 의 수가 가변적인 경우가 많습니다. x=magic(3) 위에서 선언한 변수 x 에 대하여 다음과 같이 max() 함수를 이용할 수 있습니다. s=max(x) s1=max(x, 3) [s2 n]=max(x) 위 코드를 보면 max() 함수를 이용하는데 x 라는 입력 하나만 줄 수도 있고, x,3 이라는 두 가지 입력을 줄 수도 있고, [s2 n]이라는 2개의 인자가 출력이 되게 할 수도 있습니다. MATLAB 에서 함수의 가변적인 입출력을 가능하게 하는 keyword 가 nargin, nargout 입니다. nargin 은 함수에 입력되는 인자의 수를 말하며, nargout은 함수의 출력의 수를 말 합니다. 그럼 예를 들어 설명해 보도록 하죠. 다음.. 2011. 4. 24.
MATLAB laplace, inverse laplace transform 오늘의 포스팅에서는 선형 시스템 해석에 주로 사용되는 Laplace transform 에 대해 알아 보겠습니다. 임의의 함수 f(x)에 대한 Laplace transform 의 정의는 다음과 같습니다. 그리고 inverse Laplace transform 은 다음과 같죠. MATLAB symbolic math toolbox 를 이용하면 위 식과 같은 Laplace transform 또는 inverse Laplace transform 을 매우 쉽게 할 수 있습니다. Laplace transform 은 laplace() 라는 함수를 이용하고, inverse Laplace transform 은 ilaplace() 라는 함수를 이용합니다. 간단하게 몇 가지 예를 들어 보죠. 가장 기본적인 위 식에 대해 Lapl.. 2011. 4. 24.
MATLAB 변수를 저장 하자~ mat file MATLAB 을 사용하다 보면 특정 변수를 파일로 저장하고 싶은 경우가 있습니다. 다음과 같은 경우를 보죠. 이라는 함수 f 를 function handle 로 정의 하고 x=1:10 에 따른 y 값을 구했습니다. 위 함수 f 와 , y 값을 파일로 저장해서 나중에 다시 사용하고 싶다면 다음과 같이 save 명령어를 이용하여 mat 파일로 저장 하시면 됩니다. 확인을 위해 clear 명령을 통해 workspace 에서 변수를 지운 다음에 load fy.mat 이라는 명령어를 통해 파일을 읽어 들이면 f, y 라는 변수가 그대로 workspace 에 load 되는 것을 확인 할 수 있습니다. 2011. 4. 21.
MATLAB NaN MATLAB 의 NaN키워드는 Not-a-Number 의 약자입니다. 즉 숫자가 아니라는 뜻입니다. 0/0 이나 ∞/∞ 와 같은 경우 NaN 이 출력 되게 되는데, 보통은 쓸모가 없다라고 생각하곤 합니다. 하지만 이런 NaN 키워드는 그래프를 그릴 때 매우 유용하게 사용할 수 있습니다. 그래프에서 특정 부분을 그래프에 나타내고 싶지 않을 때는 NaN 을 이용해서 표현을 하면 됩니다. 다음과 같은 경우를 보죠. x=1:10; y=x*2; figure, plot(x,y), grid on y2=y; y2(y>10)=nan; % y 의 값중 10 보다 큰 값들은 nan 으로 설정 figure, plot(x,y2), grid on 위 코드는 y 의 값 중에서 10 보다 큰 값들은 NaN 을 이용하여 그래프에서 제.. 2011. 4. 20.
MATLAB 파일 출력 MATLAB 에서 txt 파일을 출력하는 경우 다음 과정에 따라 처리 한다. fopen() 함수를 이용하여 파일을 쓰기 모드('w')로 연다. fprintf() 함수를 이용하여 파일에 내용을 쓴다. fclose() 를 이용하여 file handle 을 닫아 준다. 다음과 같은 데이터를 이용하여 위 과정 대로 test_file.txt 파일에 저장해 보자. 저장하는 과정은 다음 코드와 같다. 저장된 파일 test_file.txt 을 열어서 확인해 보면 다음과 같다. 7 8 3 7 7 1 1 5 위 결과를 보면 정상적으로 저장이 안 된 것을 확인 할 수 있다. 이는 fprintf 함수에서 %d %d 를 써서 10진수 숫자를 저장할 때 각 열 벡터 별로 즉 MATLAB 이 일반적으로 처리하는 행 순서대로 저장하.. 2011. 4. 19.
MATLAB 파일 읽기 importdata() 오늘의 포스팅에서는 importdata() 함수를 이용하여 파일을 읽는 방법에 대해 알아보겠습니다. data.txt 파일이 다음과 같이 구성되어 있을 때 x123456 y24681012 아래 그림처럼 데이터를 load 할 수가 있습니다. 위 코드를 보면 importdata() 함수의 결과는 struct class 형태로 구성되는 것을 알 수 있고 알아서 수치 데이터는 수치 데이터끼리 문자로 된 header는 header 끼리 필드를 구분해서 저장 하는 것을 확인 할 수 있습니다. 2011. 4. 18.
GNU Octave 를 이용해 보자 MATLAB 을 대체 할 만한 공학 프로그램으로 이전에 scilab 을 소개한 적이 있습니다. 2011/03/11 - [MATLAB] - SCILAB 오늘은 또 다른 오픈소스 프로그램으로서 MATLAB 과 문법이 굉장히 유사한 GNU Octave 에 대해 소개 합니다. 일단 다음 페이지에서 다운로드 가능 합니다. http://www.gnu.org/software/octave/download.html 위 주소에 가 보시면 GNU 프로그램이니 만큼 source code 뿐만이 아니라 Binary 파일을 제공해 주는군요. Linux , Mac OS X, Windows , Sun Solaris …. 와 같이 널리 사용되는 운영 체제에 대해서는 binary 파일을 제공해 주니깐 자신의 운영 체제에 맞게 다운로드 .. 2011. 4. 17.
MATLAB binomial r.v. generation 지난 포스팅에서 bernoulli r.v. generation 에 대해 설명 드린 바 있습니다. 2011/04/06 - [MATLAB] - MATLAB Bernoulli random variable generation 오늘은 그 연장선상으로 binomial r.v. generation에 대해 설명 드리겠습니다. binomial distribution은 이항 분포라고 하는데, 한번의 시행에서의 성공 확률이 p 인 경우 n 번의 시행에서 k 번 성공할 확률을 의미 합니다. 이렇게 말하니깐 잘 이해 못하시겠다면, 주사위의 예를 들면 이해 하기 편하실 것 같습니다. 주사위를 던져서 숫자 1이 나올 확률은 1/6 이죠. 10 번 던져서 k 번 만큼 숫자 1이 나올 확률이 이항 분포로 다음 식과 같이 표현 됩니다... 2011. 4. 17.
MATLAB cell class MATLAB 에는 약간 독특한 cell 이라는 class 가 존재 합니다. cell class 는 타입을 안 가리고 다 저장 하거든요. 숫자 문자를 가리지 않고 하나의 변수로 관리 할 수 있습니다. struct class 처럼 field 로 구분하는 것도 아닌 게 한 변수에 막 집어 넣으니깐 처음에는 참 신기하더군요. perl 을 접하신 분은 '당연한 거 아냐?' 하실 지도 ….. 아무튼 이 cell 타입이라는 게 나중에는 참 쓸모가 많아 지니깐, 알아 두시면 도움이 됩니다. 아!! 여담으로 MATLAB 에서 perl script 도 실행이 가능 합니다. MATLAB 에서 perl() 함수를 찾아 보시길~ 이런 것도 되? 하면서 좋아하실 분들도 있을 거라 생각 됩니다. 아닌가? ㅡㅡ; cell class.. 2011. 4. 11.
MATLAB taylor, Maclaurin serise taylor serise 는 특정 지점에서의 미분 값들의 무한 합을 통하여 함수를 표현 할 수 있다는 것이다. 정의는 다음과 같이 된다. 특정 지점 a=0 인 경우를 Maclaurin series 라고 한다. MATLAB 을 이용하여 이와 같은 taylor series expansion을 구할 때는 taylor() 함수를 이용한다. taylor() 함수는 symbolic math toolbox 가 있어야 쓸 수 있는 함수이다. 다음 함수 에 대한 taylor series expansion을 알아보자. 다음과 같이 위 함수를 정의 한다. syms x f=log(1+x) f = log(x + 1) f1=taylor(f) 라고 하면 5차의 Maclaurin series expansion 결과를 반환 한다. f.. 2011. 4. 10.
MATLAB 그래프에 값 넣기 추가, gtext() 이전 포스팅에서 text() 함수를 이용하여 원하는 좌표에 텍스트를 넣는 방법을 알아 봤습니다. 2011/04/09 - [MATLAB] - MATLAB 그래프에 값 넣기 오늘의 포스팅에서는 그래프의 좌표를 마우스로 클릭하면 값이 입력되는 gtext() 함수에 대해 알아 보겠습니다. 먼저 다음 명령어를 통해 그래프를 하나 띄워 보죠. x=1:10; plot(x,x,'r:.'), grid on 이제 다음 명령어를 통해 input 1 이라는 글자를 그래프에 넣어 보겠습니다. gtext('input 1') 위 명령어를 실행하고 그래프 위에 커서를 올리면 다음과 같이 십자선이 나타납니다. 원하는 위치에 클릭을 하면 아래 그림 처럼 글자가 입력이 됩니다. 다음으로 여러 글자를 한 지점에 입력해 보죠. 여러 글자를 .. 2011. 4. 9.
MATLAB 그래프에 값 넣기 MATLAB 이 굉장히 많은 장점 중 첫 번째가 그래프 기능이라고 생각된다. C/C++ 와 같은 언어를 이용해 계산을 하더라도 그 결과에 대해 그래프 출력을 하려면 참~ 어려움이 많다. MATLAB 은 단 몇 줄로 그래프 표현이 가능하다. 이번 포스팅에서는 이렇게 생성된 그래프에 값을 입력하는 방법에 대해 설명하려 한다. 일단 간단한 그래프를 하나 그려보자. x=1:10 x = 1 2 3 4 5 6 7 8 9 10 y=1:10 y = 1 2 3 4 5 6 7 8 9 10 figure, plot(x,y,'r:.'), grid on 위 그래프의 x=3, y=3 지점에 'x=3, y=3' 이라고 글자를 넣어 보자. 그래프에 글자를 넣는 함수는 text() 라는 함수가 있다. text(x,y,'string') .. 2011. 4. 9.
MATLAB symbolic math 수식으로 함수 만들기 matlabFunction() 오늘 포스팅에서는 symbolic math 를 통해 계산한 수식에 대해 함수를 만드는 방법에 대해 설명 드리겠습니다. 일단 다음과 같이 수식을 정의 해 보죠. syms a b x f=a*x^2+x + 8 f = a*x^2 + x + 8 위 수식에서 a 값을 2*b 값으로 치환을 해보겠습니다. 치환 할 때는 subs() 함수를 이용합니다. f1=subs(f, a, 2*b) f1 = 2*b*x^2 + x + 8 그럼 이제 위 f1 식을 함수로 정의해 보겠습니다. symbolic 식을 함수로 표현 할 때는 matlabFunction() 이라는 함수를 사용합니다. hf1 = matlabFunction(f1) hf1 = @(b,x)x+b.*x.^2.*2.0+8.0 위와 같이 matlabFunction() 함수를 .. 2011. 4. 9.
MATLAB Symbolic math toolbox 를 이용한 latex 변환과 수식 입력 이전 포스팅에서 Symbolic math toolbox 에 대해 간단하게 설명 드린 적이 있습니다. 2011/04/04 - [MATLAB] - MATLAB 수학이 쉬워지는 symbolic math toolbox 오늘은 symbolic math toolbox 를 이용한 latex code 변환과 MathType 이라는 수식입력 프로그램을 이용한 워드프로세서에서의 수식입력에 대해 설명 드리겠습니다. 간단하게 다음과 같은 등차수열의 합을 symbolic math 를 이용하여 계산하고 그 결과를 MathType 을 이용하여 워드에 입력해 보죠. 아래 코드는 symbolic math 를 이용하여 위 수식에 대해 계산한 것입니다. latex() 함수를 통해 결과를 latex code 로 표현해 줬습니다. 위 결과에.. 2011. 4. 7.
MATLAB Bernoulli random variable generation Random Variable을 생성하기 위해서는 r.v. 의 CDF 값을 알고 있어야 한다. CDF 값을 알고 있으면, 대부분의 컴퓨터 언어에서 기본적으로 제공하는 uniform r.v. 을 생성한 후 CDF 의 inverse 를 통해 r.v. 을 생성한다. 오늘의 포스팅에서는 MATLAB 을 이용하여 Bernoulli r.v. 를 생성해 보고 그 PMF(Probability Mass Function)와 CDF 를 확인한다. bernoulli r.v. 은 k=0, 1 에 대하여 다음과 같은 PMF 및 CDF 값을 갖는다. PMF: CDF: 그럼 이제 MATLAB을 이용하여 Bernoulli r.v. generation 을 생성해 보자. 코드는 다음과 같다. 위 코드는 p = 0.3 인 경우의 Bernou.. 2011. 4. 6.
MATLAB 과 Excel을 연동해 보자 MS office 프로그램 중 엑셀은 굉장히 범용적으로 많이 사용되는 소프트웨어 입니다. 일단 본론에 들어가기 앞서 엑셀 공부하기 좋은 사이트부터 말씀 드리죠. 엑셀러 권현욱 님의 홈페이지인 http://www.iexceller.com/ 인데요. 여기는 뭐 말이 필요 없는 사이트 입니다. 엑셀 및 VBA 관련 강좌가 굉장히 많이 그리고 잘~ 정리가 되 있습니다. 엑셀 공부하시는 분들은 굳이 책 사 볼 필요 없이 위 사이트만 맨날 들어가서 봐도 될 것 같습니다. 이제 오늘의 본론으로 들어가서 MATLAB 과 엑셀의 연동에 대해 말씀 드리겠습니다. MATLAB 과 엑셀의 연동을 위해서는 일단 Spreadsheet Link EX 라는 툴박스가 필요 합니다. 위 툴박스가 설치되어 있다는 가정하에 설명 드리겠습니.. 2011. 4. 6.
MATLAB Symbolic math 미적분, diff(), int() MATLAB math toolbox 를 이용한 미분은 diff() 함수를 통해 구할 수 있습니다. 다음 식에 대하여 diff() 함수를 이용하여 미분을 수행해 보죠. syms x f = x^4+3*x^2+x+2 f = x^4 + 3*x^2 + x + 2 diff(f, x) % f 값을 x 에 대하여 미분 ans = 4*x^3 + 6*x + 1 diff(f, x, 2) % f 값을 x 에 대하여 2번 미분 ans = 12*x^2 + 6 Symbolic 식에 대한 적분은 int() 함수를 통해 이루어 집니다. 정적분 뿐만이 아니라 부정 적분도 수행 합니다. int(f,x) % 부정 적분 ans = x^5/5 + x^3 + x^2/2 + 2*x int(f, x, 1, 5) % 1~5 구간에 대한 적분 ans .. 2011. 4. 5.
MATLAB 누적합 cumsum(), 누적곱 cumprod(), 누적 사다리꼴 수치 적분 cumtrapz() cumsum() 함수를 이용하면 vector 또는 matrix 에 대한 누적 합을 아주 쉽게 구할 수가 있다. 사용법은 다음과 같으며, 행 또는 열 별로 이전 값과 누적이 되는 것을 확인 할 수 있다. cumprod() 함수는 누적 곱을 할 때 이용한다. cumtrapz() 함수는 누적 사다리꼴 수치 적분을 할 때 이용한다. 위 결과에서 trapz() 함수를 이용한 것과 cumtrapz() 함수의 마지막 값이 같음을 알 수 있다. 2011. 4. 4.
MATLAB 수학이 쉬워지는 symbolic math toolbox MATLAB 은 기본적으로 수치 연산을 수행합니다. 즉 , 1+2=3 이런 식으로 말이죠. 하지만 MATLAB Symbolic math toolbox 를 이용하면 symbolic 변수들을 이용한 계산도 가능합니다. symbolic math 란 c=a+b 형태로 문자를 이용한 수학 계산을 하는 것을 말합니다. symbolic math 를 이용하기 위해서는 첫 번째로 변수를 symbolic 형태로 선언 해 줘야 합니다. symbolic 선언은 sym() 함수를 이용합니다. x=sym('x') 하면 x 를 complex symbolic 변수로 선언합니다. default 로 complex 타입으로 선언하는 거죠 x=sym('x','real') 하면 x 를 real 변수로 선언합니다. x = sym('x', 'p.. 2011. 4. 4.
MATLAB Bisection method(이분법) 오늘의 포스팅에서는 MATLAB 을 이용하여 간단한 수치해석 기법인 bisection method(이분법) 에 대해 알아 보겠습니다. bisection method 는 특정 구간의 중간 값의 부호 판단을 통해 수치적으로 해를 구하는 방식입니다. 에 대하여 상대오차 10-8 이하가 되도록 [-10, 10] 구간에서 해를 구해 보겠습니다. command 창에서 결과를 확인하면 Bisection method 를 이용한 결과와 roots() 함수를 이용한 결과가 근사적으로 일치함을 확인 할 수 있습니다. 2011. 4. 3.