Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
1
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

Составим таблицу разложения у]п2+ 2,

- 1” + 2 и J 1?

в цепные дроби. Сна-

чала определим нужные нам функции.

 

п

\ л2+ 1

 

 

 

 

 

Fnl [n__] := Sqrt [пА2+2]

 

 

 

 

Fn2[n_J := Sqrt[пЛ2+2]/п

 

 

 

 

Fn3[n_]:= Sqrt[пл2+2]/Sqrt[пл2+1]

 

 

 

После выполнения программы составляем таблицу (табл. Б.5).

Из

таблицы видно, что период

всех

дробей,

являющихся разложением чисел

/ 2,0

+ 2

yjn~ + 2

всего лишь из двух элементов. Несколько не-

yjn 4- 2, ----------

и --7------- , состоит

Пу]п2-hi

ожиданно то, что разложение самой простой из этих квадратичных иррационально­

стей, л/л2+ 2, имеет, пожалуй, наиболее сложный период — все его элементы зависят

от п. В периодах разложения двух “более сложных” иррациональностей,

2 и

yjп~ -\~2

_

 

,

—, лишь первый элемент периода зависит от п.

Правда, зависимость эта от п

yfrf + l

 

 

 

нелинейная, и это как бы “компенсирует” постоянство второго элемента периода.

 

Составим теперь таблицу разложения квадратичных иррациональностей

yjn44- 2п

и

2д1

в цепные дроби. Вот определения нужных нам функций.

 

 

п~

 

 

 

Fnl[п_]:= Sqrt[пЛ4+2 п]

Fn2[nJ:« Sqrt [2 плЗ+1]/2

Программа может быть такой.

Do[Print[n,":",

ContinuedFraction[Fnl[n]

ContinuedFractlon[Fn2[n]]],{n,l,100}]

По результатам выполнения программы составляем таблицу (табл. Б.6).

Обратите внимание на третий столбец этой таблицы. Вы увидите, что длина пе­

риода некоторых дробей вида >/2п3+ 1 очень быстро увеличивается с ростом л, при­

чем рядом с дробями, имеющими очень короткий период, соседствуют дроби, длина периода которых весьма значительна.

Составим

теперь таблицу разложения квадратичных иррациональностей

^{п 4*1)" —2

yjn" 4" 2/1 в цепные дроби. Вот определения нужных нам функций.

Fnl[п_]:= Sqrt[(п+1)Л2-2]

Fn2[n_J:= Sqrt [пл2+2п] / (п+1)

Программу можно не менять; результат выполнения ее представлен в табл. Б.7.

\

Числа, их представление и операции над ними

103

Интересно отметить, что хотя квадратичная иррациональность yj(n + \)2 —2 выглядит

yjn2+ 2/i

п:ериод в JдваD раза длиннее.

проще, чем квадратичная иррациональность ----- —— , ее

л + 1

 

Более того, в разложении квадратичной иррациональности

yjn2 + 2п в цепную дробь

лишь первый элемент периода зависит от п.

/| + 1

 

Чтобы составить таблицу разложения квадратичных иррациональностей у/пь + 2п и

У2/1 1~Л в цепные дроби, нужно дать лишь новые определения нужным нам функциям.

п

Fnl[n_]:=

Sqrt[nA6+2n]

 

Fn2[n_]:=

Sqrt[2пЛ5+1]/ (пЛ3)

 

По результатам выполнения программы составлена табл. Б.8.

 

 

л/2«5+1

Обратите внимание .на то, что у заурядной иррациональности

----- -— период мо-

п

жет быть и довольно коротким (что случается редко) и невероятно длинным! При п = 9 он содержит 69 950 элементов! Кто бы мог подумать, что разложение вполне заурядного

числа

VI18099

_

, „

 

в цепную дробь имеет такой длинный период! Квадратный корень сам

729 по себе, между прочим, в длине периода не виноват, поскольку период разложения

V118099 содержит всего лишь 266 элементов.

ContinuedFraction[Sqrt[118099]]

{343,{1,1,1,9,6,1,1,3,10,7,1,1,1,2,45,2,3,1,15,1,1,2,2,1,2,5,1,7,4,8,

1,2,6,7,4,3,2,1,1,7,2,2,13,13,1,19,1,8,1,6,2,27,38,6,1,3,1,1,11,1,15,

2,3,1,45,22,1,7,1,31,1,5,3,1,1,2,3,76,13,1,2,1,2,1,18,1,9,2,6,1,1,6,4,

1,15,5,1,1,1,1,1,1,3,12,1,2,4,8,3,1,11,1,2,1,5,32,1,1,4,22,1,2,4,1,3,

20,1,1,3,3,19,3,343,3,19,3,3,1,1,20,3,1,4,2,1,22,4,1,1,32,5,1,2,1,11,

1,3,8,4,2,1,12,3,1,1,1,1,1,1,5,15,1,4,6,1,1,6,2,9,1,18,1,2,1,2,1,13, 76,3,2,1,1,3,5,1,31,1,7,1,22,45,1,3,2,15,1,11,1,1,3,1,6, 38,27,2, 6,1,8, 1,19,1,13,13,2,2,7,1,1,2,3,4,7,6,2,1,8,4,7,1,5,2,1,2,2,1,1,15,1,3,2, 45,2,1,1,1,7,10,3,1,1,6,9,1,1,1,686}}

Составим, наконец, таблицу разложения в цепные дроби квадратичных иррацио-

«

/

2. гт

V#1**+ л + 1

нальностеи

yjn

+/i + l

и --------------.

 

 

 

п

Для этого дадим определения нужным нам функциям.

Fnl[n_]:= Sqrt[пл2+п+1]

Fn2[n_]:=

Sqrt[пл2+п+1]/п

После выполнения программы составляем таблицу (табл. Б.9).

Обратите внимание на второй столбец этой таблицы. Вы увидите, что вполне за­ урядная иррациональность >}п2 + п +1 (квадратный корень из простенького квадрат­

ного трехчлена) имеет разложение в цепную дробь, период которой подчас длиннее, чем того можно было бы ожидать. Но куда большую неожиданность в этом смысле

U g. ,, гг Ун""+"л"+Т

подбрасывает дробь --------------, отличающаяся всего лишь наличием простенького знаменателя!

104

Гпава 3

Трудные случаи при разложении чисел в цепные дроби

Казалось бы, при разложении чисел в цепные дроби никаких неожиданностей быть не может, поскольку любое вещественное число можно представить в виде цепной дроби (конечной или бесконечной). Ну а при желании такую дробь всегда можно оборвать, и тогда получится приближение разлагаемого числа с помощью цепной дро­ би. Но мы уже видели, что не все так просто. Давайте попробуем разложить в цепную дробь число Пизо.

PisotnumberBase=

Pisotnumber=PisotnumberBase/430000

ContinuedFraction[Pisotnumber,

4]

ContinuedFraction[Pisotnumber,

4]

IntegerPart:imeprec

 

Internal precision limit $MaxExtraPrecision

50. reached while

evaluating

IntegerPart [( « 1 » )30000]. More...

N::meprec

Internal precision limit

$MaxExtraPrecision

50. reached while

evaluating IntegerPart [(« 1 » )3^000]. More...

ContinuedFraction::start

Warning: ContinuedFraction was unable to obtain at least one term using precision 50. Try increasi .traPrecision. More...

ContinuedFraction [

Собственно, не хватило точности. Пока ничего удивительного, даже подсказка есть. Последуем совету.

Block[{$MaxExtraPrecision = 10000000},

ContinuedFraction[Pisotnumber, 10]]

ContinuedFraction::start

Warning: ContinuedFraction was unable to obtain at least one term using precision 3698. Try increasi traPrecision. More...

ContinuedFraction [

10]

Числа, их представление и операции над ними

105

Сейчас уже $MaxExtraPrecision = 10000000, и потому несколько странно вы­ глядит упоминание о точности 3698. Может быть, система Mathematica вообще не может разложить это число в цепную дробь? Это очень досадно! Не может найти даже 10 звеньев! А если мне нужно узнать, чему равно, например, 1947-е звено? Похоже, ничего поделать нельзя.

Block[{$MaxExtraPrecision = 10000000},

ContinuedFraction[Pisotnumber, 1747]]

ContinuedFraction::start

Warning: ContinuedFraction was unable to obtain at least one term using precision 5498. Try increasi .traPrecision. More...

ContinuedFraction [

1/3 *,

-1

,

1/3x30000

j

( J

(27 + 3V69))1'3]

((27 + 3 л/69

 

 

 

17471

 

 

 

Зачем было только увеличивать количество звеньев до 1747, если не удается вы­ числить ни двух, ни десяти? А за тем, чтобы показать вам сюрприз. Второе звено я выделил курсивом, кое-что опустил (поставил многоточие), но все равно будьте вни­ мательны.

Block[{$MaxExtraPrecision = 10000000},

ContinuedFraction[Pisotnumber, 1 7 4 8 ] ]

{504316596065665493215059469242757481077610274680893503167844467712875

7182264862106103980765819340682753857825408213309478700354777871766946

8598771825457656551578637518040308410808772019736026304537759929925260

0787464343711547834066265665424226316713797047087646002867659572088255

3729941413991192954257293905515987341623164931728987789298548218169139

5638163536241282159945102531936490365111022151523381436452790489309133

7135424027258899192161986823235528295581059873200107875550497563219302

4344987469732081489429513875050815089544676150938253329884107629370887

7836604655306868577285538664595048264681443930199901657433773640659222

5567911709051797128549077311912778888144108736659703862174018641106917

5749952023659419640302178959561265901520782425747790756781859047252118

7834397950104895326861429034026538474079051464877355002168754758452522

2504190436087068107827922710445722736236879669324173378416116695919841

0304677682964919409043870523002732003770237480443431032331691094261441

1443802983487519201990595627905118880497502650026828835219138968584962

8968612357880766725385147857934444955391441537519437285121796122315842

8624231899492121175279814486360858048056575120864817906982359465546791

0333455703061443068891823765935581887182311839775111872409211627286291

2671381160865803740893007151687615872534112762296886660521036261139972

8215256794224599912431852531227205445323135206226637942724364187507359

9561819112180689917957773267962616087523437758046684223813614460906815

8859423168444990563130856914398161104641435976464505827310532042357277

8055041510761287441331660970400343561555943556993103725670073628460112

4392438005172117946648151586517714791609426531867375357616728998278915

6765819918501461470394696987900055057821804367427737785530796529257310

0704405035528657706565889113413367817192934796097513499651992416721568

8582041932369782649567521678584676130166505149750837355470484537680891

7106579182046296637409148513289873712928793514345917581372183082138176

8374444936696984757491555027227218191496737306894525429493301724974763

4880287892338097288098981994162698166278766445393167015463543161066099

106

Гпава 3

4478782022049824681885420029046846763098262298893067982085

5476735450044805739148100924911019338705887449906544811.444

2205726681802780327973470136681753346929095906271088971584

3134138767612788549048657824912624883639420318879265232485

7090467104480778132423835257758424180335745170573652705419

8858510985383906254985074673094196111657808386987133103440

7081922257029648252724270305699507491876725741414282227189

3954342541859509907472906259527629621846811719367901786024

9296133065178107633744949972930820555024320766184645860276

7373636018999149195717505734613349483793082747826653826109

6377076699523221210638410121119502728028192147321213391939

8054543600453475322352999580219232920276778840652994222860

5680779347684445472832022947989505073864225065042453778536

6818816623176949556726361708670651772685686418825606961363

6306153420664991067712166783072652806506511543078782208618

9743170406015960678013961777060204838325510730464182561678

1145888295077288459709643465468572600850673752055883218340

3695475465058265972218278752703801335088536077384715897009

4986845955931896822762457057294441289666846719625035790435

3350580572837195254247505334922434012206891543167881708739

5882791350768045506828033944542308221148888187376496354399

2683005334092753230471448815684295521726253123958196789418 5291845929630207675781253,3 8 9 1 1 4 0 2 5 6 2 2 8 8 2 5 5 4 4 6 9 3 6 7 6 1 6 7 1 0 8 7 5 2 1 1 6 3 2 2 1 9 8 6 4 4 7 2 7 0 5 0 3 9 4 8 7 1 8 8 2 3 0 9 4 9 2 2 3 1 8 4 7 6 8 3 0 2 1 6 5 0 9 4 0 9 0 3 4 7 9 0 0 8 5 8 7 7 8 4 6 8 7 1 1 8 6 0 6 2 7 6 9 5 4 2 4 2 8 1 4 4 2 5 7 7 9 4 9 4 3 1 3 8 2 1 1 2 1 3 6 0 1 3 2 5 8 3 8 6 0 9 3 9 3 6 8 0 5 0 7 2 5 7 7 6 0 4 4 1 2 6 7 5 5 1 4 4 4 6 8 0 8 5 8 7 7 0 4 0 3 5 3 4 0 4 9 9 3 2 1 9 8 1 9 8 2 0 1 7 8 0 6 0 2 2 3 4 7 1 0 8 5 3 9 4 8 3 5 2 6 5 5 7 9 6 5 4 3 2 6 6 7 9 5 5 8 3 9 2 8 3 9 3 2 1 5 4 3 1 3 3 2 5 0 1 0 5 9 1 6 9 9 9 6 9 0 1 5 6 2 8 4 2 4 8 7 1 1 9 1 5 9 3 0 6 0 6 5 2 8 5 9 4 5 3 7 0 1 0 8 4 6 1 1 6 3 4 5 8 8 2 3 3 4 8 9 9 9 5 3 6 2 0 2 9 3 2 1 1 0 7 4 9 0 9 5 5 0 3 0 2 0 3 1 2 4 0 0 0 6 1 5 9 2 7 1 9 0 7 6 7 7 4 7 7 2 8 2 9 0 8 6 3 0 8 7 5 2 2 7 1 5 7 0 5 0 9 3 8 8 4 3 8 4 0 8 3 7 7 2 8 7 9 9 3 6 7 7 0 6 9 7 8 2 6 3 5 7 1 6 7 4 6 5 8 9 3 9 1 7 1 4 2 5 5 6 5 6 5 5 3 1 9 4 5 9 4 5 7 9 5 2 2 0 0 1 4 9 0 0 3 0 2 5 6 9 0 3 1 5 3 8 1 3 5 7 0 9 1 0 3 7 2 0 8 9 5 2 8 4 4 0 8 8 7 7 4 6 1 9 6 0 0 1 5 2 2 1 4 8 8 8 7 1 1 4 5 5 9 0 6 1 3 3 6 1 1 5 1 0 2 2 4 9 9 3 3 9 4 7 1 6 6 5 8 1 7 3 5 7 8 0 0 8 0 8 4 7 6 9 4 7 2 0 0 4 3 3 0 1 0 1 9 8 2 7 7 3 7 1 3 9 7 7 7 7 3 5 2 3 6 4 3 9 6 0 4 3 4 3 8 1 5 4 8 0 1 7 1 2 2 1 4 7 7 2 9 8 7 3 6 3 3 8 3 0 0 3 2 2 9 4 3 5 9 2 5 1 7 4 8 9 4 0 9 1 7 5 9 8 0 5 9 2 1 9 5 6 1 3 8 8 1 2 5 9 3 2 2 0 4 4 6 2 6 7 4 2 2 3 1 3 7 1 8 0 5 1 6 1 4 5 3 3 1 2 5 7 1 4 6 9 7 3 1 5 7 4 8 3 3 3 3 2 0 0 5 8 8 4 8 3 7 9 8 3 7 0 1 2 7 4 4 9 3 8 6 3 8 9 4 6 4 2 7 9 9 3 2 5 8 2 9 0 8 8 6 5 8 3 8 1 2 8 9 6 5 4 3 2 7 3 7 0 8 1 2 8 1 1 4 7 3 9 7 2 0 0 4 0 8 9 0 8 2 2 1 4 9 1 0 2 6 1 6 8 5 6 1 0 6 5 8 2 2 1 1 6 3 8 9 7 2 2 4 1 1 8 7 7 7 7 3 9 9 7 0 9 8 3 3 0 1 5 8 5 1 0 2 8 8 6 0 8 7 8 3 3 6 9 0 8 2 5 2 8 8 4 8 8 5 0 4 9 8 3 7 3 9 8 8 7 4 5 5 5 3 0 8 4 9 4 5 1 2 5 4 4 8 6 3 7 2 1 1 5 5 0 2 0 1 6 7 1 9 2 9 7 6 8 8 5 5 0 4 6 6 0 2 3 6 7 1 3 4 8 7 9 9 8 8 6 5 6 9 7 9 5 9 2 0 1 7 1 0 1 6 4 7 0 0 5 7 9 4 4 5 0 2 0 8 7 9 3 2 7 6 8 3 6 4 3 3 5 3 5 8 9 2 2 6 5 3 2 7 0 1 1 2 0 4 4 7 7 5 7 8 5 2 5 8 7 0 3 0 3 9 7 6 5 2 3 6 0 1 9 9 2 2 8 4 6 4 7 0 6 8 3 9 4 9 1 5 7 7 5 8 8 6 8 2 6 2 8 2 4 0 7 6 8 1 6 5 8 3 2 7 4 2 3 9 0 8 3 2 2 7 3 0 3 0 9 0 8 7 4 9 2 6 3 0 5 0 5 3 0 7 9 4 7 7 3 1 5 0 4 9 9 3 2 4 5 1 7 1 9 3 1 0 1 4 8 4 7 9 7 2 3 2 6 9 0 0 1 3 4 7 3 8 6 9 5 7 0 7 4 7 8 9 1 2 9 3 7 6 4 1 6 1 7 6 5 3 6 3 6 9 6 5 1 5 2 9 4 8 7 1 9 8 4 0 7 8 0 2 5 7 6 4 0 0 3 4 4 1 7 9 7 3 7 5 8 9 7 2 3 0 0 5 9 5 1 2 3 1 1 6 3 2 9 0 5 0 5 5 9 6 4 4 3 9 8 1 3 9 0 8 4 1 2 6 8 4 3 5 9 6 3 3 0 8 9 2 8 8 8 1 5 6 8 8 0 9 2 1 3 8 0 0 7 4 2 8 4 1 1 4 4 3 4 6 8 8 1 3 3 6 8 2 7 9 8 1 6 1 7 2 3 2 1 8 5 1 9 8 8 9 4 6 9 2 9 4 6 4 0 8 6 0 1 7 0 5 7 8 8 2 5 3 0 3 8 7 4 4 8 0 5 7 5 4 3 3 1 9 8 3 7 8 3 7 9 2 5 8 9 9 8 6 0 2 2 3 5 6 1 7 0 3 1 8 6 4 0 8 1 4 2 4 0 0 9 0 2 1 5 7 8 2 0 0 2 6 3 5 0 7 6 8 9 2 0 0 9 3 7 2 3 0 5 8 9 6 5 5 2 6 8 8 6 1 4 1 9 0 5 9 6 6 3 6 7 3 3 1 8 2 2 8 2 2 1 1 8 1 0 0 9 7 6 8 5 1 7 6 5 5 5 4 1 5 7 3 1 9 6 8 5 9 3 1 3 7 0 2 3 0 0 6 3 2 2 3 5 7 3 5 2 2 5 3 4 9 6 3 5 4 1 5 8 7 1 5 6 3 7 1 5 2 6 6 0 4 3 1 4 0 4 3 5 4 9 0 5 9 6 6 1 0 2 0 0 1 3 5 6 1 3 8 4 2 0 9 8 0 4 0 4 0 2 7 0 4 4 7 4 7 8 2 0 9 3 8 8 0 4 6 3 1 5 7 9 6 2 9 8 6 9 1 0 8 7 1 6 4 4 6 4 8 3 0 1 7 6 5 6 5 6 4 4 9 5 8 3 7 1 2 6 6 0 6 3 2 9 2 9 1 2 5 2 7 6 4 2 4 3 7 2 5 7 2 2 3 9 2 4 8 0 5 9 3 3 3 7 2 5 6 6 5 6 6 2 9 9 7 3 7 0 0 0 9 2 0 1 5 4 7 1 9 8 9 5 8 8 4 8 4 9 4 7 3 4 1 1 1 4 5 9 9 3 1 4 4 1 7 3 5 4 1 4 9 6 8 2 3 4 1 2 0 2 8 1 5 5 2 8 5 8 8 5 7 2 4 5 8 3 8 8 6 5 7 3 9 7 9 5 1 0 1 8 8 4 8 9 9 6 0 1 7 0 8 2 9 9 2 6 4 2 3 9 1 3 1 7 4 4 6 8 1 4 8 5 9 0

8 0 2 2 5 7 8 5 8 6 5 8 1 4 0 0 1 8 0 7 7 2 0 7 6 4 7 0 0 2 5 4 5 5 0 1 8 5 , 1,4,1,5,5,2, 6, 1,8,1,1,3,1,1,2, 2,27,2,1,1,1,1,1,10,2,2,1,4,3,67,3,1,1,2,1,9,1,1,2,1,1,2,2,17,2,1, 3,5,13,2,3,2,167,31,1,2,2,1,5,1,6,2,3,1,10,7,1,6,1,1,5,4,48,3,2,1, 3,5,3,6,2,2,1,2,1,3,19,8,....}

В чем сюрприз? Конечно, не в том, что второе звено содержит 1832 цифры — именно этого мы ожидали, зная, что после запятой следует 1831 нуль. Непостижимо другое: найти 2, 3, 1947 звеньев система Mathematica не может, а вот 1948 (и больше) — может!

Числа, их представление и операции над ними

107

Давайте обсудим сложившуюся ситуацию. Оказывается, чтобы найти 2-е, 3-е, 1947-е звено, нужно, как минимум, найти 1948 звеньев, причем нужно догадаться, что если система Mathematica ругается и говорит, что ей что-то не под силу, то задачу нужно сделать более трудной, и только тогда система Mathematica справится с ней в мгновение ока и к тому же без труда!

Я предпочитаю систему Mathematica, поскольку она помогает мне справиться со многими задачами быстрее, чем другие системы компьютерной алгебры. Но должен отметить, что поведение ее в данном случае интуитивно непонятно, и учесть такую возможность в программе весьма непросто. Конечно, система Mathematica — пример системы с искусственным интеллектом, а поведение таких систем предсказуемо дале­ ко не всегда, как и поведение человека. Иногда ведь и человек может справиться с очень трудной задачей, но не может найти ключ к решению более простой задачи. Тем не менее в данном случае от компьютера хотелось бы более детерминированного результата.

Ну и еще один вопрос: это исключение, не так ли? Можете считать, что да. (Сам поступаю очень часто именно так.) Но тогда приходится признать, что таких исклю­ чений очень много. Например, добавляя к числу Пизо целые числа, вы получите се­ рию (теоретически бесконечную) новых исключений. Если вы считаете, что такие ис­ ключения связаны с кубическими корнями из числа три, то я вас разочарую. Вот число, которое с виду в несколько раз проще, но в десятки (а может, сотни или тысячи) раз “подлее” с точки зрения функции ContinuedFraction.

x=1000!+(Sqrt[2]-l)Л10000

Система Mathematica не сможет превратить его в цепную дробь, если вы укажете менее 3667 необходимых звеньев. А если все же указать 3667 звеньев, то тут как раз и окажется, что она может вычислить всего лишь 2613 из заданных 3667.

Block[{$MaxExtraPrecision = 10000000},

ContinuedFraction[х, 3667]]

ContinuedFraction::terms

Warning: ContinuedFraction only obtained

2613 of 3667 requested terms using precision

10006398. Try increasi traPrecision. More...

Далее система Mathematica честно выпишет обещанные 2613 звеньев, причем на первом месте, конечно, будет записано десятичное представление 1000!.. Может быть, все дело в факториале — 1000!? Нет, то же самое происходит и с числом

1-h(V2—i)I0CX)0 Но ведь это квадратичные иррациональности, и цепные дроби должны

быть периодическими! Может, просто не нужно указывать период и получить точное представление? Так и поступим.

x=l+(Sqrt[2 ]-1)А10000

(- 1 + л/2") 10000

Block[{$MaxExtraPrecision = 10000000}, ContinuedFraction[х]]

(2,{ - 1, -

5712857333746588332668455587125794400139510340174307137370451875136852

1851849160918143107513998602054964987161450562590630605225143236279183

2145471036046128094011959732129742159639511690554854412106474918647708

3185391378773037563693082018218741545174081887313151666563596307507313

2165647731274272475424711727608602517553877871677702726083395357282025

3560370573787236435052745245882533124798687147990587914212610728682141

1907467458848477760540357532175500935394856246831764783830266245339257

1783621985655401236314205300006994086126513084556805956715194708460174

108

Гпава 3

0 8 8 7 9 8 8 3 8 5 4 9 7 1 2 4 4 6 8 3 8 0 1 8 7 7 1 5 4 9 5 3 8 4 2 5 1 1 6 4 4 9 1 2 5 3 0 5 9 0 4 9 3 8 4 5 7 6 0 7 6 6 4 8 5 3 6 0 4 4

7 7 9 9 1 1 8 2 9 7 6 0 1 2 2 2 1 7 4 9 5 6 0 6 1 3 5 1 1 2 2 3 6 5 8 5 2 0 4 1 8 7 3 7 0 2 5 4 0 0 3 6 8 3 6 8 0 1 5 5 7 5 9 2 4 6 2 8 2 3

8 6 2 3 0 1 4 1 3 6 9 3 6 0 4 5 5 1 4 8 1 0 6 1 6 4 8 3 1 7 1 9 1 1 3 5 1 8 6 5 6 6 3 2 1 0 2 3 1 6 0 9 4 6 9 6 9 5 1 3 3 6 2 4 0 5 8 1 2 6

3 0 0 6 1 7 9 8 6 5 5 3 8 1 4 0 4 4 0 4 3 1 6 8 2 8 7 7 8 6 0 2 2 8 7 7 7 0 8 5 5 9 3 0 6 0 0 1 4 5 7 0 2 0 2 8 7 5 9 9 6 1 7 3 0 1 1 9 5 5

6367466013372287907 60123804742 9 7 6 9 9 6 7 8 4 1 7 1 0 5 6 3 3 5 1 2 6 3 5 6 4 4 1 2 0 5 8 4 9 4 6 4 0 3 6 2

9834215258010828945735970925 9 5 5 9 4 7 3 5 1 1 8 0 2 7 7 7 7 2 8 2 1 3 0 5 8 9 4 3 0 1 2 1 9 6 6 4 2 3 2 6 5 5

9802153648247491187083989832 3 8 1 5 6 5 5 0 9 6 4 1 6 9 5 3 2 6 9 5 7 4 9 5 0 6 8 7 8 5 2 5 1 0 5 7 3 8 5 8 1 3

70711377914353220517393273028783 0 2 5 2 0 9 1 7 9 7 6 3 3 7 0 3 0 3 4 6 5 8 7 4 0 9 2 1 3 4 9 2 7 1 0 6 7 7

4768704570533537188191310108 1 4 6 0 6 5 8 8 6 8 3 9 1 1 4 3 5 9 9 3 6 9 4 8 9 7 9 6 5 4 1 9 4 6 9 2 7 4 1 9 6 9

0 5 8 8 2 7 6 4 1 2 6 9 8 7 1 5 7 4 9 6 3 6 4 7 2672019919184187584275980261379133832206070761

6 6 2 5 1 6 7 3 9 7 7 4 8 9 2 8 9 5 0 1 0 7 0 9 0 5 7 8 3 3 3 3 4 8 823208969383338487803079887723370859

97173852321580986881119625877523 3 3 3 4 5 5 8 7 9 5 9 1 9 7 7 4 8 3 4 1 2 5 9 5 4 7 3 1 0 9 7 6 8 8 6 4 9 9

5 2 4 9 9 9 9 4 3 8 4 5 6 0 3 1 0 2 6 4 7 8 3 7 0115525711766336914533202650657017052295374021 ■ 6384948244710661314660810330084167632888206751623693757888581976210115 6 5 8 5 7 9 5 5 3 5 0 2 4 6 2 4 0 3 4 6 0 9 7 0 3 6 6 1 1 7 1 8 0 0 872175409550060559262953947241306977 9 9 2 1 2 7 5 0 6 6 9 5 2 7 0 7 0 5 6 9 2 4 3 6 2 7 0 8 3 3 1 6 7 9 418490337566107084123347740962383679 35623013414587753796021907572740 1 7 1 3 5 2 4 8 3 0 8 1 4 2 0 2 7 3 3 8 4 0 6 7 1 8 5 8 1 6 5 9 7 8 3 7 8 9 7 1 0 1 830714574301315300602538614605003114721836233853459047837497324431 6 2 0 8 0 7 8 2 8 5 6 2 1 7 5 9 0 5 6 036789880066492416210307250342117323785592226760573 2138907813204927071768854946 1 5 3 6 1 5 2 8 9 2 2 5 4 1 5 1 5 2 4 7 6 8 9 0 0 2 7 6 1 1 6 8 6 3 2 3 9 3 4 1 8 6 4 1 9 5 5 5 4 1 8 6 6 3 9 7 7 4 4 1 7 081746923348629758362121797194743776925572887224922 7 4 5 0 6 31933109128262203199158351194485144485789802793280336829035433744 4 7 2 7 9 8 3 7 5 7 6 8 2 3 3 9 2 7 6 0 9 2 9 1 3286336873737402171317823535609181191206589865 0 3 2 2 7 2 1 1 0 5 9 4 5 1 2 7 8 3 3 9 79945672466628463572368965686469669219261211957719 7 5 4 1 6 5 2 7 8 2 434323908507363384691624539960631742610723137292851020130078 3 1 7 2 8 8 5 5 9 2 3 6 9 6 3 3 4 6 3 0 37732015502730553576102779709274362581901865281350 4 4 9 6 0 4 5 4 0 4 6 4 0 3 6 4 6 2 8 946658337135710105896174645264457950722259730893817 2 5 5 8 4 3 1 7 5 1 8 9 7 1 5 6 6 6 8 5 54228451872102230116862877576112159704041612847190 9 8 7 3 1 3 9 9 6 7 867739522456725505543221928591064917591298178312772794069305 0099165640486355165318779903071855234317828608286347204171904366688344 1 2 8 6 5 02521232560451032073523299353801519833450477429502440135962369408 0316686057497125259006242997542868260811841161751016221818757406122804 0 2 0 9 591150561814423470463817138152547954974694950183500333132081299103 4783126858417376418831705165368026584798966021224634205039433527341424 96848298649729423662759863712110261 78114695999904657731884169186231755 5 5 6 5 637871371011867473821590356011952749945932167412846189679474343540

6757845427470078070959033647165712185500543552874385005135411167089275

2 7 6 2 873400950656948005580914834196434333234394664893852289697808087905

5389752411527566893611898630089965081388339283284680526895532364733484

1068514611662844871736109844944569127839068629497081171870045264876612

9617369417058052970014837707744246637389998133023439276661550012508223

4686605593449913647476349594440693282790531071074874235745079987663075

0945472590022405865298734357815943709057768541327028775999024579415519

1156045615343921031879068632176416025778709917998864957876368006854980

0268100534871614945290997300461602149948538175698279516321120734652991

7761847024006492958750637057705707956035829167906506288475997047507386 2 9 5 3 9 7 1 1 9 3 6 9 4 4 8696701919194218890896732925071872 )}

Система Mathematica справилась! Она может обнаружить, что цепная дробь перио­ дическая, и правильно определяет ее период. Он, кстати, оказался очень коротким: всего лишь два звена! Так что не составило бы труда выписать и десятки тысяч звень­ ев, ведь для этого необходимо только достаточное число раз повторить период. Но до этого может догадаться пока лишь человек. Я же надеюсь, что в следующей версии сможет это и система Mathematica! Давайте теперь рассмотрим саму цепную дробь. (Недаром же я привожу ее в книге.) Оказывается, здесь тоже есть неожиданности. Во-первых, первое звено цепной дроби равно 2, хотя целая часть числа равна 1.

Числа, их представление и операции над ними

109

Это указывает на то, что в систем е M athem atica первое звено цепной дроби не всегда равно целой части числа, даже если число положительно. Во-вторых, оба звена в пе­ риоде отрицательны. Все это может усложнить восприятие числа и никоим образом не одобряется авторами учебников и задачников по теории чисел. Такое представле­ ние не является стандартным, и потому будьте внимательны. А вот пример стандарт­ ного представления:

x=l+Sqrt[3]

1 + л/3

Block[{$MaxExtraPrecision = 10000000}, ContinuedFraction[х]]

{2 ,{1 ,2 }}

и вот ещ е.

x=Sqrt[3]

V I

Block[{$t4axExtraPrecision = 10000000), ContinuedFraction[х]]

(1 ,{1 ,2 }}

А вот и ещ е один пример. Попы таемся разложить

целое число —10 = S q r t [5 7 -

4 0 S q r t [2]]- S q r t [ 5 7 + 4 0 S q r t [2]] В цепную Дробь.

 

x=Sqrt[57-40Sqrt[2]]-Sqrt[57+40Sqrt[2]}

 

^57 - 40 V2 - л/57 + 40 V2

 

 

 

Результат вообщ е абсурдный:

 

 

ContinuedFraction[х]

 

 

 

ContinuedFraction: r.noterms

 

 

л/57 - 40 л/"2 - л/57 + 40 л/"2

does not

have a terminating

or periodic

continued

fraction

expansion;

specify

an explicit

number of

terms to

generate. More...

ContinuedFraction [л/57 - 40 л/2 - л]51 + 40 л/?]

Заметьте, утверждается, что дробь не является ни конечной, ни периодической! Против отсутствия периода я бы не спорил, но звеньев-то всего одно! Если ж е указать фактическое количество звеньев, результат получить все равно не удастся.

Block[{$MaxExtraPrecision = 2000000},

ContinuedFraction[х, 1]]

IntegerPart::meprec

Internal precision limit $MaxExtraPrecision

2 . Ч* Л6 reached while evaluating

IntegerPart [л/57 - 40 « 1 » - л/« 1» ]. More...

N:imeprec

Internal precision limit $MaxExtraPrecision

2 . ' * л6 reached while evaluating

IntegerPart [л/57 - 40 « 1 » - л/<<1» ]. More...

110

Гпава 3

ContinuedFraction::start

Warning: ContinuedFraction was unable to obtain at least one term using precision 2000000. Try increasi traPrecision. More...

ContinuedFraction. [л/77 - 40 л/^ - у[ у 1 + 40 V~2 , l]

Фокус с увеличением количества звеньев (например, до миллиона) здесь не дроходит, поскольку трудности возникают уже при вычислении целой части, т.е. первого звена.

Мы разобрали всего лишь несколько примеров, где поведение системы Mathematica, мягко скажем, слабо предсказуемо. Но, надеюсь, вы понимаете, что аналогичное про­

изойдет и в случае чисел вида s + (yjn4 +к - п ) т при достаточно больших целых т и

целых 5, к, л, <7, удовлетворяющих неравенствам 1 <к<п. Конечно, наверняка можно придумать и другие формулы, доставляющие “плохие” числа. Если все это исключе­ ния, то не слишком ли их много?! После всего сказанного, возможно, вы даже подоз­ реваете, что неприятности будут вообще в случае чисел вида 1при очень малых е, например при е= 1/(1000!). Так вот она, непредсказуемость: при е= 1/(10000!) все происходит без каких-либо неожиданностей. И вообще, при рациональных е непри­ ятностей не бывает. Недаром рациональный значит “разумный”! И уж если мы заго­ ворили о разумном и рациональном, то не разумно ли было бы научиться рациональ­ ным способам проверки правильности полученных разложений в цепную дробь? Для этого нужно всего лишь научиться (с помощью системы Mathematica) находить числа по их представлению в виде цепных дробей. Оказывается, это совсем несложно, и именно к этому мы сейчас и перейдем.

Преобразование непрерывной дроби в число: функция FromContinuedFraction

Функция FromContinuedFraction является обратной к функции ContinuedFraction. Она преобразует цепную дробь в число. Вот пример.

3 3 9 7 3 8 0 5 0 8 1 8 0 5 1 9 2 5 0 1 7 7 2 2 2 5

23706060220692494416746157 ' y=ContinuedFraction[х]

{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} z=FromContinuedFraction[у]

33973805081805192501772225

23706060220692494416746157

x-z

0

Ну а как функция FromContinuedFraction справляется с периодическими цеп­ ными дробями? Оказывается, она вычисляет равную им квадратичную иррациональ­ ность.

х={-1 ,Range[1 ,1 0 ]} {-1,{1,2,3,4,5,6,7,8,9,10}} y=FromContinuedFraction[х]

-845372 +3 V71216963807 148157

С этой задачей система Mathematica справляется даже в том случае, если период повторен несколько раз.

Числа, их представление и операции над ними

111

х={-1 ,(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10)} {-1 ,{1,2,3,4,5,6,7,8,9,10,1,2,3,4/5,6,7,8,9,10}} y=FromContinuedFraction[х]

-845372 + 3 V71216963807 148157

Наконец, осталось исследовать случай чисто периодического разложения. Вот пример.

х= { 1 , {1 ,1 ,6,1 ,1 });

y = F r o m C o n tin u e d F r a c tio n [х]

у(1 + VT3)

Но что произойдет, если период задать иначе, например начать его с первого звена? Оказывается, система M athem atica справляется и с этим.

х={{1,1,1,6,1}};

y = F r o m C o n tin u e d F r a c tio n [х]

у (1.+ Vl3)

Комплексные числа

Мнимая единица

На специальной панели символов системы

M athem atica имеется мнимая единица,

но иногда ее удобно ввести просто как букву

I или даже как \ [I m a g in a r y l] или

\ [ I m a g in a r y j ] . Вот примеры .

 

21+1

i

 

1+2

 

2j +5

i

 

5+2

 

Вещественная часть комплексного числа: функция Re

Это совсем незамысловатая функция, возвращающая вещ ественную часть ком­ плексного числа.

R e [3+4

I]

3

 

R e[ a+ b

I]

- I m [ b ] + R e [ a ]

Заметьте, что в последнем примере вещ ественность а и b не предполагается.

Мнимая часть комплексного числа: функция Im

Тоже совсем незамысловатая функция, возвращающая мнимую часть комплекс­ ного числа.

Im[3 + 4 1 ] 4

{Im [a+b I ] , C o m p le x E x p a n d [ Im[a+b I ] ] } { I m [ a ] + R e [ b ] , b}

Заметьте, что в случае im [a + b I] вещ ественность а и b не предполагается — в от­ личие от случая, когда используется функция C om plexExpand.

112

Глава 3