求解线性方程组的最一般的方法就是gauss顺序消去法。我们平常求解方程组的思想就是:通过不断的代入消元实现方程组化简,然后回代实现求解。
下面简单实现了gauss顺序消元法。这里假设系数矩阵是方阵,行列式的值不为0,每次消元时主元都不为0,同时也不考虑方程组的性态问题。
第一层循环为消元次数;
第二层循环是对第i行进行消元;
第三层循环是对第i行,第j列进行消元;
算法的python实现
本方法的时间0.000027s左右,加上print('方程的解')后速度在0.014722s,可见print这个函数还是挺占时间的。python也有自带的solve函数实现方程组的求解,其求解时间大约0.014742s。不过本方法没有solve函数稳定。
MATLAB实现:
MATLAB 实现的时间在 0.001881s左右,如果用Matlab自身的矩阵求解时间在0.000773s左右。
C实现:
C实现的时间
可见python中的numpy虽然计算性能得到优化,但是和C比起来还是有较大的差距。Matlab循环会降低处理速度,由于matlab优异的矩阵处理性能,其计算速度并不是很慢。c无愧为王者,就是飞一般的速度。唯一难受的就是C的强制类型说明,显得有点不习惯了。
欢迎你关注我们!
如果你有什么有趣的事,也可以骚扰留言,希望我们一起把生活活得更有趣味 ^_^
领取专属 10元无门槛券
私享最新 技术干货