
数学实验-最佳分数近似值.doc
5页实验三 最佳分数近似值一、实验名称: 最佳分数近似值二、实验目的: 本实验是要研究怎样用分数近似值去对给定的无理数做最佳近, “最佳”就是既要误差小,又要分母小我们首先需要对“最佳”定出具体而明确的标准,还要寻找一个求最佳分数近似值的简单易行的算法三、实验环境: Mathematica 系统,Word 文档,课本四、实验的基本理论和方法:通过对 的近似方法的分析得到分数的最佳近似值 是无理 数,对于任何一个无理数 ,不可能用分数 来作 的准确值,pq只可能作它的近似值,近似值 的优劣可以用绝对误差pq来衡量绝对误差 越小,就说明这个近似值的精确度越||pq高任意给定一个分母 ,总可以选取适当的分子 使 最接近qpq准确值 ,也就是使绝对误差 最小,小于 由此可见,要提高12q精确度,减少误差,一个简单的办法是增大分母 只要 足够大,q就可以使误差任意小五、实验内容和步骤:(一)实验内容1.分数对无理数的最佳逼近:若有一个分数 的分母 并且误差 ,或者分pqQpPqQ母 且误差 ,那么 就是比 更佳的分数近似值,qQPpq就不能说是“最佳” 反过来,如果 的误差比起分母不超过 的P Q其他分数近似值 都小,也就是 对所有 以及pqPpQq且 成立,这时,就称 给出了 的最佳逼近。
qQP2.计算对数值:对给定的正实数 , 且 ,要求对数值 ,也就bN1logbN是求实数 使 .如果能找到整数 , 使 ,则p, .以 (即 )为例:由/pqbNlogbpqlg210lo可得 .再要提高精确度,就要找出更10324013l大的 使 更接近 10 的某个幂 ,也就是使 更接近 1.q10q210qp(二)实验步骤1.分数对无理数的最佳逼近(1)取 n=50,让分母 q 依次取遍 1 到 n 的整数值,对每一个分母 q,将 q*Pi 四舍五入得到一个整数 p 作为分母输入程序 TableRoundpi q,q,1,50运行结果得:3,6,9,13,16,19,22,25,28,31,35,38,41,44,47,50,53,57,60,63,66,69,72,75,79,82,85,88,91,94,97,101,104,107,110,113,116,119,123,126,129,132,135,138,141,145,148,151,154,157(2)以为分母,为分子的分数输入程序TableRoundPi qq ,q,1,50,运行结果得:3,3,3, 134 , 165 , 196 , 227 , 258 , 289 , 3110, 3511, 196 ,4113,227 ,4715,258 ,5317,196 ,6019,6320,227 ,6922,7223,258 ,7925,4113,8527,227 ,9129,4715,9731,10132 ,10433 ,10734 ,227 ,11336 ,11637 ,11938 ,4113,6320,12941 ,227 ,13543 ,6922,4715,14546 ,14847 ,15148 ,227 ,15750(3)计算出 的绝对值pq输入程序b TableAbs RoundPi qq ,q,1,50运行结果得:3 , 3 ,3 , 134 , 165 , 196 , 227 , 258 , 289 , 3110 , 3511 , 196 , 4113 , 227 , 4715 , 258 , 5317 , 196 , 6019 , 6320 ,227 ,6922 ,7223 ,258 ,7925 ,4113 ,8527 ,227 ,9129 ,4715 ,9731 ,10132 ,10433 ,10734 ,227 ,11336 ,11637 ,11938 ,4113 ,6320 ,12941 ,227 ,13543 ,6922 , 4715 , 14546 , 14847 , 15148 , 227 , 15750 (4)将它们的绝对值进行升序排列输入程序 b TableAbs RoundPi qq ,q,1,100Sortb 运行结果得:227 , 227 , 227 , 227 , 227 , 227 , 227 ,15148 ,12941 ,10734 ,8527 ,14847 ,6320 ,6320 ,10433 ,14546 ,4113 ,4113 ,4113 ,10132 ,6019 ,7925 ,196 ,196 ,196 ,3511 ,165 ,134 ,15750 ,13543 ,11336 , 9129 , 6922 , 6922 , 11637 , 4715 , 4715 , 4715 , 11938 , 7223 , 9731 , 258 , 258 , 258 , 5317 , 289 , 3110 ,3 , 3 ,3 2.计算对数值:(1)让 q 依次取遍 1 到 10000 的所有的正整数,对每个 q,按如下的递推法则求出一个正整数 使实数 最接近于()pq2()10qp1:时, , .q(1)0p102()设已对求出 和 .计算 (即 ).如果 ,()q()q120qp2()10q则取 .如果 ,则取(1),12pq, .()(()(0q如果 比以前所有的 都更接近 1,即()1)iq对所有的 成立,就取 作为 的一个()1()qiipqlg2近似值,这样得出的 都是最佳逼近 的分数近似值,它们可以pqlg2展开成小数近似值。
2)辗转相除法求对数 logbN取 .对每个整数 ,如果已经知道所有的10,Nb0k及 ,则可按下面的方法求出 和 :()ik(1)iak1kNka将 连续除以若干个 ,直到所得的商 满足条件1kkNka为止,则连除的 的个数就是 ,而商 就是 .如果某N ka1k个 ,则递推过程终止, 是有限连分1n012logb na数从而使有理数.否则,递推过程可以无限地进行下去,被展开成无限连分数0121logb nNaa六、实验结果及分析1.通过上述实验,我们也可将误差小、分母小这两个标准综合起来,以误差 与分母 q 的乘积 为标准来判定分数近似值qp的优劣, 越小, 越优还可以进一步强化“分母小”这一要qp求,用 作衡量标准, 值越小越优22q2.计算对数的常用方法是利用泰勒展开式分别求出 lnN、lnb,再利用换nxxx132)()1ln(底公式 .当 N=1+x 与 1 相差太远时泰勒级数不收敛或收敛bNblnlog太慢此时可选适当的 , ,…, 使每个 , ,…, 都很接12kN12Nk近 1,且 N= … ,从而 lnN=lnN1+lnN2+…+lnNk。
