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!