Integrate planck function between two intervals
13 次查看(过去 30 天)
显示 更早的评论
function Planck_law
c1=27.742*10.^8;
c2=1.43878*10.^4
sigma=5.67*10.^-8
T=5780
lamda_1= 8
lamda_2= 13
fun= @(lambda,sigma,c1,c2,T) c1./lamda.^5.*(exp(c2./(lamda * T))-1);
F = integral(fun,lamda_1,lamda_2,0.001)./(sigma.*T^4)
This code shows error "Expected a string scalar or character vector for the parameter name, instead the input type was 'double'.
0 个评论
采纳的回答
Ameer Hamza
2020-9-26
编辑:Ameer Hamza
2020-9-26
Check this code and compare it with your code to see the mistakes.
c1 = 27.742*10.^8;
c2 = 1.43878*10.^4;
sigma = 5.67*10.^-8;
T = 5780;
lamda_1 = 8;
lamda_2 = 13;
fun = @(lambda) c1./lambda.^5.*(exp(c2./(lambda * T))-1);
F = integral(fun,lamda_1,lamda_2)./(sigma.*T^4)
4 个评论
Ameer Hamza
2020-9-27
You are not specifying the marker type in plot() and also you are not saving vaues of F at each iteration
c1 = 27.742*10.^8;
c2 = 1.43878*10.^4;
sigma = 5.67*10.^-8;
lamda_1 = 8;
lamda_2 = 13;
Tv = -10:5:30;
F = zeros(size(Tv));
count = 1;
for T=Tv
fun = @(lambda) c1./lambda.^5.*(exp(c2./(lambda * T+273))-1);
F(count) = integral(fun,lamda_1,lamda_2)./(sigma.*(T+273)^4);
plot(T, F(count), '+', 'MarkerSize', 10, 'LineWidth', 2)
hold on
grid
count = count + 1;
end
xlabel('Temperature')
ylabel('Fraction in atmospheric window)')
title('Fraction of the radiation emitted in the atmospheric window as a function of temperature')
legend('T=-10','T=-5','T=0','T=5','T=10','T=15','T=20','T=25','T=30')
hold off
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Line Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!