| This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||||||||||||
| ||||||||||||||||||||||||
There is something wrong with the example. In the very first iteration, we have "and take t so that the absolute value of m^2 − 67 is minimized. The result is t = − 2, m = 7, m^2 − 67 = − 18." But if we had taken t = 3 instead, then m = -8 and m^2 - 67 = -3, whose abs value is lower than -18. 91.189.72.18 (talk) 18:43, 21 February 2009 (UTC)
How did Brahmagupta use this method to get the answer for N=61, because this method can be used to find other solutions for the equation Nx^2 + k = y^2 if and only if one set of value for x and y are known? The solution set for N=61 is the first set of solution using which other set of solutions can be found. So this simply means that Brahmagupta had used other method to solve. Can anyone explain? Ranjitr303 (talk) 05:26, 25 June 2010 (UTC)
The sentences " Optionally, we can stop when k is ±1, ±2, or ±4, as Brahmagupta's approach gives a solution for those cases." and "but since the right-hand side is among ±1, ±2, ±4, we can also use Brahmagupta's observation directly." are a bit unclear to me. What exactly is the observation, and how does one proceed? Evilbu (talk) 13:39, 13 August 2012 (UTC)
Amendments to the Chakravala Method for Solving Pell's Equation
Amendment 1 - Addition of Variable, f, to Vector
The current method uses a vector ( x_current, y_current, k_current) with k_current = x_current^2-Ny_current^2
I propose to use a new vector ( f_new, x_new, y_new, k_new) with:
f_new = gcd(x_current, N) x_new = x_current/gcd(x_current, N) y_new = y_current and k_new = f_new.x_new^2-N.y_new^2/f_new
The result of combining 2 vectors (f1, x1, y1, k1) and (f2, x2, y2, k2) is (1, f1x1f2x2+Ny1y2, f1x1y2+f2x2y1, f1f2k1k2)
Reduction of a vector is a 2-step process. The first step is the current reduction step ( f, x, y, k)->( f'=f, x'=x/gcd(x, y), y'=y/gcd(x, y), k'=k/gcd(x, y)^2) The second step is (f', x', y', k')->( f=f'.gcd( x', N/f'), x=x'/gcd( x', N/f'), y=y', k=k'/gcd( x', N/f')
The method for finding a starter vector and for finding a vector through the BIG M method now should search for the optimum by using all factors of N < sqrt(N) for f.
Sometimes after a combination and reduction f > N/f. To keep f < N/f it might be necessary to employ a transpose transformation. ( f, x, y, k) -> ( f_transpose = N/f, x_transpose = y, y_transpose = x, k_transpose = -k)
Amendment 2 - Direct Solutions When |k| is in {1, 2, 4}
The current method would require that when k satisfies the condition above that the vector combine with itself (or sometimes - when |k| = 4 - the first vector encountered with |k|=4) until k=1.
In the following cases the solution can be obtained directly:
k=1 and f=1 - x_solution = x , y_solution = y |k| in { 1, 2} and not ( f=1 and k=1 ) - x_solution = (2fx^2-k)/|k| , y_solution = 2xy/|k| |k| = 4 and f is even - x_solution = (fx^2-2sgn(k))^2/2-1 , y_solution = xy(fx^2-2sgn(k))/2 k=4 and f=1 - x_solution = x(x^2-3)/2 , y_solution = y(x^2-1)/2 |k| = 4 and f is odd and f > 1 - x_solution = fx^2(fx^2-3sgn(k))^2/2-1, y_solution = xy(fx^2-sgn(k))(fx^2-3sgn(k))/2
If N is of the form f^2.x^2 plus or minus 1, 2 or 4 times f then a solution can be obtained without needing to look for a starter.
Amendment 3 - Before Resorting to Using BIG M, Search Previously Encountered Vectors for a Vector With Which to Combine
With the current method, if |k| is not in { 1, 2, 4}, the only option is to employ the BIG M method to obtain a vector.
However, a previously encountered vector would be suitable for combining with the current vector, if:
1) it is not the current vector or its transpose; and |k_prev.k_current| equals
i) 64 or 128 ( and mod( f_prev.x_prev.y_curr+f_curr.x_curr.y_prev, 4)=0); or ii) 1, 2 or 4 times a prime squared; or iii) 1, 2 or 4 times prime_1^2.prime_2 ( and there is a second previously encountered vector where |k| = prime_2 )
In light of this, if no direct solution is possible, one of a pair (or triplet for iii) of candidate vectors that satisfy one of the above conditions is a better starter vector than the one with lowest |k|.
Working Examples
N=28 (example of direct solution with |k|=4 and f is even) Current Method
Starter find ( floor(sqrt(N)), 1, floor(sqrt(N))^2-N)
and ( ceil(sqrt(N)), 1, ceil(sqrt(N))^2-N)
( 5, 1, -3) ( 6, 1, 8) neither vector has |k| in { 1, 2, 4}, so choose vector with lower |k| ( 5, 1, -3) |k| not in { 1, 2, 4}, so use BIG M ( M, 1, M^2-N) (5M+28, 5+M, -3(M^2-28)) we want mod(y=M+5,|-3|)=0 and |-3(M^2-N)| to be minimised => M=4 ( 48, 9, 36) reduce ( 16, 3, 4) |k| = 4, so combine with self ( 16, 3, 4) ( 508, 96, 16) reduce ( 127, 24, 1) k = 1, so solve x_solution = x = 127 y_solution = y = 24
New Method
Starter find ( f, floor(sqrt(N)/f), 1, f.floor(sqrt(N)/f)^2-N/f)
and ( f, ceil(sqrt(N)/f), 1, f.ceil(sqrt(N)/f)^2-N/f)
for f = all factors of N < sqrt(N) Set f=1 ( 1, 5, 1, -3) ( 1, 6, 1, 8) ignored because gcd( x, N/f ) > 1 Set f=2 ( 2, 2, 1, -6) ignored because gcd( x, N/f ) > 1 ( 2, 3, 1, 4) |k| is in { 1, 2, 4} so we can stop and use this vector to solve the equation directly x_solution = (fx^2-2sgn(k))^2/2-1 = 127 y_solution = xy(fx^2-2sgn(k))/2 = 24
N=46 (example where a previous candidate satisfies a condition in Amendment 3) Current Method
Starter find ( floor(sqrt(N)), 1, floor(sqrt(N))^2-N)
and ( ceil(sqrt(N)), 1, ceil(sqrt(N))^2-N)
( 6, 1, -10) ( 7, 1, 3) neither vector has |k| in { 1, 2, 4}, so choose vector with lower |k| ( 7, 1, 3)|k| not in { 1, 2, 4}, so use BIG M ( M, 1, M^2-N) ( 7M+46, M+7, 3(M^2-N)) we want mod(y=M+7,|3|)=0 and |3(M^2-46)| to be minimised => M=8 ( 102, 15, 54) reduce ( 34, 5, 6)|k| not in { 1, 2, 4}, so use BIG M ( M, 1, M^2-N) ( 34M+230, 5M+34, 6(M^2-46)) we want mod(y=5M+34,|6|)=0 and |6(M^2-46)| to be minimised => M=4 ( 34M+230, 5M+34, 6(M^2-46)) ( 366, 54, -180) ( 61, 9, -5)|k| not in { 1, 2, 4}, so use BIG M ( M, 1, M^2-N) ( 61M+414, 9M+61, -5(M^2-46)) we want mod(y=9M+61,|-5|)=0 and |-5(M^2-46)| to be minimised => M=6 — Preceding unsigned comment added by 203.13.3.89 (talk) 08:48, 5 September 2014 (UTC)
I think that the decription of the method can be made more clear and compact. For example, the paragraph starting with In the general method, ... can be changed to the following:
The major additions and modifications are:
In the next paragraph it can be mentioned that the m that minimizes is unique, but this is not very important. Nxavar (talk) 08:23, 1 April 2015 (UTC)
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.