수치해석(LAURENE V.FAUSETT)
*종*
다운로드
장바구니
소개글
수치해석 과목에서 LAURENE V.FAUSETT (Inter vision)을 교재로 사용했는데 교수님께서 책속의 하나하나의 알고리즘을 책과는 다른 방식으로 코딩하는 과제를 매주 내주셨습니다. (책의 방법을 완전다른 방식으로 접근하여 코딩하고 책의 해답과 비교하는 방식)매주 열심히 과제를 하고 마지막에 이를 모아 책으로 만들어 제출했는데요.
수치해석 프로그래밍을 공부하는 분들께 참고자료로 유용하리라 믿어의심치 않습니다.
본레포트는 1. 해석법의 설명, 2. 알고리즘, 3. 메틀랩 코드로 9개의 수치해석방법을 총 16가지의 케이스의 세부 방법을 기술하고 있습니다. 학기 끝무렵 106 페이지의 레포트를 책으로 묵어 제출했는데 친구들에게는 시기에찬 질타를 받기는 했지만 교수님의 칭찬에 무척 뿌듯했던 기억이 납니다. - 인터비젼 책의 목차는 비슷할수 있으나, 내용은 상이 함을 밝힘니다.
목차
수 치 해 석 알고리즘과 MATLAB프로그래밍머릿글 5
1. 단일 변수 방정식의 해법 6
1. 이분법을 이용한 방정식의 풀이 6
1.1 이분법이란 6
1.2 프로그래밍 알고리즘 6
1.3 최종프로그램 7
1.4 결과확인 8
2. 가중분할법과 할선법 9
2.1 가중분할법, 할선법 이란 9
2.2 프로그래밍 알고리즘 10
2.3 최종 프로그램 12
2.4 결과 확인 14
3. Newton법 15
3.1 Newton법 이란 15
3.2 프로그래밍 알고리즘 15
3.3 최종 프로그램 17
3.4 결과 확인 18
2. 선형 연립방정식의 해법 :직접법 19
1. Gauss 소거 19
1.1 Gauss 소거란 19
1.2 프로그래밍 알고리즘 22
1.3 최종 프로그램 24
1.4 결과 확인 25
2. 행 피봇을 이용한 Gauss 소거 26
2.1 피봇이란? 26
2.2 프로그래밍 알고리즘 27
2.3 최종 프로그램 30
2.4 결과 확인 31
3. 선형 연립방정식의 해법 :반복법 32
1. Jacobi 법 32
1.1 Jacobi 법 이란? 32
1.2 프로그래밍 알고리즘 34
1.3 최종 프로그램 36
1.4 결과 확인 37
2. Gauss-Seidel 법 39
2.1 Gauss-Seidel 법 이란? 39
2.2 프로그래밍 알고리즘 40
2.3 최종 프로그램 42
2.4 결과 확인 43
4. 비선형 함수 45
1. 비선형 시스템의 Newton법 45
1.1 비선형 시스템의 Newton 법이란? 45
1.2 프로그래밍 알고리즘 46
1.3 최종 프로그램 49
1.4 결과 확인 51
5. LU 분해법 52
1. LU 분해법 52
1.1 LU분해 법이란? 52
1.2 프로그래밍 알고리즘 53
1.3 최종 프로그램 54
1.4 결과 확인 55
6. Elementary Matrix를 이용한 가우스 소거법 57
1. Elementary Matrix를 이용한 가우스 소거법 57
1.1 Elementary Matrix는 무엇인가? 57
1.2 프로그래밍 알고리즘 62
1.3 최종 프로그램 63
1.4 결과 확인 64
7. 보간법 70
1. Lagrange 보간법 70
1.1 Lagrange보간법이란? 70
1.2 프로그래밍 알고리즘 73
1.3 최종 프로그램 74
1.4 결과 확인 76
2. Spline 보간법 81
2.1 Spline보간법이란? 81
2.2 프로그래밍 알고리즘 및 프로그램 84
2.3 최종프로그램 86
2.4 결과 확인 88
8. Fourier법 89
1. Fourier변환 89
1.1 Fourier변환, 알고리즘(예제) 89
1.2 최종프로그램 91
1.3 결과확인 92
1. 고속 Fourier 변환(FFT) 94
2.1 고속 Fourier변환(FFT)란? 94
2.2 알고리즘 94
2.3 최종프로그래밍 94
2.4 결과확인 95
9. 상미분방정식 96
1. Euler’s Method 96
1.1 Euler’s Method 란? 96
1.2 Euler’s Method의 프로그래밍 알고리즘 99
2. Runge-Kutta Method 100
2.1 Runge-Kutta Method 란? 100
1.2 Runge-Kutta’s Method의 프로그래밍 알고리즘 106
본문내용
1. 단일 변수 방정식의 해법1. 이분법을 이용한 방정식의 풀이
1.1 이분법이란
- 이분법은 연속함수의 영점을 구하기 위한 체계적인 모색방법 중에 하나이다.
위의 그래프를 보면 처음 정해진 a, b 구간에서 두 임의 값을 넣은 함수가 음과 양을 나타내는 방향으로 계속 반으로 나누고 이를 초기값으로 하여 앞의 과정을 반복하면 해를 구할 수 있게 된다.
이를 수식으로 정리 하여보자.
1.2 프로그래밍 알고리즘
처음으로 입력되는 값은 일단 a,b가 되어야 할 것이다.
또한 필요한 데이터는 “몇 번을 자를 것인가?” 도 포함될 수있다.
프로그래밍 시 우리가 추구하는 것은 어떤 함수를 넣더라도 함수를 정의하고 이를 이분법이라는 루프에 집어넣으면 초기값이 적절했을 경우, 결과를 수렴해야 한다는 것이다.
m = 임의의 두 초기치의 평균 값
f(a), f(m), f(b)이 세 개의 값의 부호로 이분할 곳이 선정되게 된다.
좀더 손쉬운 접근을 위해 “*”를 이용해 보자.
양수 * 양수 = 양수
음수 * 음수 = 양수
양수 * 음수 = 음수
음수 * 양수 = 음수
위의 내용을 이용하면 쉽게 접근이 가능하다. 즉 두 임의의 값의 곱 계산에서 음수가 나오면 그 두수의 정가운데 지점이 다음 초기값이 되는 것 이다.
if y(i)*ya(i)<0
a(i+1)=a(i); ya(i+1)=ya(i);
b(i+1)=x(i); yb(i+1)=y(i);
else
a(i+1)=x(i); ya(i+1)=y(i);
b(i+1)=b(i); yb(i+1)=yb(i);
end
1.3 최종프로그램
문제
clear;
a(1)=0; b(1)=1; max=15; tol=0.001;
ya(1)= (a(1)^3)-3*(a(1)^2)+1,a(1);
yb(1)= (b(1)^3)-3*(b(1)^2)+1,b(1);
for i=1:max
x(i)=(a(i)+b(i))/2;
y(i)=(x(i)^3)-3*(x(i)^2)+1,x(i); % 함수 넣는곳...
if ((x(i)-a(i)) disp(`이분법이 수렴되었습니다`);
break
else
disp(`아직 수렴되지 않았습니다`);
end
%두 임의의 점을 곱해서 음수가 나오면 그 두 임의의 점을 다시 이분한다.
if y(i)*ya(i)<0
a(i+1)=a(i); ya(i+1)=ya(i);
b(i+1)=x(i); yb(i+1)=y(i);
else
a(i+1)=x(i); ya(i+1)=y(i);
b(i+1)=b(i); yb(i+1)=yb(i);