matlab을 이용하여 Naive Gauss Elimination으로 다항식 구하기(LU분해, 자코비, 가우시안, SOR)
- 최초 등록일
- 2009.05.02
- 최종 저작일
- 2008.12
- 17페이지/ 한컴오피스
- 가격 2,500원
소개글
matlab을 이용하여 Naive Gauss Elimination으로 다항식 구하기
(LU분해, 자코비, 가우시안, 이터널)
목차
1. 다항식 분석
(1) 일 때, Naive Gauss Elimination을 이용하여 계수를 구해 보아라. 또한 그 결과에 대하여 분석하여라. (즉, 만일 해가 구해지지 않는다면 왜 그런지 설명하여라.)
(2) 일 때, 의 condition number가 어떻게 변하는지 조사하여라.
(condition number의 값은 MATLAB 명령어 “cond"을 이용하여 계산한다.)
(3) 일 때, 를 LU-분해를 하여라.
2. 다음 의 tridiagonal 행렬
(1) 참값(exact solution)이 가 되도록 하는 벡터를 찾아라.
(2) Tridiagonal Solver(Thomas Algorithm)을 이용하여 을 풀어라.
(3) 초기값을 =하고, 허용오차를 으로 하여 Jacobi, Gauss-Seidel의 방법을 이용하여 를 풀고, 그 iteration 회수를 비교하여라. 단, 성분별로 적용하는 방법을 사용하여라.
(4)(3)과 같은 조건으로 SOR방법을 사용하여 를 풀 때, 로 변화를 주어, iteration 회수가 어떻게 되는지 비교하여라. 가장 효과적인 를 찾아보아라.
본문내용
1) 일 때, Naive Gauss Elimination을 이용하여 계수를 구해 보아라. 또한 그 결과에 대하여 분석하여라. (즉, 만일 해가 구해지지 않는다면 왜 그런지 설명하여라.)
☤ 코드
%Gaussian Elimination
clear all
n=5; % n 횟수
%n=10, 15일 때 추가해주면 된다.
for i=1:n
for j=1:n
A(i,j)=(1+i)^(j-1);
end
B(i)=(((1+i)^n)-1)/i;
end
% A와 B의 정의 : A는 (1+i)^j-1 B는 ((1+i)^n-1)/i
%forward substitution algorithm
for k=1:n-1
for i=k+1:n
xmult=A(i,k)/A(k,k);
for j=k:n
A(i,j)=A(i,j)-xmult*A(k,j);
end
B(i)=B(i)-xmult*B(k);
end
end
%backward substitution algorithm
X(n) = B(n)/A(n,n);
for i=n-1:-1:1
sum = B(i);
for j=i+1:n
sum=sum-A(i,j)*X(j);
end
X(i) = sum/A(i,i);
end
sol=X`
참고 자료
없음