본문 바로가기

수치해석

【수치해석】 Newton 2차 보간다항식 예제 풀이 "진심은 누구에게나 통하는 법이에요.만약 그 진심을 가볍게 생각하는 사람이라면당신은 그 사람에게 과분한 사람이에요." 안녕하세요. 이번 포스팅에서는 수치해석에서 'Newton 2차 보간다항식'을 이용하여 예제를 풀어보겠습니다. 수치해석의 일종의 방법으로써 긍정적인 해답을 찾기위한 것입니다. 아래의 쉬운 예제를 통해 알아가실 수 있으면 좋겠습니다. 기타 질문사항은 댓글을 남겨주시길 바랍니다. (너무 어려운건 글로 표현하기 힘들어요....ㅠㅜㅎㅎ) [문제] 아래의 조건을 통하여 x = 1일 때의 함수값을 구하여라. 위의 점 3개로 이번 포스팅의 예제를 풀어보겠습니다. 위 3개의 조건들을 통하여 Newton 2차 보간 다항식을 적용하여 f(1)의 값을 도출해보겠습니다. Newton 2차 보간다항식 기본 개념 ..
【수치해석】 Gauss-Seidel법, Jacobi 반복법 예제 풀이 "이 사람을 만나 사랑을 할 수 있게 해주셔서 감사해요." "닮아가는 서로를 보며 행복을 느끼게 해주셔서 감사해요." 안녕하세요. 이번 포스팅에서는 수치해석 중에서 Gauss-Seidel법과 Jacobi 반복법에 대해 알아보도록 하겠습니다. 1차 선형방정식 2개를 예시로 가져와서 풀이해보겠습니다. 두 방법다 반복적으로 계산하여 방정식의 정답을 찾아가는 과정이기 때문에, 3~4번 정도만 반복해보고 정답과 비교해보도록 하겠습니다. 어느 방정식에서 어느 방법을 사용하느냐의 문제는 이번 예제에서는 고려하지 않겠습니다. 수치해석적인 방법에는 여러가지가 존재하기 때문에 다양한 조건을 비교해봐야합니다. 이번 예제는 다음과 같은 선형방정식 2개를 가지고 풀어보겠습니다. Guass-Seidel법 (가우스-사이달법) 풀이..
Cramer 공식, 순수 Guass 소거법, LU 분해법 예제 이번 문제는 수치해석에서 사용하는 Cramer, 순수 Guass 소거법, LU 분해법을 통해서 선형방정식의 근을 찾는 문제입니다. 선형방정식 3개, 근 3개짜리의 문제를 가지고 와서 예제처럼 풀어볼 것입니다. 최종적으로 보시면 각 방법을 통해서 구한 근이 모두 동일하다는 것을 알 수 있습니다. [문제] Q. 다음과 같은 방정식을 Cramer 공식, 순수 Guass 소거법, LU 분해법으로 근을 구하시오. 1) Cramer 공식을 통해 근을 구하시오.2) 순수 Guass 소거법을 통해 근을 구하시오.3) LU 분해법으로 근을 구하시오. [방정식] [답] x1 = 1, x2 = 2, x3 = 3 [문제설명] 3개의 방정식이 있고, 이 것의 근을 구하는 방법인 3가지의 방식을 통해서 근을 구하라는 문제입니다...
【MATLAB】 제곱근을 근사적으로 구하는 방법 - 나눔과 평균 문제풀이 [문제] 어떤 양의 수 a의 제곱근을 근사적으로 구하는 방법으로서 오래된 방법인 '나눔과 평균' 방법은 다음과 같다. 이 알고리즘을 실행하기 위한 잘 구조화된 함수를 그림 4.2에 서술된 알고리즘에 기초하여 작성하라. [문제풀이] 제곱근을 근사화하는 방법 중에는 여러가지가 있다고 합니다. 이번 문제에서는 나눔과 평균이라는 방법으로 a의 제곱근을 구하고자 합니다. 우선 전체 코드는 아래와 같고 그림 4.2라고 하는 부분을 거의 그대로 이 문제에 적용한 것이기 때문에 따로 첨부하지는 않았습니다. 아래 전체 코드의 구문과 거의 일치합니다. 위에가 전체 코드입니다. 이대로 실행하면 결과를 출력할 수 있습니다. 아래부터 차근차근 설명합니다. 우선, format 함수를 통해 숫자를 길게 표현했습니다. 6~11 줄이..
【MATLAB】 기계입실론 ε 계산 문제풀이 [문제] 컴퓨터에서 기계입실론 ε은 1보다 더 큰수를 만들기 위해 더할 수 있는 가장 작은 수로 생각할 수 있다. 이 아이디어를 기초로한 알고리즘은 다음과 같다. 단계 1 : ε = 1이라 놓는다. 단계 2 : 1 + ε 이 1보다 작거나 같으면 단계 5로 가고, 그렇지 않으면 단계 3으로 간다. 단계 3 : ε = ε/2 단계 4 : 단계 2로 되돌아간다. 단계 5 : ε = 2 X ε 이 알고리즘에 기초하여 기계입실론을 계산하는 M-파일을 개발하라. 결과를 확인하기 위해 내장함수 eps로 구한 값과 비교하라. [문제풀이] 문제에서, '기계입실론(ε)'이 '1보다 더 큰수를 만들기 위해 더할 수 있는 가장 작은 수'라고 정의해주고 있습니다. 이번 문제는 이 ε을 구하는 문제입니다. 먼저, 내장함수 ep..
【MATLAB】 벡터의 외적 문제풀이 - Chapra의 응용수치해석 연습문제 3.20번 [문제] 직교좌표 벡터는 x-, y-, z-축을 따르는 크기에 단위벡터 (i, j, k)를 곱한 것으로 생각할 수 있다. 이런 경우 두 벡터 {a} 와 {b}의 내적은 그들 벡터의 크기와 그들 벡터 사이의 각도의 cosine과의 곱에 해당한다. 외적은 또 다른 벡터 {c} = {a} X {b}를 만들며, 이 벡터는 {a}, {b}로 정의되는 면에 수직이고, 그 방향은 오른손 법칙에 의해 규정된다. 두 개의 벡터가 전달되면 θ, {c} 그리고 {c}의 크기를 반환하고, 원점은 0에 있는 세 벡터 {a}, {b}, {c}의 3차원 그래프를 그리는 M-파일 함수를 작성하라. {a}와 {b}에 대하여는 점선을, {c}에 대하여는 실선을 사용하라. 다음의 경우에 ..
【MATLAB】 지나간 날짜를 구하는 문제 풀이 - Chapra의 응용수치해석 연습문제 3.16 [문제] 어떤 년도에서 지나간 날짜를 구하는 M-파일 함수를 개발하라. 이 함수의 첫번째 줄은 다음과 같이 설정한다. 여기서 mo는 달(1-12), da는 일(1-31), 그리고 leap는 평년일 때는 0이고 윤년일 때는 1이다. 1997년 1월 1일, 2004년 2월 29일, 2001년 3월 1일, 2004년 6월 21일, 그리고 2008년 12월 31일에 대해 이 프로그램을 검증하라. *힌트 : 이를 위한 좋은 방법은 for와 switch 구조를 결합시키는 것이다. [문제풀이] 먼저, '윤년'이라는 개념이 사용되었습니다. 윤년은 4년마다 2월 29일로 함으로써 4년간의 연평균 일수를 365.25일로 만들어주는 개념입니다. 시간이 지날수록 계절과 맞지 않..
【MATLAB】 소구간별 함수 예제 풀이 - Chapra의 응용수치해석 연습문제 3.14 풀이 [문제] 소구간별 함수(piecewise function)는 독립변수와 종속변수 사이의 관계를 단일 방정식으로 표현하기 어려울 경우에 유용하다. 예를 들어 로켓의 속도는 다음과 같이 기술될 수 있다. t의 함수로 v를 계산하는 M-파일 함수를 작성하라. 그리고 이 함수를 사용하여 t가 -5에서 50까지 t에 대한 v의 그래프를 생성하는 스크립트를 작성하라. [문제풀이] 소구간별 함수라는 어려운 말을 사용했지만, 위에서 주어진 로켓의 속도처럼 일정한 구간별로 다른 함수값을 갖는 함수를 보고 말합니다. 문제에서는 이 함수를 주어주고 함수값과 그래프를 구해보라고 지시하고 있습니다. 결국 문제에서 원하는게 2가지 입니다. 1) t를 함수로 v를 계산하는 함수..
【MATLAB】 단순 지지보 특이함수 문제풀이 - Chapra의 응용수치해석 3판 연습문제 3.10 [문제] Q. 단순 지지보가 그림에 나타나 있다. 특이함수(singularity function)를 사용하여 보를 따라 생기는 처짐을 다음과 같이 나타낼 수 있다. 특이함수는 다음과 같이 정의할 수 있다. 보를 따르는 거리 x에 대한 처짐(점선)의 그래프를 생성하기 위한 M-파일을 작성하라. 보의 왼쪽 끝에서 x = 0이 됨을 유의하라. [문제풀이] 우선, 구간별로 if~elseif 구문을 만들어서 해보려다가 실패....하고 아래와 같이 함수를 이용해서 스크립트에서 실행하는 것으로 대체해서 풀어보았습니다. 우선, 위의 사진은 '함수 M-파일'입니다. singul이라는 이름의 함수를 지정해서 세 개의 변수(a,b,c)를 받아서 특이함수를 계산하는 함수를..
【MATLAB】 직교좌표계와 극좌표계 변환 문제풀이 - Chapra의 응용수치해석 3판 연습문제 3.6 [문제] Q. 2차원 공간상에서 한 점의 위치를 나타내는 데 원점을 기준으로 두 개의 거리가 필요하다. 직교좌표계에서 수평과 수직 거리 (x, y) 극좌표계에서 반지름과 각도 (r, θ) 극좌표계 (r, θ)를 기초로 하여 직교좌표계를 구하는 것은 상대적으로 간단하다. 그러나 반대 과정은 간단하지 않다. 반지름은 다음 식에 의해 계산된다. r = (x^2 + y^2)^(1/2) 만약 좌표가 1사분면과 4사분면(즉, x > 0인 경우)에 있다면, θ 를 구하기 위한 간단한 식은 다음과 같다. θ = atan(y/x) (참고 atan는 tan의 역함수) 다른 경우에 대해서는 어려움이 야기된다. 다음의 표는 그 가능성을 요약한 것이다. x y θ 0 atan..