수치해석(MATLAB 3.0) - Linear system
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

수치해석(MATLAB 3.0) - Linear system에 대한 보고서 자료입니다.

본문내용

axation)이라고 한다.

을 이용하여 새로운 x값을 계산한 후, 그 값을 현재와 직전에 계산된 결과의 가중 평균으로 다음과 같이 놓는다.
여기서 는 가중인자로 0과 2 사이의 값을 갖는데 이 문제에서는 를 1.2로 놓는다.
3번 문제를 partial pivoting한 식에서
-8
+
-
2
=
-20
2
-
6
-
=
-38
-3
-
+
7
=
-34
Realxation( = 1.2)을 사용하면
Sor_f M-file에서
if norm(xold-x) <=tol
구문을
if norm(abs(xold-x)/x*100) <=tol
로 바꾸어 tol=0.1%로 넣어주겠다.
>>A = [-8 1 -2; 2 -6 -1; -3 -1 7];
>>b = [-20 -38 -34]';
>>Sor_f(A, b, [0 0 0]', 1.2, 0.1, 50)
Iteration
1.0000
3.0000
8.8000
-2.7771
2.0000
4.5531
8.2167
-1.5230
3.0000
3.7788
7.7708
-2.2481
4.0000
4.0846
8.1289
-1.8848

9.0000
3.9993
7.9981
-2.0014
SOR method converged
10.0000
4.0003
8.0008
-1.9995
반복횟수 10회만에 수렴을 하였는데 값이 정확한 값이 아닌 약간의 오차가 발생하였다. 이 역시 컴퓨터 계산상에서 나오는 round-off 오차이다.
이완법에서 =1이면 이 방법은 Gauss-Seidel method와 같다. 만일 0≤〈1이라면 그 결과는 현재와 직전에 계산된 값들의 가중 평균을 취한 것이 되어 수렴하지 않는 시스템을 수렴하도록 만들거나, 진동하는 시스템에 감쇠를 부여하여 수렴을 촉진시킬 목적으로 사용된다. 또 1〈≤2이라면 현재 계산된 값에 더 큰 비중을 두어 수치해가 정해로 더 빨리 수렴하도록 밀어주기 위함이다.
(3) Repeat with your own relaxation and discuss the best weighting factor.
이완법에서 가장 좋은 의 값을 찾기 위해서 에 여러값을 대입시켜 보았다.
>>Sor_f(A, b, [0 0 0]', 0.2, 0.1, 50)
Iteration
1.0000
0.5000
1.3000
-0.8914
2.0000
0.9771
2.4015
-1.5322
3.0000
1.4183
3.3335
-1.9804
4.0000
1.8170
4.1206
-2.2823

28.0000
4.0024
7.9873
-2.0317
SOR method converged
29.0000
4.0032
7.9911
-2.0254
>>Sor_f(A, b, [0 0 0]', 0.5, 0.1, 50)
Iteration
1.0000
1.2500
3.3750
-1.9196
2.0000
2.3259
5.4018
-2.5041
3.0000
3.0636
6.5868
-2.5537
4.0000
3.5127
7.2583
-2.4342

11.0000
4.0027
8.0001
-2.0067
SOR method converged
12.0000
4.0023
8.0010
-2.0028
>>Sor_f(A, b, [0 0 0]', 1.4, 0.1, 50)
Iteration
1.0000
3.5000
10.5000
-2.6000
2.0000
4.8475
7.5355
-1.3444
3.0000
3.3503
7.7296
-2.7062
4.0000
4.4597
8.4875
-1.3442

26.0000
4.0011
8.0027
-1.9975
SOR method converged
27.0000
3.9991
7.9979
-2.0020
>>Sor_f(A, b, [0 0 0]', 1.6, 0.1, 50)
Iteration
1.0000
4.0000
12.2667
-2.2248
2.0000
4.9432
6.0030
-1.6748
3.0000
2.9046
8.5273
-2.8257
4.0000
5.0930
8.4868
-0.6438

49.0000
-427.5000
-1005.1000
-1103.3000
SOR method did not converge
50.0000
500.8000
1174.5000
1266.1000
>>Sor_f(A, b, [0 0 0]', 1, 0.1, 50)
Iteration
1.0000
2.5000
7.1667
-2.7619
2.0000
4.0863
8.1558
-1.9408
3.0000
4.0047
7.9917
-1.9992
4.0000
3.9988
7.9995
-2.0006
SOR method converged
5.0000
4.0001
8.0001
-1.9999
책을 공부하다보니 SOR법에 을 주게 되면 Gauss-Seidel법과 같다는 내용을 보게 되었다. 그래서 을 넣어보았더니 문제 3.(1)에서 구한 해와 일치하였다. 비록 두 방법 모두 정해와 일치하지는 않아 round-off 오차가 발생한 것을 알 수 있지만 위의 다른 4가지 값에 비해 최대한 정해에 가깝고 반복횟수도 적어 수렴하는 속도나 정확도에서 우세하다는 것을 알 수 있었다.
Iteration = 29(수렴)
Iteration = 12(수렴)
Iteration = 6(수렴)
Iteration = 5(수렴)
x =
4.0032
x =
4.0023
x =
4.0017
x =
4.0001
7.9911
8.0010
8.0016
8.0001
-2.0254
-2.0028
-1.9999
-1.9999
Iteration = 10(수렴)
Iteration = 27(수렴)
Iteration = 50(발산)
Iteration = 50(발산)
x =
4.0003
x =
3.9991
x =
500.8000
x =

8.0008
7.9979
1174.5000

-1.9995
-2.0020
1266.1000

에 여러 값을 대입시켜 보았다. 그 중에서 일 때 수렴속도도 제일 빠르고 정해에 제일 가까운 정확도를 보였다. 값이 1.6정도에서 증가하면 수렴하지 못하고 발산하게 되었다. 는 Gauss-Seidel법과 같은 방법으로써 문제3번의 식에서는 일 때가 가장 적합한 방법이라고 생각된다.

키워드

  • 가격3,000
  • 페이지수12페이지
  • 등록일2008.05.25
  • 저작시기2008.5
  • 파일형식한글(hwp)
  • 자료번호#466046
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니