单片机中15位浮点变量计算
15 digit floating variable calculation in microcontroller
我想在控制器 (Arduino) 中计算方程
y = -0.0000000104529251928664x^3 + 0.0000928316793270531x^2 - 0.282333029643959x + 297.661280719026
现在系数的十进制值很重要,因为 "x" 以千为单位变化,所以不能忽略立方项。我曾尝试操纵 excel 中的方程式来减少系数,但 R^2 在此过程中丢失了,我想避免这种情况。
Arduino 中可用的最大变量大小为 4 字节。在 google 搜索中,我找不到合适的解决方案。
感谢您的宝贵时间。
自
-0.0000000104529251928664 ^ (1/3) = - 0.0021864822
0.0000928316793270531 ^ (1/2) = 0.00963491978
公式
y = -0.0000000104529251928664x^3 + 0.0000928316793270531x^2 - 0.282333029643959x + 297.661280719026
可重写:
y = -(0.0021864822 * x)^3 + (0.00963491978 * x)^2 - 0.282333029643959 * x + 297.661280719026
将所有系数四舍五入到小数点后 10 位,我们得到:
y = -(0.0021864822 * x)^3 + (0.00963491978 * x)^2 - 0.2823330296 * x + 297.6612807
但我不了解Arduino,我不确定正确的小数位数是多少,也不知道编译器会接受或拒绝什么。
我想在控制器 (Arduino) 中计算方程
y = -0.0000000104529251928664x^3 + 0.0000928316793270531x^2 - 0.282333029643959x + 297.661280719026
现在系数的十进制值很重要,因为 "x" 以千为单位变化,所以不能忽略立方项。我曾尝试操纵 excel 中的方程式来减少系数,但 R^2 在此过程中丢失了,我想避免这种情况。
Arduino 中可用的最大变量大小为 4 字节。在 google 搜索中,我找不到合适的解决方案。
感谢您的宝贵时间。
自
-0.0000000104529251928664 ^ (1/3) = - 0.0021864822
0.0000928316793270531 ^ (1/2) = 0.00963491978
公式
y = -0.0000000104529251928664x^3 + 0.0000928316793270531x^2 - 0.282333029643959x + 297.661280719026
可重写:
y = -(0.0021864822 * x)^3 + (0.00963491978 * x)^2 - 0.282333029643959 * x + 297.661280719026
将所有系数四舍五入到小数点后 10 位,我们得到:
y = -(0.0021864822 * x)^3 + (0.00963491978 * x)^2 - 0.2823330296 * x + 297.6612807
但我不了解Arduino,我不确定正确的小数位数是多少,也不知道编译器会接受或拒绝什么。