본문 바로가기

프로그램/MATLAB

【MATLAB】 순차곱셈 (펙토리얼) 계산을 위한 for 루프 문제풀이 [문제] Q. 순차곱셈(factorial, 펙토리얼)을 계산하기 위한 M-파일을 만들어라. [문제풀이] 순차곱셈은 간단하게 factorial(x) 함수를 이용해서 바로 구하는게 가능하지만, 이번 문제는 for 루프구조를 이용해서 펙토리얼 기능을 하는 코드를 짜보라는 문제입니다. 우선 코드는 위와 같이 함수로 작성했습니다. 이름에 빨간표시가 있네요. 하지만, 구동하는데에는 문제가 없어서 포스팅합니다. [출력값] = 함수이름 (입력값) 으로 작성해주고 for 구문을 통해 펙토리얼 기능을 할 수 있도록 만들었습니다. 1부터 입력받은 값까지 쭈욱~ 곱해주면 됩니다. 위에가 출력된 결과물입니다. 이상!
【MATLAB】 if~elseif 구조 sign 함수 M-파일 개발 문제풀이 -Chapra의 응용수치해석 3판 예제 3.4 [문제] Q. 스칼라에 대하여 MATLAB의 내장함수인 sign 함수는 인수의 부호에 따라 (-1, 0, 1)의 값을 넘겨준다. 다음은 이 함수가 MATLAB에서 어떻게 수행되는지를 나타낸다. 같은 기능을 수행하기 위한 M-파일을 개발하라. [문제풀이] 이번 문제는 if ~ else if 구문으로 쉽게 풀이할 수 있습니다. 먼저, 사용자가 값을 입력하기 위해 input 함수를 사용했습니다. (교재 풀이는 함수풀이인데, 저는 input이 편해서 사용했습니다.) 결과는 위와 같이 출력되었습니다. 아무래도 한국인이다보니 한글이 더 편하게 받아들여지네요. 참고로 sign 함수의 설명은 다음과 같습니다. 직역하자면, 입력한 x가 0보다 크면 1을, 0보다 작으면 -1..
【MATLAB】 대화식 M-파일 함수 문제풀이 - Chapra의 응용수치해석 3판 예제 3.3 [문제] Q. 번지점프하는 사람의 자유낙하 속도를 계산한다. 입출력으로 input과 disp 함수를 사용하라. [문제풀이] 항력계수 공식은 책에 적혀있는데로 적을 수 있습니다. 이번 대화식 M-파일 문제는 input 함수를 사용하는데에 초점이 있습니다. %뒤에 초록색 한글로 설명을 적어두었습니다. 순서대로 조건들을 입력해주고, input 함수로 사용자가 입력하게하고, 결과를 도출하는 중입니다. 위 결과가 출력된 모습입니다. 1~3번을 직접 숫자로 입력해주면 결과가 자동으로 함수에의해 계산되어 출력됩니다. 이상!
【MATLAB】 발사체 운동에 대한 동영상 예제 풀이 [문제] Q. 초기 속도 (V0)와 각도(θ0)로 발사된 발사체의 직교좌표는 다음과 같이 계산 된다. (공기 저항은 없다고 가정한다.) 여기서 g는 9.81 m/s^2이다. V0 = 5 m/s 이고, θ0 = 45˚ 인 경우, 발사체의 궤적에 대한 동영상을 만드는 스크립트를 작성하라. [문제풀이] 우선, 문제에서 주어진 기본값들을 위처럼 입력해줍니다. 중력가속도나 초기속도, 초기 각도입니다. 그리고 1번줄에 clear, clc, clf는 스크립트가 실행될때마다 모든 것을 정리하기 위한 하나의 예의입니다. 그리고 주어진 함수는 아래와 같이 작성할 수 있습니다. 우선, 시간을 나눠줘야하기 때문에 위와같이 dt라는 변수로 시간을 나눠줄 준비를 하고 for구문을 통해서 i를 1~1000까지 (1번은 위에서 정의..
【MATLAB】 분수 스칼라 연산 문제풀이 스칼라 연산에서 분수 계산문제 풀이입니다. [문제] 아래의 두 식 1)과 2)를 MATLAB으로 계산하시오. 1) 2) [문제풀이] 1) 수학적인 개념을 잘 이해하고 matlab에서 작성해서 계산해야함을 유의합니다. 우선 1)번식은 아래와 같이 작성하고 계산할 수 있습니다. 2) 위 문제보다 조금더 복잡하지만 아래와 같이 작성해서 계산하면 됩니다. 특별한 설명보다 자세히 보실 수 있도록 띄어쓰기로 구분해뒀으니 참고하시길 바랍니다. 이상!
【MATLAB】 화학반응 Arrhenius 방정식 문제풀이 - Chapra의 응용수치해석 3판 문제 2.20 [문제] 화학반응의 온도에 대한 의존성은 다음과 같은 Arrhenius 방정식으로 계산할 수 있다. 여기서 k는 반응속도(s^-1), A는 진동(또는 주파수) 인자, E는 활성에너지(J/mol), R은 기체상수[8.314 J/(mole*K)], 그리고 Ta는 절대온도(K)이다. 혼합물은 E = 1 x 10^5 J/mol 이며 A = 7 x 10^16 이다. MATLAB을 사용하여 온도 253에서 325K까지 반응속도의 값을 구하라. subplot을 사용하여 (a) Ta에 대한 k(녹색 선)와, (b) 1/Ta에 대한 log10k(붉은색 선)의 그래프를 나란히 그려라. semilogy 함수를 적용하여 (b)를 구하라. 두 subplot의 축에 라벨과 제목을..
【MATLAB】 문제 2.18 풀이 - Chapra의 응용수치해석 3판 문제 2.18 [문제] 다음의 MATLAB 명령어를 입력하면 무엇이 화면에 출력되는가? (a) (b) [문제풀이] (a) 순서대로 풀이하면 이렇습니다. 먼저, x에 5를 대입합니다. 그리고 세제곱을 해주어서 결과를 냅니다. 그리고 y = 8-x에 x를 넣어주어 결과를 8 - 5 이므로 y는 3이 됩니다. 여기서 중간에 쓰여진 x^3은 y=8-x 식에서 사용되지 않습니다. 그 이유는 변수가 이용되지 않았다는 것과 두번째줄의 결과는 세미콜론을 붙이지 않으면 알 수 있듯이 ans = 125로 나올 뿐입니다. 위 상태가 세미콜론(;)을 붙이지 않고 계산해본 결과입니다. 위에서 알 수 있듯이 x^3을 하면 ans변수에 125라는 값이 저장되는 것입니다. 만약에 y=8-ans라고..
【MATLAB】 매개변수 방정식, 3차원 원추형 나선 그래프 문제풀이 - Chapra의 응용수치해석 3판 문제 2.17 [문제] 다음의 매개변수 방정식은 원추형 나선(conical helix)을 나타낸다. 범위 t = 0에서 6π까지 증분 Δt = π/64로 x, y 및 z의 값을 계산하라. subplot을 사용하여 위쪽 구획에 (x,y)의 2차원 그래프(붉은색 실선)를, 아래쪽 구획에 (x,y,z)의 3차원 그래프(청록색 실선)를 그려라. 두 그래프 모두 축에 라벨을 표시하라. [문제풀이] 우선, t가 0부터 6π까지 증분을 Δt = π/64으로 아래와 같이 2가지 표현중 하나를 사용하면 됩니다. 1) 콜론 표기법 2) linspace() 저는 이번문제에서 좀더 표시하기 쉬운 1번 콜론 표기법으로 계속 풀어보겠습니다. 다만 2번 방법으로 하려면 마지막에 사이 갯수를 입력..
【MATLAB】 Maclaurim 급수전개로 cosine 문제풀이 - Chapra의 응용수치해석 3판 문제 2.15 [문제] Maclaurim 급수전개로 cosine을 나타내면 다음과 같다. MATLAB을 이용하여 의 항이 포함될 때까지의 급수전개에 대한 그래프(검정색 점선)와 함께 cosine의 그래프(실선)를 그려라. 급수전개를 계산하는데 내장함수 factorial을 사용하라. x축의 범위를 0에서 3π/2까지로 놓아라. [문제풀이] 우선, 쉬운 cosine 함수부터 그려보겠습니다. 먼저, 가장 위에 clear 명령으로 혹시모를 변수중첩을 방지했습니다. 그리고 x값은 linspace(x1,x2)를 이용해서 0부터 3π/2까지 범위로 100개의 인자를 사용했습니다. linspace의 인자 갯수의 defualt는 100개입니다. 그리고 5번째줄에서 y1 = cos(x)..
【MATLAB】 Manning 방정식 개수로 행렬문제 풀이 - chapra의 응용수치해석 3판 문제 2.10 [문제] Manning 방정식은 직사각형 단면의 개수로 내에서 물의 속도를 계산하는데 사용된다. 여기서 U는 속도(m/s), S는 수로의 기울기, n은 거칠기 계수, B는 폭(m), 그리고 H는 깊이(m)이다. 다음의 데이터는 5개의 수로에서 얻은 것이다. 거칠기 계수 n 수로의 기울기 S 수로의 폭 B 수로의 깊이 H 0.035 0.0001 10 2 0.020 0.0002 8 1 0.015 0.0010 20 1.5 0.030 0.0007 24 3 0.022 0.0003 15 2.5 이 값을 행렬에 저장하는데, 각 행은 각 수로를 표현하고 각 열은 각 매개변수를 표현하도록 하라. 매개변수 행렬 내의 값을 기초로 속도의 열벡터를 계산하는 MATLAB 문장을..