我有一个线性方程组
我现在正在 Matlab(或任何其他我可以重写为 Matlab 的语言)中寻找一种算法,它为给定的这个问题提供了精确的合理解决方案和,例如在表格中
, 在哪里和是标量整数和是一个整数向量,或形式(Matlab 表示法)x=r./s
,其中r
和s
是整数向量。
我已经尝试过[r,s]=rat(A\b)
,它适用于足够简单的情况,但很快就会导致舍入问题(即r./s
仅近似,但我需要确切的解决方案)。使用符号计算有效;但是,我必须将程序编译为独立的,并且据我所知和尝试过,Matlab 编译器不支持符号工具箱。
一些统计数据:应该被允许至少在或更高。中的值可以变得相当大,以至于我现在已经在使用int64
. 我知道在某一时刻我会遇到数字问题,我只要尽可能推迟这类问题就足够了(我很感激任何解决方案,即使它只适用于较小的问题)。但是,我需要精确的解决方案,而且我更喜欢错误消息而不是任何近似值,无论多么好。算法的运行时间是次要的,如果需要一个小时左右就可以了(然而,更有效率是一个加号)。