Page 106 - 数学建模算法与应用
P. 106
Mathematical Modeling Algorithms and Applications
数学建模算法与应用
■ 尽量避免更改已定义变量的数据类型和维度。
■ 合理使用逻辑操作,防止陷入死循环。
■ 尽量避免在不同类型的变量之间赋值,必要时使用中间变量来解决问题。
■ 尽量使用实数运算,复数运算可以转换为多个实数进行运算。
■ 尽量将运算转换为矩阵运算。
■ 尝试使用 MATLAB 的加载和保存命令,而不是对文件使用文件 I/O 操作。
以上建议仅供参考,用户可以根据不同的应用场景进行选择。有时为了实现
复杂的功能,不可能考虑所有这些要求。程序的效率优化通常结合 MATLAB 的
优点。由于 MATLAB 的优势在于矩阵运算,建议尽可能将其他数值运算转换为
矩阵运算。MATLAB 中处理矩阵运算的效率比简单的算术运算更高。
四、 内存优化
对于一些普通用户来说,内存优化可能不是一个问题,因为随着计算机的发
展,内存容量已经能够满足大多数数学运算的要求,而 MATLAB 本身为计算机
内存优化提供了有限的操作支持。内存优化只有在遇到大规模操作时才能有效。
这里有几个常见的内存操作函数,可以在需要时使用。
■ whos———查看当前内存使用状况函数。
■ clear———删除变量及其内存空间,可以减少程序的中间变量。
■ save———将某个变量以 mat 数据文件的形式存储到磁盘中。
■ load———载入 mat 数据到内存空间。
由于在函数执行过程中内存操作函数的使用率较低,合理优化内存操作通常
取决于用户在编写程序时养成的习惯和经验,如以下方法。
■尽量确保变量创建的集中化,最好在函数的开头。
■对于包含许多零元素的大型矩阵,尽量将其转换为稀疏矩阵。
■及时清除占用大量内存的临时中间变量。
■尽量减少新内存的创建,而是重用它。
算法优化的一般要求不仅是在形式上尽可能简化步骤,更重要的是能够以最
小的时间和空间复杂度完成所需的计算。这包括巧妙地设计程序流程,灵活地控
制循环过程(例如及时跳出循环或结束当前循环),更好的搜索方法,以及正确
的搜索对象以避免不必要的计算过程。例如,在确定一个整数是否是素数时,可
96

