{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

bisection

# bisection - choosing side of the root if fa(i*fxbar(i< 0...

This preview shows pages 1–2. Sign up to view the full content.

4/12/10 8:19 PM C:\MATLAB701\work\bisection.m 1 of 2 % Artem Iakovlev % UID: 203-833-818 % Problem 5 bisection.m code func=input('What function do you wish to call? ' ,'s'); a(1)=input('What is the value of a?'); b(1)=input('What is the value of b?'); % checking if the entered boundaries are valid if a(1) >= b(1) disp('Boundary b must be greater than boundary a' ); return; end if feval(func,a(1))*feval(func,b(1)) > 0 disp('The boundaries have the same sign'); return; end e=input(' What is the value of the tolerance parameter? ' ); itrmax=input(' What is the max number of allowed iterations? ' ); % initial index and iteration i=1; itr=1; % while loop for the bisection method while ((b(i)-a(i)) >= e) && (itr <= itrmax); xbar(i) = (a(i)+b(i))/2.0; fa(i) = feval(func,a(i)); fxbar(i) = feval(func,xbar(i));

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: % choosing side of the root if fa(i)*fxbar(i) < 0 b(i+1) = xbar(i); a(i+1) = a(i); else a(i+1) = xbar(i); b(i+1) = b(i); end % incrementing index and iteration i=i+1; itr=itr+1; % check if the iterations reached the max allowed if itr >= itrmax disp('Maximum allowed iterations reached' ); return; end end file=strcat(func,'.txt'); output=fopen(file,'w'); % decrementing index i=i-1; fprintf(output,'%2c %10c %10c %13c %12c%c\n' , 'k' , 'a', 'b', 'm', 'fm'); for k=1:i fprintf(output,'%2i %10e %10e %10e %10f\n',k, a(k), b(k), xbar(k), fxbar(k)); end 4/12/10 8:19 PM C:\MATLAB701\work\bisection.m 2 of 2 fprintf(output,'%10s %10e %20s %10e\n', 'The approximate root is: ', xbar(i), ' with fun (m) = ', fxbar(i)); fclose(output); type(file);...
View Full Document

{[ snackBarMessage ]}