XSum - 带有误差补偿的快速浮点数求和算法浮点数之和的精度受到截断误差的限制。例如,SUM([1e16, 1, -1e16])返回 0 而不是 1,并且 SUM(RANDN(N, 1)) 的误差约为 EPS*(N / 10)。Kahan、Knuth、Dekker、Ogita 和 Rump(以及其他人)已经推导出了一些方法来减少舍入误差的影响,这些方法在这里实现为快速 C-Mex:XSum(RANDN(N, 1), 'Knuth') 的精度达到所有 15 位数字。输入:X:任意大小的双数组。N:要操作的维度。方法:字符串:'Double'、'Long'、'Kahan'、'KnuthLong'、'Knuth2'。输出:Y:双数组,相当于 SUM,但误差补偿取决于方法。高精度结果四舍五入到双精度。方法:这是一种快速且高精度的算法,用于求解浮点数之和,并通过误差补偿来提高其精度。
基于误差补偿的浮点数求和算法:XSum
相关推荐
MATLAB浮点数类型详解
MATLAB中的浮点数类型包括单精度和双精度两种。随着技术的不断进步,这些类型在数值计算中起到关键作用。
Matlab
15
2024-07-27
字符串转浮点数二进制数据转十进制浮点数方法-matlab开发
此方法将任意格式的二进制数据字符串转换为用户定义的浮点数。输入参数'intsize'定义指数大小并设置二进制数中的定点位置。附带matlab程序用于验证功能。
Matlab
18
2024-09-30
浮点数与浮点数比较检测模型中的比较操作(single == single)或(Double~=Double)的执行情况 - MATLAB开发
在运行此脚本时,会加载模型并检测状态流以及Simulink中的关系运算符。无论是在Single与single之间的比较,还是在double与Double之间,脚本均会生成相应的位置报告。
Matlab
13
2024-08-27
MATLAB开发浮点数到二进制的转换及反向转换
这个M文件扩展了MATLAB内置的dec2bin()和bin2dec()函数,使其能够处理浮点数的转换。当输入浮点数如25.757时,程序将返回其对应的二进制表示,反之亦然。这一功能对于需要高精度数值处理的应用特别有用。
Matlab
8
2024-07-30
MATLAB浮点数动力系统吸引子模拟
浮点型数值的底层表示和,在模拟动力系统时挺关键的。MATLAB 里模拟吸引子,经常要用到各种精度的浮点数。这个资源讲得比较清楚,从 IEEE-754 的存储结构,到double类型在寄存器里的表现,配图加示例,还挺接地气。
编译器用的还是小端格式,像什么0x3F9E0651这种写法,新手一开始看会懵,不过文中把寄存器 w4、w5 的关系都拆出来讲了,思路清晰。还顺带提到了-fno-short-double这个编译器选项,对应平台兼容问题,老手会比较在意。
如果你是在做MATLAB 动力系统模拟,像洛伦兹吸引子之类的,建议顺手把这篇扫一遍,哪怕不全懂,理解个也有用。对了,这篇也不错,讲实现定义行
Matlab
0
2025-06-18
Matlab开发实现浮点数与二进制流的双向转换工具
Matlab的内置函数bin2dec和dec2bin不能完全满足对浮点数到二进制及二进制到浮点的需求。新增函数float2bin(in),接受浮点数输入并返回二进制表示。另外,bin2float(bin)接收二进制输入并返回对应浮点数。示例用法: >>输出= float2bin(6.875)出= 110.111 >> out = bin2float('110.111')出= 6.8750
Matlab
13
2024-08-09
尝试将由有符号浮点数组成的矩阵-matlab开发移植矩阵元素的负值
我正在使用Symphony模型编译器浮点工具箱,但遇到了由有符号浮点数组成的矩阵中负数输入的问题。
Matlab
9
2024-08-01
求和 - 确定性简单明确的求和脚本
此脚本展示了1和2之间的简单求和(1/x)。事实上,它是通过积分法分析1和2之间的1/x。您可以用它来进行求和。只需修改初始点和最终点的变量ni和nf作为n。然后修改要求和的表达式。将原始代码的结果与ln(2)的数值结果进行比较。
Matlab
10
2024-08-26
动态无功补偿控制器设计基于p-q算法的Simulink建模
基于瞬时无功功率理论的设计思路,配上图形和公式解释,逻辑还蛮清楚的。原理上分了和另一种算法的区别,选了做主力控制方案。嗯,这套方案比较适合搞无功补偿的项目,尤其是你要上STATCOM的。
PWM 的控制方式也没落下,从类型讲到规则采样法,定了用SPWM。如果你搞过SPWM,应该知道它波形控制还挺顺,适合稳定输出。
Simulink 建模那部分也比较细,整个仿真模型都搭在Simulink里。你可以直接跑下模型,对比下补偿前后的电压、电流波形变化,一眼就能看出有没有补偿效果。
如果你之前没搞过p-q 算法,可以顺手看看APF 和混合滤波仿真,里面的思路蛮接近的。另外,STATCOM 建模那篇对建模
Matlab
0
2025-06-16