검색어 입력폼

[공학]수치해석 실습과제 #2

저작시기 2006.01 |등록일 2006.10.24 한글파일한컴오피스 (hwp) | 5페이지 | 가격 500원

목차

(1)각방법의 결과를 단계별로 출력.
(2)각벙법에 대한 근의 수렴 결과 그래프를 Plot
(3)Source code에 대한 주석을 자세히 기입하시오.
(4)각 방법들의 결과에 대한 상호 비교 분석

본문내용

1.Bisection
clear all
disp(`a값과b값을 입력하세요`); %% a와b의 값을 입력받기
a=input(`a=`); b=input(`b=`); %%a와 b의 값을 여기서 입력 받기
e=0.0001; %error bound
fa=(a.^3)-(a.^2)-a-1; %fx=(x.^3)-(x^2)-x-1이고 여기에 a를 대입한것
fb=(b.^3)-(b.^2)-b-1;
A=[];B=[];N=[]; %공행렬로 밑에서 a 와b 의 수를 나타내기 위하여 사용
n=ceil(log((b-a)/e)/log(2)); %몇번 실행해야하는지 알기위한 값을 얻으며 ceil은 값올림을 위해 사용
for i=1:n;
c(i)=(a+b)/2; %a와b의 중점
fc(i)=(c(i).^3)-(c(i).^2)-c(i)-1; %c의 값을 fx에 대입한것
d(i)=b-c(i); %d의 값이 error bound와 비교되어 n에서 e 보다 작은 값이 나온다.
A=[A,a]; B=[B,b]; N=[N,i]; % a,b의 값을 받아서 vector form으로 나타내어 줌
if fa*fc(i)<0 % 이 결과 값이 0보다 작은 경우 해가 a,c사이에 있다는 의미이므로
a=a; b=c(i); % b를 c로 잡고 같은 방법을 n만큼 되풀이 한다.
elseif fb*fc(i)<0
a=c(i); b=b; % 여기에서는 해가 b,c사이에 있는 경우
end
end
result=[N` A` B` c` d` fc`];
disp(` n a b c b-c fc `);
disp(result)
plot(c)
grid;
title(`bisection`)
ylabel(`x`)
xlabel(`계산 횟수`)
다운로드 맨위로