Математика для заочников и не только

Высшая математика – просто и доступно!

Если сайт упал, используйте ЗЕРКАЛО: mathprofi.net

Наш форум, библиотека и блог: mathprofi.com

Высшая математика:

Математика для заочников

Математические формулы,
таблицы и другие материалы

Книги по математике

Математические сайты

+-*/^ Удобный калькулятор

+ «Дробовик»   

Учимся решать:

Лекции-уроки по высшей математике для первого курса

Высшая математика для чайников, или с чего начать?
Повторяем школьный курс

Аналитическая геометрия:

Векторы для чайников
Скалярное произведение
векторов

Линейная (не) зависимость
векторов. Базис векторов

Переход к новому базису
Векторное и смешанное
произведение векторов

Формулы деления отрезка
в данном отношении

Прямая на плоскости
Простейшие задачи
с прямой на плоскости

Линейные неравенства
Как научиться решать задачи
по аналитической геометрии?

Линии второго порядка. Эллипс
Гипербола и парабола
Задачи с линиями 2-го порядка
Как привести уравнение л. 2 п.
к каноническому виду?

Полярные координаты
Как построить линию
в полярной системе координат?

Уравнение плоскости
Прямая в пространстве
Задачи с прямой в пространстве
Основные задачи
на прямую и плоскость

Треугольная пирамида

Элементы высшей алгебры:

Множества и действия над ними
Основы математической логики
Формулы и законы логики
Уравнения высшей математики
Как найти рациональные корни
многочлена? Схема Горнера

Комплексные числа
Выражения, уравнения и с-мы
с комплексными числами

Действия с матрицами
Как вычислить определитель?
Свойства определителя
и понижение его порядка

Как найти обратную матрицу?
Свойства матричных операций.
Матричные выражения

Матричные уравнения
Как решить систему линейных уравнений?
Правило Крамера. Матричный метод решения системы
Метод Гаусса для чайников
Несовместные системы
и системы с общим решением

Как найти ранг матрицы?
Однородные системы
линейных уравнений

Метод Гаусса-Жордана
Решение системы уравнений
в различных базисах

Линейные преобразования
Собственные значения
и собственные векторы

Квадратичные формы
Как привести квадратичную
форму к каноническому виду?

Ортогональное преобразование
квадратичной формы

Пределы:

Пределы. Примеры решений
Замечательные пределы
Методы решения пределов
Бесконечно малые функции.
Эквивалентности

Правила Лопиталя
Сложные пределы
Пределы последовательностей
Пределы по Коши. Теория

Производные функций:

Как найти производную?
Производная сложной функции. Примеры решений
Логарифмическая производная
Производные неявной, параметрической функций
Простейшие задачи
с производной

Производные высших порядков
Что такое производная?
Производная по определению
Как найти уравнение нормали?
Приближенные вычисления
с помощью дифференциала

Метод касательных

Функции и графики:

Графики и свойства
элементарных функций

Как построить график функции
с помощью преобразований?

Непрерывность, точки разрыва
Область определения функции
Асимптоты графика функции
Интервалы знакопостоянства
Возрастание, убывание
и экстремумы функции

Выпуклость, вогнутость
и точки перегиба графика

Полное исследование функции
и построение графика

Наибольшее и наименьшее
значения функции на отрезке

Экстремальные задачи

ФНП:

Область определения функции
двух переменных. Линии уровня

Основные поверхности
Предел функции 2 переменных
Повторные пределы
Непрерывность функции 2п
Частные производные
Частные производные
функции трёх переменных

Производные сложных функций
нескольких переменных

Как проверить, удовлетворяет
ли функция уравнению?

Частные производные
неявно заданной функции

Производная по направлению
и градиент функции

Касательная плоскость и
нормаль к поверхности в точке

Экстремумы функций
двух и трёх переменных

Условные экстремумы
Наибольшее и наименьшее
значения функции в области

Метод наименьших квадратов

Интегралы:

Неопределенный интеграл.
Примеры решений

Метод замены переменной
в неопределенном интеграле

Интегрирование по частям
Интегралы от тригонометрических функций
Интегрирование дробей
Интегралы от дробно-рациональных функций
Интегрирование иррациональных функций
Сложные интегралы
Определенный интеграл
Как вычислить площадь
с помощью определенного интеграла?

Что такое интеграл?
Теория для чайников

Объем тела вращения
Несобственные интегралы
Эффективные методы решения
определенных и несобственных
интегралов

Как исследовать сходимость
несобственного интеграла?

Признаки сходимости несобств.
интегралов второго рода

Абсолютная и условная
сходимость несобств. интеграла

S в полярных координатах
S и V, если линия задана
в параметрическом виде

Длина дуги кривой
S поверхности вращения
Приближенные вычисления
определенных интегралов


Метод прямоугольников

  Карта сайта

Лекции-уроки по высшей математике для второго курса

Дифференциальные уравнения:

Дифференциальные уравнения первого порядка
Однородные ДУ 1-го порядка
ДУ, сводящиеся к однородным
Линейные неоднородные дифференциальные уравнения первого порядка
Дифференциальные уравнения в полных дифференциалах
Уравнение Бернулли
Дифференциальные уравнения
с понижением порядка

Однородные ДУ 2-го порядка
Неоднородные ДУ 2-го порядка
Линейные дифференциальные
уравнения высших порядков

Метод вариации
произвольных постоянных

Как решить систему
дифференциальных уравнений

Задачи с диффурами
Методы Эйлера и Рунге-Кутты

Числовые ряды:

Ряды для чайников
Как найти сумму ряда?
Признак Даламбера.
Признаки Коши

Знакочередующиеся ряды. Признак Лейбница
Ряды повышенной сложности

Функциональные ряды:

Степенные ряды
Разложение функций
в степенные ряды

Сумма степенного ряда
Равномерная сходимость
Другие функциональные ряды
Приближенные вычисления
с помощью рядов

Вычисление интеграла разложением функции в ряд
Как найти частное решение ДУ
приближённо с помощью ряда?

Вычисление пределов
Ряды Фурье. Примеры решений

Кратные интегралы:

Двойные интегралы
Как вычислить двойной
интеграл? Примеры решений

Двойные интегралы
в полярных координатах

Как найти центр тяжести
плоской фигуры?

Тройные интегралы
Как вычислить произвольный
тройной интеграл?


Криволинейные интегралы
Интеграл по замкнутому контуру
Формула Грина. Работа силы

Поверхностные интегралы

Элементы векторного анализа:

Основы теории поля
Поток векторного поля
Дивергенция векторного поля
Формула Гаусса-Остроградского

Циркуляция векторного поля
и формула Стокса

Комплексный анализ:

ТФКП для начинающих
Как построить область
на комплексной плоскости?

Линии на С. Параметрически
заданные линии

Отображение линий и областей
с помощью функции w=f(z)

Предел функции комплексной
переменной. Примеры решений

Производная комплексной
функции. Примеры решений

Как найти функцию
комплексной переменной?

Конформное отображение
Решение ДУ методом
операционного исчисления

Как решить систему ДУ
операционным методом?

Теория вероятностей:

Основы теории вероятностей
Задачи по комбинаторике
Задачи на классическое
определение вероятности

Геометрическая вероятность
Задачи на теоремы сложения
и умножения вероятностей

Зависимые события
Формула полной вероятности
и формулы Байеса

Независимые испытания
и формула Бернулли

Локальная и интегральная
теоремы Лапласа

Статистическая вероятность
Случайные величины.
Математическое ожидание

Дисперсия дискретной
случайной величины

Функция распределения
Геометрическое распределение
Биномиальное распределение
Распределение Пуассона
Гипергеометрическое
распределение вероятностей

Непрерывная случайная
величина, функции F(x) и f(x)

Как вычислить математическое
ожидание и дисперсию НСВ?

Равномерное распределение
Показательное распределение
Нормальное распределение
Система случайных величин
Зависимые и независимые
случайные величины

Двумерная непрерывная
случайная величина

Зависимость и коэффициент
ковариации непрерывных СВ

Математическая статистика:

Математическая статистика
Дискретный вариационный ряд
Интервальный ряд
Мода, медиана, средняя
Показатели вариации
Формула дисперсии, среднее
квадратическое отклонение,
коэффициент вариации

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

Статистические оценки
и доверительные интервалы

Оценка вероятности
биномиального распределения

Оценки по повторной
и бесповторной выборке

Статистические гипотезы
Проверка гипотез. Примеры
Гипотеза о виде распределения
Критерий согласия Пирсона

Группировка данных. Виды группировок. Перегруппировка
Общая, внутригрупповая
и межгрупповая дисперсия

Аналитическая группировка
Комбинационная группировка
Эмпирические показатели
Как вычислить линейный
коэффициент корреляции?

Уравнение линейной регрессии
Проверка значимости линейной
корреляционной модели

Модель пАрной регрессии.
Индекс детерминации

Нелинейная регрессия. Виды и
примеры решений

Коэффициент ранговой
корреляции Спирмена

Коэф-т корреляции Фехнера
Уравнение множественной
линейной регрессии

Не нашлось нужной задачи?
Сборники готовых решений!

Не получается пример?
Задайте вопрос на форуме!
>>> mathprofi

Обратная связь:

Часто задаваемые вопросы
Гостевая книга Отблагодарить автора >>>

Заметили опечатку / ошибку?
Пожалуйста, сообщите мне об этом


  Карта сайта


Метод Гаусса-Жордана. Как найти обратную матрицу
с помощью элементарных преобразований?


Однажды немецкий математик Вильгельм Йордан (мы неверно транскрибируем с немецкого Jordan как Жордан) сел решать очередную систему уравнений. Он любил этим заниматься и в свободное время совершенствовал свои навыки. Но вот настал момент, когда ему наскучили все методы решения и метод Гаусса в том числе...

Предположим, дана система с тремя уравнениями, тремя неизвестными и записана её расширенная матрица . В наиболее распространенном случае получаются стандартные ступеньки , и так каждый день…. Одно и то же – как беспросветный ноябрьский дождь.

На некоторое время развевает тоску другой способ приведения матрицы к ступенчатому виду: , причём он совершенно равноценен и может быть неудобен только по причине субъективного восприятия. Но всё рано или поздно приедается…. И подумал тогда Жордан – а зачем вообще мучиться с обратным ходом гауссовского алгоритма? Не проще ли сразу получить ответ  с помощью дополнительных элементарных преобразований?

…да, такое бывает только по любви =)

Для освоения данного урока «чайникам» придётся пойти путём Жордана и прокачать элементарные преобразования хотя бы среднего уровня, прорешав, минимум, 15-20 соответствующих заданий. Поэтому если вы смутно понимаете, о чём идёт разговор и/или у вас возникнет недопонимание чего-либо по ходу занятия, то рекомендую ознакомиться с темой в следующем порядке:

Метод Гаусса для чайников;

Несовместные системы и системы с общим решением;

Ранг матрицы;

Однородные системы.

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

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

Не мудрствуя лукаво:

Пример 1

Решить систему методом Гаусса-Жордана

Решение: это первое задание урока Метод Гаусса для чайников, где мы 5 раз трансформировали расширенную матрицу системы и привели её к ступенчатому виду:

Теперь вместо обратного хода в игру вступают дополнительные элементарные преобразования. Сначала нам нужно получить нули на этих местах: ,
а потом ещё один ноль вот здесь: .

Идеальный с точки зрения простоты случай:

(6) Ко второй строке прибавили третью строку. К первой строке прибавили третью строку.

(7) К первой строке прибавили вторую строку, умноженную на –2.

Не могу удержаться от иллюстрации итоговой системы:

Ответ:

Предостерегаю читателей от шапкозакидательского настроения – это был несложный демонстрационный пример. Для метода Гаусса-Жордана характерны свои специфические приёмы и не самые удобные вычисления, поэтому, пожалуйста, настройтесь на серьёзную работу.

Не хочу показаться категоричным или придирчивым, но в подавляющем большинстве источников информации, которые я видел, типовые задачи рассмотрены крайне плохо – нужно обладать семью пядями во лбу и потратить массу времени/нервов на тяжёлое неуклюжее решение с дробями. За годы практики мне удалось отшлифовать, не скажу, что самую лучшую, но рациональную и достаточно лёгкую методику, которая доступна всем, кто владеет арифметическими действиями:

Пример 2

Решить систему линейных уравнений методом Гаусса-Жордана.

Решение: первая часть задания хорошо знакома:

(1) Ко второй строке прибавили первую строку, умноженную на –1. К третьей строке прибавили первую строку, умноженную на 3. К четвертой строке прибавили первую строку, умноженную на –5.

(2) Вторую строку разделили на 2, третью строку разделили на 11, четвёртую строку разделили на 3.

(3) Вторая и третья строки пропорциональны, 3-ю строку удалили. К четвёртой строке прибавили вторую строку, умноженную на –7

(4) Третью строку разделили на 2.

Очевидно, что система имеет бесконечно много решений, и наша задача – привести её расширенную матрицу к виду .

Как действовать дальше? Прежде всего, следует отметить, что мы лишились вкусного элементарного преобразования – перестановки строк. Точнее говоря, переставить-то их можно, но в этом нет смысла (просто выполним лишние действия). И далее целесообразно придерживаться следующего шаблона:

Находим наименьшее общее кратное чисел третьего столбца (1, –1 и 3), т.е. – наименьшее число, которое бы делилось без остатка и на 1, и на –1 и на 3. В данном случае, это, конечно же, «тройка». Теперь в третьем столбце нам нужно получить одинаковые по модулю числа, и этими соображениями обусловлено 5-е преобразование матрицы:

(5) Первую строку умножаем на –3, вторую строку умножаем на 3. Вообще говоря, первую строку можно было умножить тоже на 3, но это было бы менее удобно для следующего действия. К хорошему привыкаешь быстро:


(6) Ко второй строке прибавили третью  строку. К первой строке прибавили третью строку.

(7) Во втором столбце два ненулевых значения (24 и 6) и нам снова нужно получить одинаковые по модулю числа. В данном случае всё сложилось довольно удачно – наименьшее кратное 24, и эффективнее всего умножить вторую строку на –4.

(8) К первой строке прибавили вторую.

(9) Заключительный штрих: первую строку разделили на –3, вторую строку разделили на –24 и третью строку разделили на 3. Это действие выполняется В ПОСЛЕДНЮЮ ОЧЕРЕДЬ! Никаких преждевременных дробей!

В результате элементарных преобразований получена эквивалентная исходной система:

Элементарно выражаем базисные переменные через свободную:

и записываем:

Ответ: общее решение:

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

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

Для самостоятельного решения:

Пример 3

Найти базисное решение с помощью элементарных преобразований

Такая формулировка задачи предполагает использование метода Гаусса-Жордана, и в образце решения матрица приводится к стандартному виду  с базисными переменными . Однако всегда держите на заметке, что в качестве базисных можно выбрать и другие переменные. Так, например, если в первом столбце громоздкие числа, то вполне допустимо привести матрицу к виду   (базисные переменные ), или к виду  (базисные переменные ), или даже к виду  с базисными переменными . Существуют и другие варианты.

Но всё-таки это крайние случаи – не стОит лишний раз шокировать преподавателей своими знаниями, техникой решения и уж тем более не надо выдавать экзотических жордановсих результатов вроде . Впрочем, бывает трудно удержаться от нетипового решения, когда в исходной матрице, скажем, в 4-м столбце есть два готовых нуля.

Если в расширенной матрице данных размеров вдруг обнаруживается пара линейно зависимых строк, то её следует попытаться привести к привычному виду   с базисными переменными . Образец такого решения есть в Примере № 7 статьи об однородных системах линейных уравнений, причём там выбран другой базис.

Продолжаем совершенствовать свои навыки на следующей прикладной задаче:


Как найти обратную матрицу методом Гаусса?

Обычно условие формулируют сокращённо, но, по существу, здесь также работает алгоритм Гаусса-Жордана. Более простой метод нахождения обратной матрицы  для квадратной матрицы  мы давным-давно рассмотрели на соответствующем уроке, и суровой поздней осенью тёртые студенты осваивают мастерский способ решения.

Краткое содержание предстоящих действий таково: сначала следует записать квадратную матрицу  в тандеме с единичной матрицей: . Затем с помощью элементарных преобразований нужно получить единичную матрицу слева, при этом (не вдаваясь в теоретические подробности) справа нарисуется обратная матрица. Схематически решение выглядит следующим образом:

(Понятно, что обратная матрица должна существовать)

Демо-пример 4

Найдём обратную матрицу для матрицы  с помощью элементарных преобразований. Для этого запишем её в одной упряжке с единичной матрицей, и понеслась «двойка скакунов»:

(1) Ко второй строке прибавили первую строку, умноженную на –3.

(2) К первой строке прибавили вторую строку.

(3) Вторую строку разделили на –2.

Ответ:

Сверьтесь с ответом первого примера урока Как найти обратную матрицу?

Но то была очередная заманивающая задачка – в действительности решение гораздо более длительно и кропотливо. Как правило, вам будет предложена матрица «три на три»:

Пример 5

Найти обратную матрицу с помощью элементарных преобразований

Решение: присоединяем единичную матрицу и начинаем выполнять преобразования, придерживаясь алгоритма «обычного» метода Гаусса:

(1) Первую и третью строки поменяли местами. На первый взгляд, перестановка строк кажется нелегальной, но на самом деле переставлять их можно – ведь по итогу  слева нам нужно получить единичную матрицу, а справа же «принудительно» получится именно матрица   (вне зависимости от того будем ли мы переставлять строки в ходе решения или нет). Обратите внимание, что здесь вместо перестановки можно организовать «шестёрки» в 1-м столбце (наименьшее общее кратное (НОК) чисел 3, 2 и 1). Решение через НОК особенно удобно, когда в первом столбце отсутствуют «единицы».

(2) Ко 2-й и 3-й строкам прибавили 1-ю строку, умноженную на –2 и –3 соответственно.

(3) К 3-й строке прибавили 2-ю строку, умноженную на –1

Вторая часть решения проводится по уже известной из предыдущего параграфа схеме: перестановки строк становятся бессмысленными, и мы находим наименьшее общее кратное чисел третьего столбца (1, –5, 4): 20. Существует строгий алгоритм нахождения НОК, но здесь обычно хватает подбора. Ничего страшного, если взять бОльшее число, которое делится и на 1, и на –5, и на 4, например, число 40. Отличие будет в более громоздких вычислениях. 

К слову о вычислениях. Для решения задачи совсем не зазорно вооружиться микрокалькулятором – числа здесь фигурируют немалые, и будет очень обидно допустить вычислительную ошибку.

Итак:

(4) Третью строку умножаем на 5, вторую строку на 4, первую строку на «минус двадцать»:

(5) К 1-й и 2-й строкам прибавили третью строку.

(6) Первую и третью строки разделили на 5, вторую строку умножили на –1.

(7) Наименьшее общее кратное ненулевых чисел второго столбца (–20 и 44) равно 220. Первую строку умножаем на 11, вторую строку – на 5.

(8) К первой строке прибавили вторую строку.

(9) Первую строку умножили на –1, вторую строку разделили «обратно» на 5.

(10) Теперь на главной диагонали левой матрицы целесообразно получить наименьшее общее кратное чисел диагонали (44, 44 и 4). Совершенно понятно, что это число 44. Третью строку умножаем на 11.

(11) Каждую строку делим на 44. Данное действие выполняется в последнюю очередь!

Таким образом, обратная матрица:

Внесение и вынесение -й, в принципе, лишние действия, но того требует протокол оформления задачи.

Ответ:

Проверка выполняется по обычной схеме, рассмотренной на уроке об обратной матрице.

Продвинутые люди могут несколько сократить решение, но должен предупредить, спешка тут чревата ПОВЫШЕННЫМ риском допустить ошибку.

Аналогичное задание для самостоятельного решения:

Пример 6

Найти обратную матрицу методом Гаусса-Жордана.

Примерный образец оформления задачи внизу страницы. И ради того, чтобы вы «не проехали мимо с песнями» я оформил решение в уже упомянутом стиле – исключительно через НОК столбцов без единой перестановки строк и дополнительных искусственных преобразований. По моему мнению, эта схема – если и не самая, то одна из самых надёжных.

Иногда бывает удобно более короткое «модернистское» решение, которое заключается в следующем: на первом шаге всё как обычно: .

На втором шаге накатанным приёмом (через НОК чисел 2-го столбца) организуются сразу два нуля во втором столбце: . Перед данным действием особенно трудно устоять, если во 2-м столбце нарисовались одинаковые по модулю числа, например, те же банальные «единицы».

И, наконец, на третьем шаге точно так же получаем нужные нули в третьем столбце: .

Живой пример авангарда можно посмотреть во втором задании урока о решении системы в различных базисах.

Что касается размерности, то в большинстве случаев приходится разруливать матрицу «три на три». Однако время от времени встречается лайт-версия задачи с матрицей «два на два» и хард… – специально для всех читателей mathprofi.ru:

Пример 7

Найти обратную матрицу с помощью элементарных преобразований

Это задание из моей собственной физматовской контрольной работы по алгебре, …эх, где мой первый курс  =) Пятнадцать лет назад (листочек на удивление ещё не пожелтел), я уложился в 8 шагов, а сейчас – всего лишь в 6! Матрица, кстати, весьма творческая – на первом же шаге просматривается несколько заманчивых путей решения. Моя поздняя версия внизу страницы.

И заключительный совет – после таких примеров очень полезна гимнастика для глаз и какая-нибудь хорошая музыка для релаксации =)

Желаю успехов!

Решения и ответы:

Пример 3: Решение: запишем расширенную матрицу системы и с помощью элементарных преобразований получим базисное решение:
 
(1) Первую и вторую строки поменяли местами.

(2) Ко второй строке прибавили первую строку, умноженную на –2. К третьей строке прибавили первую строку, умноженную на 5.
(3) Третью строку разделили на 3.
(4) К третьей строке прибавили вторую строку, умноженную на 2.
(5) Третью строку разделили на 7.
(6) Наименьшее кратное чисел 3-го столбца (–3, 5, 1) равно 15. Первую строку умножили на 5, вторую строку умножили на –3, третью строку умножили на 15.
(7) К первой строке прибавили 3-ю строку. Ко второй строке прибавили 3-ю строку.
(8) Первую строку разделили на 5, вторую строку разделили на –3, третью строку разделили на 15.
(9) Наименьшее кратное ненулевых чисел 2-го столбца (–2 и 1) равно: 2. Вторую строку умножили на 2
(10) К первой строке прибавили вторую строку.
(11) Вторую строку разделили на 2.
Выразим базисные переменные  через свободные переменные :

Ответ: общее решение:

Пример 6: Решение: обратную матрицу найдём с помощью элементарных преобразований:

(1) Первую строку умножили на –15, вторую строку умножили на 3, третью строку умножили на 5.

(2) Ко 2-й и 3-й строкам прибавили первую строку.
(3) Первую строку разделили на –15, вторую строку разделили на –3, третью строку разделили на –5.
(4) Вторую строку умножили на 7, третью строку умножили на –9.
(5) К третьей строке прибавили вторую строку.

(6) Вторую строку разделили на 7.

(7) Первую строку умножили на 27, вторую строку умножили на 6, третью строку умножили на –4.
(8) К первой и второй строкам прибавили третью строку.
(9) Третью строку разделили на –4. К первой строке прибавили вторую строку, умноженную на –1.
(10) Вторую строку разделили на 2.
(11) Каждую строку разделили на 27.
В результате:
Ответ:

Пример 7: Решение: найдём обратную матрицу методом Гаусса-Жордана:
(1) К 1-й и 4-й строкам прибавили 3-ю строку.
(2) Первую и четвёртую строки поменяли местами.
(3) Ко 2-й строке прибавили 1-ю строку. К 3-й строке прибавили 1-ю строку, умноженную на 2:

(4) К 3-й строке прибавили 2-ю строку, умноженную на –2. К 4-й строке прибавили 2-ю строку.
(5)  К 1-й и 3-й строкам прибавили 4-ю строку, умноженную на –1.
(6) Вторую строку умножили на –1, третью строку разделили на –2.
Ответ:

Автор: Емелин Александр


 Блог Емелина Александра

Высшая математика для заочников и не только >>>

(Переход на главную страницу)

Как можно отблагодарить автора?


© Copyright  Александр Емелин, mathprofi.ru, 2010-2024, сделано в Блокноте