0

我们知道 Pell 方程表示为

在此处输入图像描述

在 D 不是完全平方的情况下,可以通过 D 的连分数展开来近似,例如让我们考虑这种方程

在此处输入图像描述

61的平方根可以通过以下matlab代码来近似

>> b=sqrt(61);
>> format rat
>> b

b =

    1523/195  

但我有一个问题:如何将结果分配给两个单独的变量?即

x=1523 
y=195

从这个网站 https://www.quora.com/What-is-the-fast-way-to-solve-the-fundamental-solution-of-Pell-equation

我知道解决方案是基于分子和分母的,如何在 matlab 的代码中将分数部分分配给 x 和 y?提前致谢

4

1 回答 1

2

虽然根据定义,无理数永远不能精确地表示为整数的比率,但它可以通过有限精度算术中的这种比率来近似表示。这可以通过rat函数以不同程度的近似来完成:

>> [n,d] = rat(sqrt(61),1E-4);  (n/d) - sqrt(61)
ans =
   9.5152e-05
>> [n,d] = rat(sqrt(61),1E-8);  (n/d) - sqrt(61)
ans =
  -4.4218e-09
>> [n,d] = rat(sqrt(61),1E-16);  (n/d) - sqrt(61)
ans =
     0

请注意,最后0并不表示术语的真正相等;只是等于双精度算术的极限。

于 2017-04-03T06:57:42.720 回答