文档详情

9-连分数与佩尔方程的最小整数解

飞***
实名认证
店铺
PDF
55.87KB
约6页
文档ID:37943892
9-连分数与佩尔方程的最小整数解_第1页
1/6

1 连分数与佩尔( Pell)方程的最小正整数解(0)基本命令 ① LCM[2,3,5] :求 2,3,5 的最小公倍数 GCD[3,6,9]:求 3,6,9 的最大公因子 ② RealDigits[2008]:对 2008进行数字分解,并别求出2008 是几位数 程序执行后结果: {{2,0,0,8},4} ③ Drop[{x,y,z},{3}]:从向量 {x,y,z} 中去掉第 3 个元素1)连分数表示法 一个“既约”分数(分子可以比分母大,但无公因子)可以表示成连分数的形式例如将 1711表示成连分数,程序如下:ContinuedFraction[1711] 得到结果: {0,1,1,1,5}这表示1117=0+11+ 1+二次整系数方程的根叫做二次无理数初等数论中已经证明: 一切二次无理数表示成连分数,都具有无穷循环节例如将1+表示成连分数,程序如下:ContinuedFraction[1+] 得到结果: {4,{3,6}}这表示1+11=4+13+16+ 3+6+ 其中{3,6}用花括号括起来,表示无穷循环节 反之,我们可以通过一个数的连分数表示形式求其正常形式例如: FromContinuedFraction[{ 1,2,3 }] 得到结果: 710。

这表示:连分数81, 2, 3<=1+12+1 3=又例如, FromContinuedFraction[ { 2, 1, { 4, 2, 3 } } ] 得到结果:154I119+1M这表示:2 82,1,84,2,3< <=2+11+14+12+13+1 4+...=154I119+10M(2)佩尔( Pell)方程的最小正整数解 公元前3世纪下半叶古希腊科学家阿基米德(Archimedes,公元前 287—公 元前 212 年)在其论著中记载了一个牲畜问题,普遍称作群牛问题 历史上对这 问题的研究丰富了初等数论的内容 原文用诗句写成, 大意是:西西里岛草原上有一大群牛,公牛和母牛各有4种颜色设W、X、Y、Z分别表示白、黑、黄、花色的公牛数,w、 x、y、z分别表示这白、黑、黄、花色的母牛数它们满足:YXW3121、YZX 5141、YWZ 7161、xXw 4131、zZx 5141、yYz 6151、wWy 7161(1)不附加条件的群牛问题 求解方程组:YXW3121、YZX 5141、YWZ 7161、xXw4131、zZx 5141、yYz 6151、wWy 7161在 Mathematica4.1软件包中编程如下[3]:SolveW1213XY,X1415ZYZ1617WY, w1314Xx,x1415Zz, z1516Yy,y11Ww,w,x,y,z,W, X,Y 执行后得到结果:Solve::svars:Equationsmaynotgivesolutionsforall“solve“variab3 w360318Z367903, x2446623Z3679030, y5439213Z7358060,z175791Z367903, W1113 Z790, X801 Z790, Y891158 其中,Z是自由变量。

求分母的最小公倍数,就可以得到整数解: LCM[367903,3679030,7358060,790,1580] 执行后得到最小的z =7358060,将其代入方程组及需求解:Z7358060;SolveW1213XY,X1415ZZ1617WY, w1314Xxx1415Zz, z1516Yyy11Ww,w,x,y,z,W, X 执行后得到:w7206360,x4893246,y5439213,z3515820,W10366482,X7460514,Y41493即,百色母牛7206360w(头),黑色母牛4893246x(头),黄色母牛5439213y(头) ,杂色母牛3515820z(头) ;百色公牛10366482W(头) ,黑色公牛7460516X(头) ,黄色公牛414938Y(头) ,杂色公牛7358060Z (头) 不附加条件的群牛问题,总数最少为4149426239697 (头) ,即,大约四万 一千四百九十四亿头2)附加条件的群牛问题 求解方程组:YXW3121、YZX 5141、YWZ 7161、xXw4131、zZx 5141、yYz 6151、wWy 7161并且,ZY为一个三角数,即, 21mmZY,其中, m是一个正整数,以及XW为一个长方形数,即,完全问题较简问题,,*2nnmXW4 ① 较简问题 因为牛的身长与体宽不一样, “较简问题”表示,将牛排成长方形,两边的 数目不一样。

有文章说,较简问题求解后,牛的总数近6万亿头② 完全问题2nXW(长与宽的数目相等) ,即,将牛排成正方形,两边的数目相等时,称为“完全问题” 求解完全问题,最后归结为求解二元二次方程不定方程 (Pell 方程) X2– 410286423278424Y2 = 1这个不定方程的解, 已经通过计算机在几分钟之内求出这个方程的最小正 整数解是名副其实的天文数字(求解结果在后面 ) 17 世纪,费尔马重新提出求解不定方程X2 – A*Y2 = 1 的解的问题,其中A 是正的非完全平方数 他提出此方程有无穷多组正整数解同时他向所有的数学 家挑战:求出此方程的无穷多组正整数解 英国皇家学会的第一任会长布龙克尔勋爵(Lord Brouncker)给出了解, 但 他未能证明解有无穷多个 瓦利斯( J. Wallis,1616--1703)彻底解决了这个问题 佩尔( J. Pell,1611—1685)在他的一本著作中附录了瓦利斯的结果欧拉 在他于 1732 年发表的一篇论文中错误地称X2 – A*Y2 = 1 为 Pell 方程,这个错误就沿袭至今假设 A 是正的非完全平方数, 则A 是二次无理数, 它的连分数循环节表示形式是:A=8a0,8a1, a2,...,<当无穷循环节中数字的个数r 是偶数时,取的近似分数:xy=8a0, a1, a2,...,< 得到解 x、y,这就是 Pell方程 X2 – A*Y2 = 1 的解;当无穷循环节中数字的个数r 是奇数时,取的近似分数:xy=8a0, a1, a2,...,ar, a1, a2,...,< 得到解 x、y,这就是 Pell 方程 X2 – A*Y2 = 1 的解。

例 1 公元 650年左右,首创 0 不能作除数的印度数学家Brahmagupta (婆罗摩 及塔)曾致力研究Pell 方程 a·x2 + 1 = y2,他说: “在一年里头能解出 X2– 92Y2 = 1的人是一位数学家”用 Mathematica5 编程求解如下:aContinuedFractinLengtha25 得到: {9,{1,1,2,4,2,1,1,18}} 8 无穷循环节中数字的个数共8 个(即 r = 8 是偶数的情况),再输入:aContinuedFractioa1Joina1, anLengtha1;bDropa1,n;FromContinuedFracti得到分数:1即 x = 1151,y = 120是此 Pell 方程 X2– 92Y2 = 1的最小正整数解例 2 据说有人曾向英国数学家瓦利斯提出挑战,要他解X2– 313Y2 = 1,结果,他在一小时之内就找到正确的答案aContinuedFractionLengtha2817,81,2,4,11,1,1,3,2,2,3,1,1,11,4,2,1,34< 17 无穷循环节中数字的个数共17 个(即 r = 17 是奇数的情况),再输入:aContinuedFraction313;a1Joina1, Joina2, anLengtha1 ;bDropa1,n;FromContinuedFractionb得到分数:3218812082181938015即 x = 32188120829134849 ,y = 1819380158564160是此 Pell 方程 X2– 313Y2 = 1 的最小正整数解。

3)直接求解佩尔( Pell)方程的最小正整数解 第一步建立一个求解模块首先执行以下程序: PellSolve[m_Integer?Positive] := Module[ { cf, n, s }, cf = ContinuedFraction[ m ]; n = Length[ Last[ cf ] ]; If[ OddQ[ n ], n = 2n ]; s = FromContinuedFraction[ContinuedFraction[ m , n ] ]; { Numerator[ s ], Denominator[ s ] } ]; 6 第二步,例如,求解Pell 方程 X2– 92Y2 = 1 的最小正整数解,直接输入以下命令即可:PellSolve[ 92 ] 得到结果: { 1151,120 }即,x = 1151,y = 120是 Pell方程 X2– 92Y2 = 1 的最小正整数解例 3 阿基米德问题 X2 – 410286423278424Y2 = 1 , 用现代计算机可以在几分钟之 内求解程序如下: PellSolve[ 410286423278424 ] // Timing 运行之后,可以知道运算时间和结果,但是得到的结果太大,不在此收录,读者 自己计算即可。

另外,我们可以用以下命令求出此Pell 方程解的位数: a = PellSolve[ 410286423278424 ]; w1 = Last[ RealDigits[ a[ [ 1 ] ] ] ]; Print[“w1 = ”,w1] w2 = Last[ RealDigits[ a[ [ 2 ] ] ] ]; Print[“w2 = ”,w2] 其中 a = PellSolve[ 410286423278424 ] 运行的结果是得到Pell方程的最小正整数 解 a = { x, y },此处 a 的第一个分量 a[ [1] ] = x, 第二个分量 a[ [2] ] = y;命令 RealDigits[ a[ [1] ] ]运行的结果是得到x = a[ [1] ] 的位数; RealDigits[ a[ [2] ] ] 运行的结果是得到y = a[ [2] ] 的位数运行后得到: x = a[ [1] ]的位数是 w1 = 103273位,y = a[ [2] ] 的位数是 w2 = 103266位作业(1) 求 X2– 21Y2 = 1 的最小正整数解;(2) 求 X2– 45Y2 = 1 的最小正整数解;(3) 求 X2– 73Y2 = 1 的最小正整数解;。

下载提示
相似文档
正为您匹配相似的精品文档