丹凤千字科普:相对误差的三个公式(详细资料介绍)

一、参数F16(No.6008#0)=0时的注意事项
在进行加法或减法运算时,需要特别关注误差的控制。尤其是当涉及用户宏程序变量时,由于这些变量只有15位十进制数的控制精度,相对误差不能低于10-15。
以一个简单的例子来说明,假设有两个变量#1和#2,它们的真实值在运算过程中的情况如下(请注意,此为例示,不代表实际程序操作):
#1的值为:.987654321
#2的值为:.987657777
当我们进行#2-#1的运算时,结果并不是简单的差值,因为用户宏程序变量的精度限制。实际上,由于内部采用的是二进制计算,其精度与上述十进制表示有所不同。实际得到的差值会有较大的误差。
二、逻辑关系的处理
在处理EQ、NE、GT、LT、GE、LE等逻辑关系时,也需要考虑精度问题,避免误差的累积。
三、三角函数及之后的运算
涉及三角函数的运算后,紧接着进行乘除运算时,需要特别小心。这里的误差处理同样重要。
四、FIX函数及其精度问题
使用FIX函数时,同样需要注意其精度。例如,在进行乘法运算后使用FIX函数,可能无法得到预期的结果。为了防止这种情况,我们可以对表达式进行微调,例如加上一个很小的正数或负数(根据具体情况设定为0.001、0.01等)。
特别注意:当变量值达到一定范围(如指数函数中的#j值超过790),运算结果可能会溢出。
二、参数F16(No.6008#0)=1时的注意事项
运算时可能会产生误差,特别是在使用六个条件表达式(EQ、NE、GE、GT、LE、LT)时,误差可能来自这些表达式的判断。例如,IF[#1EQ#2]的判断可能会受到#1和#2的误差影响,导致错误的判断。为了避免这种情况,可以尝试使用其他方式来表达条件,如求两个变量之差并判断其是否小于允许值。
在进行数值处理时,尤其是只舍不入的情况下,需要格外小心。例如,计算#2=#1*1000后,直接使用FIX[#2]可能无法得到预期的整数值。这时,需要对结果进行相应的误差修正,例如使用只舍不入或四舍五入的方式处理。
三、表达式使用的注意事项
1. 在表达式中使用的括号为方括号[ ],而圆括号( )用于程序注释。
2. 当除法运算的分母为0时,会出现PS0112#报警。
3. 超出控制轴数指定时,会出现PS0115#报警变量号超限。
4. 如果括号的嵌套超过5位层次,会出现PS0118#报警。
5. 如果自然对数的逆对数(#j)小于等于0,会出现PS0119#报警。
6. 指数函数的运算结果溢出时,同样会出现PS0119#报警。在进行表达式运算时,务必注意这些潜在的错误情况并进行相应的处理。
