image thumbnail
from Essential MATLAB by Brian Hahn
Companion software for Essential MATLAB for Scientists and Engineers

Fig11_1.m
K = input( 'K' );
F = 10;
a = 0;                % start time
b = 100;              % end time
bell = setstr(7);

dt = input( 'dt: ' );
%opint = input( 'output interval (minutes): ' );
%7if opint/dt ~= fix(opint/dt)
%  disp(bell)
%  disp( 'output interval is not a multiple of dt - try again!' );
%  break
%end;

m = (b - a) / dt;     % m steps of length dt
if fix(m) ~= m        % make sure m is integer
  disp(bell)
  disp( 'm is not an integer - try again!' );
  break
end;

T = zeros(1,m+1);     % pre-allocate
time = a:dt:b;

T(1) = 25;            % initial temperature

for i = 1:m           
  T(i+1) = T(i) - K * dt * (T(i) - F);
end;

%disp( [time(1:opint/dt:m+1)' T(1:opint/dt:m+1)'] )   % vectors have m+1 elements

plot(time, T),xlabel('Time (minutes)'), ylabel('Temperature (degrees C)'),gtext( sprintf('K = %5.3f', K) )

Contact us at files@mathworks.com