power of blackbody radiation

36 次查看(过去 30 天)
rabindra khadka
rabindra khadka 2019-4-22
I need to calculate power of blackbody radiation at given temperature for wavelength ranging from 0 to 20 micrometer. And also need to plot the power vs wavelength.
I have intensity as a function of wavelength (Lam)
I2 =(2*h*c)./((Lam.^5).*(exp((h.*c)./(k.*T.*Lam))-1))
I integrated, but the results shows NaN
Please help me
clear all;
clc;
c=3*10^8; % speed of light in vaccum
h=6.625*10.^-34; % Planck constant
k=1.38*10.^-23; % Boltzmann constant
T= 500; % Temperatures in Kelvin
Lam=(0.0:0.01:20).*1e-6;
I1 =(2*h*c)./((Lam.^5).*(exp((h.*c)./(k.*T.*Lam))-1))
plot(Lam,I1)
avg_I1 = I1(1:length(Lam)-1)+diff(I1)/2;
% Integrated results
A = sum(diff(Lam).*avg_I1)
  1 个评论
Clinton Edwards
Clinton Edwards 2020-10-4
编辑:Clinton Edwards 2020-10-4
There are a few errors and enhancements which would be considered.
1) The most critical error is that the the calculation of I1 is missing a c^2 term and only has c in the first parathetical term. Instead of (2*h*c) is should be I1 =(2*h*c^2).
2) Less critical is that the first four significant figures of "h" are 6.626 not 6.625.
My proposed corrections are implemented in the code below with some axis labels.
Hope this helps! Nice job.
clint
% Physical Constants
c=3*10^8; % Speed of Light
h=6.626*10.^-34; % Planck constant (m^2*kg/s)
k=1.38*10.^-23; % Boltzmann constant (m^2*kg)/(s^2*K)
Lam=(Lam1:0.01:Lam2).*1e-6; % meters
dLam = Lam(2) - Lam(1); % Delta Lambda
% Calculate Blackbody Values For Vector Lam
I1 =(2*h*c^2)./((Lam.^5).*(exp((h.*c)./(k.*T.*Lam))-1));
plotI1 = I1*1e-12;
plotLam = Lam/1e-6;
plot(plotLam,plotI1,'linewidth',4)
xlabel('Wavelength (um)')
ylabel('Spectral Radiance (KW/m^/sr/wavelength)')
grid 'on'

请先登录,再进行评论。

回答(1 个)

David Goodmanson
David Goodmanson 2019-4-23
HI rabindra,
The expression has a problem at the first point, lambda = 0. But I1 is so tiny near the origin that you can safely drop lambda= 0 and start the array at .01.
Things will work better using 2*h*c^2 rather than the incorrect 2*h*c. Also, the integration is correct but you can do the same thing more quickly with A=trapz(Lam,I1)

类别

Help CenterFile Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by