Построение графиков функций с модулем алгоритм: Графики функций с модулем

Построение графиков функции y=sinx содержащих переменную под знаком модуля

Урок  по алгебре и  началам  анализа  в 11 классе

Построение графиков функций одна их интереснейших тем в школьной математике. Один из крупнейших математиков нашего времени Израиль Моисеевич Гельфанд писал: «Процесс построения графиков является способом превращения формул и описаний в геометрические образы. Это – построение графиков – является средством увидеть формулы и функции и проследить, каким образом эти функции меняются. 

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

 Объект исследования: функция y=sinx, аналитическое выражение которых содержит знак абсолютной величины.

Методы исследования: построение графиков функций.

Историческая справка

В первой половине ХVII века начинает складываться представление о функции как о зависимости одной 

переменной величины от другой. Так, французские математики Пьер Ферма (1601-1665) 

и Рене Декарт (1596-1650) представляли себе функцию как зависимость ординаты точки кривой от ее абсциссы.

А английский ученый Исаак Ньютон (1643-1727) понимал функцию как изменяющуюся в зависимости от времени координату движущейся точки.

Термин «функция» (от латинского function – исполнение , совершение) впервые ввел немецкий математик Готфрид Лейбниц(1646-1716). У него функция связывалась с геометрическим образом (графиком функции). 

В дальнейшем швейцарский математик Иоганн Бернулли(1667-1748) 

и член Петербургской Академии наук знаменитый математик XVIII века Леонард Эйлер(1707-1783)

рассматривали функцию как аналитическое выражение. У Эйлера имеется и общее понимание функции как зависимости одной переменной величины от другой.

Слово «модуль» произошло от латинского слова «modulus», что в переводе означает «мера». Это многозначное слово (омоним), которое имеет множество значений и применяется не только в математике, но и в архитектуре, физике, технике, программировании  и других точных науках.

В архитектуре — это исходная единица измерения, устанавливаемая для данного  архитектурного сооружения и служащая для выражения кратных соотношений его составных элементов.

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

Модуль объемного сжатия( в физике)-отношение нормального напряжения в материале к относительному удлинению.

Технологическая карта урока алгебры в 9 классе «Графики функций, содержащие модуль. Методы построения»

1.            Цель урока: Повторить построение графиков функций, содержащих знак модуля; познакомить с новым методом построения графика линейно-кусочной функции; закрепить новый метод при решении задач.

2.           Тип урока: урок общеметодической направленности

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

4.           Решаемые проблемы: Функции, содержащие модуль; графики функций, содержащих модуль. Методы построения графиков функций, содержащих модуль.

5.           Виды действий: Формирование у учащихся умений построения и реализации новых знаний (понятий, способов действий): построение алгоритма действий, работы с опорным конспектом, проектирования способов выполнения задания.

Планируемые результаты:

6.           Предметные: Актуализировать знания учащихся по построению графиков функций с помощью различных преобразований; научить строить графики функций, содержащих модуль, используя различные методы .

7.           Метапредметные УУД: Коммуникативные: с достаточной полнотой и точностью выражать свои мысли в соответствии с задачами и условиями коммуникации.

                             Регулятивные: вносить коррективы и дополнения в способ своих действий в случае расхождения эталона, реального действия и его продукта.

                                       Познавательные: выбирать наиболее эффективные способы решения задачи.

                   8. Личностные УУД: Формирование познавательного интереса к предмету исследования, устойчивой мотивации к изучению и закреплению нового; формирование навыков анализа, навыков работы по алгоритму.

9. Задачи:

обучающие: ввести и изучить алгоритм построения графика линейно-кусочной функции новым методом.

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

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

10.       Формы работы учащихся: индивидуальная, фронтальная

11.       Необходимое техническое оборудование: компьютер(1), проектор(1), экран(1).

12.       Структура и ход урока

13.       Аннотация к уроку

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

СТРУКТУРА И ХОД УРОКА

 

Этап урока

Название используемых

материалов

Деятельность учителя

 

Деятельность ученика

Время

(в мин. )

 

1

2

3

5

6

7

1

Подготовительный этап. Мотивация.

Графики функций, изображающие различные реальные ситуации.

Учитель мотивирует тему урока, формулирует цели урока

Учебный диалог учеников с учителем

3

2

Актуализация знаний

Слайды , на которых изображены графики функций, содержащих модуль.

Учитель задаёт вопросы о      способах  преобразования графиков функций, об алгоритме построения  графиков функций, содержащих модуль (фронтальный опрос).

Ученики отвечают на вопросы,  рассуждают, опираясь на рисунки, делают вывод.

6

3

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

Учитель   организует учебный диалог, контролирует процесс выполнения задания.

Ученики отвечают на вопросы, делают выводы; оформляют соответствующие записи в тетради.

8

4

Введение алгоритма нового метода построения  графика кусочно линейной функции.

Слайд, на котором размещен алгоритм «Метода вершин»  

Учитель задает вопросы и комментирует этапы алгоритма.

Ученики обсуждают новый метод и записывают алгоритм в тетради.

4

5

Усвоение алгоритма построения графика кусочно-линейной функции.

 

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

Ученики фронтально обсуждают, выполняют в тетрадях и на доске. Подводят итоги: формулируют алгоритм построения графика кусочно-линейной функции, оформляют записи в тетрадях.

8

6

Закрепление алгоритма построения графика кусочно-линейной функции.

 

Учитель задает задание — при каких значениях х, функция принимает наибольшее значение.

Ученики выполняют задание, используя «Метод вершин»  (у доски 1 ученик, остальные самостоятельно на местах в тетрадях).

6

 

 

 

 

 

 

7

Рефлексия

Учитель  организует подведение итогов урока, обобщение

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

3

8

Домашнее задание

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

 

Ученики записывают домашнее задание и определяются в фор мах его выполнения

2

 

 

 

 

 

 

ПЕРЕЧЕНЬ ИСПОЛЬЗУЕМЫХ НА ДАННОМ УРОКЕ ЭОР

Название ресурса

Тип, вид ресурса

Форма предъявления информации (иллюстрация, презентация, видеофрагменты, тест, модель и т. д.)

Гиперссылка на ресурс, обеспечивающий доступ к ЭОР

1

Линейная функция

Интерактивное задание

Ресурс содержит демонстрации и задания по теме “Линейная функция”

 

http://school-collection.edu.ru/catalog/res/579d6889-4cb0-4018-93d4-5e4954ed9e9a/?from=820d62ae-6bce-41ea-923d-7184c1801fc9&interface=pupil&class=49&subject=17

2

Линейная функция и ее график. П1

Модуль

 

 

Практи

ческого типа

Тестирование

http://www.fcior.edu.ru/card/13979/lineynaya-funkciya-i-ee-grafik-p1.html

3

График линейной функции

Интерактивное задание

Ресурс содержит демонстрации и задания по теме “График линейной функции

http://school-collection. edu.ru/catalog/res/bf11078a-01e3-448f-aa69-199e5b58b02f/?from=820d62ae-6bce-41ea-923d-7184c1801fc9&interface=pupil&class=49&subject=17

4

Линейная функция и ее график. И1

Модуль Информационного типа

Анимация

http://www.fcior.edu.ru/card/4846/lineynaya-funkciya-i-ee-grafik-i1.html

5

Линейная функция и ее график. К1

 

Модуль Контролирующего типа

Тестирование

http://www.fcior.edu.ru/card/9228/lineynaya-funkciya-i-ee-grafik-k1.html

 

Проверка результатов — BayesPy v0.5.22+7.g0e6e613 Документация

После получения результатов важно иметь возможность изучить результаты легко. Результаты можно проверить либо численно, проверив числовых массивов или визуально путем построения графиков распределения узлов. В Кроме того, апостериорные распределения могут быть визуализированы во время обучения. алгоритм и результаты могут быть сохранены в файл.

Построение результатов

Модуль plot предлагает некоторые базовые функции построения графиков:

 >>> import bayespy.plot as bpplt
 

Модуль содержит модуль matplotlib.pyplot , если это необходимо пользователю. За например, интерактивный график можно включить как:

 >>> bpplt.pyplot.ion()
 

Модуль plot

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

  • pdf() : показать функцию плотности вероятности скаляра

  • контур() : показать функцию плотности вероятности двухэлементного вектора

  • hinton() : показать диаграмму Хинтона

  • plot() : показать значение как функцию

Функция плотности вероятности скалярной случайной величины может быть построена используя функцию pdf() :

 >>> bpplt. pyplot.figure()
<объект matplotlib.figure.Figure в 0x...>
>>> bpplt.pdf(Q['tau'], np.linspace(60, 140, число=100))
[<объект matplotlib.lines.Line2D в 0x...>
]

(Исходный код, png, нанимает.png, pdf)

Переменная тау моделирует обратную дисперсию шума, для которой истинное значение. Таким образом, апостериорное значение фиксирует истинное значение довольно точно. Точно так же функция контур() может быть использована для построения графика. функция плотности вероятности двумерной переменной, например:

 >>> V = Гауссова ([3, 5], [[4, 2], [2, 5]])
>>> bpplt.pyplot.figure()
<объект matplotlib.figure.Figure в 0x...>
>>> bpplt.contour(V, np.linspace(1, 5, число=100), np.linspace(3, 7, число=100))
<объект matplotlib.contour.QuadContourSet в 0x...>
 

(Исходный код, png, нанимает.png, pdf)

Оба pdf() и контур() требуют, чтобы пользователь предоставил сетку на вычисляется функция плотности вероятности. Они также поддерживают несколько аргументы ключевого слова для изменения вывода, аналогично

участок и контур в matplotlib.pyplot . Эти функции можно использовать только для стохастические узлы. Несколько других типов графиков также доступны как встроенные. функции. Диаграмму Хинтона можно построить так:

 >>> bpplt.pyplot.figure()
<объект matplotlib.figure.Figure в 0x...>
>>> bpplt.hinton(C)
 

(Исходный код, png, Hires.png, pdf)

На схеме показаны элементы матрицы . Размер заполненного прямоугольник соответствует абсолютному значению среднего значения элемента, а белый и черные соответствуют положительным и отрицательным значениям соответственно. незаполненный прямоугольник показывает стандартное отклонение. Из этой схемы видно, что третий столбец был удален, а строки, которые отсутствовали в данные имеют нулевое среднее значение и дисперсию по столбцу. Функция hinton() — это простая оболочка для графопостроителей диаграмм Хинтона, специфичных для узла, например,

gaussian_hinton() и dirichlet_hinton() . Таким образом, ключевое слово аргументы зависят от отображаемого узла.

Другая функция построения графиков — plot() , которая просто отображает значения узел над одной осью как функция:

 >>> bpplt.pyplot.figure()
<объект matplotlib.figure.Figure в 0x...>
>>> bpplt.plot(X, ось=-2)
 

(Исходный код, png, нанимает.png, pdf)

Теперь ось является предпоследней осью, которая соответствует . Так как есть три сюжетных линии. Для Гаусса переменных функция показывает среднее значение и два стандартных отклонения. Сюжет показывает, что третий компонент был удален, таким образом, метод был способен восстановить истинную размерность скрытого пространства. Он также имеет аналогичные аргументы ключевого слова для функции plot

в matplotlib.pyplot . Очередной раз, plot() — это простая оболочка над специфичными для узла функциями построения графиков, поэтому она поддерживает только некоторые классы узлов.

Мониторинг во время алгоритма вывода

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

Плоттеры настраиваются путем создания объекта плоттера и предоставления этого объекта узел. Плоттер является оболочкой одной из упомянутых функций построения графиков. выше: PDFPlotter , ContourPlotter , HintonPlotter

или ФункцияПлоттер . Таким образом, наша примерная модель может использовать следующее плоттеры:

 >>> tau.set_plotter(bpplt.PDFPlotter(np.linspace(60, 140, num=100)))
>>> C.set_plotter(bpplt.HintonPlotter())
>>> X.set_plotter(bpplt.FunctionPlotter(ось=-2))
 

Они могли быть заданы при создании узла в качестве аргумента ключевого слова. … плоттер = bpplt.ContourPlotter (np.linspace (1, 5, число = 100), … np.linspace(3, 7, число=100)))

Когда плоттер настроен, можно использовать метод узла plot для выполнения построение графика:

 >>> V.plot()
<объект matplotlib.contour.QuadContourSet в 0x...>
 

Узлы также могут быть построены с использованием метода plot механизма логического вывода:

 >>> Q.plot('C')
 

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

plot :

 >>> Q.update(repeat=5, plot=True, tol=np.nan)
Итерация 19: loglike=-1.221354e+02 (... секунд)
Итерация 20: loglike=-1.221354e+02 (... секунд)
Итерация 21: loglike=-1.221354e+02 (... секунд)
Итерация 22: loglike=-1.221354e+02 (... секунд)
Итерация 23: loglike=-1.221354e+02 (... секунд)
 

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

Апостериорные параметры и моменты

Если встроенных функций построения графика недостаточно, можно использовать matplotlib.pyplot для пользовательского построения графиков. Каждый узел имеет

методов get_moments который возвращает моменты, и их можно использовать для построения графика. Стохастический узлы экспоненциального семейства имеют естественные векторы параметров, которые также можно использовать. В дополнение к построению графика также можно просто распечатать моменты или параметры в консоли.

Сохранение и загрузка результатов

Результаты механизма логического вывода можно легко сохранить и загрузить с помощью VB.save() и VB.load() методы:

 >>> импорт временного файла
>>> имя_файла = tempfile.mkstemp(suffix='.hdf5')[1]
>>> Q.save(имя файла=имя файла)
>>> Q.load(имя файла=имя файла)
 

Результаты сохраняются в файле HDF5. Пользователь может установить файл автосохранения в результаты которого автоматически сохраняются регулярно. Имя файла автосохранения может быть устанавливается во время создания на autosave_filename Аргумент ключевого слова или выше с использованием Метод VB.set_autosave() . Если файл автосохранения установлен, Методы VB.save() и VB.load() используют этот файл по умолчанию. Для того, чтобы для работы сохранения должны быть заданы все стохастические узлы (уникальные) имена.

Однако обратите внимание, что эти методы не сохраняют и не загружают определения узлов. Это означает, что пользователь должен создать узлы и механизм вывода, а затем использовать VB.load() для установки состояния узлов и механизма логического вывода. Если есть ли отличия в той модели, что сохранилась, и той, которую пробовали обновить с помощью загрузки, то загрузка не работает. Таким образом, пользователь должен сохранить конструкция модели без изменений в файле Python, чтобы иметь возможность загружать результаты позже. Или, если пользователь хочет поделиться результатами, он должен поделиться файлом построения модели Python с файлом результатов HDF5.

Что такое Matplotlib в Python? Как использовать его для построения?

Прежде чем мы начнем: Это руководство по Python является частью нашей серии руководств по пакетам Python. Вы также можете найти другие темы, связанные с Matplotlib!

Matplotlib — это кроссплатформенная библиотека для визуализации данных и графического построения для Python и его числового расширения NumPy. Таким образом, он предлагает жизнеспособную альтернативу MATLAB с открытым исходным кодом. Разработчики также могут использовать API-интерфейсы matplotlib (интерфейсы прикладного программирования) для встраивания графиков в приложения с графическим интерфейсом.

Скрипт Python matplotlib структурирован таким образом, что в большинстве случаев для создания графика визуальных данных достаточно нескольких строк кода. Уровень сценариев matplotlib перекрывает два API:

  • API pyplot представляет собой иерархию объектов кода Python, возглавляемую matplotlib.pyplot
  • .
  • Коллекция объектов API объектно-ориентированного программирования, которая может быть собрана с большей гибкостью, чем pyplot. Этот API обеспечивает прямой доступ к внутренним слоям Matplotlib.

Matplotlib и Pyplot в Python

API pyplot имеет удобный интерфейс с сохранением состояния в стиле MATLAB. Фактически, matplotlib изначально был написан как альтернатива MATLAB с открытым исходным кодом. OO API и его интерфейс более настраиваемы и мощны, чем pyplot, но считаются более сложными в использовании. В результате чаще используется интерфейс pyplot, и в этой статье он упоминается по умолчанию.

Понимание API-интерфейса pyplot matplotlib является ключом к пониманию того, как работать с графиками:

  • matplotlib.pyplot.figure : Figure — это контейнер верхнего уровня. Он включает в себя все, что визуализируется на графике, включая одну или несколько осей .
  • matplotlib.pyplot.axes : Оси содержат большинство элементов графика : Оси, Tick, Line2D, Text, и т. д., и устанавливает координаты. Это область, в которой отображаются данные. Оси включают ось X, ось Y и, возможно, также ось Z.

Для получения дополнительной информации об API и интерфейсе pyplot см. Что такое Pyplot в Matplotlib

Установка Matplotlib

Matplotlib и его зависимости можно загрузить в виде двоичного (предварительно скомпилированного) пакета из Python Индекс пакетов (PyPI) и устанавливается с помощью следующей команды:

 python -m pip install matplotlib 

Matplotlib также доступен в виде нескомпилированных исходных файлов. Компиляция из исходного кода потребует, чтобы ваша локальная система имела соответствующий компилятор для вашей ОС, все зависимости, сценарии установки, файлы конфигурации и исправления. Это может привести к довольно сложной установке. В качестве альтернативы рассмотрите возможность использования платформы ActiveState для автоматической сборки библиотеки matplotlib из исходного кода и ее упаковки для вашей ОС.

Меню пользовательского интерфейса Matplotlib

Когда matplotlib используется для создания графика, создается пользовательский интерфейс (UI) и структура меню. Пользовательский интерфейс можно использовать для настройки графика, а также для панорамирования/масштабирования и переключения различных элементов.

Matplotlib и NumPy

Numpy — это пакет для научных вычислений. Numpy — это обязательная зависимость для matplotlib, которая использует функции numpy для числовых данных и многомерных массивов, как показано в следующем фрагменте кода:

Исходный код этого примера доступен в разделе Matplotlib: построение массива Numpy ниже в этой статье.

Matplotlib и Pandas

Pandas — это библиотека, используемая matplotlib в основном для обработки и анализа данных. Pandas предоставляет объект таблицы 2D-данных в памяти, называемый Dataframe. В отличие от numpy, pandas не является обязательной зависимостью от matplotlib.

Pandas и numpy часто используются вместе, как показано в следующем фрагменте кода:

Исходный код для этого примера доступен в разделе Matplotlib: построение кадра данных Pandas ниже в этой статье.

Как создавать графики Matplotlib

В этом разделе показано, как создавать примеры различных типов графиков с помощью matplotlib.

Линейный график Matplotlib

В этом примере pyplot импортируется как plt, а затем используется для построения трех чисел по прямой линии:  

 импортировать matplotlib.pyplot как plt

  # Нарисуйте несколько чисел: 
plt.plot([1, 2, 3])
plt.title («Линейный график»)

  # Показать график: 
plt.show() 

Figure 1. Line plot generated by Matplotlib:

Matplotlib Pie Plot

In this example, pyplot is imported as plt, and then used to create a диаграмма с четырьмя разделами, которые имеют разные метки, размеры и цвета:

 импортировать matplotlib. pyplot как plt

  # Метки данных, размеры и цвета определены: 
labels = "Брокколи", "Шоколадный торт", "Черника", "Малина"
размеры = [30, 330, 245, 210]
цвета = ['зеленый', 'коричневый', 'синий', 'красный']

  # Данные нанесены на график: 
plt.pie(размеры, метки=метки, цвета=цвета)

плт.ось('равно')
plt.title("Круговая диаграмма")
plt.show() 

Рисунок 2. Круговая диаграмма, сгенерированная Matplotlib:

Matplotlib Bar Plot

В этом примере pyplot импортируется как plt, а затем используется для построения трех вертикальных гистограмм: импортировать numpy как np # Создайте экземпляр Line2D с данными x и y в последовательностях xdata, ydata: # х данных: xdata=[‘А’,’Б’,’С’] # данные: yданные = [1,3,5] plt.bar (диапазон (длина (xdata)), ydata) plt.title(«Сюжет бара») plt.show()

Figure 3. Bar plot generated by Matplotlib:

Matplotlib: Plot a Numpy Array

In this example, pyplot is imported as plt, and then used to plot a диапазон чисел, хранящихся в массиве numpy:

 импортировать numpy как np
из matplotlib импортировать pyplot как plt

  # Создайте ndarray по оси x, используя функцию numpy range(): 
х = np.arange (3,21)

  # Сохранение значений уравнений по оси Y: 
у = 2 * х + 8
plt.title("График массива NumPy")

  # Отображение значений с использованием координат x,y: 
plt.plot(x,y)
plt.show() 

Matplotlib: постройте фрейм данных Pandas

В этом примере pyplot импортируется как plt, а затем используется для построения фрейма данных pandas: импортировать панд как pd импортировать matplotlib. pyplot как plt рис, топор = plt.subplots() # Скрыть оси не снимая: fig.patch.set_visible(False) топор.ось(‘выкл’) топор.ось(‘плотно’) # Создать случайный массив numpy в кадре данных pandas с 10 строками, 4 столбцами: df = pd.DataFrame (np.random.randn (10, 4), столбцы = список (‘ABCD’)) plt.title(«График Pandas Dataframe») ax.table (cellText = df.values, colLabels = df.columns, loc = ‘центр’) fig.tight_layout() plt.show()

Дополнительные примеры создания графиков с помощью matplotlib см. в разделе 9.0205 Как отобразить график в Python

Зачем использовать ActiveState Python для обработки данных

Хотя дистрибутив Python с открытым исходным кодом может быть удовлетворительным для отдельного человека, он не всегда отвечает требованиям поддержки, безопасности или платформы крупных организаций.

Вот почему организации выбирают ActiveState Python для обработки данных, обработки больших данных и статистического анализа.

Предустановленный пакет ActiveState Python с наиболее важными пакетами, необходимыми специалистам по обработке и анализу данных, предварительно скомпилирован, поэтому вам и вашей команде не придется тратить время на настройку дистрибутива с открытым исходным кодом. Вы можете сосредоточиться на том, что важно: тратить больше времени на создание алгоритмов и прогнозных моделей на основе ваших больших источников данных и меньше времени на настройку системы.

ActiveState Python на 100 % совместим с дистрибутивом Python с открытым исходным кодом и обеспечивает безопасность и коммерческую поддержку, необходимые вашей организации.

С помощью ActiveState Python вы можете исследовать данные и манипулировать ими, выполнять статистический анализ и предоставлять визуализации, чтобы быстрее делиться своими знаниями с бизнес-пользователями и руководителями — независимо от того, где хранятся ваши данные.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *