Plotting is not quie correct
2 次查看(过去 30 天)
显示 更早的评论
I am trying to plot the temeprature curves for emissivity against the wavelength using Planck's Law. The plot I am getting is pretty close, except there is no decrease in emissivity as the wavelength gets very large. I can't tell if it is the way the for loops are running or the equations I typed in. I have attachedmy current code and the graph I am trying to duplicate for clarification. Any help is greatly appreciated. Thanks!
C1 = 3.742*10^8; % First constant W-micron^4/m^2
C2 = 1.4388*10^4; %Second constant microns-K
T = 100:100:6000; %Temperature in Kelvins
lambda = 0.1:0.1:25; %wavelength in microns
lengthT = length(T);
length_L = length(lambda);
E = zeros(lengthT,length_L);
for i = 1:lengthT
for j = 1:length_L
term1(i,j) = C2./(lambda(j)*T(i));
end
E= C1./((lambda(j)^5)*exp(term1-1));
end
loglog(lambda, E)
ylim([1*10^-1,1*10^9])
xlim([0, 2.5*10^1])
1 个评论
Walter Roberson
2023-12-10
In order to produce that kind of graph, your expression would need some term that first increased in time and then decreased in time. I am not finding any term in your code that has that property ?
回答(1 个)
Torsten
2023-12-9
Maybe
for i = 1:lengthT
for j = 1:length_L
term1(i,j) = C2./(lambda(j)*T(i));
E(i,j)= C1./((lambda(j)^5)*exp(term1(i,j)-1));
end
%E= C1./((lambda(j)^5)*exp(term1-1));
end
instead of
for i = 1:lengthT
for j = 1:length_L
term1(i,j) = C2./(lambda(j)*T(i));
end
E= C1./((lambda(j)^5)*exp(term1-1));
end
?
4 个评论
Image Analyst
2023-12-10
@Matthew Palermo for completeness, could you post your complete, corrected code? It might help other people. 🙂
Torsten
2023-12-10
编辑:Torsten
2023-12-10
I tried that earlier and got the same result
Strange. I get a similar result as in your graphic.
C1 = 3.742*10^8; % First constant W-micron^4/m^2
C2 = 1.4388*10^4; %Second constant microns-K
T = 100:100:6000; %Temperature in Kelvins
lambda = 0.1:0.1:25; %wavelength in microns
lengthT = length(T);
length_L = length(lambda);
E = zeros(lengthT,length_L);
for i = 1:lengthT
for j = 1:length_L
term1(i,j) = C2./(lambda(j)*T(i));
E(i,j)= C1./((lambda(j)^5)*exp(term1(i,j)-1));
end
%E= C1./((lambda(j)^5)*exp(term1-1));
end
loglog(lambda, E)
ylim([1*10^-1,1*10^9])
xlim([0, 2.5*10^1])
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!