找回密码
 欢迎注册
楼主: wsc810

[提问] Mathematica达人帮忙了,有关pell方程

[复制链接]
 楼主| 发表于 2011-12-9 12:49:18 | 显示全部楼层
这个其实不难理解,

如 $\sqrt{113}$前几个近似分数依次为$10/1,11/1,21/2,32/3,85/8,202/19,...,776/73$

将$n$等于$1$代入公式 $(p_nq_{n-1}+p_{n-1}q_n)y_0-2x_0q_nq_{n-1}$

           得        $(p_1q_0+p_0q_1)y_0-2x_0q_0q_1$

                               $=(11*1+10*1)*73 -2*776*1*1$

                                $=21*73-776$

                                $=-19$

其他的以此类推,取n=2,得 $(p_2q_1+p_1q_2)y_0-2x_0q_2q_1$
  
                                                  $=(21*1+11*2)*73 -2*776*2*1$

                                                  $=43*73-776*4$

                                                  $=35$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-9 13:27:38 | 显示全部楼层
好吧,是我理解能力欠佳。代码如下
  1. m = 200;
  2. p = Convergents[Sqrt[113], m];
  3. q = Select[p, Abs[Numerator[#]^2 - 113 Denominator[#]^2] == 1 &];
  4. Table[Denominator[q[[1]]] Denominator[p[[ii]]] Denominator[ p[[ii + 1]]] (p[[ii]] + p[[ii + 1]] - 2 q[[1]]), {ii, 1,  Length[p] - 1}]
复制代码
我希望你能回答这个问题:
我上面的代码哪个地方你想不到,以至于非要我为你服务到如此地步,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-12-9 18:56:41 | 显示全部楼层
因为我从来没用mathematica编过程,只会用函数做计算,所以直接让我编程是有很大难度的,贴出你的代码我也学习了,你那个#号的作用我就不是很明白,他们可是不同的数啊,你编程时将原来的式子做了同时除以分母的处理,这个也很巧妙,需要好好学习
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-19 22:20 , Processed in 0.055649 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表