일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍 언어
- IT
- 선형대수학
- C
- 위키
- LaTeX
- matlab
- 나무위키
- 수학
- 리브레위키
- HTML5.
- 확률
- C++
- html
- 점자
- html5
- Inkscape
- 오늘의 문제
- Java
- CSS
- 자바스크립트
- css3
- 글이_점점_짧아지고_있습니다.
- 프로그래밍
- C언어
- 물리학
- javascript
- ┌─┐
- Nemeth Braille
- python
- Today
- Total
목록프로그래밍/MATLAB (14)
SturdyCobble's Study Note
(LDU Decomposition만을 진행하며, 예외 처리 등은 없는 코드입니다. 직접 작성해 오류나 비효율적인 부분이 존재할 수 있습니다.) function [L,D,U] = decomLDU(A) % Decompose the given matrix A as LDU form i = 1; j = 1; [R, C] = size(A); % square matrix A if (R == C) N = R; % since A is N by N. Maybe redundant. L = eye(N); D = eye(N); while i
※ 이 글은 최소한 Python과 같은 프로그래밍 언어를 한 번 이상 접한 사람을 독자로 가정하여 작성되었습니다. 사용버전은 R2019a기준입니다. 또한 기본적인 프로그램 조작보다는 프로그래밍에 초점을 맞추어 작성하였습니다. 이번 글은 다음 글들을 바탕으로 작성되었습니다. 이번 글에선 이미 다룬 연산을 제외하고 기초적인 연산을 진행하는 연산자, 함수에 대해 다루고 그 외 유용한 특수 문자들을 다룹니다. https://kr.mathworks.com/help/matlab/matlab_prog/matlab-operators-and-special-characters.html MATLAB 연산자와 특수 문자 - MATLAB & Simulink - MathWorks 한국 아래 MATLAB 명령에 해당하는 링크를 클..
MATLAB에는 rref라는 함수로 위 Reduced Row Echelon Form을 구할 수 있습니다. 이번 글에서는 개략적으로 이 함수의 동작원리를 살펴보겠습니다. 자세한 사항은 https://en.wikipedia.org/wiki/Gaussian_elimination#Pseudocode 의 코드를 참조하시면 편합니다. (rref함수의 코드는 type rref로 구할 수 있습니다.) function A = getRef(A) % 1 [R,C] = size(A); i = 1; j = 1; while i getRref(A) A = 15 16 17 18 19 7 8 9 10 11 11 12 13 14 15 1 2 3 4 5 A = 1.0000 1.0667 1.1333 1.2000 1.2667 0 0.5333..
※ 이 글은 최소한 Python과 같은 프로그래밍 언어를 한 번 이상 접한 사람을 독자로 가정하여 작성되었습니다. 사용버전은 R2019a기준입니다. 또한 기본적인 프로그램 조작보다는 프로그래밍에 초점을 맞추어 작성하였습니다. 엑셀에서 여러 데이터를 처리하듯, MATLAB에서도 여러 데이터를 처리하고, 시각화할 상황이 생길 수 있습니다. 엑셀에서 행 단위로 측정값을 기록하고, 열마다 측정값의 종류를 다르게 하듯이, 행렬로 다음과 같이 데이터를 저장할 수 있습니다. %시간 측정값1 측정값2 data = [1.0000 0.6715 0.8884 2.0000 -1.2075 -1.1471 3.0000 0.7172 -1.0689 4.0000 1.6302 -0.8095 5.0000 0.4889 -2.9443 6.000..
※ 이 글은 최소한 Python과 같은 프로그래밍 언어를 한 번 이상 접한 사람을 독자로 가정하여 작성되었습니다. 사용버전은 R2019a기준입니다. 또한 기본적인 프로그램 조작보다는 프로그래밍에 초점을 맞추어 작성하였습니다. 이번 글에서는 함수에 대해 다룹니다. 수학적인 함수가 아닌 프로그래밍에서의 함수입니다. MATLAB에서 함수는 독특한 지위를 갖는데, 함수가 별도의 파일로 존재할 때 함수 이름은 파일 명과 같아야 하며, 같은 파일 내에 존재하는 경우 스크립트의 가장 마지막에 위치해야 합니다. 아래 예시를 참고해봅시다.(파일명과 같아 메인이 되는 함수는 end가 없어도 됩니다.) function w = f(x,y,z) w = x.^2 + y.^2 + z.^2; end 수학적인 함수와 비슷한 형태로 정..
x = -2:0.5:2; y = -2:0.5:2; z = -2:0.5:2; [X,Y,Z] = meshgrid(x, y, z); U = 3*X.^2.*Z + Y.^2; V = 2*X.*Y; W = x.^3-2*Z; figure quiver3(X,Y,Z,U,V,W) syms x y z field = [3*x^2*z+y^2 2*x*y x^3-2*z]; vars = [x y z]; divergence(field,vars) curl(field,vars) >> ans = 2*x + 6*x*z - 2 ans = 0 0 0
주의 : MATLAB 배운지 얼마 안 돼서 작성한 스크립트라 의미없는 반복이나 비효율적인 지점이 발견될 수 있습니다. 또한, 일부로 수학적인 내용을 보여주기 위해 함수를 분리하거나 한 흔적이 남아있습니다. 실행 코드 syms x y z; format long; r(:,1) = [-2 ; 3 ; -1]; k = 1; for k = 2:80 D = jacobian([x*y*z+1, y^2-1, x^2+z+1],[x,y,z]); Dv = subs(D,[x y z],r(:,k-1)'); if det(Dv) == 0 break end r(:, k) = r(:, k-1) - Dv\f(r(:, k-1)); end r(:,end) f(r(:,end)) function w = f(v) x = v(1); y = v(2);..
※ 이 글은 최소한 Python과 같은 프로그래밍 언어를 한 번 이상 접한 사람을 독자로 가정하여 작성되었습니다. 사용버전은 R2019a기준입니다. 또한 기본적인 프로그램 조작보다는 프로그래밍에 초점을 맞추어 작성하였습니다. 가끔은 2차원의 배열 즉, 일반적인 행렬 이상의 배열에 접근해야 할 때가 있습니다. 이때, 다차원 배열을 이용합니다. 행렬과 같이 zeros, ones, rand, randn을 통해 생성 가능합니다. >> A = ones(3,4,5) A(:,:,1) = 1 1 1 1 1 1 1 1 1 1 1 1 A(:,:,2) = 1 1 1 1 1 1 1 1 1 1 1 1 A(:,:,3) = 1 1 1 1 1 1 1 1 1 1 1 1 A(:,:,4) = 1 1 1 1 1 1 1 1 1 1 1 1 A..
※ 이 글은 최소한 Python과 같은 프로그래밍 언어를 한 번 이상 접한 사람을 독자로 가정하여 작성되었습니다. 사용버전은 R2019a기준입니다. 또한 기본적인 프로그램 조작보다는 프로그래밍에 초점을 맞추어 작성하였습니다. MATLAB은 다양한 연산을 행렬로 처리할 수 있습니다. 알고리즘을 반복문 대신 벡터나 행렬 연산으로 나타내는 과정을 벡터화라고 합니다. 이 과정을 통하면, 알고리즘을 좀 더 직관적이고 빠르게 실행 될 수 있게 표현할 수 있습니다. 아래 예시를 참고해봅시다. x = 0; for k = 1:101 y(k) = x^2; x = x + 1; end disp(y) 위 예시는 0부터 100까지 수의 제곱수를 담은 배열을 생성합니다. 하지만, 이는 아래와 같이 MATLAB의 행렬 연산으로 다음..
※ 이 글은 최소한 Python과 같은 프로그래밍 언어를 한 번 이상 접한 사람을 독자로 가정하여 작성되었습니다. 사용버전은 R2019a기준입니다. 또한 기본적인 프로그램 조작보다는 프로그래밍에 초점을 맞추어 작성하였습니다. 다른 프로그래밍 언어와 마찬가지로 조건부 제어문과 루프 제어문이 모두 MATLAB에 존재합니다. 다음과 같은 형태로 존재합니다. %IF문 if 조건문 실행 내용1 elseif 조건문 실행 내용2 else 실행 내용3 end if문은 조건문을 판단해서 참인 경우 실행내용1을 실행하고, else if는 연결된 if문이 거짓인 경우 조건을 판단해 실행내용2를 실행합니다. else if는 여러개가 사용될 수 있으며, 나머지 상황에 대해서는 else를 통해 처리해줍니다. end는 각 if문을..