I'm not sure as to why MATLAB is not outputting the figure, as well as the vector [T_Euler]. When I run the code it is fine, but when publishing I don't see either. Any fixes?
2 views (last 30 days)
Show older comments
%% problem description
% Determine the temperature vs time for hot iron with convection and
% radiation.
%% driver function (do not change!)
function HW3_prob4_driver
% to run: click the green "Run" button under the "EDITOR" tab
% to publish: click the "Publish" button under the "PUBLISH" tab
clc
close all
h = 25; %step size on time (seconds)
[T_Euler] = HW3_prob4_SOL(h)
end
%% solution function(s)
function [T_Euler] = HW3_prob4_SOL(h)
% Your entire solution should be contained in this m-file. If you want to
% call additional functions, add them to the bottom of this script. hint:
% "Euler_ODE" and "the_function" will be VERY similar to what we wrote in
% class to solve ODEs using Euler's method.
h=25; % step size
t=0:h:400; % time over constant (h)
T = zeros(1,length(t)); %initialize the solution vector
T(1)=500; % initial temperature at t=0 (K)
for i = 1:length(t)-1
T(i+1) = T(i)+the_function(t(i),T(i))*h; %Euler's method formula
end
[T_Euler] = Euler_ODE(t,T);
% plot the numerical solution
figure
plot(t,T,'-o','MarkerSize',2)
xlabel('time [sec]')
ylabel('temperature [K]')
end
%% Euler ODE solver
function [T] = Euler_ODE(t,T)
h=25; % step size
t=0:h:400; % time over constant (h)
T = zeros(1,length(t)); %initialize the solution vector
T(1)=500; % initial temperature at t=0 (K)
for i = 1:length(t)-1
T(i+1) = T(i)+the_function(t(i),T(i))*h; %Euler's method formula
end
end
%% y' or f(x,y) for diff eqns of form dy/dx = f(x,y)
function dTdt = the_function(t,T)
Cp=4.*(10.^5); % Volumetric Heat Capacity (J/m^3K)
d=0.005; % iron plate's thickness (m)
H=20; % Convection coefficient (W/m^2K)
T_inf=300; % Surrounding Air temperature (K)
eps=0.5; % iron's emissivity
sig=5.67.*(10.^-8); % constant
T_surr=300; % Surrounding Air Temperature (K)
dTdt=(-H.*(T-T_inf)-eps.*sig.*(T.^4-(T_surr.^4)))/(Cp.*d);
end
0 Comments
Answers (1)
Torsten
on 3 Oct 2023
Edited: Torsten
on 3 Oct 2023
%% problem description
% Determine the temperature vs time for hot iron with convection and
% radiation.
HW3_prob4_driver()
%% driver function (do not change!)
function HW3_prob4_driver
% to run: click the green "Run" button under the "EDITOR" tab
% to publish: click the "Publish" button under the "PUBLISH" tab
clc
close all
h = 25; %step size on time (seconds)
t = 0:h:400; % time over constant (h)
T = HW3_prob4_SOL(t,h);
% plot the numerical solution
figure
plot(t,T,'-o','MarkerSize',2)
xlabel('time [sec]')
ylabel('temperature [K]')
end
%% solution function(s)
function T = HW3_prob4_SOL(t,h)
% Your entire solution should be contained in this m-file. If you want to
% call additional functions, add them to the bottom of this script. hint:
% "Euler_ODE" and "the_function" will be VERY similar to what we wrote in
% class to solve ODEs using Euler's method.
T = Euler_ODE(t,h);
end
function T = Euler_ODE(t,h)
T = zeros(1,length(t)); %initialize the solution vector
T(1) = 500; % initial temperature at t=0 (K)
for i = 1:length(t)-1
T(i+1) = T(i)+the_function(t(i),T(i))*h; %Euler's method formula
end
end
%% y' or f(x,y) for diff eqns of form dy/dx = f(x,y)
function dTdt = the_function(t,T)
Cp = 4.*(10.^5); % Volumetric Heat Capacity (J/m^3K)
d = 0.005; % iron plate's thickness (m)
H = 20; % Convection coefficient (W/m^2K)
T_inf = 300; % Surrounding Air temperature (K)
eps = 0.5; % iron's emissivity
sig = 5.67.*(10.^-8); % constant
T_surr = 300; % Surrounding Air Temperature (K)
dTdt = (-H.*(T-T_inf)-eps.*sig.*(T.^4-(T_surr.^4)))/(Cp.*d);
end
0 Comments
See Also
Categories
Find more on Partial Differential Equation Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!