Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 197936

Submitted on 29 Jan 2013 by Alfonso Nieto-Castanon

Correct

43Size
Leading solution size is 37.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
x0 = 1;
I_correct = 2.6405789412796;
fprintf('Relative difference to reference solution: %e\n',norm(coshint(x0)-I_correct)/I_correct)
assert(norm(coshint(x0)-I_correct)/I_correct <= 1e-10)
Relative difference to reference solution: 2.517636e-13
2
Pass
 
%%
x0 = 2;
I_correct = 3.9464053536380;
fprintf('Relative difference to reference solution: %e\n',norm(coshint(x0)-I_correct)/I_correct)
assert(norm(coshint(x0)-I_correct)/I_correct <= 1e-10)
Relative difference to reference solution: 1.699204e-13
3
Pass
 
%%
x0 = 13;
I_correct = 9.4065231838369e+02;
fprintf('Relative difference to reference solution: %e\n',norm(coshint(x0)-I_correct)/I_correct)
assert(norm(coshint(x0)-I_correct)/I_correct <= 1e-10)
Relative difference to reference solution: 6.768136e-15
4
Pass
 
%% randomized test for small values of x0 where
 % cosh(x) ~ 1 + x^2/2 + ...
 % and up to x0=1e-5 Integrating (analytically) the approximation is
 % accurate enough
for l=1:5
   x0 = 1e-6 * (1+rand);
   I_correct = pi*(4+x0^2)/4/sqrt(2);
   fprintf('Relative difference to reference solution: %e\n',norm(coshint(x0)-I_correct)/I_correct)
   assert(norm(coshint(x0)-I_correct)/I_correct <= 1e-10)
end
Relative difference to reference solution: 1.999104e-16
Relative difference to reference solution: 1.999104e-16
Relative difference to reference solution: 1.999104e-16
Relative difference to reference solution: 1.999104e-16
Relative difference to reference solution: 0.000000e+00