Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обобщённая Теорема Ферма / 3 сообщений из 3, страница 1 из 1
11.10.2009, 03:28
    #36244163
Lkhiger
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обобщённая Теорема Ферма
Всем известна Великая Теорема Ферма X^n + Y^n = Z^n. Одна из самых популярных тем математики.

DB2 представляет возможность поиграться с этой теоремой.
Убедиться, что она не имеет решений для n > 2 и имеет для n = 2.

Попробуйте.
Как всегда надо лишь скопировать код и запустить его на выполнение.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
with pN(n, lim) as
( select 2, 300 from sysibm.sysdummy1)
,
Arguments(A, ApN) as 
(select int(1), int(1) from sysibm.sysdummy1
union all
select A + 1, power(A + 1, N)
from Arguments, pN
where A + 1 <= lim * power(2, 1. / N) + 1
)  
select X.A x, Y.A y, Z.A z,  
varchar(X.A) || '^' || varchar(N) || ' + '   || varchar(Y.A) || '^' || varchar(N)  
                   || ' = ' || varchar(Z.A) || '^' || varchar(N)    "Fermat Solution"
from Arguments X, Arguments Y, Arguments Z, pN 
where X.ApN + Y.ApN = Z.ApN 
  and Y.A           > X.A
  and Z.A           > X.A
  and Z.A           > Y.A
  and Z.A        <= X.A + Y.A
Order By Z.A, X.A, Y.A

Возникает вопрос: Почему топик назван "Обобщённая Теорема Ферма " ?

В чём обобщение ?

Равенство X^n + Y^n = Z^n мы преобразуем в равенство:
Z^n / (X^n + Y^n) = 1.

Для n > 2 мы будем искать решение в интервале, но уже не равенства, а неравенства: :ok
abs(Z^n / (X^n + Y^n) - 1) <= eps , или Z^n between (X^n + Y^n) * ( 1 - eps) and (X^n + Y^n) * ( 1 + eps)

Таким образом мы меняем наш SQL, и уже находим решения для n > 2: :yahoo

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
with pN(n, lim, eps) as
( select 3, 300, double(1e-5) from sysibm.sysdummy1)
,
ArgX(x, XpN) as 
(select int(1), double(1) from sysibm.sysdummy1
union all
select X + 1, power(double(X + 1), N)
from ArgX, pN
where X + 1 <= lim
) 
,
ArgY(y, YpN) as 
(select * from ArgX )
,
ArgZ(z, ZpN) as 
(select int(1), double(1) from sysibm.sysdummy1
union all
select Z + 1, power(double(Z + 1), N)
from ArgZ, pN
where Z + 1 <= lim * power(2, 1. / n) + 1
) 
select X argX, Y argY, Z argZ , N "Power", (ZpN - (XpN + YpN)) "Absolute Difference" , 
double(ZpN) / double(XpN + YpN) - 1.0 "Relative Difference" 

from ArgX, ArgY, ArgZ, pN 
where ZpN between (XpN + YpN) * ( 1. - eps) and (XpN + YpN) * ( 1. + eps) 
and X < Y
and Y < Z
and X < Z
and Z <= X + Y 
order by abs(ZpN - (XpN + YpN)), X, Y

Lenny Khiger, ADSPA&VP
...
Рейтинг: 0 / 0
11.10.2009, 03:34
    #36244166
Lkhiger
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обобщённая Теорема Ферма
Всем известна Великая Теорема Ферма X^n + Y^n = Z^n. Одна из самых популярных тем математики.

DB2 представляет возможность поиграться с этой теоремой.
Убедиться, что она не имеет решений для n > 2 и имеет для n = 2.

Попробуйте.
Как всегда надо лишь скопировать код и запустить его на выполнение.

авторwith pN(n, lim) as
( select 2, 300 from sysibm.sysdummy1)
,
Arguments(A, ApN) as
(select int(1), int(1) from sysibm.sysdummy1
union all
select A + 1, power(A + 1, N)
from Arguments, pN
where A + 1 <= lim * power(2, 1. / N) + 1
)
select X.A x, Y.A y, Z.A z,
varchar(X.A) || '^' || varchar(N) || ' + ' || varchar(Y.A) || '^' || varchar(N)
|| ' = ' || varchar(Z.A) || '^' || varchar(N) "Fermat Solution"
from Arguments X, Arguments Y, Arguments Z, pN
where X.ApN + Y.ApN = Z.ApN
and Y.A > X.A
and Z.A > X.A
and Z.A > Y.A
and Z.A <= X.A + Y.A
Order By Z.A, X.A, Y.A

Возникает вопрос: Почему топик назван "Обобщённая Теорема Ферма" ?

Код: plaintext
В чём обобщение ?

Равенство X^n + Y^n = Z^n мы преобразуем в равенство:
Z^n / (X^n + Y^n) = 1.

Для n > 2 мы будем искать решение в интервале, но уже не равенства, а неравенства: :ok
abs(Z^n / (X^n + Y^n) - 1) <= eps, или Z^n between (X^n + Y^n) * ( 1 - eps) and (X^n + Y^n) * ( 1 + eps)

Таким образом мы меняем наш SQL, и уже находим решения для n > 2:

авторwith pN(n, lim, eps) as
( select 3, 300, double(1e-5) from sysibm.sysdummy1)
,
ArgX(x, XpN) as
(select int(1), double(1) from sysibm.sysdummy1
union all
select X + 1, power(double(X + 1), N)
from ArgX, pN
where X + 1 <= lim
)
,
ArgY(y, YpN) as
(select * from ArgX )
,
ArgZ(z, ZpN) as
(select int(1), double(1) from sysibm.sysdummy1
union all
select Z + 1, power(double(Z + 1), N)
from ArgZ, pN
where Z + 1 <= lim * power(2, 1. / n) + 1
)
select X argX, Y argY, Z argZ , N "Power", (ZpN - (XpN + YpN)) "Absolute Difference" ,
double(ZpN) / double(XpN + YpN) - 1.0 "Relative Difference"

from ArgX, ArgY, ArgZ, pN
where ZpN between (XpN + YpN) * ( 1. - eps) and (XpN + YpN) * ( 1. + eps)
and X < Y
and Y < Z
and X < Z
and Z <= X + Y
order by abs(ZpN - (XpN + YpN)), X, Y

Lenny Khiger, ADSPA&VP
...
Рейтинг: 0 / 0
11.10.2009, 04:00
    #36244170
Lkhiger
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обобщённая Теорема Ферма
Я применил соотношения:

автор......Y.A > X.A
and Z.A > X.A
and Z.A > Y.A
and Z.A < X.A + Y.A
для ускорения работы и упорядочения реультата.

Где Z.A < X.A + Y.A следует из известной теоремы о сумме двух сторон треугольника, которая всегда больше третьей.

Соотношение Y.A > X.A убирает симметричные решения типа:

Из двух решений 3^2 + 4^2 = 5^2 и 4^2 +3^2 = 5^2 остаётся только первое.

Lenny
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обобщённая Теорема Ферма / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]