MATLAB Answers

Approximating /transforming /absolute error

5 views (last 30 days)
input data
r=3;h=8;Dv=0.1;
Dr=(Dv/3)*(1/(1/3*pi*h*2*r))
the result is 6.6315e-04 , how do i transform /aproximate/etc the result on the left to 0.00066 ? I ran a conversion to decimal using Symbolab (website) and the exact result of the conversion is 0.00066315 .

  0 Comments

Sign in to comment.

Accepted Answer

Alan Stevens
Alan Stevens on 27 Oct 2020
For display purposes you can use fprintf:
>> r=3;h=8;Dv=0.1;
Dr=(Dv/3)*(1/(1/3*pi*h*2*r));
fprintf('%0.2g \n',Dr)
0.00066

  7 Comments

Show 4 older comments
Alan Stevens
Alan Stevens on 28 Oct 2020
That's an entirely different question! fprintf merely alters the way the number displays, it doesn't alter the size of the values that have been used internally.
If you assume the absolute error is the same on A, B, H and D, (say, delta mm), then fzero will find the value of delta that makes the body Volume have an absolute error of 0.01mm^3. For example
delta0 = 10^-5;
delta = fzero(@dfn,delta0);
disp(delta)
fprintf('delta = %0.7f mm\n',delta)
function tol = dfn(delta)
A = 15 + delta; % mm
B = 20 + delta; % mm
H = 25 + delta; % mm
D = 3 + delta; % mm
Vtol = 0.01; % mm^3
% Volume with error Nominal volume Volume tolerance
tol = A*B*H-pi*D^2/4 - (15*20*25 - pi*3^2/4) - Vtol;
end
fzero adjusts delta until the value returned from dfn is as close to zero that it can get.
tol returns the difference between the volume .
If these aren't the right equations for you, then modify to suit.
Opariuc Andrei
Opariuc Andrei on 28 Oct 2020
Oh master , please accept my humble thank you :)
Alan Stevens
Alan Stevens on 28 Oct 2020
You're welcome. Note that I've suggested a very simplistic approach. A more advanced approach might involve a Monte-Carlo simulation and/or allow different tolerances on each of A, B etc.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by