function p3
  A = [25,19;21,16]

  fprintf('Part a)\n\n')

  cond_inf_A = cond_inf(A)

  fprintf('\nPart b)\n\n')

  b1 = [6;5];
  x_exact = A \ b1
  b2 = b1 + [0.01;-0.01];
  x_perturbed = A \ b2
  relative_change_in_x = norm(x_exact-x_perturbed, Inf)/norm(x_exact, Inf)
  relative_change_in_b = norm(b1-b2, Inf)/norm(b1, Inf)
  predicted_bound_on_relative_change_in_x = cond_inf_A * relative_change_in_b

  fprintf('\nPart c)\n\n')

  b1 = [1;1];
  x_exact = A \ b1
  b2 = b1 + [0.01;-0.01];
  x_perturbed = A \ b2
  relative_change_in_x = norm(x_exact-x_perturbed, Inf)/norm(x_exact, Inf)
  relative_change_in_b = norm(b1-b2, Inf)/norm(b1, Inf)
  predicted_bound_on_relative_change_in_x = cond_inf_A * relative_change_in_b
end
function result = cond_inf(A)
  result = norm(A, Inf) * norm(inv(A), Inf);
end
function assert(v)
  if (v == 0)
    error('Assertion failed.')
  end
end
