如何编写R语言普朗克方程计算函数并调用求解200-300K发射率
R语言普朗克函数调用方法
首先你编写的自定义函数存在一处参数默认值错误:手动计算时玻尔兹曼常数k的取值为1.38e-23,但函数中默认写为1.38e-2,会导致计算结果偏差极大,需要先修正函数:
P_function <- function(t, pi = 3.141593, h = 6.626068963e-34, c = 2.99792458e+8, lambda = 4 * 1e-6, k = 1.38e-23) { ((2*pi*(c^2)*h)/(lambda^5)) * (1/(exp((h*c)/(lambda*k*t))-1)) }
R支持向量化运算,你不需要循环遍历每个温度值,直接将200~300K的温度序列作为参数传入函数即可得到对应结果:
# 生成200到300K的温度向量 temperature <- 200:300 # 调用函数得到对应发射率结果向量 emissivity_result <- P_function(t = temperature)
如果你需要将温度和对应计算结果一一对应查看,可以将两者合并为数据框:
# 生成结果对照表 result_table <- data.frame(温度_K = temperature, 发射率计算结果 = emissivity_result) # 查看前10行结果 head(result_table, 10)
内容的提问来源于stack exchange,提问作者Rabin KC
相关产品推荐
相关产品推荐

