MATLAB 프로그래밍(GaussP,Gauss-Seidel,Gauss-Jordan)
- 최초 등록일
- 2007.09.23
- 최종 저작일
- 2006.09
- 8페이지/
한컴오피스
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
MATLAB 프로그래밍 중 행렬 프로그래밍입니다. (GaussP,Gauss-Seidel,Gauss-Jordan) 방법으로 각각 프로그래밍 하였습니다.
목차
1번 1번 다음용어를설명하시오
2번 GaussP 프로그래밍
3번 Gauss-Seidel 프로그래밍
4번 Gauss-Jordan 프로그래밍
5.느낀점
본문내용
2번 (GaussP)부분피벗가우스소거법을이용한선형연립방정식의해를구하는프로그램을작성하시오
(단, 소거된계수행렬의대각선원소를1이되게하시오)
소스코드입니다.
function x = GaussP(A,b)
%가우스피벗소거법
%부분피벗가우스소거법을이용한선형연립방정식의해를
%구하는함수입니다.(소거된계수행렬의대각선원소는1이됩니다.)
%사용방법은 구하고자하는 해=GaussP(A행렬 ,b행렬)입니다.
%가우스 피벗소거법방법이란 Gauss 방법을시행하기전에절대값이가장큰항을찾아
%그항이속한행과첫번째행을먼저바꾼후소거법을실행하여 오차를줄이는것을
%말합니다.
disp(`A행렬`);
disp(A);
[m n]= size(A);
A(:,n+1)= b(:,:);
for i=1:m-1
max_index = i;
max_data = A(i,1);
for j=i+1:m
if(abs(max_data) < abs(A(j,1)))%절대값이가장큰항을찾아
max_data = A(j,1);
max_index = j;
end
end
t = A(max_index,:);
A(max_index,:) = A(i,:);
A(i,:) = t(:,:)%그항이속한행과첫번째행을먼저바꾸는부분
end
for j=1:n-1 %소거된계수행렬의대각선원소를1로만들면역대입법이단순해지므로
%대각 원소를 1로 만드는 부분입니다.
A(j+1:n,j) = -A(j+1:n,j) ./ A(j,j);%예를들면 제1식을a11으로나누고ai1
%( i=2,3, …, n)을곱하여i 행에서빼면
%미지수x1이둘째이하의식에서제거됩니다
길어서 생략... -0-;; 죄송합니다. 1000자가 넘어버렷어요....
참고 자료
없음