Как стать автором
Обновить

Решение задачи о приближении иррациональных

Время на прочтение28 мин
Количество просмотров18K
В данной статье рассматриваются различные методы приближений иррациональных чисел, а также попутно затрагиваются вопросы, косвенно связанные с этой темой



В сборнике Арнольда есть следующая задача

38. Вычислить сумму:

$\frac{ 1 }{ 1\cdot2 } + \frac{ 1 }{ 2\cdot3 } + \frac{ 1 }{ 3\cdot4 } + ... + \frac{ 1 }{ 99\cdot100 }$


(с ошибкой не более 1% от ответа)

Ниже представлен алгоритм для вычисления частичных сумм этого ряда на языке Scheme (Lisp), который позволяет производить вычисления в обыкновенных дробях

#lang racket
(define series_sum
 ( lambda (n)
  (if (= n 0) 0
    (+ (/ 1 (* n (+ n 1))) (series_sum(- n 1)))
  ) ) )
(series_sum 10)
(series_sum 100)
(series_sum 1000)
(series_sum 10000)
(series_sum 100000)
(series_sum 1000000)

(define series_sum_1
 ( lambda (n)
  (if (= n 0) 0 
    (+ (/ 1.0 (* n (+ n 1.0))) (series_sum_1(- n 1.0)))
  ) ) )
(series_sum_1 10)
(series_sum_1 100)
(series_sum_1 1000)
(series_sum_1 10000)
(series_sum_1 100000)
(series_sum_1 1000000)


Два последних примера drRacket вычислил с ошибкой



Этот же алгоритм на Python
def series_sum(n):
	if n==0:
		return 0
	else:
		return 1.0/(n*(n+1.0))+series_sum(n-1.0)
 
print(series_sum(10))
print(series_sum(100))


Для перевода периодической десятичной дроби $ 0,(90) $ в обыкновенную
$ x=0,(90) $
домножим обе части на $ 10^{n} $, где $ n $ равняется периоду десятичной дроби
$ 100x=90,(90) $
вычтем из данного равенства предыдущее
$ 99x=90 \rightarrow\ x=\frac{90}{99}=\frac{10}{11} $

Если последовательность частичных сумм имеет предел $ S $, то говорят, что сумма ряда равна этому пределу $ S $

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

$ \frac{ n }{ n + 1 } $



Доказательство из книги «Метод математической индукции»:
1. При $ n=1 $ гипотеза верна, так как $ S_{1}= \frac{ 1 }{ 2 }$
2. Предположим, что гипотеза верна и для $n=k $, т.е. что

$ S_{k}= \frac{ 1 }{ 1\cdot2 } + \frac{1}{2\cdot3}+...+\frac{1}{k(k+1)}=\frac{k}{k+1} $


где $ k $ — некоторое натуральное число
Установим справедливость и при $ n=k+1 $

$ S_{k+1}= \frac{ k+1 }{ k+2 } $


$ S_{k+1}=S_{k} + \frac{ 1 }{ (k+1)(k+2) } = \frac{k}{k+1} + \frac{1}{(k+1)(k+2)} =\frac{k^{2}+2k+1}{(k+1)(k+2)}=\frac{k+1}{k+2} $



Предел последовательности частичных сумм равен
$ \lim_{n \to \infty} \frac{n}{n+1}=\lim_{n \to \infty} \frac{1}{1+\frac{1}{n}}=\frac{1}{1}=1$

Здесь $ S_{k}$ представлено суммой $ \frac{1}{q_{1}q_{2}}+\frac{1}{q_{2}q_{3}}+\frac{1}{q_{3}q_{4}}+...+\frac{1}{q_{n}q_{n+1}} $, где $ q_{n}+1=q_{n+1}$

$ \frac{m}{n} $, где $ 0<\frac{m}{n}<1 $
можно представить в виде
$ \frac{m}{n}=\frac{1}{q_{1}}+\frac{1}{q_{2}}+\frac{1}{q_{3}}+...+\frac{1}{q_{r}}, $
где $ 0<q_{1}<q_{2}<q_{3}<...<q_{r} $ — целые числа и каждое $ q_{k}(k=2,3,...,r) $ делится на $ q_{k-1} $

$\frac{1}{2}+\frac{1}{6}=\frac{2}{3}$
$\frac{1}{2}+\frac{1}{6}+\frac{1}{12}=\frac{3}{4}$
$\frac{1}{3}+\frac{1}{15}=\frac{2}{5}$ $\frac{1}{2}+\frac{1}{10}=\frac{3}{5}$ $\frac{1}{2}+\frac{1}{4}+\frac{1}{20}=\frac{4}{5}$
$\frac{1}{2}+\frac{1}{4}+\frac{1}{12}=\frac{5}{6}$
$\frac{1}{4}+\frac{1}{28}=\frac{2}{7}$ $\frac{1}{3}+\frac{1}{12}+\frac{1}{84}=\frac{3}{7}$ $\frac{1}{2}+\frac{1}{14}=\frac{4}{7}$ $\frac{1}{2}+\frac{1}{6}+\frac{1}{24}+\frac{1}{168}= \frac{5}{7}$
$\frac{1}{3}+\frac{1}{24}=\frac{3}{8}$ $\frac{1}{2}+ \frac{1}{8} =\frac{5}{8}$


Числа Фибоначчи


В следующей задаче требуется найти НОД двух соседних чисел Фибоначчи
43.Числа кроликов («Фибоначчи»), образуют последовательность $(a_{1}=1, 1, 2, 3, 5, 8, 13, 21, 34, ..., $ в которой $ a_{n+2} = a_{n+1} + a_{n} $ для всякого $ n = 1, 2, ... $. Найти наибольший общий делитель чисел $ a_{100} $ и $ a_{99} $.

Для решения данной задачи необходимо доказать, что два соседних числа Фибоначчи взаимно просты, то есть $ НОД(a_{n+1},a_{n}) = 1 $
иными словами $ a_{n+1} $ и $ a_{n} $ не имеют общих делителей (кроме единицы)

Доказательство из книги «За страницами учебника математики» [10-11]
Из равенства $ u_{n+2} = u_{n+1} + u_{n} $ следует, что $ НОД(u_{n+2},u_{n+1}) = НОД(u_{n+1},u_{n})$. Пятясь таким образом назад, придём к $ НОД(u_{2},u_{1}) = НОД(1,1) = 1 $, а потому два соседних числа Фибоначчи взаимно просты.


Добавлю, что
$ НОД(u_{n+2},u_{n+1}) = НОД(u_{n+1},u_{n})$ по алгоритму Евклида
$НОД(u_{n+2},u_{n+1}) = НОД(u_{n+1},r)$
где $ r $ — остаток от деления $u_{n+2} $ на $ u_{n+1}$
и в данном конкретном случае $ r = u_{n}$ поскольку $ u_{n+2} = u_{n+1} + u_{n} $

Доказательство из книги «Числа Фибоначчи» Н.Н.Воробьёва
Пусть некоторое число $ d $ является делителем чисел $ u_{n} $ и $ u_{n+1} $. Тогда и их разность $ u_{n+1}-u_{n} = u_{n-1} $ будет делиться на $ d $.
Пятясь таким образом назад, придём к тому, что на $ d $ будут делиться и $ u_{n-2} $ и $ u_{n-3} $ и так далее, а значит и $u_{1}=1$ должно делиться на $ d $, а значит два соседних числа Фибоначчи взаимно просты


Тожество Кассини


Похожий метод, метод перебора последовательности $ F_{n} $ используется для доказательства тождества Кассини, которое выражается соотношением:
$ F_{n-1}F_{n+1}-F_{n}^2= (-1)^n $

Предположим, что
$ F_{n-1}F_{n+1}-F_{n}^2=F_{n-1}^2-F_{n-2}F_{n} $
Пятясь таким образом назад, придём или к $ F_{1}F_{3}-F_{2}^2=1 $ или к $ F_{2}F_{4}-F_{3}^2=-1 $


Доказательство

Домножим левую и правую части уравнения $ F_{n+1}=F_{n}+F_{n-1}$ на $ F_{n-1} $:
$ F_{n+1}F_{n-1} = F_{n}F_{n-1}+F_{n-1}^2 $

Вычтем из левой и правой части $ F_{n}^2 $:
$ F_{n+1}F_{n-1}-F_{n}^2=F_{n }F_{n-1}+F_{n-1}^2-F_{n}^2 $
$ F_{n+1}F_{n-1}-F_{n}^2=F_{n-1}^2-F_{n}^2+F_{n}F_{n-1} $
$ F_{n+1}F_{n-1}-F_{n}^2=F_{n-1}^2-F_{n}(F_{n}-F_{n-1}) $
а поскольку $ F_{n}=F_{n-1}+F_{n-2} \rightarrow F_{n}-F_{n-1}=F_{n-2} $
после замену получим верное равенство

Поэтому $ F_{n+1}F_{n-1}-F_{n}^2=F_{n-1}^2-F_{n}F_{n-2} |(-1)$
равносильно $ F_{n}^2-F_{n+1}F_{n-1}=F_{n}F_{n-2}-F_{n-1}^2 $
Таким образом
$ F_{1} \rightarrow F_{2}: $
$ 1 - 0 = 1 \rightarrow 1 - 2= -1 $
$ F_{2} \rightarrow F_{3}: $
$ 1 - 2 = -1 \rightarrow 4 - 3 = 1 $
$ F_{3} \rightarrow F_{4}: $
$ 4 - 3 = 1 \rightarrow 9 - 10 = -1 $
и т.д.



Приближения к золотому сечению


В следующей задаче необходимо вычислить золотое сечение, $ \frac {\sqrt{5} + 1}{2} \approx 1,618 $. [Это соотношение сторон открытки, остающейся себе подобной при отрезании квадрата, стороной которого является меньшая сторона открытки.]

53. Для последовательности чисел Фибоначчи $a_{n}$ задачи 43 найти предел отношения $ \frac { a_{n+1} }{ a_{n} } $ при стремлении $ n $ к бесконечности:

$ \frac { a_{n+1} }{ a_{n} } = 2, \frac {3}{2}, \frac {5}{3}, \frac {8}{5}, \frac {13}{8},\frac {21}{13}, \frac {34}{21}. $



Рассмотрим отрезки, представляющие собой разности двух соседних членов ряда $ \frac { a_{n+1} }{ a_{n} } $

Четные члены ряда $ \frac { a_{n+1} }{ a_{n} } $ представляют растущую последовательность $ x_{n} $

$\frac{ 3 }{ 2 }, \frac{ 8 }{ 5 }, \frac{ 21 }{ 13 }, ..., $



Нечетные члены ряда $ \frac { a_{n+1} }{ a_{n} } $ представляют убывающую последовательность $ y_{n} $

$2 , \frac{ 5 }{ 3 }, \frac{ 13 }{ 8 }, ..., $



По лемме о вложенных промежутках (Курс дифференциального и интегрального исчисления, 38)

$ c = \lim x_{n} = \lim y_{n} $


Для нашего ряда в точке $ c $ справедливо равенство $ \frac { a_{n+2} }{ a_{n+1} } = \frac { a_{n+1} }{ a_{n} } $

Разделив $ a_{n+2} = a_{n+1} + a_{n} $ на $ a_{n+1} $, получим уравнение $ \frac{a_{n+2}}{a_{n+1}} = 1 + \frac{a_{n}}{a_{n+1}} $.
Произведя замену $\frac{a_{n+2}}{a_{n+1}}=x , \frac{a_{n}}{a_{n+1}} = \frac{1}{x} $, получим квадратное уравнение $ x = 1 + \frac{1}{x} $, положительным решением которого является золотое сечение.
Решения этого уравнения приводятся ниже

Если в программе geogebra соединить дугами окружности точки 2 и $ \frac{3}{2}$, $ \frac{3}{2}$ и $ \frac{5}{3}$, $ \frac{5}{3}$ и $ \frac{8}{5}$ и т.д. — получим самоподобную фигуру

Для сравнения



Кстати, в правильной пятиконечной звезде (звёздчатом пятиугольнике) каждый отрезок делится другим отрезком, пересекающим его, в золотом сечении

В самом деле, так как треугольники ACD и ABE подобны, то AC:AB=AD:AE. Но AD=BC, а AE=AC, и поэтому AC:AB=BC:AC — уже известная нам пропорция золотого сечения.

В правильном пятиугольнике отношение диагонали к стороне также равно $\varphi $



Вообще, существует стандартный алгоритм вычисления чисел Фибоначчи на Python
Этот алгоритм представлен на сайте Python.org
def fib(n):
	    a, b = 0, 1
	    while a < n:
		print(a)
		a, b = b, a+b
fib(100)

Приближения к $\varphi $ являются отношением суммы двух соседних чисел $a$ и $b$ к числу $ b $
def fib(n):
	    a, b = 0.0 , 1.0
	    while a < n:
		print((a+b)/b)
		a, b = b, a+b
fib(12)

На двенадцатом шаге получим приближение, равное 1.61805

Формула Бине использует $\varphi $ для вычисления $n$-ого числа Фибоначчи
$ F_{n}=\frac{(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n}{\sqrt {5}} $
Можно заметить, что второе слагаемое всегда меньше единицы при любом целом неотрицательном $n$
Поэтому, зная, что формула Бине даёт целые числа, можно утверждать справедливость тождества, в котором данная дробь округляется до ближайшего целого
$ F_{n}=\frac{(\frac{1+\sqrt{5}}{2})^n}{\sqrt{5}}$


Пусть $ j^2=5 $
Тогда выражения вида $ (a+bj)(1+j) $ будут принадлежать множеству
$ a+bj (a,b \in \mathbb{N})$ поскольку
$ (a+bj)(1+j)=(a+5b)+(a+b)j $
то есть $ a_{n+1}=a_{n}+5b_{n},b_{n+1}=a_{n}+b_{n} $
Приняв $ a=b=1 $
получим приближение
$ F_{2} \approx \frac{(1+j)(1+j)}{j2^2}=\frac{6+2j}{4j} \approx 1.17 $

$ F_{n+1} \approx \frac{(a_{n}+b_{n}j)(1+j)}{j2^n} $

Алгоритм вычисления $ a,b,2^{n} $
#python
a=b=1
t=2
for i in range(n):
    A=a+5*b
    B=a+b
    t=t*2
    a=A
    b=B
print ((a+b*5**0.5)/(t*5**0.5))
#n=10 Fn=88.99775275224582




Задача из учебника SICP
Упражнение 1.35.
Покажите, что золотое сечение $ \varphi $ (раздел 1.2.2) есть неподвижная точка трансформации $ x \to 1 + 1/x $, и используйте этот факт для вычисления $\varphi $ с помощью процедуры fixed-point.

Если использовать алгоритм вычисления факториала
(define ! 
 (lambda (n) 
  (if (= n 0) 
    1 
    (* n (! (- n 1))))))
(display (! 5))

Алгоритм решения задачи 1.35
(define fixed-point 
 (lambda (n) 
  (if (> n 10) 
    1 
    (+ 1 (/ 1.0 (fixed-point (+ n 1)))))))
(display (fixed-point 1) )


Сперва опишем счётчик, инкрементирующий переменную $ i $ в цикле
(do ((i 1 (+ 1 i)))
    ((> i 10))
  (display i)(newline))

Оператор set! позволяет переопределить значение глобальной переменной
Определим глобальную переменную fixed-point и будем переопределять значение данной переменной в цикле do c помощью оператора set!
(define fixed-point 1)
(do ((i 1 (+ 1 i)))
    ((> i 10))
   (set! fixed-point (+ 1 (/ 1.0 fixed-point)))   
  (display fixed-point)
  (newline))




Цепные дроби


Если в уравнении $ x = 1 + \frac{1}{x} $ в правой части заменить x на $ 1 + \frac{1}{x} $ получим $ x = 1 + \frac{1}{1 + \frac{1}{x}} $
Продолжая производить замены, придём к представлению золотого сечения в виде цепной дроби

$1+ \frac{1}{1 + \frac{1}{1+ \frac{1}{1+ \frac{1}{1+ \frac{1}{1+...}}}}}$


Ниже представлен алгоритм для вычисления приближений к золотому сечению, использующий формулу $ x \to 1 + \frac{1}{1 + \frac{1}{x}} $
#python
arr=[1.0]
def foo(a):
	b=1.0+1.0/(1.0+1.0/a[len(a)-1])
	return b
arr.append(foo(arr)) #первый шаг
arr.append(foo(arr)) #второй шаг
arr.append(foo(arr)) #третий шаг
print (arr)

На десятом шаге получим приближение, равное 1.618033985

В книге «Задачи для детей от 5 до 15 лет» есть похожий пример
54. Вычислить бесконечную цепную дробь

$1+ \frac{1}{2 + \frac{1}{1+ \frac{1}{2+ \frac{1}{1+ \frac{1}{2+...}}}}}$



Решение
Рассмотрим уравнение

$ \alpha = 1+ \frac{1}{2 + \frac{1}{ \alpha}}$


Согласно теоремам 236 и 235 из книги «Теория чисел»:

$ \alpha = \frac{ P_{1}\alpha+ P_{0}}{Q_{1}\alpha+ Q_{0} } $


Составляем таблицу значений $ P_{n} $ и $ Q_{n} $ при $ n=0,1:$

1 2
P 1 3
Q 1 2


так что $\alpha = \frac{ 3\alpha + 1 }{ 2\alpha + 1}, 2\alpha^{2} - 2\alpha -1 = 0$

и поскольку $ \alpha > 0 ,$ то

$ \alpha = \frac{ 1 + \sqrt{3} }{ 2 } $



Кстати, бесконечно вложенные радикалы, в некоторых случаях могут быть тождественны некоторому рациональному числу, например выражение
$ x=\sqrt{2+ \sqrt{2 +\sqrt{2 + ...} } } $ тождественно числу два

Для того чтобы это увидеть, возведем обе части выражения в квадрат и отнимем число два:
$x^{2}-2=\sqrt{2+ \sqrt{2 +\sqrt{2 + ...} } }=x $
$ x^{2}-x-2=0 $
$x_{1}=2,x_{2}=-1 $
Очевидно, что $-1$ не может являться значением исходного радикала


Вообще, $a=\sqrt{a \sqrt{a\sqrt{a ...} } }$

Пусть $ a=2 $
Здесь показатели степеней представляют геометрическую прогрессию, то есть
$ 2^\frac{1}{2} \cdot 2^\frac{1}{4} \cdot 2^\frac{1}{8} ... $
При перемножении степеней с одинаковыми основаниями показатели степеней складываются

$2^{\frac{1}{2}+\frac{1}{4}+\frac{1}{8}+... } $


Сумма геометрической прогрессии $ S_{n} = \frac{1}{2}+\frac{1}{4}+\frac{1}{8}+...=1 $
Легко понять, что $ S_{n} $ отличается от $ 1 $ на
$ (\frac{1}{2})^n $ и что эта разность становится сколь угодно малой или «стремится к нулю» при неограниченном возрастании $ n $


Python:
>>> def foo(n,a):
... 	temp=a
... 	while(n>0):
... 		a=temp*(a**0.5)
... 		n=n-1
... 	return a**0.5
... 
>>> print(foo(50,2))
#1.9999999999999993

Индийский математик Сриниваса Рамануджан Айенгор установил, что
$ \sqrt{1+2\sqrt{1+3\sqrt{1+ 4\sqrt{1+... } } } } = 3 $
Вывод формулы:
$ 3 = \sqrt{9} = \sqrt{1+2\cdot4} = \sqrt{1+2\sqrt{16}} $
$ 16 = 1+15=1+3\cdot5=1+3\sqrt{25} = 1+3\sqrt{1+24}=1+3\sqrt{1+4\cdot6}=1+3\sqrt{1+4\sqrt{36}} $
$ 36 = 1+35=1+5\cdot7=1+5\sqrt{49} = 1+5\sqrt{1+48}=1+5\sqrt{1+6\cdot8}=1+5\sqrt{1+6\sqrt{64}} $
$ 64 = 1+63=1+7\cdot9=... $

Если уравнение $ \varphi^2-\varphi-1=0 $ переписать в виде $ \varphi^2 = 1 +\varphi $, то заменяя $ \varphi $ под корнем на $ \sqrt{1+\varphi} $, получим $ \varphi=\sqrt{1+\sqrt{1+\varphi}} $
Тогда
$ \varphi=\sqrt{1+ \sqrt{1 +\sqrt{1 + ...} } }$

Данное выражение является частным случаем варианты $ x_{n} = \sqrt{c+ \sqrt{c +... + \sqrt{c } } } $
Курс дифференциального и интегрального исчисления, 35 (2)
Таким образом $ x_{n+1}$ получается из $ x_{n}$ по формуле

$ x_{n+1} = \sqrt{c + x_{n} } $


… По основной теореме, варианта $ x_{n}$ имеет некий конечный предел $ a $. Для определения его перейдём к пределу в равенстве

$ x_{n+1}^{2} = c + x_{n}; $


Мы получим, таким образом, что $ a $ удовлетворяет квадратному уравнению

$ a^{2} = c + a $


Уравнение это имеет корни разных знаков; но интересующий нас предел $ a $ не может быть отрицательным, следовательно, равен именно положительному корню:

$ a = \frac{ \sqrt{4c + 1} + 1}{2} $



То есть $ \varphi $ является одним из бесконечного множества пределов, являющихся решениями уравнения $ a^{2} = c + a $ при различных $ c $



Далее в «Курсе дифференциального и интегрального исчисления», 35(3) рассматривается алгоритм вычисления обратного числа (такого числа 1/с, произведение которого на данное число с равно единице)
Пусть $ c $ — любое положительное число, и положим $ x_{n} = cy_{n} $
Написанное выше рекуррентное соотношение заменится таким:

$ y_{n+1} = y_{n}(2 - cy_{n}) $


Взяв начальное значение $ y_{0} $ под условием: $ 0< y_{0}<\frac{1}{c} $, получим, что $ y_{n} $, монотонно возрастая, будет стремиться к $ \frac{1}{c} $. По этой схеме на счётных машинах и вычисляется число, обратное $ c $.


Алгоритм вычисления числа, обратного данному
#python
def reciprocal(c,y0,n):
	arr=[]
	for i in range(n):
		arr.append(y0)
		y0=y0*(2-c*y0)
        return arr


Функция reciprocal принимает на вход число $ c $, начальное значение $ y_{0} $, количество итераций $ n $ и возвращает массив приближений к числу $ \frac{1}{c} $.
$ y_{0} = 0.1 $ при $ c<10 $
$ y_{0} = 0.01 $ при $ 10<c<100 $
$ y_{0} = 0.001 $ при $ 100<c<1000 $
и т.д.
Примеры работы функции reciprocal при подстановке в переменную $ c $ чисел 3,5 и 8

>>> reciprocal(3,0.1,5)
[0.1,   0.17,   0.2533,   0.31411733000000003,   0.3322255689810133]
>>> reciprocal(5,0.1,5)
[0.1,0.15000000000000002,0.18750000000000003,0.19921875000000003,0.19999694824218753]
>>> reciprocal(8,0.1,5)
[0.1,0.12,0.1248,0.12499968,0.1249999999991808]




Геометрическая интерпретация алгоритма


Уравнение прямой

$ y=kx+b \; (I)$


Уравнение прямой, проходящей через точку $ (x_{0},y_{0}) $

$ y_{0}=kx_{0}+b \; (II)$


Вычтем из уравнения (I) уравнение (II)

$ y-y_{0}=kx- kx_{0} \leftrightarrow\ y=k(x-x_{0})+f(x_0)$


Так как угловой коэффициент касательной к графику дифференцируемой функции в точке с абсциссой $ x_{0}$ равен $ f'(x_{0}) $, то уравнение касательной имеет вид

$ y=f'(x_{0})(x-x_{0})+f(x_0) $



Производной функции $ y=f(x) $ называется предел отношения приращения функции $ \Delta y $ к приращению аргумента $ \Delta x $:

$ y'= \lim_{\Delta x\to 0} \frac{ \Delta y }{ \Delta x } =\lim_{\Delta x\to 0} \frac{ f(x_{0}+\Delta x)-f(x_{0}) }{ \Delta x } $


Для гиперболы

$ f(x+ \Delta x) = \frac{1}{x+ \Delta x} $


$ \Delta y = \frac{1}{x + \Delta x} - \frac{1}{x} = \frac{- \Delta x}{x(x+ \Delta x)} $


$ \frac{ \Delta y }{ \Delta x } = \frac{- \Delta x}{x(x+\Delta x)\Delta x}= \frac{-1}{x(x+ \Delta x)}$


Знаменатель состоит из двух слагаемых, второе при малых значениях $ \Delta x $ пренебрежимо мало по сравнению с первым, значит

$ \lim_{\Delta x\to 0}\frac{-1}{x^2+x\Delta x}=-\frac{1}{x^2} $




Для приближенного вычисления обратного числа здесь используется метод касательных (метод Ньютона)

Касательными $ y=f'(x_{0})(x-x_{0})+ f(x_{0})$ к гиперболе $ y=\frac{1}{x} $ являются функции
$ y=-\frac{x-x_{0}}{x_{0}^2}+\frac{1}{x_{0}} \rightarrow y=\frac{2x_{0}-x}{x_{0}^2}$, т.е.
$ y = \frac{2}{x_{0}} - \frac{x}{x_{0}^{2}} $

Подставляя числа $1,2,3,4, ...$ вместо $ x_{0} $ получим уравнения касательных

$ y=2-x $


$ y=1-\frac{x}{4} $


$ y=\frac{2}{3}-\frac{x}{9} $


$ y=\frac{1}{2}-\frac{x}{16} $





Если сдвинуть гиперболу вниз на $ \alpha $, то она пересечёт ось абсцисс в точке $ \frac{1}{\alpha} $
Уравнение касательных преобразуется в $ y = \frac{2}{x_{0}} - \frac{x}{x_{0}^{2}} - \alpha $
Далее, приравняв уравнение касательной к нулю и выразив $ x $, получим уравнение $ x= x_{0} - \frac{f(x_{0})}{f'(x_{0})}$

Вместо $ f(x_{0}) $ подставим $ \frac{1}{x_{0}} - \alpha$
Вместо $ f'(x_{0}) $ подставим $ -\frac{1}{x_{0}^{2}} $

Получим выражение $ x= x_{0} + (\frac{1}{x_{0}}-\alpha) x_{0}^{2} $
Раскрыв скобки, получим $ x= x_{0} + x_{0}-\alpha x_{0}^{2} $

Подставим $ 0.1 $ в уравнение $ x=x_{0}(2-\alpha x_{0}) $ и посмотрим, какие значения будет «пробегать» $ x $.
При $ \alpha=2 $ получим приблизительные значения $ ~0.1, ~0.18, ~0.29, ~0.42, ~0.49, ~0.5 $

Подставив эти значение в уравнение $ y=\frac{2}{x_{0}}-\frac{x}{x_{0}^{2}}-2 $, получим касательные, которые с каждой новой итерацией всё ближе приближаются к искомой величине $ 0.5 $

$ y= 0.111 - \frac{x}{0.897} $


$ y= 0.222 - \frac{x}{0.81} $


$ y= 0.816 - \frac{x}{0.504} $


$ y= 0.857 - \frac{x}{0.49} $


$ y= 1.5 - \frac{x}{0.326} $


$ y= 2 - \frac{x}{0.25} $




Заголовок спойлера

Модифицированный метод касательных


Преобразуем $ \frac{1}{x}-\alpha =0 \rightarrow \frac{1}{x}=\alpha \rightarrow 1=\alpha\cdot x $
$ \alpha\cdot x -1 =0 $
и возведём это уравнение в квадрат, чтобы получить квадратную параболу
$ \alpha^2 x^2 - 2\alpha x + 1 =0 $
Все параболы данного вида будут иметь с осью абсцисс одну общую точку (точку касания), равную $ \frac{1}{\alpha} $
Для того, чтобы найти приближения к точке касания, надо взять производную этой функции. Она будет равна $ 2\alpha^2 x - 2 \alpha $
Тогда касательными к параболе будут функции вида

$ y = (2\alpha^2 x_{0} - 2 \alpha)(x-x_{0})+(\alpha^2 x_{0}^2-2\alpha x_{0} + 1) $


$ y = (2\alpha^2 x_{0} - 2 \alpha)x - \alpha^2 x_{0}^2 + 1 $



Пусть требуется найти приближения к $ \frac{1}{3} $
Тогда параболой будет функция $ 9x^{2}-6x+1 $

Касательными будут функции
$ y= (18 x_{0}-6)x-9x_{0}^2+1 $
В точке $ x_{0}=0 $ касательной будет $ -6x+1=0 $
Первым приближением будет $ \frac{1}{6} \approx 0.17 $
Подставив это значение в уравнение касательной, получим
$ y=-3x+ \frac{3}{4} $
Касательная пересечёт ось абсцисс в точке $ -3x+ \frac{3}{4}= 0 \rightarrow x=\frac{1}{4}=0.25 $
Приравняв $y $ к нулю и выразив $ x $ в уравнении касательной, получим уравнение, позволяющее получать новые приближения

$ x=\frac{9x_{0}^2-1}{18x_{0}-6} $



Напишем функцию, которая вычисляет данное значение при различных $ x_{0}$
Python:
def foo(x_null):
    x=(9.0*x_null**2.0-1.0)/(18.0*x_null-6.0)
    return x 
print (foo(foo(foo(foo(foo(foo(foo(0))))))))

Scheme
(define (foo x)( /(-(* 9 (* x x))1)(- (* 18 x)  6) ))
(display (foo(foo(foo(foo(foo(foo(foo 0))))))))

Добавим в функцию переменную, равную количеству рекурсивных вызовов функции

def foo(x_null,i):
    i=i-1
    x=(9.0*x_null**2.0-1.0)/(18.0*x_null-6.0)
    print(x)
    if i>=0:
        foo(x,i)
foo(0,7)   

получим приближение, равное $ 0.33 $
Далее этот алгоритм используется для подсчёта приближений в обыкновенных дробях на Scheme

Обработка переменных в цикле производится следующим образом
(define (do_cycle n)
  (do ((i 1 (+ i 1))) ((> i n)  )
   (display i)(display " ")   ))
(do_cycle 10)

Далее do_cycle используется для вычисления приближений в цикле
(define (foo x)( /(-(* 9 (* x x))1)(- (* 18 x)  6) ))
(define x0 0)
(define (do_cycle n)
  (do ((i 1 (+ i 1))) ((> i n)  )
   (foo x0)(set! x0 (foo x0))   ))
(do_cycle 7)
(display x0)

Если ограничиться однократным вычислением производной в точке начального приближения, то пересечения прямых, параллельных касательной $ y=-6x+1 $ с осью абсцисс дадут новые приближения
Подставив значение $ -6x+1=0 \rightarrow x= \frac{1}{6} $ в уравнение параболы $ 9x^{2}-6x+1 $ получим значение, на которое требуется сдвинуть касательную

Новой касательной будет $ -6x+1+0.25=-6x+1.25 $

а следующим приближением будет точка пересечения этой касательной с осью абсцисс
$ x=1.25/6 $

Подставив это значение в уравнение параболы $ 9x^{2}-6x+1 $ получим значение, на которое необходимо сдвинуть касательную по оси ординат

Алгоритм, формализующий данный метод
Пусть proxima — это последовательные приближения
b_coef — это коэффициент, на который сдвигается касательная по оси абсцисс
parabola() — это параболическая функция

proxima=0.17
b_coef=1.0
def parabola(x):
    return 9.0*x*x-6.0*x+1.0 
i=0
while i<=100000:
    b_coef = b_coef+parabola(proxima)
    proxima = b_coef/6.0
    i=i+1
print(proxima)    

Результат $ \approx 0.3333 $

Число $ b $ в уравнении линейной функции $ y = kx+b $ называется свободным коэффициентом
Предположим, что свободные коэффициенты касательных являются рациональными числами, то есть $ b \in \mathbb {Q} $. Тогда $ proxima \in \mathbb {Q} $, поскольку является результатом деления коэффициента $b$ на натуральное число
При подстановке proxima в $ y=(3x-1)^2 $ получим число рациональное. Тогда $ b \in \mathbb {Q} $ по предположению

В обыкновенных дробях:
(define proxima 1/6)
(define b_coef 1)
(define (parabola x)(  +( -(* 9 (* x x))(* 6 x))1  ) )

(define (do_cycle n)
  (do ((i 1 (+ i 1))) ((> i n)  )
  (set! b_coef (+ b_coef (parabola x0)))
  (set! proxima (/ b_coef 6)) 
     ))
(do_cycle 5)
(display proxima)




Извлечение квадратного корня



Следующий алгоритм использует итерационный метод Герона

$ x_{n+1} = \frac{1}{2}(x_{n}+\frac{a}{x_{n}}) $


def square_root(a,n):        # a - подкоренное значение, n - количество циклов
        x0=1                      # первое приближение 
	arr=[]
	for i in range(n):
		arr.append(x0)       # добавляем к массиву новые приближения
		x0=0.5*(x0+a/x0)  # вычисляем приближения по формуле Герона
        return arr

Пусть $ x^2 =2 $, а значит $ x= \frac{2}{x} $
Пусть отрезок $ AB $ лежит на прямой $ y= \sqrt{2} $
Тогда точка $ B $ лежит на пересечении графиков функций $ y= \frac{2}{x} $ и $ y=x $
Пусть отрезок $ CD $ лежит на прямой $ x=1 $
отрезок $ EF $ лежит на прямой $ y=\frac{3}{2} $
Подставив $ \frac{3}{2} $ в уравнение $ y= \frac{2}{x} $
получим уравнение прямой $ x= \frac{4}{3} $, на которой лежит точка $ F $





Вычисление квадратного корня с помощью цепных дробей использовал Рафаэль Бомбелли

Чтобы найти значение $\sqrt{n}$, сначала определим его целое приближение: $\sqrt {n}=a\pm r $, где $ 0 < r < 1 $. Тогда $ n=(a\pm r)^{2}=a^{2}\pm 2ar+r^{2} $. Отсюда несложно вывести, что $ r={\frac {|n-a^{2}|}{2a\pm r}} $. Повторно подставляя полученное выражение в формулу $\sqrt {n}=a\pm r $, мы получаем разложение в цепную дробь:

$ a\pm {\frac {|n-a^{2}|}{2a\pm {\frac {|n-a^{2}|}{2a\pm {\frac {|n-a^{2}|}{2a\pm \cdots }}}}}} $




Алгоритм извлечения квадратного корня из натурального числа, использующий разложение в цепную дробь
#python
arr=[]
def square_root(n,a,n_count): # n-подкоренное значение, a - целая часть корня 
    x0=a                                # первое приближение равно a
    global arr
    for i in range(n_count): # результат будет больше искомой величины на a
        arr.append(x0-a)  # вычитаем a
        x0=2*a+(n-a*a)/x0
 


Способ выделения целой части позволяет представить иррациональное число в виде бесконечной цепной дроби с единицами в числителях (частыми числителями, равными единице)
Вот пример разложения в цепную дробь числа $ \sqrt{5} $ из книги «Алгебра»

$ \sqrt{5}-2= \frac{(\sqrt{5}-2)(\sqrt{5}+2)}{\sqrt{5}+2}=\frac{1}{\sqrt{5}+2} $



Таким образом, $ \sqrt{5} = 2+\frac{1}{\sqrt{5}+2} $

Выделим целую часть числа $ \sqrt{5}+2:E(\sqrt{5}+2)=4 $. Значит, $ \sqrt{5}+2 $ можно представить в виде $ 4 + \alpha $. Ясно, что $ \alpha = \sqrt{5}+2-4=\sqrt{5}-2 $, поэтому $ \sqrt{5}+2=4+\sqrt{5}+2$. Снова уничтожим иррациональность в числителе второго слагаемого:

$ \sqrt{5}-2 = \frac{1}{\sqrt{5}+2} $


В итоге получилось:

$ \sqrt{5} = 2 + \frac{1}{4+\frac{1}{\sqrt{5}+2}} $


Проделаем еще один аналогичный шаг:

$ \sqrt{5} = 2 + \frac{1}{4+\frac{1}{4+\frac{1}{\sqrt{5}+2}}} $


Нетрудно заметить, что процесс выделения целой части и образования цепной дроби в данном примере не имеет конца. В каждом новом знаменателе будет появляться $ 4 $ и слагаемое $ \sqrt{5}-2 $. Поэтому ясно, что $ \sqrt{5}$ представляется в виде бесконечной цепной дроби:

$ \sqrt{5} = [2, 4, 4, 4, ...] $




Гипотеза


Если $ d \in \mathbb{N}, \sqrt{d} \notin \mathbb{N}$, то цепная дробь числа $ \sqrt{d} + [\sqrt{d}] $ чисто периодическая.
Эту гипотезу доказал Эварист Галуа

Т.е. если к непериодической части дроби $[1;2,2,2,...] = \sqrt{2}$ прибавить целую часть $ [\sqrt{2}] =1 $, то получится чисто периодическая дробь $ [2,2,2,...]$

$\sqrt{3} = [1;1,2,...];$
$ \sqrt{3}+1 = [2,1,...] $

$\sqrt{5} = [2;4,4,4,...];$
$ \sqrt{5}+2 = [4,4,4,...] $

$\sqrt{6} = [2;2,4,...]; $
$ \sqrt{6}+2 = [4,2,...] $

$\sqrt{13} = [3;1,1,1,1,6,...];$
$ \sqrt{13}+3 = [6,1,1,1,1,...] $

Вычисление в облаке WolframAlpfa
WolframAlpfa производит вычисление цепных дробей с помощью операции continued fraction
Вычислим значение $ \sqrt{3} $
ссылка
Вычислим значение $\sqrt{3}+1$
ссылка

Если в разложении корня по методу Бомбелли

$ \sqrt{n} =a\pm {\frac {|n-a^{2}|}{2a\pm {\frac {|n-a^{2}|}{2a\pm {\frac {|n-a^{2}|}{2a\pm \cdots }}}}}} $


к первому слагаемому прибавить $ a $, получим чисто периодическую дробь

$ \sqrt{n}+a =2a\pm {\frac {|n-a^{2}|}{2a\pm {\frac {|n-a^{2}|}{2a\pm {\frac {|n-a^{2}|}{2a\pm \cdots }}}}}} $



Остаётся привести дробь к виду, в котором числителями дробей являются единицы

Разделив числитель и знаменатель дроби на $ |n-a^{2}| $, получим выражение

$ \sqrt{n}+a =2 a\pm {\frac {1}{\frac{2a}{|n-a^{2}|} \pm {\frac {1}{2a \pm {\frac {1}{\frac{2a}{|n-a^{2}|}\pm \cdots }}}}}} $


Таким образом

$ \sqrt{2}+1 = 2+ \frac{1}{\frac{2}{1} + \frac{1}{2 + \frac{1}{\frac{2}{1}+...} } } =[2,2,2,...] $


$ \sqrt{3}+1 = 2+ \frac{1}{\frac{2}{2} + \frac{1}{2 + \frac{1}{\frac{2}{2}+...} } } =[2,1,...] $


$ \sqrt{5}+2 = 4+ \frac{1}{\frac{4}{1} + \frac{1}{4 + \frac{1}{\frac{4}{1}+...} } } =[4,4,4,...] $


$ \sqrt{6}+2 = 4+ \frac{1}{\frac{4}{2} + \frac{1}{4 + \frac{1}{\frac{4}{2}+...} } } =[4,2,...] $


$ \sqrt{13}+3 = 6+ \frac{1}{\frac{6}{4} + \frac{1}{6 + \frac{1}{\frac{6}{4}+...} } } =[6,\frac{3}{2},...] $


Алгоритм приближения цепной дроби $ [6,\frac{3}{2},...] $
#lang racket
(define continued_fraction
 ( lambda (n)
  (if (= n 0) 1 
    (+ 6 (/ 1  (+ 3/2 (/ 1 (continued_fraction(- n 1)))))) 
  )))
(continued_fraction 4)

codepad.org
На четвёртом шаге получаем $ 6\frac{3818}{6305} $, что равно $ 6,6055511...$ в то время как $ \sqrt{13}+3 \approx 6.6055512... $.



Приближения к квадратному корню


Метод Ньютона
Для вычисления $ \sqrt{2} $ рассмотрим уравнение
$ x^{2}-2=0 $
$ x^{2}=2 $
$ x=\pm\sqrt{2} $
Эта парабола пересекает ось абсцисс в точках $ \pm\sqrt{2} $

Проведём через точку $ x=1;y=-1 $ касательную к параболе
Производная функции $ y=x^{2}-2 $ равна $ 2x $
Значение функции в точке $ x_{0} = 1^2-2=-1 $
Подставим эти значения в формулу $ y = f'(x_{0})(x-x_{0})+f(x_{0}) $
Получим прямую $ y=2x-3 $, которая является касательной к параболе $ y=x^{2}-2 $ в точке с координатами $ x=1;y=-1 $
Для нахождения точки пересечения касательной с осью абсцисс приравняем к нулю левую часть уравнения $ y=2x-3 $
Получим $ 0=2x-3 \rightarrow x=3/2 $

Проведем касательную в точке $ x_{0} = 1.5 $
Такой касательной будет функция $ y = 3x-\frac{17}{4} $
Точка пересечения с ось абсцисс $\frac{17}{12} $

Следующая касательная пересечёт ось абсцисс в точке $\frac{3462}{2448} $, и так далее…

В статье «Геометрический смысл производной» представлен метод построения касательной, основанный на определении длины подкасательной.
Обозначим через $P$ проекцию точки касания $M$ на ось $OX$, а через $K$ — точку, в которой касательная пересекает ось $OX$. Из прямоугольного треугольника $KPM$ получаем: $ |KP|\cdot|tg\alpha|=|y| $
или, поскольку $ tg\alpha=y' $

$ |KP|=\frac{|y|}{|y'|} $





Используем данный метод для построения касательной к параболе $ y=x^2-2 $ в точке $ x=1; y=-1 $
Длина отрезка $ |KP|=\frac{|-1|}{|2|}=0.5 $, значит касательная пересекает ось абсцисс в точке $ x=1+0.5=1.5 $
Построим прямую, проходящую через точки $ x_{1}=1;y_{1}=-1 $ и $ x_{2}=1.5;y_{2}=0 $
$ k=f'(x_{0})=\frac{y_{2}-y_{1}}{x_{2}-x_{1}}=2 $
$ y-y_{0}=k(x-x_{0}) $
$ y+1=2(x-1) $
$ y=2x-3 $



Приближения к окружности


Пусть примыкающие друг к другу отрезки $a$ и $b$ образуют диаметр окружности
Проведём через точку примыкания перпендикуляр к диаметру
Этот перпендикуляр встретит окружность в точке $ \sqrt{ab} $

Пусть дано уравнение $ A: x^2+(y-\frac{n-1}{2})^2=(\frac{n+1}{2})^2 $, где $ n \in \mathbb{N} $
Оно представляет собой окружность с центром в точке $(0;\frac{n-1}{2})$
Диаметр окружности $A$ равен $ n+1 $
Решениями уравнения $A$ будут $(0;-1) $ и $ (\sqrt{n},0) $


Проведём прямую $ y=kx-1 $
Эта прямая, помимо точки $ (0;-1) $ встретит окружность $A$ ещё в одной точке, координаты которой будут рациональными функциями от $ k $
$ x^2+(kx-1-\frac{n-1}{2})^2=(\frac{n+1}{2})^2 $
$ x^2+(kx-\frac{n+1}{2})^2=(\frac{n+1}{2})^2 $
$ x^2+k^2x^2+kx(n+1)=0 $
$ (k^2+1)x-k(n+1)=0 $
Таким образом, каждому рациональному значению $ k $ отвечает одна и только одна точка окружности $A$

Разделим $ (k^2+1)x-k(n+1)=0 $ на $ k(n+1)$:
$ \frac{k^2+1}{k(n+1)}x-1=0 $

Прямая $ B:y=\frac{k^2+1}{k(n+1)}x-1 $ пересечет ось абсцисс в точке $ x=\frac{k(n+1)}{k^2+1} $

Подставляя угловые коэффициенты $ k=\frac{k^2+1}{k(n+1)} $ в уравнение прямой $B$ получим новые рациональные значения $k$ и новые точки окружности $A$, отвечающие этим значениям

Алгоритм, формализующий данный метод
#python
def approx(n):
    k=1
    for i in range(10):
        approx=(k*(n+1))/(k**2+1)
        print(approx)
        k=(k**2+1)/(k*(n+1))




Метод половинного деления или метод бисекции

Метод основан на теореме Больцано-Коши о нуле непрерывной функции, которая гласит, что
если функция непрерывна на некотором отрезке и на концах этого отрезка принимает значения противоположных знаков, то существует точка, в которой функция обращается в ноль


Если функция в середине отрезка принимает отрицательное значение, выберем правую половину, в противном случае выберем левую половину

далее надо найти значение функции в точке, которая делит выбранный отрезок на две равные части, после чего вернуться к предыдущему пункту
Определим функцию $ x^2-2 $
def foo(x):
    return x*x-2

Функция бисекции принимает границы интервала $ a $ и $ b $, а также количество итераций $ i $ в качестве параметров

def bisection(a, b, i):
    i=i-1 # уменьшаем количество итераций
    middle=(a+b)/2.0 # делим отрезок пополам
    print(middle)
    if i>0: 
        if(foo(a)*foo(middle)<0): # определяем нужный отрезок
            bisection(a,middle,i)
        if(foo(middle)*foo(b)<0):
            bisection(middle,b,i) #загружаем в функцию новые значения 




Следующий метод основан на лемме об охотнике и зайцах, которая гласит, что если луч $l$ проходит через узел $A$ некоторой решётки, тогда найдётся такой узел, расстояние от которого до луча $l$ будет меньше любого наперёд заданного числа $\epsilon$
Это означает, что для любого иррационального числа $ \alpha>0$ и любого положительного $\epsilon $ найдутся такие натуральные $m$ и $n$, что $ |m\alpha-n|<\epsilon $

Проведём прямую $ y=\alpha x$, где $ \alpha=\sqrt{2} $
Прямая $ y=\alpha x$ пересекает каждую вертикальную прямую $ x=m $ в точке $ (m,m\alpha) $
Найдём на прямой $ x=m $ такую точку $n>m$, что $ \frac{(n-1)^2}{m^2}<2 $ и $ \frac{n^2}{m^2}>2 $

Алгоритм приближений $ \sqrt{2} $
# python
for m in range(1,20):
	for n in range(m,20):
		if n**2/m**2>2:
			print('n / m=',n,'/',m)
			break






Уравнения Пелля



Пусть натуральное число $ a $ не является квадратом. Легко видеть, что $ \sqrt{a} $ не выражается отношением натуральных чисел, т.е. не существует такой обыкновенной дроби $ \frac{x}{y} $, что $ (\frac{x}{y})^2=a $. Другими словами, если натуральное число $ a $ не является точным квадратом, то уравнение $ x^2-ay^2=0 $ не имеет решения в натуральных числах.
Попытаемся в этом случае выразить $ \sqrt{a} $ отношением натуральных чисел приближённо. Если $ \sqrt{a} \approx \frac{x}{y} $, то $ x^2-ay^2 \approx 0 $. Самое близкое к нулю натуральное число — это единица. Поэтому дело сводится к решению в натуральных числах диофантова уравнения

$ x^2-ay^2=1 $


которое носит название… уравнения Пелля

Уточню, что $\sqrt{N}$ является иррациональным, если $ N $ не является точным квадратом
Доказательство иррациональности $\sqrt{N}$ («Квант»)
Пусть дано число $ N $, и $ \sqrt{N}=\frac{p}{q} $, где $ p $ и $ q $ — натуральные числа.
Пусть дробь $ \frac{p}{q} $ — несократимая (ведь любую дробь можно сокращать, пока у числителя и знаменателя не сократятся все общие делители).
Тогда $ \frac{p^2}{q^2}=N. $
В левой части стоит несократимая дробь (ведь $ p $ и $ q $ не имеют общих делителей), а в правой части уравнения — заведомо целое число. Но дробное число не может быть равно целому.
Значит,… число $\sqrt{N}$ не является рациональным, откуда следует, что оно иррациональное, что и требовалось доказать.


Теме исторического исследования данного вопроса посвящена статья «Как древнегреческие математики доказывали иррациональность $\sqrt{N}:1$»

При подстановке $ (x;y)=(1;1),(3;2),(7;5) $ в уравнение
$ x^{2}=2y^{2} \pm 1 $
получим тождества
$1^2=2 \cdot 1^2-1 $
$ 3^{2}=2 \cdot 2^{2} + 1 $
$ 7^{2}=2 \cdot 5^{2} - 1 $
Здесь каждая новая пара выражается через предыдущую подстановкой в рекуррентную формулу
$ y_{n+1} = x_{n}+y_{n} $
$ x_{n+1} = y_{n+1}+y_{n}=x_{n}+y_{n}+y_{n}=x_{n}+2 \cdot y_{n} $
Следующая программа использует данные соотношения для вычисления приближений к корню из двух
x0=1
y0=1
x=0 
y=0 
i=0
while i<=6:
    y=x0+y0
    x=2*y0+x0
    x0=x
    y0=y
    i=i+1 
print(x)
print(y)

Получившиеся приближение $ \frac{577}{408} $ было известно ещё математикам древней Индии



Указания к решению квадратного уравнения


Полином $ n- $ой степени от переменной $ x $ есть сумма вида $ P(x)=c_{0}+c_{1}x^{1}+...+c_{n}x^{n} $

Из теоремы Безу:

остаток от деления полинома $ P(x)$ на полином первой степени $ (x-a) $ равен $ P(a) $

следует, что если остаток от деления равен нулю, то число $ a $ является решением уравнения $ P(x)=0 $, поскольку $ (a-a)Q(x)+P(x) =0 $, где $ Q(x) $ — это полином степени $ n-1 $ от переменной $ x $

Квадратное уравнение $ x^2+px+q=0 $ можно представить как $ (x-x_{1})(x-x_{2})=0 $, где $ x_{1} $ и $ x_{2} $ являются корнями квадратного уравнения

По теореме Виета
сумма корней приведённого квадратного уравнения равна второму коэффициенту с противоположным знаком, а их произведение равно свободному коэффициенту

$ x_{1}+x_{2} = -p $
$ x_{1} \cdot x_{2} = q $
поскольку
$ (x-x_{1})(x-x_{2}) = x^2-xx_{2}-xx_{1}+x_{1}x_{2}=x^2-(x_{1}+x_{2})x+x_{1}x_{2} $
Значит сумма и произведение корней уравнения $ x^2-x-1=0 $ равны
$ x_{1}+x_{2}=1 $
$ x_{1}x_{2}=-1 $

По формуле сокращенного умножения квадрат разности корней
$ (x_{1}-x_{2})^2=x_{1}^2-2x_{1}x_{2}+x_{2}^2=$
$=x_{1}^2+2x_{1}x_{2}+x_{2}^2-4x_{1}x_{2}= (x_{1}+x_{2})^2-4x_{1}x_{2} $
Подставив числовые значения в уравнение, получим
$ (x_{1}+x_{2})^2-4x_{1}x_{2}= 1-4(-1)=5 $
Значит
$ (x_{1}-x_{2})^2=5 $
$ x_{1}-x_{2}= \sqrt{5} $
Решив систему уравнений
$ x_{1}-x_{2}= \sqrt{5} $
$ x_{1}+x_{2}=1 $
в ответе получим золотое сечение
$ 2x_{1}= \sqrt{5}+1 \rightarrow x_{1}=\frac{\sqrt{5}+1}{2} $

Подробнее об этом методе решения можно прочитать в статье, посвященной резольвеньте алгебраического уравнения

Лемма Ферма утверждает, что производная дифференцируемой функции в точке экстремума равна нулю. Её касательная в данной точке параллельна оси абсцисс.
Производная приведённого квадратного уравнения $ x^2+px+q=0 $ равна $ 2x+p=0 $

Точки пересечения параболы с осью абсцисс симметричны относительно вершины
Будем сдвигать параболу $ y=x^2-x $ вниз до тех пор, пока точки пересечения не приблизятся к $-\frac{1}{\phi} $ и $\phi $

Пускай расстояние между корнями увеличивается на определённый шаг до тех пор, пока произведение корней не превысит модуль единицы
def foo(x1,x2,step):
    x1=x1+step
    x2=x2+step
    if x1*x2<1:
        foo(x1,x2,step)
    else:
        print(x1-step)               
foo(0,1,0.1)

При длине шага $0.1$ $ \phi \approx 1.6 $
При уменьшении длины шага $ step= 0.01 $ $ \phi \approx 1.61 $
При $ step= 0.001 $ $ \phi \approx 1.618 $ и так далее…

P.S.
Следующая задача из сборника Арнольда рассматривается в статье журнала «Квант» Удивительные приключения периодических дробей

27. Доказать, что остаток от деления числа $ 2^{p-1} $ на простое нечетное число
$ p $ равен $ 1 $
(примеры: $ 2^{2} = 3a+1, 2^{4}=5b+1, 2^{6}=7c+1, 2^{10} -1 = 1023 = 10 \cdot 93) $.

P.P.S. Статья, в которой содержится информация о цепных дробях «Об одной задаче, которую больше не предлагают на собеседовании» ссылка

Книги


Задачи для детей от 5 до 15 лет В. И. Арнольд
Курс дифференциального и интегрального исчисления Г. М. Фихтенгольц
Теория чисел А. А. Бухштаб
За страницами учебника математики Н. Я. Виленкин, Л. П. Шибасов, З. Ф. Шибасова
Алгебра Н. Я. Виленкин, Р. С. Гутер, С. И. Шварцбурд
Что такое производная Виленкин Н., Мордкович А., журнал «Квант»
Геометрический смысл производной Хинчин А., журнал «Квант»
Метод математической индукции И.С. Соминский
Число Фидия — золотое сечение Савин А., журнал «Квант»
Числа Фибоначчи Н. Н. Воробьёв
Числа Фибоначчи Спивак А., журнал «Квант»
Уравнения Пелля Сендеров В., Спивак А., журнал «Квант»
Золотое сечение Бендукидзе А. Д., журнал «Квант»
Решётки и правильные многоугольники Егоров А., журнал «Квант»
Числа и многочлены Ашманов С., журнал «Квант»
Что такое математика? Курант Р., Роббинс Г.
Как древнегреческие математики доказывали иррациональность $\sqrt{N}:1$ А.И. Щетников
Digital Arithmetic Ercegovac Milos D., Lang Tomas
Теги:
Хабы:
Всего голосов 24: ↑18 и ↓6+12
Комментарии26

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн