什么是风寒公式的程序化表示?

3

我想要计算摄氏度下的风寒温度。我在BBC网站上找到了一些好的信息(在那里被称为“实感温度”),但我不太清楚如何将其转换为C代码。

这里是他们的计算信息:

T(wc) = 13.12 + 0.6215T - 11.37V**0.16 + 0.3965TV**0.16

有了这些笔记

(其中T(wc)是基于摄氏度标度的风寒指数,T是空气温度(以°C为单位),V是在10米(33英尺,标准风速计高度)处测量的以km/h为单位的风速。

所以我创建了这个,但有时会得到负输出。

float feelslike = 13.12 + 0.6215 * temperature - 11.37 * windSpeed  * 0.16 + 0.3965 * temperature * windSpeed * 0.16;

也许我漏看了什么?我假设当它有“0.6215T”时,它的意思是“0.6215 * T”,但我不确定如何解释方程中的双重"*"。

样例输出:

feelslike 15.126314 temp 19.719999 wind 18.040001
feelslike 15.126314 temp 19.719999 wind 18.040001
feelslike 14.308528 temp 20.070000 wind 20.670000
feelslike 14.308528 temp 20.070000 wind 20.670000
feelslike 12.485908 temp 20.049999 wind 23.930000
feelslike 12.485908 temp 20.049999 wind 23.930000
feelslike 9.340910 temp 19.450001 wind 27.110001
feelslike 9.340910 temp 19.450001 wind 27.110001
feelslike 5.497787 temp 18.330000 wind 28.969999
feelslike 5.497787 temp 18.330000 wind 28.969999
feelslike 2.776235 temp 16.740000 wind 27.400000
feelslike 2.776235 temp 16.740000 wind 27.400000
feelslike 0.058707 temp 14.950000 wind 25.670000
feelslike 0.058707 temp 14.950000 wind 25.670000
feelslike -1.787689 temp 13.130000 wind 23.389999
feelslike -1.787689 temp 13.130000 wind 23.389999
feelslike -1.408279 temp 12.460000 wind 21.650000
feelslike -1.408279 temp 12.460000 wind 21.650000
feelslike -0.960956 temp 11.810000 wind 20.020000
feelslike -0.960956 temp 11.810000 wind 20.020000
feelslike -1.235470 temp 11.550000 wind 19.820000

7
V**0.16 表示 V0.16 次方(我认为应该是六次方根),而不是您实现的 V * 0.16 - Daniel Fischer
可能实际上表示幂运算。a2 表示 a 的平方。 - taocp
"0.6215T" 确实是 "0.6215 * T";这是标准的代数符号。 ** 是指数运算符;x ** y 表示 x 的 y 次方。 - Jim Dagg
这并不意味着负输出是不合理的。 - Reinstate Monica -- notmaynard
3个回答

6
T(wc) = 13.12 + 0.6215T - 11.37V**0.16 + 0.3965TV**0.16

意思是:

T(wc) = 13.12 + 0.6215*T - 11.37*pow(V,0.16) + 0.3965*T*pow(V,0.16)

在C/C++中

5

**通常表示"乘方"。您可以使用在math.h中的pow函数。例如:

pow(windSpeed, 0.16)

您的完整计算应为:
float feelslike = 13.12 + 0.6215 * temperature - 
                  11.37 * pow(windSpeed, 0.16) + 
                  0.3965 * temperature * pow(windSpeed, 0.16);

不要忘记添加#include <math.h>

0

也许我有点疯狂,但是你拥有负数不是很好吗?这只是意味着它感觉像是低于冰点而已吧?


我们在谈论洛杉矶的温度高达摄氏15度,但体感温度却是零下1度。所以我认为这不正确! - napierzaza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接