Integrate planck function between two intervals

17 visualizaciones (últimos 30 días)
Sarvjeet Singh
Sarvjeet Singh el 26 de Sept. de 2020
Comentada: Ameer Hamza el 27 de Sept. de 2020
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'.

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 26 de Sept. de 2020
Editada: Ameer Hamza el 26 de Sept. de 2020
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 comentarios
Sarvjeet Singh
Sarvjeet Singh el 27 de Sept. de 2020
Why F vs T graph are not ploted , is shows blank figure and how i can get all the values of F and T in the workspace as it shows only last value.
c1 = 27.742*10.^8;
c2 = 1.43878*10.^4;
sigma = 5.67*10.^-8;
T = 5780;
lamda_1 = 8;
lamda_2 = 13;
for T=-10:5:30
fun = @(lambda) c1./lambda.^5.*(exp(c2./(lambda * T+273))-1);
F = integral(fun,lamda_1,lamda_2)./(sigma.*(T+273)^4)
plot(T,F)
hold on
grid
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
Ameer Hamza
Ameer Hamza el 27 de Sept. de 2020
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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by