function eps64 % MCS471f04 Bisection Approximation for 64 bit Machine Epsilon: % maceps = min(eps: eps > 0; 1 + eps > 1); % Matlab default word size is 64 bits; clc % clear command window fprintf('MCS471f04 Bisection Approximation for 64 bit Machine Epsilon:'); kmax = 100; % Maximum Bisections; eps0 = 1; % start: epsplus1 = 1 + eps0; % Get floating point value of sum; for k = 1:kmax % Bisection counter epssave = eps0; % Save old value; eps0 = 1/2^k; % Bisection Update Step for trial eps = 2^(1; epsplus1 = 1 + eps0; % Float of Sum; fprintf('\n k = %i; eps0 = %12.7e; eps0+1 = %22.16e;',k,eps0,epsplus1); if epsplus1 <= 1.e0 % This eps0 failed machine epsilon test! ksave = k-1; % turn counter back one to last success: 1+eps0 > 1; break; end end fprintf('\nBisection Approximation Answer for 64 Bit Precision:'); fprintf('\n ksave = %2i; epssave = 1/2^ksave = %12.7e; epssave+1 = %22.16e;' ... ,ksave,epssave,epssave+1); pchop = 1-log(epssave)/log(2.e0); % find chopping precision if maceps = 2^(1-pchop); pround = -log(epssave)/log(2.e0); % find rounding precision if maceps = 2^(-pchop); fprintf('\nprecision: pchop = %10.7f or pround = %10.7f binary digits?' ... ,pchop,pround); fprintf('\n1. Which is Correct, the Official Chopped (2^(1-p)) ') fprintf('\nor Rounded Value (2^(1-p)/2) for Precision p?'); fprintf('\n Give a Written Answer with Your Justification Here:\n\n'); % Double check for rounding through refinement: fprintf('\n\nRounding Double Check Data to Sneak Up on a Better Answer:'); eps0 = 0; deleps = 2^(-1-pchop); % start with bisection maceps/4; fprintf('\n deleps = %12.7e;',deleps); for kd = 1:7 eps0 = eps0 + deleps; epsplus1 = eps0 + 1; fprintf('\n kd = %i; eps0 = %12.7e; eps0+1 = %22.16e',kd,eps0,epsplus1); end fprintf('\n2. Is Rounding or Chopping Demonstrated?'); fprintf('\n Give a Written Answer to Question with Your Justification Here (see kd=3):\n\n'); fprintf('\n3. Can You Find A Smaller eps0 = epsilon?'); fprintf('\n Write and Run Your Code Fragment Justification Here If You Can:\n\n'); % end MATLAB main function