无意间翻到了去年写的公选课MATLAB的课程论文。当时刚好GET了矩阵快速幂,就顺便用上了,意料之中地拿了90+分哈哈哈哈(毕竟是公选课)
________________________________________________________________________________________________________________________
①关于MATLAB
关于MATLAB,有这么两点优势要说明:
<1>MATLAB拥有着极其方便的矩阵运算,每一个数组都可以表示为相应维度的矩阵,可以通过两个数组的直接相乘来获得“矩阵1×矩阵2”运算的结果矩阵。
<2>MATLAB拥有着精度超高的符号运算(syms),克服了大数溢出的问题。
对于诸如C,C++,JAVA等语言,进行高精度数字的求解总是非常具有挑战性的,即使只是进行大规模整数运算,C++也需要铺写大量的代码定义大数类和重载操作符。如果再加入矩阵运算,使用起来极其不方便。JAVA还好,毕竟大数对它来说不是问题。
而MATLAB的符号类精度之高非常恐怖,且操作异常方便,可以像处理普通整型一样地处理符号类。因此,使用MATLAB可以让“大型”运算变得具有非常强的可行性。
当然,最好用的果然还是Python了……
②关于“大型斐波那契数”
<1>“斐波那契数”
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(LeonardodaFibonacci )以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。
而斐波那契数,就是指在已经定义了递推初始值的前提下,持续递推斐波那契数列所得的其中一个数。
<2>“大型”
所谓“大型”,当然不会是求第10个、第20个、第100个斐波那契数这等简单循环便可以轻易得到结果的数据(当然,其实第100个斐波那契数已经达到了3.54×1020的整型存放不下的大数)。
所谓“大型”,应该是指第一万个、第十万、百万,乃至第千万、第一亿个斐波那契数。根据下图所示,斐波那契数列有着跟指数函数类似的曲线,到达一定程度后会有类似“指数爆炸”的曲线斜率。
③关于“矩阵快速幂”
<1>“矩阵”
斐波那契数的递推式可以用一个2×2的矩阵A来表示。
矩阵快速幂算法的原理与实践——“使用MATLAB求解大型斐波那契数"
最新推荐文章于 2025-02-20 15:41:56 发布