График функции с модулем примеры: Графики функций с модулем

Содержание

как построить – сложное простыми словами — ЕГЭ/ОГЭ

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

На самом деле построение графиков функций с модулями – это удовольствие. Раньше они вызывали у вас в лучшем случае пренебрежение? Забудьте – после прочтения статьи вы будете первым по скорости построения графика.

 

 

Построение различных видов графиков, содержащих модуль:

 

  • Воландеморт среди модулей
  • Как калькулятор может помочь при построении графика?
  • Как построить график модуля и одновременно решить уравнение
  • Война среди модулей

 

Господа, перед тем, как мы приступим к светской беседе с модулем. (В которой отдадим дань уважения каждому его виду). Я бы хотел обратить ваше внимание, что модуль никогда не бывает отрицательным. Отсюда и все особенности его графика.

Подмечайте фишки каждой функции, но главное – держите в голове его «неотрицательность».

Главный миф о сложности графиков модуля – полный модуль по правой части

Забудьте сказки про сложность модуля – ведь теперь вы скоро узнаете о методе «Зеркало».

Модуль всей правой части y = |f(x)| отражает график относительно оси X. Все, что было под осью Ox зеркально отражается наверх.

Почему так? Обратите внимание, что значение функции (то есть y) является результатом вычисления модуля. Оно не может быть отрицательным. Согласны? Значит, его заменяют на противоположное ему по знаку. А в построении функций эти зеркальные превращения и есть смена знака у функции.

Уже чувствуете себя как Алиса в Зазеркалье? Ничего страшного – объясню на примере:

Пример: y = |X – 3|

Видите, график функции y = |X – 3| состоит из двух ветвей. Первая y = X – 3, а вторая y = – (X – 3) = 3 – X. Все по определению модуля – не придраться. Зеркально отраженная функция и есть противоположная по знаку той, которую отражали.

Можете так себя проверять – сначала просто отзеркальте конец, который улетает в отрицательную бесконечность (под ось Ох). А потом посмотрите, действительно ли он совпадает с минусовой версией подмодульного выражения. Уверяю, если вы были аккуратны – совпадет.

*Читайте понятное определение модуля в статье «Простая инструкция: как решать любые уравнения с модулем». После ее прочтения вы научитесь расправляться со всеми видами уравнений с модулем с помощью всего 1 инструкции!

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

Воландеморт среди модульных функций — Полный модуль по правой части

Модуль всей левой части |y| = f(x) отражает график относительно оси X. Все, что было над осью Oх зеркально отражается вниз.

 

 

 

Смотрим, что является результатом вычисления подмодульного выражения? Ага, все, что стоит справа. Значит, в данном случае Рубиконом является ось Oy – отзеркаливаем относительно нее.

Пример: |y| = X – 3

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

 

 

Как калькулятор может помочь при построении графика? — График содержащий модуль

 

 

Это пример сложной функции, такие функции строятся по этапам. Сложной – не потому что она поддается только сильнейшим умам. Просто в ней собрано несколько последовательных действий: модуль и сложение с «потусторонним членом».

С такими функциями работает способ «калькулятор».

Представьте, что вам нужно вычислить выражение: (217 – 327)/72. С чего вы начнете? Вероятно, с возведения в степень, продолжите подсчетом числителя и только потом перейдете к делению. Будете идти от малого к большому.

Тот же метод работает и со сложной функцией. Начните с ядра и продолжайте справляться со всеми остальными прибамбасами вокруг него.

Пример: y = |x–3| + 5 ( ядром является график прямой y=x-3)

1. Y = X – 3                 {строим график прямой}

 

2. Y = |X –3|                {

отражаем график относительно оси X}

 

3. Y = |X – 3| + 5        {поднимаем график 2. на +5}.

 

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

Иногда в качестве «потустороннего члена» выступает переменная. Тут уж хитрить с отражениями и подниманиями – не получится. Придется раскрывать алгебраически модуль для каждого интервала – и уже по вычисленному выражению чертить ветви графика.

О том, как легко раскрыть модуль – написано в статье – Решение уравнений с модулем.

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

Как построить график модуля и одновременно решить уравнениеМодуль внутри модуля

Пример: y = ||X–2|–3|

{Порядок действий как при работе со сложной функцией – пользуемся методом «Калькулятор»}

1. Y = X – 2

2. Y = |X – 2|

 

3. Y = |X – 2|–3

4. Y = ||X – 2|–3|

Согласитесь, что раскрывать уравнения такого типа довольно муторно. Да и велик риск просчитаться. Начертить график и по нему оценить корни (иногда точно их посчитать) супер просто.

Поэтому графический метод решения уравнений нужно эксплуатировать на все 100% именно в этом случае.

 

 

 

 

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

 

 

 

Война среди модулей — Несколько модулей

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

*Подробнее о том, как раскрывать модуль читайте в статье «Простая инструкция: как решать любые уравнения с модулем». В ней на пальцах объяснено, как раскрыть забор из модулей и НЕ запутаться.

Y = |X–2|+|X+2|

I ) X ∈ (–∞;–2] {1 модуль с «–» , 2 модуль с «–»}

Y1 = – (X – 2) – (X + 2)

Y1 = – X + 2 – X – 2

Y1 = –2X

II ) X ∈ (–2;2] {1 модуль с «–» , 2 модуль с «+»}

Y2 = – (X – 2) + (X + 2)

Y2 = – X + 2 + X + 2

Y2 = 4

III) X ∈ (2; +∞) {1 модуль с «+» , 2 модуль с «+»}

Y3 = (X – 2) + (X + 2)

Y3 = 2X

Вот такая галочка получилась из трех кусочков различных функций.

 

 

 

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

 

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

Остались вопросы? – обращайтесь! Я с удовольствием проведу первую консультацию бесплатно. Запишитесь на первое бесплатное занятие: напишите мне на почту или в сообщениях ВКонтакте)

До встречи, Ваш Михаил

График функции с модулем и дробью

График функции с модулем и дробью — ещё одна группа заданий номера 23 ОГЭ по математике.

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

1) Построить график функции

   

и определите, при каких значениях k прямая y=kx не имеет с графиком общих точек.
Решение:

Так как x²=|х|², формулу, задающую функцию, перепишем в виде

   

В знаменателе общий множитель |х| вынесем за скобки

   

Найдём область определения функции.

|х|(|х|-1)≠0

|х|≠0; |х|-1≠0

x≠0; |х|≠1

x≠0, x≠±1.

D(y):x∈(-∞;-1)∪(-1;0)∪(0;1)∪(1;∞).

Сократив дробь на (|х|-1), получаем

   

При x>0 |х|=x,

   

— функция обратной пропорциональности. График — гипербола. Для построения гиперболы возьмём несколько точек (включая выколотую x=1):

   

При x<0 |х|=-x,

   

— функция обратной пропорциональности.

   

Прямая y=kx не имеет с графиком общих точек, если она проходит через выколотые точки либо совпадает с осью Ox, то есть при k=±1 и k=0:

Ответ: -1; 0; 1.

2)Постройте график функции

   

и определите, при каких значениях m прямая y=m не имеет с графиком ни одной общей точки.

Решение:

В числителе вынесем за скобки общий множитель 0,25x:

   

Ищем область определения функции.

x+2≠0

x≠-2.

D(y):x∈(-∞;-2)∪(-2;∞).

Сокращаем дробь на (x+2):

   

Получили функцию, содержащую переменную под знаком модуля (при условии x≠-2).
При x=0, y=0,25·0·|0|=0.

При x>0 |х|=x, y=0,25·x·|x|= y=0,25·x·x=0,25x².

y=0,25x² или

   

— квадратичная функция. График — парабола, полученная из параболы y=x² сжатием к оси Ox в 4 раза.

При x<0 |х|=-x, y=0,25·x·|x|= y=0,25·x·(-x)=-0,25x².

   

— квадратичная функция. График — парабола, полученная из параболы y=-x² сжатием к оси абсцисс в 4 раза.

Прямая y=m не имеет с графиком ни одной общей точки, если она проходит через выколотую точку, то есть при m=-1:

Ответ: -1.

3) Построить график функции

   

и определите, при каких значениях m прямая y=m имеет с графиком ровно одну общую точку.

Решение:

Найдём область определения функции: x≠0.

D(y):x∈(-∞;0)∪(0;∞).

Если

   

   

   

то есть при x∈[-4;0)∪[4;∞), то

   

   

   

y=x/4 -функция прямой пропорциональности. График — прямая, проходящая через начало координат.

Для построения прямой достаточно взять одну точку, например, при x=4 y=4/4=1. Вторая точка — точка O — на графике выколотая, так как x≠0. Для более точного построения прямой лучше взять ещё одну точку: при x=-4 y=-4/4=-1.

Если

   

то есть при x∈(-∞;-4)∪(0;4), то

   

   

   

y=4/x — функция обратной пропорциональности. График — гипербола.

Для построения гиперболы возьмём несколько точек из промежутков (-∞;-4)∪(0;4) (-4 и 4 также лучше взять для уточнения построения графика).

Прямая y=m имеет с графиком ровно одну общую точку при m=1 и m=-1:

Ответ: -1; 1.

Методы построения графиков функций содержащих модуль

Цель урока:

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

Оборудование:

  • мультимедиа проектор,
  • плакаты.

Ход урока

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

На экране слайд 1 из презентации.

Что является графиком функции y=|x| ? (слайд 2).

(совокупность биссектрис 1 и 2 координатных углов)

Найдите соответствие между функциями и графиками, объясните ваш выбор (слайд 3).

Рисунок 1

y=| x+3|

y=| x| +3

y=-2| x| -2

y=6-| x-5|

y=1/3| x-6| -3

Расскажите алгоритм построения графиков функций вида y=|f(x)| на примере функции y=|x2-2x-3| (слайд 4)

Ученик: чтобы построить график данной функции нужно

- построить параболу y=x2-2x-3

- часть графика над ОХ сохранить, а часть графика расположенную ниже ОХ отобразить симметрично относительно оси ОХ (слайд 5)

Рисунок 2

Рисунок 3

Расскажите алгоритм построения графиков функций вида y=f(|x|) на примере функции y=x2-2|x|-3 (слайд 6).

Ученик: Чтобы построить график данной функции нужно:

- построить параболу.

- часть графика при х 0 сохраняется и отображается симметрии относительно оси ОУ (слайд 7)

Рисунок 4

Расскажите алгоритм построения графиков функций вида y=|f(|x|)| на примере функции y=|x2-2|x|-3| (слайд 8).

Ученик: Чтобы построить график данной функции нужно:

- нужно построить параболу у=x2-2x-3

- строим у= x2-2|x|-3, часть графика сохраняем и симметрично отображаем относительно ОУ

- часть над ОХ сохраняем, а нижнюю часть симметрично отображаем относительно ОХ (слайд 9)

Рисунок 5

Следующее задание выполняем письменно в тетрадях.

1. Построить график линейно-кусочной функции у=|х+2|+|х-1|-|х-3|

Ученик на доске с комментарием:

- находим нули подмодульных выражений х1=-2, х2=1, х3=3

- разбиваем ось на промежутки

- для каждого промежутка запишем функцию

при х < -2, у=-х-4

при -2 х<1, у=х

при 1 х<3, у = 3х-2

при х 3, у = х+4

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

Мы с вами построили график функции используя определение модуля (слайд 10).

Рисунок 6

Предлагаю вашему вниманию “метод вершин”, который позволяет строить график линейно-кусочной функции (слайд 11). Алгоритм построения дети записывают в тетрадь.

Метод вершин

Алгоритм:

  1. Найдем нули каждого подмодульного выражения
  2. Составим таблицу, в которой кроме нулей запишем по одному значению аргумента слева и справа
  3. Нанесем точки на координатную плоскость и соединим последовательно

2. Разберем этот метод на той же функции у=|х+2|+|х-1|-|х-3|

Учитель на доске, дети в тетрадях.

Метод вершин:

- найдем нули каждого подмодульного выражения;

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

х -3 -2 1 3 4

у -1 -2 1 7 8

- нанесем точки на координатную плоскость и соединим последовательно.

Графиком линейно-кусочной функции является ломанная с бесконечными крайними звеньями (слайд 12) .

Рисунок 7

Каким же методом график получается быстрее и легче?

3. Чтобы закрепить данный метод предлагаю выполнить следующее задание:

При каких значения х функция у=|х-2|-|х+1| принимает наибольшее значение.

Следуем алгоритму; ученик на доске.

у=|х-2|-|х+1|

х1=2, х2=-1

у(-2)=4-1=3

у(-1)=3

у(2)=-3

у(3)=1-4=3, соединяем последовательно точки.

унаиб = 3

4. Дополнительное задание

При каких значениях а уравнение ||4+x|-|x-2||=a имеет два корня.

5. Домашняя работа

а) При каких значениях Х функция у =|2x+3|+3|x-1|-|x+2| принимает наименьшее значение.

б) Построить график функции y=||x-1|-2|-3| .

«Графики функций, содержащих выражения под знаком модуля»

Министерство образования РФ

Муниципальное бюджетное общеобразовательное учреждение

«Средняя общеобразовательная школа №7»

МО «город Бугуруслан»

Исследовательская работа на тему:

«Графики функций, содержащих выражения под знаком модуля»

Городская научно-исследовательская конференция

«Маленький шаг - большая наука».

Выполнила:

Юсупова Гузель Ильшатовна

Учащаяся 9 класса

МБОУ СОШ №7.

Руководитель:

Мошнина Зульфия Равильевна

Учитель математики

МБОУ СОШ №7

Бугуруслан , 2018

Аннотация.

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

Тезисы.

Общие сведения об учащемся: Юсупова Гузель Ильшатовна.

Муниципальное бюджетное общеобразовательное учреждение

«Средняя общеобразовательная школа №7»

муниципального образования «город Бугуруслан»

Дата рождения:30 мая 2002 года.

Адрес: город Бугуруслан, улица Монтажников дом 5 квартира 2

Общие сведения о руководителе: Мошнина Зульфия Равильевна,

Муниципальное бюджетное общеобразовательное учреждение

«Средняя общеобразовательная школа №7»

муниципального образования «город Бугуруслан»

Стаж работы в данном учреждении: 6 лет.

Должность: учитель математики.

Первая категория.

Адрес: г. Бугуруслан, 1 микрорайон, дом 19, квартира 29.

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

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

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

Предмет изучения: Свойства функций, содержащих знак модуля.

Тема: Графики функций, содержащих выражения под знаком модуля.

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

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

Методы исследования: поисковый, аналитический.

Исследование проведено по плану:

1.1. Историческая справка. Определение модуля.

1.2 Функциональная зависимость. Определения.

2.1.Построение графиков линейных функций со знаком модуля.

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

3. Построение графика квадратичной функции, содержащей переменную под знаком модуля.

Вывод: При выполнении исследовательской работы я делала такие выводы:

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

- научилась работать с дополнительной литературой и материалами, производить отбор научных сведений;

- приобрела опыт выполнения графических работ на компьютере.

Содержание

Введение…………………………………………………………………………6

1. Графики функций, аналитическое выражение которых содержит знак абсолютной величины.……………………………………………..………….7

1.1. Историческая справка. Определение модуля.…………………………...7

1.2 Функциональная зависимость. Определения…………….....................9

2. Линейные функции и их построение. ……………………………………..10

2.1.Построение графиков линейных функций со знаком модуля…………..11

2.2. Построение графиков линейных функций, содержащих несколько знаков модуля…………………………………………………………………………..14

3. Построение графика квадратичной функции, содержащей переменную под знаком модуля………………………………………………………………….16

3.1. Подготовка к ОГЭ…………………………………………………………22

Заключение……………………………………………………………………..23

Литература………………………………………………………………………25

Приложение……………………………………………………………………...26

Введение.

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

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

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

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

Цель: научиться строить разные графики функций с модулем.

Задачи:

-подобрать и изучить материал по выбранной теме

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

-узнать какие виды графиков с модулем существуют, и изучить каждый отдельно

Методы исследования: поисковый, аналитический.

1. Графики функций, аналитическое выражение которых содержит знак абсолютной величины.

1.1. Историческая справка. Определение модуля.

Модуль – это целый мир геометрических

образов, простых и понятных часто очень

красивых и запоминающихся.

Знак модуля, пожалуй, одно из самых интересных явлений в математике.

Буквенная символика. До ХVI века в математике не было сколько-нибудь развитой единой символики. Каждая операция записывалась полностью словами или специальными знаками – сокращениями, которые использовал только один или несколько учёных. Неизвестные коэффициенты и свободный член уравнения также не имели условных общепризнанных обозначений. В ХVII веке французские учёные Франсуа Виет и Ренэ Декарт разработали единую буквенную математическую символику, которая вскоре получила всеобщее признание. Введено было единое обозначение: неизвестных – последними буквами латинского алфавита – x, y, z, известных – начальными буквами того же алфавита – а, в, с,… и т. д.

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

Великое открытие Декарта. К началу ХVII века алгебра была уже достаточно развитой наукой. Трудами многих поколений учёных были подготовлены условия для нового большого открытия в науке, которое послужило бы толчком к её дальнейшему развитию. Таким открытием явилось введение в математику понятия переменной величины и прямоугольной системы координат. Честь введения в математику функциональной зависимости принадлежит французскому учёному Ренэ Декарту. (приложение 1)

Ренэ Декарт придумал систему прямоугольных координат, которой пользуемся мы, ввёл её в широкое употребление и положил начало развитию важной математической науки – аналитической геометрии. Декарт первым дал геометрическое толкование отрицательным числам, как отрезкам, имеющим определённое направление. Он сделал очень много для усовершенствования алгебры: улучшил систему алгебраических обозначений, предложил буквами х, у,z обозначать переменные, а буквами а, в, с – постоянные; предложил записывать степени так, как пишем мы: а2, в3,с4 и т. д., а алгебраические уравнения – в том виде, в каком пишем их мы. Он же дал правило для определения числа положительных и отрицательных корней уравнения и многое другое. Трудами Декарта алгебра была значительно усовершенствована. Термин «функция» впервые встречается в письме немецкого математика Лейбница к голландскому математику Гюйгенсу в 1694 г. В обычное употребление термин введён в начале ХVIII в. Иоганном Бернулли.

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

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

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

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

Определение. Модуль числа a или абсолютная величина числа a равна a, если a больше или равно нулю и равна -a, если a меньше нуля:

Из определения следует, что для любого действительного числа a,

1.2 Функциональная зависимость. Определения.

График функции. Величины, участвующие в одном и том же явлении, могут быть взаимосвязаны, так что изменение одних из них влечёт за собой соответствующее изменение других. В таких случаях говорят, что между переменными величинами существует функциональная зависимость, причём одну величину называют функцией, или зависимой переменной (её часто обозначают буквой у), а другую – аргументом, или независимой переменной (её обозначают буквой х). Функциональную зависимость между х и у принято обозначать символом у = f(х). Если каждому значению х соответствует больше, чем одно значение у, то такая функция называется многозначной. Исследование многозначных функций сводится обычно к исследованию однозначных.

Определение функции. Переменная величина у называется функцией аргумента х, т. е. у = f (х), если каждому возможному значению х соответствует одно определённое значение у.

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

Горизонтальную ось Ох называют осью абсцисс, вертикальную ось Оу – осью ординат.

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

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

2. Линейные функции и их построение.

Функция – одно из важнейших математических понятий. Функцией называют такую зависимость переменной y от переменной x, при которой каждому значению переменной x соответствует единственное значение переменной у.

Линейная функция — функция вида y =kx+b (для функций одной переменной).

Основное свойство линейных функций: приращение функции пропорционально приращению аргумента. То есть функция является обобщением прямой пропорциональности.

Графиком линейной функции является прямая линия, с чем и связано ее название. Это касается вещественной функции одной вещественной переменной.

Частный случай ~b=0 линейной функции называется однородными линейными функциями (это в сущности синоним прямой пропорциональности), в отличие от b \neq 0 — неоднородных линейных функций. примеров построения линейных функций множество. (приложение 2)

2.1.Построение графиков линейных функций со знаком модуля.

График функции получается из графика функции у=х следующим образом: часть графика, лежащая НАД осью х сохраняется, а часть графика, лежащая ПОД осью х отображается симметрично относительно данной оси.

Сначала начертим прямую, известную широкому кругу лиц:

Начинаем строить график

Часть графика, которая ВЫШЕ оси х, остаётся неизменной, а часть графика, которая НИЖЕ оси х – отображается симметрично в верхнюю полуплоскость:

Аналогично построим график функции

Сначала изобразим график линейной функции :

Построение графика, когда функция под модулем.

То, что ВЫШЕ оси абсцисс – не трогаем, а то, что НИЖЕ – отобразим симметрично относительно оси в верхнюю полуплоскость:

Почувствуем разницу между графиками y = |х| - 3 и y = |х +3| .

y = |х| - 3 y = |х +3|

При построении данных графиков функций можно воспользоваться знаниями, полученными при преобразовании графиков функций y =aх2+n c одной стороны, т. е. график функции y = |х| - 3 можно получить из графика

y = |х| с помощью параллельного переноса вдоль оси Оy на три единицы масштаба вниз, а график функции y = |х +3| из графика функции y = |х| с помощью параллельного переноса вдоль оси Ох на три единицы масштаба влево.

y = |х - m| y = |х| + n

Вывод: о построении графиков функций вида y = |х| + n ; y = |х - m|. т. е. График функции y = |х| + n можно получить из графика y = |х| с помощью параллельного переноса вдоль оси Оy на n единиц масштаба вниз или вверх, а график функции y = |х + m| из графика функции y = |х| с помощью параллельного переноса вдоль оси Ох на m единиц масштаба влево или вправо.

А с другой стороны построить график функции y = |х - m| можно из графика функции y = х – m , оставив без изменения все части графика, которые лежат выше оси абсцисс, а части расположенные ниже её отобразить симметрично.

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

Построим график уравнения y=|||х|-2|-2|.

Здесь при построении графика удобно использовать сдвиги вдоль осей координат. Будем действовать по следующему плану:

Построим “основной” график, т.е. график уравнения y=|х|;

Подвинем построенный график на 2 единицы вниз; получится график уравнения y=|х|-2;

Часть графика, расположенную ниже оси х, заменим ее “зеркальным отражением”, т.е. заменим ее линией, симметричной относительно оси х; получится график уравнения y=||х|-2|;

Сдвинем построенный в п.3 график на 2 единицы вниз; получится график уравнения y=||х|-2|-2;

Часть графика, расположенную ниже оси х, отобразим симметрично относительно этой оси; получим график уравнения y=|||х|-2|-2|.

3. Построение графика квадратичной функции, содержащей переменную под знаком модуля.

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

А.Н. Колмогоров.

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

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

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

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

Пример 1.

Построим график функции у = |х2 – 6х +5|.

Сначала построим параболу у= х2– 6х +5. Чтобы получить из неё график функции у = |х2 - 6х + 5|, нужно каждую точку параболы с отрицательной ординатой заменить точкой с той же абсциссой, но с противоположной (положительной) ординатой. Иными словами, часть параболы, расположенную ниже оси Ох, нужно заменить линией, ей симметричной относительно оси Ох.

Пример 2.

Рассмотрим график функции у = |х|2– 6х +5.

Т. к. |х| возводится в квадрат, то независимо от знака числа х после возведения в квадрат он будет положительным. Отсюда следует, то график функции у =|х|2 - 6х +5 будет идентичен графику функции у = х2 - 6х +5, т.е. графику функции, не содержащей знака абсолютной величины.

Пример 3.

Рассмотрим график функции у = х2 – 6|х| +5.

Воспользовавшись определением модуля числа, заменим формулу

у = х2 – 6|х| +5

Теперь мы имеем дело с хорошо знакомым нам кусочным заданием зависимости. Строить график будем так:

1) построим параболу у = х2 - 6х +5 и обведём ту её часть, которая соответствует неотрицательным значениям х, т.е. часть, расположенную правее оси Оу.

2) в той же координатной плоскости построим параболу у = х2 +6х +5 и обведём ту её часть, которая соответствует отрицательным значениям х, т.е. часть, расположенную левее оси Оу. Обведённые части парабол вместе образуют график функции у = х2 - 6|х| +5.

Пример 4.

Рассмотрим график функции у = |х|2 - 6|х|+5.

Т.к. график уравнения у = |х|2 – 6х +5 такой же, как и график функции без знака модуля (рассмотрено в примере 2) то следует, что график функции у = |х|2 – 6|х| +5 идентичен графику функции у = х2 – 6|х| +5, рассмотренному в примере 3 .

Пример 5.

Построим график функции у = |х2 – 6х| +5.

Для этого построим график функции у = х2 - 6х. Чтобы получить из неё график функции у = |х2 - 6х|, нужно каждую точку параболы с отрицательной ординатой заменить точкой с той же абсциссой, но с противоположной (положительной) ординатой. Иными словами, часть параболы, расположенную ниже оси х, нужно заменить линией ей симметричной относительно оси х. Т.к. нам нужно построить график функции у = |х2 - 6х| +5, то график рассмотренной нами функции у = |х2 - 6х| нужно просто поднять по оси у на 5 единиц вверх.

Пример 6.

Построим график функции у = х2 - |6х+5|. Для этого воспользуемся хорошо нам известной кусочной функцией. Найдём нули функции

у = 6х +5

6х + 5 = 0 при х = ̶

Рассмотрим два случая:

1)Если х ̶ , то уравнение примет вид у = х2 – 6х -5. Построим эту параболу и обведём ту её часть, где х ̶ .

2)Если х ̶ , то уравнение принимает вид у = х2+ 6х +5. Построим эту параболу и обведём ту её часть, которая расположена левее точки с координатами х = ̶.

Пример 7.

Построим график функции у = |х2 – 6|х| +5|.

Для этого мы построим график функции у =х2- 6|х| +5. Построение этого графика мы проводили в примере 3. Т. к. наша функция полностью находится под знаком модуля, то для того, чтобы построить график функции у = |х2 – 6|х| +5|, нужно каждую точку графика функции у = х2 – 6|х|+5 с отрицательной ординатой заменить точкой с той же абсциссой, но с противоположной (положительной) ординатой, т.е. часть параболы, расположенную ниже оси Ох, нужно заменить линией ей симметричной относительно оси Ох.

3.1. Подготовка к ОГЭ. № 23. Постройте график функции у = х2 – 6|x| + 8. Какое наибольшее число общих точек график данной функции может иметь с прямой, параллельной оси абсцисс.

Решение. Приложение 3.

Заключение.

При выполнении исследовательской работы я делала такие выводы:

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

Алгоритм построения графика функции у=f |(х)|

1.Построить график функции у=f(х) для х>0;

2.Построить для х<0 часть графика, симметричную построенной относительно оси ОУ.

Алгоритм построения графика функции у=|f(х) |

1.Построить график функции у=f(х) ;

2. На участках, где график расположен в нижней полуплоскости, т.е., где f(х) <0, строить кривые, симметричные построенным графикам относительно оси абсцисс.

Алгоритм построения графика функции у=|f |(х)| |

1. Построить график функции у=f(х) для х>0.

2. Построить кривую графика, симметричную построенной относительно оси ОУ, т.к. данная функция четная.

3. Участки графика, расположенные в нижней полуплоскости, преобразовывать на верхнюю полуплоскость симметрично оси ОХ.

- приобрела опыт построения графиков таких функций, как:

у=f |(х)|; у = | f (х)|; у=|f |(х)| |;

- научилась работать с дополнительной литературой и материалами, производить отбор научных сведений;

- приобрела опыт выполнения графических работ на компьютере.

После того как я провела опрос среди учеников школы я пришла к выводу что правильно строить графики функций с модулем могут немногие. А именно среди учеников 7 класса всего 10 человек, среди 8 класса 6 человек, среди 9 класса 4 человека.

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

Литература и интернет ресурсы

1.П.Ф. Севрюков, А.Н. Смоляков. Уравнения и неравенства с модулями и методика их решения. Москва. Ставрополь. 2005г.

2.Литвиненко В.Н., Мордкович А.Г.. Практикум по элементарной математике. Алгебра. Тригонометрия. Москва. «Просвещение».1991г.

3.Сборник тестовых заданий по алгебре к государственной (итоговой) аттестации в новой форме. Под редакцией Е.А. Семенко. Краснодар.2006

4. ФИПИ. Федеральный институт педагогических измерений http://5fan.info/qasotrjgeyfsbewpol.html

5. История математики под редакцией А. П. Юшкевича в трёх томах, том II. — М.: Наука, 1970 Математика XVII столетия.

6. И. М.Гельфанд, Е.Г. Глаголева. Функции и графики. Издательство «Наука»

7. Р.А. Калнин. Алгебра и элементарные функции. Издательство «Наука»

8. М.К. Потапов, С.Н. Олехник. Конкурсные задачи по математики, Москва. «Наука»

9. Ю. Н.Макарычев, Н.Г. Миндюк. Дополнительные главы к школьному учебнику. Москва, «Просвещение».

Приложение 1.

Приложение 2.

Приложение 3

§ 10. Построение графиков функций, содержащих модуль

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

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

Пример 12. Постройте график функции.

Решение. Построение графика будем выполнять последовательно. Сначала строим график функции . Затем сдвигаем его на 3 единицы вправо и на 4 единицы вниз. Заметим, что при этом вершина графика окажется в точке с координатами и (рис. 35).

Пример 13. Постройте график функции .

Решение. Построение графика будем выполнять последовательно. Сначала строим график функции как параболу с вершиной в точке , и ветвями, направленными вверх. Затем точки графика, расположенные ниже оси ОХ, – это точки, у которых координата X принадлежит интервалу , – отображаем симметрично относительно этой оси (рис. 36).

Пример 14. Постройте график функции .

Решение. Функция – четная. Ее график симметричен относительно оси OY, причем при неотрицательных X он совпадает с параболой , имеющей вершину , и ветви, направленные вверх. Сначала построим часть данной параболы при неотрицательных Х, а затем полученную кривую симметрично отобразим относительно оси OY (рис. 37).

Упражнения

12. Постройте графики функций:

А) ; б) ;

В) ; г) ;

Д) ; е) .

13. Постройте графики функций:

А) ; б) ;

В) ; г) ;

Д) ; е) .

14. Постройте графики функций:

А) ; б) ;

В) ; г) ;

Д) ; е) .

15. Постройте графики функций:

А) ; б) ;

В) ; г) ;

Д) ; е) .

< Предыдущая   Следующая >

Графики прямой, параболы, гиперболы, с модулем

Пошаговое построение графиков.

«Навешивание» модулей на прямые, параболы, гиперболы.


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

Для понимания друг друга введу немного «обзываний» системы координат:

Для начала построим график прямой y = 2x − 1.

Не сомневаюсь, что ты помнишь. Я напомню себе, что через 2 точки можно провести одну прямую. 

Возьмем значение X = 0 и Х = 1 и подставим в выражение y = 2x − 1, тогда соответственно Y = − 1 и Y = 1

Через данные две точки А = (0; −1) и B = (1; 1) проводим единственную прямую:

А если теперь добавить модуль y = |2x − 1|.

Модуль — это всегда положительное значение, получается, что «y» должен быть всегда положительным.

Значит, если модуль «надет» на весь график, то, что было в нижней части «−y», отразится в верхнюю (как будто сворачиваете лист по оси х и то, что было снизу, отпечатываете сверху).

Получается такая зеленая "галочка".

Красота! А как же будет выглядеть график, если надеть модуль только на «х»: y = 2|x| − 1?

Одна строчка рассуждений и рисуем:

Модуль на «x», тогда в этом случае x = −x, то есть все, что было в правой части, отражаем в левую. А то, что было в плоскости «−x», убираем.

Здесь отражаем относительно оси «y».  Такая же галочка, только теперь через другую ось.

Смертельный номер: y = |2|x| − 1|.

Черную прямую y = 2x − 1 отражаем относительно оси Х, получим y = |2x − 1|. Но мы выяснили, что модуль на х влияет только на левую часть. 

В правой части: y = |2x − 1| и y = |2|x| − 1| идентичны! 


А после этого отражаем относительно оси «y» то, что мы получили справа налево:


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

Разберем по винтикам параболу y = x² + x − 2. Точки пересечения с осью «x» получим с помощью дискриминанта: x₁ = 1 и x₂ = -2.

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

А как будет выглядеть график: y = |x²| + x − 2? Слышу: «Такого мы еще не проходили», а если подумаем? Модуль на x², он же и так всегда положителен, от модуля тут толку, как от стоп-сигнала зайцу − никакого.

При y = x² + |x| − 2 все так же стираем всю левую часть, и отражаем справа налево:

А дальше что мелочиться: рассмотри сразу остальные графики с модулем!

Следующий смертельный номер: |y| = x² + x − 2, подумай хорошенько, а еще лучше попробуй нарисовать сам.

При положительных значениях «y» от модуля нет смысла − уравнения y = x² + x − 2, а при «−y» ничего не меняется, будет так же y = x² + x − 2! 

Рисуем параболу в верхней части системы координат (где у > 0), а затем отражаем вниз.

А теперь сразу комбо:

Cиний: похож на y = x² + |x| − 2, только поднят вверх. Строим график в правой части, а затем отражаем через ось Y влево.

Оранжевый: строим в правой части и отражаем относительно оси Х. Доходим до оси Y и отражаем все что было справа налево. Двойка в знаменателе показывает, что график будет "шире", расходится в бока он быстрее остальных.

Зеленый: Так же начинаем с правой части и отражаем относительно оси оси Y. Получается график y = |x² + x − 2|, но еще есть −2, поэтому опустим график на 2 вниз. Теперь параболы как бы отражается относительно Y = − 2.

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

y = 1/x — простая гипербола, которую проще всего построить по точкам, 6-8 точек должно быть достаточно:

А что будет, если мы добавим в знаменателе «+1»? График сдвинется влево на единицу:

А что будет, если мы добавим в знаменателе «−1»? График сдвинется вправо на единицу.

А если добавить отдельно «+1» y = (1/x) + 1? Конечно, график поднимется вверх на единицу!

Глупый вопрос: а если добавить отдельно «−1» y = (1/x) − 1? Вниз на единицу!

Теперь начнем «накручивать» модули: y = |1/x + 1| — отражаем все из нижней части в верхнюю.

Возьмем другой модуль, мой амбициозный друг, раз ты дошел до этогог места: y = |1/(x + 1)|. Как и выше, когда модуль надет на всю функцию, мы отражаем снизу вверх.

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

Фиолетовый: Вычитаем из дроби −1 и сдвигаем график вниз на единицу. Ставим модуль − отражаем все, что снизу вверх.

Оранжевый: Ставим +1 в знаменателе и график смещается влево на единицу. Вычитаем из дроби −1 и сдвигаем график вниз на единицу. А после этого ставим модуль − отражаем все, что снизу вверх.

Зеленый: Сначала получим фиолетовый график. После этого ставим «−» и отражаем график по горизонтали. Сгибаем лист по оси Х и переводим его вниз. Остается добавить +1, это значит, что его нужно поднять вверх на единицу.

Модули не так уж страшны, если еще вспомнить, что их можно раскрыть по определению:

И построить график, разбив его на кусочно-заданные функции.

Например для прямой:


Для параболы с одним модулем будет два кусочно-заданных графика: 

C двумя модулями кусочно-заданных графиков будет четыре:

Таким способом, медленно и кропотливо можно построить любой график!


Выводы:

  1. Модуль — это не просто две палочки, а жизнерадостное, всегда положительное значение!
  2. Модулю без разницы находится он в прямой, параболе или еще где-то. Отражения происходят одни и те же.
  3. Любой нестандартный модуль можно разбить на кусочно-заданные функции, условия только вводятся на каждый модуль.
  4. Существует большое количество модулей, но парочку вариантов стоит запомнить, чтобы не строить по точкам:
  • Если модуль «надет» на все выражение (например, y = |x² + x − 2|), то нижняя часть отражается наверх.
  • Если модуль «надет» только на х (например, y = x² + |x| − 2), то правая часть графика отражается на левую часть. А «старая» левая часть стирается.
  • Если модуль «надет» и на х, и на все выражение (например, y = |x² + |x| − 2|), то сначала отражаем график снизу вверх, после этого стираем полностью левую часть и отражаем справа налево.
  • Если модуль «надет» на y (например, |y| = x² + x − 2), то мы оставляем верхнюю часть графика, нижнюю стираем. А после отражаем сверху вниз.
Будь в курсе новых статеек, видео и легкого математического юмора.

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

Построение графиков, содержащих знак модуля

Построение графика функции, содержащей переменную

или функцию под знаком модуля согласно определению модуля:

x, если х>=0 f(x), если f(x)>=0

|x| = ; |f(x) | =

-x, если x<0 -f(x), если f(x)<0

Пример:

Построить график функции у=|2x-3|-х.

Рассмотрим два случая.

2х-3>=0 2х-3<0

y=2x-3-x или y=-2x+3-x

x>= x<

y=x-3 y= -3x+3

Таким образом, чтобы построить график функции у=|2x-3|-x, надо построить графики функций, заданными различными выражениями на различных промежутках.

х-3, х>=

у=

- 3х+3, х<

График изображен ниже:

y=|2x-3|-x

Построить график:

  1. Y=|X|+X

  2. Y=|X| · (X-2)

  3. Y=|X+4| · X

  4. Y=

  5. Y=

  6. Y=2–1)

  7. Y=2+4X+3)

  8. Y=

  9. Y=

  10. Y=X - 1 - |X-1|

  11. Y=|3X-4|-X

  12. Y=

13. Y=

  1. Y=

  2. Y=

  3. Y=

  4. Y=X2 - 2|X+1|-1

  5. Y=X+

  6. Y=|X2-4X+3|+2X

  7. Y=

  8. Y=|X2-4|+4X

  9. Y=

Элементарные преобразования графика функции у=f(x)

Если формула зависимости имеют вид |y| = f(x):

  1. Надо построить график у = f(x)

  2. Часть графика, расположенную выше оси Ох (и на самой оси) оставить без изменения

  3. Часть графика расположенную ниже оси Ох стереть

  4. Для оставленной части построить симметричную относительно оси Ох

Пример:

Построить график |y| = 2х-1

Построить график:

  1. Y|=5X-4

  2. |Y|=9-X2

  3. |Y|=

  4. |Y|=(X+4)2-5

  5. |Y|=

  6. |Y|=X+2

  7. |Y|=X2-6X+8

  8. |Y|=X2-4X

  9. X|Y|=2

  10. |Y|=

  11. |Y| · (X+1)=1

  12. |Y|=1-

  13. |Y|=|2X-X2|

  14. Y2=-2X

  15. |Y|=8+2X-X2

  16. Y2=0,5X

Элементарные преобразования графика функции у=f(x)

Если формула зависимости у = f(|x|):

  1. Надо построить график функции у = f(x), часть графика расположенную правее оси Оу(и на самой оси) оставить без изменения

  2. Часть графика расположенную левее оси Оу стереть

  3. Построить для оставленной части симметричную относительно оси Оу

Пример:

Построить график у=2|x|-1

Построить график:

  1. Y=5|X|-5

  2. Y=9-|X|2

  3. Y=

  4. Y=

  5. Y=

  6. Y=(|X|+4)2-5

  7. Y=

  8. Y=

  9. Y=|X|-1

  10. Y=

  11. Y=X2-|X|-6

  12. Y=-X2+6|X|-8

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

2-, если |X|<=4

у= , если |X|>4

  1. Y=X2-|X|-2

  2. Решите уравнение X2+3|X|-18=0 графически.

  3. Y=|X|-X2

  4. Y=

Элементарные преобразования графика функции у=f(x)

Если формула зависимости имеет вид у = |f(x)|,

  1. График функции у = f(x) выше оси Ох (и на самой оси Ох) оставить без изменения

  2. Для части графика расположенной ниже оси Ох строят симметричную относительно

оси Ох

  1. Часть графика расположенная ниже оси Ох стирается.

Пример:

Построить график функции у=|2x-1|

Построить график:

  1. Y=|5X-4|

  2. Y=|9 -X2|

  3. Y=

  4. Y=|(X-4)2-5)|

  5. Y=|X+2|

  6. Y=|X-1|

  7. Y=|X2+2X|

  8. Y=

  9. Y=||

  10. Y=||X2-3|-1|

  11. Y=|X2-1|

  12. Y=|X+1|-2

  13. Y=4+|X-3|

  14. Y=3 ∙ |X-2|

  15. Найдите наибольшее и наименьшее значение функции Y=:

а)на отрезке [-2;2]

б)на луче [0;+ )

в)на луче (- ;3]

г)на отрезке [-5;0]

16.Найдите наименьшее и наибольшее значение функции Y=:

а)на луче (- ;5]

б)на отрезке [4;7]

в)на луче [2;+ )

г)на полуинтервале [-1;6]

17.Решите уравнение графически:

а)|X2-9|=5 б)|X-2|=X2 в)|X+1|= -2X2

г)|X2-1|=|X2-X+1| д)|X-3|=X2+1 е)|X+5|=-X-1

ё) -2(X+2)2 ж) з)(X+3)2

и)-X

Построение графиков уравнений, содержащих несколько модулей

Пример: построить график функции

1). Найти те значения переменной, при которых выражение, стоящее под знаком модуля, равно нулю. ; ; .

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

0 1

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

− 0 − 1 +

− + +

4). Берут промежуток, раскрывают модуль (пользуясь определением модуля) на данном промежутке и упрощают

Составляют формулу кусочной функции

y

Строят график кусочной функции

1

x

0 1

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

2). Найдите множество значений функции и ее наименьшее значение на отрезке . Ответ: , .

3). Найдите множество значений функции и значения, которые функция принимает ровно три раза. Ответ: ; ; .

4). Найдите все значения , при которых значения функции положительны и значения, принимаемые функцией ровно 2 раза. Ответ: ; , .

5). Постройте график функции и для каждого укажите количество общих точек этого графика и прямой .

а). . Ответ: Общих точек нет при ;

При , одна точка;

При и , две точки;

При , бесконечное множество точек.

б). . Ответ: Общих точек нет при ;

При , одна точка;

При и , две точки;

При ,, три точки;

При , четыре точки.

6). Найдите наибольшее и наименьшее значения функции на отрезке . Ответ: ; .

7). Найдите наименьшее значение функции

а). .Ответ: при .

б). .Ответ: при .

9). Докажите, что если , то наименьшее значение функции равно .

10). Исследуйте функцию на промежутки монотонности

а). . Ответ: На промежутках ; функция убывает. На промежутках возрастает.

б). . Ответ: На промежутках ; функция убывает. На промежутках и возрастает. На промежутках и функция постоянна.

11). Постройте графики функций

1). 2).

3). 4).

Решение неравенств, содержащих знак модуля

Неравенства вида

> , где > 0

Если выражение, стоящее под знаком модуля , обозначить через t (f(x) = t), то данное неравенство примет вид > . Используя геометрический смысл модуля (модуль на числовой прямой представляет собой расстояние от точки, которая изображает данное число, до точки ноль). Изображаем на числовой прямой все точки, расстояние от которых до ноля больше .

———∙——————∙—————∙————►t

- 0

t < - или t >

Решаем совокупность неравенств

Пример:

Решите неравенство > 11

Решение: > 11

Пусть , >11

———∙——————∙—————∙————►t

-11 0 11

; ;

Ответ: ; ;

Неравенство вида > , где < 0 верно при всех из области допустимых значений неравенства.

Решите неравенства

1). > 11. Ответ:

2). . Ответ:

3). . Ответ: : .

4). . Ответ: . .

5). . Ответ: .

6). . Ответ: .

7). . Ответ: .

8). . Ответ: .

9). . Ответ: .

10). >2. Ответ: .

Неравенства вида

>

Учитывая свойство модуля =

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

Неравенство > можно заменить равносильным неравенством > это - >0 (-) ∙ (+) >0

Далее решать методом интервалов или заменить совокупностью систем

Аналогично решаются неравенства вида < .

Решите неравенства

1). . Ответ: .

2). Найти целочисленные решения неравенства .

Ответ: -8; -7; -6; … -1;0.

3). . Ответ: .

4). . Ответ: .

5). . Ответ: .

6). . Ответ: .

7). . Ответ: .

8). . Ответ: .

9). . Ответ: .

10). . Ответ: .

11). . Ответ: .

12). . Ответ: .

13). . Ответ: .

14). . Ответ: .

15). . Ответ: .

16). . Ответ: .

17). . Ответ: .

18). . Ответ: .

19). . Ответ: .

20). . Ответ: .

21). . Ответ: .

22). . Ответ: .

23). . Ответ: .

Решение неравенств вида

;

Неравенство

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

.

Неравенство

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

.

.

Решите неравенства

1). . Ответ: .

2). . Ответ: .

3). . Ответ: .

4). . Ответ: .

5). . Ответ: .

6). . Ответ: или .

7). . Ответ: .

8). . Ответ: ; .

9). . Ответ: .

10). . Ответ: .

11). . Ответ: .

12). . Ответ: или .

13). . Ответ: ; .

14). . Ответ: или .

15). . Ответ: .

16). . Ответ: .

17). . Ответ: .

18). . Ответ: .

19). . Ответ: .

20). . Ответ: ; .

Решение неравенств, содержащих несколько модулей методом интервалов

Суть метода состоит в следующем:

Пример:

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

2). Числовую ось разбивают на промежутки точками, соответствующими значениям переменной

1

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

- 0 + 1 +

-1 - - +

4). Берут промежуток, раскрывают каждый модуль, пользуясь определением модуля на данном промежутке, и решают неравенство

5). Проверяют, принадлежат ли найденные решения неравенства рассматриваемому промежутку; если принадлежат, то их включают в ответ

0

2

Если нет – отбрасывают. Так поступают с каждым промежутком.

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

Ответ: -2<<3

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

1). Ответ:

2). Ответ:

3). Ответ:

4). Ответ:

5).Укажите целочисленные решения неравенства Ответ: 3;4

6). Ответ:

7). Ответ:

8). Ответ:

9). Ответ:

10). Ответ:

11). Ответ:

12). Ответ:

13). Ответ:

14). Ответ:

15). Ответ:

16). Ответ:

Решение неравенств, содержащих знак модуля, методом введения новой переменной.

1). Найти область значений переменной, входящей в неравенство.

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

3). Решить неравенство относительно введенной неизвестной.

4). Решить неравенство относительно исходной переменной.

5). Учитывая область допустимых значений исходного неравенства записать ответ.

Пример:

Учитывая свойство модулей имеем Пусть = , , тогда неравенство примет вид =1; =-3. f

Учитывая, что имеем

Учитывая область допустимых значений исходного неравенства Ответ:

Решите неравенства

1). Ответ:

2). Ответ:

3). Ответ:

4). Ответ:

5). Ответ:

6). Ответ:

7). Ответ:

8). Ответ:

9). Ответ:

10). Ответ:

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

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

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

2). График или графики уравнений разбивают координатную плоскость на части.

3). Взять координаты точки, принадлежащей каждой части по очереди и поставить в неравенство. Если координаты точки удовлетворяют неравенству, то эту часть координатной плоскости заштриховать.

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

1). Построим график уравнения .

или

III II I

-1 0 1

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

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

1). .

2). .

3). .

4). .

5). .

6). .

7). .

8). .

9). .

10). .

11). .

12). .

13). .

14). .

15). .

16). .

17). .

18). .

19).

20). .

21). .

22). .

23. .

24). .

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

а) . б).

в) г)

д) е) .

Системы неравенств с параметрами, содержащие знак модуля

1). Найдите все значения параметра , при которых система неравенств имеет единственное решение.

а). Ответ: При .

б). Ответ: При .

2). При каких значениях параметра система неравенств имеет ровно одно решение?. Для всех таких найдите это решение.

а). Ответ: При , ;

При , .

б). Ответ: При , ;

При , .

3). При каких значениях параметра система не имеет решения.

а). Ответ: При .

б). Ответ: При .

4). Для каждого значения параметра решите систему неравенств.

а). Ответ: При , ;

При , ;

При , ;

При , .

б). Ответ: При и , ;

При , ;

При , ;

При , ;

При , .

Нестандартные уравнения и неравенства, содержащие знак модуля

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

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

Решение системы является решением уравнения = .

1). Решите уравнение

Уравнение необходимо решить графически. Ответ:

2). Решите неравенство

. Применить метод оценки. Ответ:

3). Решите уравнение

. Решить уравнение графически. Ответ:

4). Решите уравнение

. Применить свойство: сумма неотрицательных функций равна нулю тогда и только тогда, когда все функции одновременно равны нулю. Ответ:

5). Решите уравнение

.Область допустимых значений (ОДЗ) уравнения состоит из конечного числа значений. Для решения достаточно проверить все эти значения. Ответ:

Применение свойства = для любого

при нахождении значения выражения

Вычислите:

1). Ответ: -6

2). , если t = -10; t = 127. Ответ: -8; 127

3). . Ответ: 0,125

4). . Ответ: -6

5). . Ответ: 2

6). . Ответ: 8

7). + . Ответ: 2

8). + . Ответ: 6

9). + . Ответ: 2

10). + . Ответ: 10

11). . Ответ: -3

12). . Ответ: -6

13). − 0,5. Ответ: 0

14). + . Ответ:1

15). + Ответ: 1

16). . Ответ: 8

17). Найти и , если = - . Ответ: 28; -2

18). Найти и , если = - . Ответ: 40; -2

19). Сравните значение выражения

с числом . Ответ:

20). Сравните значение выражения

с числом . Ответ:

21). Докажите, что выражение является корнем уравнения = 1.

22). Докажите, что выражение является корнем уравнения = 1.

23). Удовлетворяет ли число неравенству 7+58+13>0 .

Ответ: нет

24). Удовлетворяет ли число неравенству 11+26-730 .

Ответ: да

Л и т е р а т у р а

1). Алгебра: 8; 9; 10 – 11 класс.

Авторы: А.Г.Мордкович, Т.Н. Мишустина, Е.Е. Тульчинская.

2). Задания по математике для подготовки к письменному экзамену в 9 классе.

Авторы: Л.И. Звавич, Д.И.Аверьянов, Б.П. Пигарёв, Т.Н. Грушанина.

3). Сборник задач по алгебре 8 – 9 класс.

Авторы: М.Л. Галицкий,А.М. Гольдман, Л.И. Звавич.

4). Сборник для проведения письменного экзамена за курс средней школы 11 класс.

Авторы: Г.В. Дорофеев, Г.К.Муравин, Е.А.Седова.

5). Алгебраический тренажер.

Авторы: А.Г. Мерзляк,В.Б.Полонский, М.С.Якир

6). Материалы ЦТ и ЭГЭ за 2002 – 2005 годы.

7). Математика. Самостоятельные и контрольные работы 8; 9; 10 – 11 классы.

Авторы: А.П. Ершова, В.В. Голобородько.

8). Различные сборники для поступающих в В У З Ы.

Plotting - документация SymPy 1.8

Строит трехмерный поверхностный график.

Использование

Отдельный участок

plot3d (expr, range_x, range_y, ** kwargs)

Если диапазоны не указаны, используется диапазон по умолчанию (-10, 10).

Множественный график с одинаковым диапазоном.

plot3d (expr1, expr2, range_x, range_y, ** kwargs)

Если диапазоны не указаны, используется диапазон по умолчанию (-10, 10).

Несколько графиков с разными диапазонами.

plot3d ((expr1, range_x, range_y), (expr2, range_x, range_y), ..., ** kwargs)

Диапазоны должны быть указаны для каждого выражения.

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

Аргументы

expr : Выражение, представляющее функцию вдоль x.

range_x : (x, 0, 5), кортеж из трех элементов, обозначающий диапазон x Переменная.

range_y : (y, 0, 5), кортеж из трех элементов, обозначающий диапазон переменной y

.

Аргументы ключевого слова

Аргументы для SurfaceOver2DRangeSeries class:

nb_of_points_x : внутр. Диапазон x выбирается равномерно на nb_of_points_x баллов.

nb_of_points_y : внутр. Диапазон y выбирается равномерно при nb_of_points_y баллов.

Эстетика:

surface_color : функция, возвращающая значение с плавающей запятой. Задает цвет для поверхность участка. См. sympy.plotting.Plot для более подробной информации.

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

Аргументы за Участок класс:

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

Примеры

 >>> из символов импорта sympy
>>> из sympy.plotting import plot3d
>>> x, y = символы ('x y')
 

Отдельный участок

 >>> plot3d (x * y, (x, -5, 5), (y, -5, 5))
Объект участка, содержащий:
[0]: декартова поверхность: x * y для x над (-5.0, 5.0) и y больше (-5.0, 5.0)
 

(png, hires.png, pdf)

Несколько участков с одинаковым диапазоном

 >>> plot3d (x * y, -x * y, (x, -5, 5), (y, -5, 5))
Объект участка, содержащий:
[0]: декартова поверхность: x * y для x больше (-5,0, 5,0) и y больше (-5,0, 5,0)
[1]: декартова поверхность: -x * y для x больше (-5.0, 5.0) и y больше (-5.0, 5.0)
 

(png, hires.png, pdf)

Несколько графиков с разными диапазонами.

 >>> plot3d ((x ** 2 + y ** 2, (x, -5, 5), (y, -5, 5)),
... (х * у, (х, -3, 3), (у, -3, 3)))
Объект участка, содержащий:
[0]: декартова поверхность: x ** 2 + y ** 2 для x больше (-5,0, 5,0) и y больше (-5,0, 5,0)
[1]: декартова поверхность: x * y для x больше (-3,0, 3,0) и y больше (-3,0, 3,0)
 

(png, hires.png, pdf)

Введение в функции и модули

1.Основы функций

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

код Python

              определение f (x):
    вернуть x ** 3-7.0 * х ** 2 + 14,0 * х-5,0 
         

Обратите внимание на элементы определения функции. Мы начинаем с ключевого слова def , за которым следует имя функции (в данном случае f ). В круглых скобках () мы указываем параметры функции: это переменные, которые функция будет использовать. В этом случае x - единственный параметр, передаваемый функции. Строка определения заканчивается двоеточием, а тело функции имеет отступ.

Отступ помещает тело функции в новый блок (дополнительную информацию о блоках см. В справочнике Python).В теле функции у нас есть оператор return . Return буквально возвращает или выводит то, что было достигнуто в предыдущем коде, и завершает блок. Допускается наличие более одного оператора возврата в функции, но функция прекратит выполнение, как только будет достигнута одна из них; золотое правило - иметь не более одного оператора возврата на блок. Позже мы увидим более сложную функцию, которая имеет другой блок внутри тела функции и два оператора возврата вместо одного.

Мы вызываем функцию для некоторой переменной x в нашем коде, просто набрав f (x) ; Затем Python заменит значение из оператора return вместо f (x) :

код Python

              >>> х = 5
>>> f (x)
15.0
>>> f (-1) # мы можем вызывать нашу функцию непосредственно с литералом
-27.0
>>> f (-1) ** 2 + f (-2) # выражения вида f (x) обрабатываются Python как литералы
660,0 
         

Мы должны быть осторожны, чтобы передать в функции параметры правильного типа; например, передача str в f приведет к ошибке:

код Python

              >>> f ('а')
Отслеживание (последний вызов последний):
  Файл "C: \ ", строка 1, в 
  Файл "C: \ ", строка 2, в f
TypeError: неподдерживаемые типы операндов для ** или pow (): 'str' и 'int' 
         

Конечно, определенная нами функция может использовать некоторые другие функции, определенные ранее.Допустим, мы уже определили функцию под названием power3 (x) и другую под названием multiply (x, y) :

.

код Python

              def power3 (x):
    вернуть х * х * х
def multiply (x, y):
    возврат x * y 
         

Обратите внимание, что функция multiply принимает два параметра, разделенных запятыми в определении функции.Функцию g можно записать с помощью power3 и multiply :

код Python

              def g (x):
    вернуть power3 (x) -multiply (7.0, x ** 2) + multiply (14.0, x) -5.0 
         

Кто-то может сказать, что это утомительно. В самом деле, полезно использовать функции только в качестве замены сложного, часто встречающегося кода.Бессмысленно определять функцию power3 , когда мы могли бы так же легко записать x 3 на ее месте, когда нам нужно. Вот более сложный пример функции:

код Python

              def найти (L, x):
    '' 'Для данного списка L и значения x вернуть индекс первого вхождения x в L или вернуть длину L, если x не
    в L '' '
 
    для i в диапазоне (0, len (L)):
        если L [i] == x:
            вернуться я
    возвратная линза (L) 
         

Комментарий в начале тела функции называется строкой документации и объясняет, что функция делает для всех, кто читает ваш код.Строка документации будет отображаться, когда пользователь вызывает метод справки для вашей функции. Важно писать строки документации для всех функций; без строки документации потребуется время, чтобы понять, что делает этот пример функции!
Обратите внимание, что эта функция имеет два оператора возврата. Это нормально, потому что один из них всегда будет достигнут раньше другого. Функция прекращает выполнение, как только достигает оператора возврата, и возвращаемое значение будет только из этого оператора. Функция также может вообще не иметь оператора возврата, и в этом случае она прекращает выполнение после выполнения всего кода в теле функции.В этом случае функция все равно что-то сделает, когда мы ее вызовем, но не вернет значение:

код Python

              из pylab import *
def граф (L1, L2):
    '' 'Для двух списков L1 и L2 одинаковой длины постройте упорядоченный
    пары (x, y), где x - элемент L1, а y - элемент L2
    с тем же индексом '' '
 
    участок (L1, L2)
    показать()
 
>>> L1 = [1,2, 3]
>>> L2 = [3, 4,5]
>>> graph (L1, L2) # график будет отображаться после выполнения этой строки
>>> x = graph (L1, L2) # график будет отображаться снова, потому что функция вызывается
>>> х
>>> 
         

Обратите внимание, что в x не было сохранено никакого значения, потому что наша функция не вернула никакого значения! Мы должны быть очень осторожны с этим, так как это может привести к ошибкам; Python не будет сообщать нам, что функция не возвращает значение, вместо этого он просто не будет хранить какое-либо значение в x .

Задание 1:

В одном из предыдущих заданий вас попросили вернуть период обращения по круговой орбите с радиусом R частицы в гравитационном поле массивного тела M . Мы написали это как обычный код, но гораздо эффективнее инкапсулировать его в функцию, чтобы мы могли использовать его, когда захотим, без повторного ввода. Напишите функцию периода, которая принимает параметры M и R и возвращает период. Solution: solution_activity_1.pdf

2. Импорт модулей и математических функций

Мы можем сохранить набор функций в отдельном файле, чтобы использовать их в других программах, которые мы пишем; такой набор функций называется модулем . Вы можете сохранить функцию f (x) , присвоив ей суффикс .py . Назовем его cubicpoly.py . Если позже он будет использоваться в качестве модуля, Python должен найти файл. Python выполняет поиск сначала в текущем каталоге, а затем в списке каталогов, который называется путем поиска.Если вы запускаете Python в интерактивном режиме, может быть не так ясно, каков путь поиска. Вы можете узнать набрав:

код Python

              import sys
печать (sys.path) 
         

Если он не содержит нужного вам каталога, вы можете добавить строку, содержащую имя каталога, в этот список, прежде чем пытаться импортировать модуль из этого каталога.Например, чтобы добавить диск Windows C к своему пути, введите:

код Python

              sys.path.append ('C: \\') 
         

Теперь в окне оболочки Python вы сможете импортировать модуль и использовать свою функцию:

код Python

              от Cubicpoly import f
f (3) 
         

Python оценит функцию для x = 3.
Стандартные математические функции, такие как sin , log , sqrt и т. Д., Не являются частью основного языка, но предоставляются стандартной библиотекой в ​​модуле math . Вот как получить доступ к модулю, используя математику в качестве примера в программе:

  • Импортируйте модуль и используйте объекты из модуля:

код Python

              импорт математики
печать (math.sin (0.5)) 
         
  • Обратите внимание, что мы должны указать, что sin исходит из модуля math, набрав math.грех. Если мы этого не сделаем, Python запутается и вернет ошибку.
  • Используйте сокращения:

код Python

              импортировать математику как m
печать (m.sin (0,5))
печать (m.pi) 
         
  • Этот пример также показывает, что математический модуль содержит псевдоним для π, который в коде обозначается как pi ; в общем, мы можем включать переменные в модули, которые делаем сами.
  • Импортируйте необходимые объекты явно:

код Python

              из математического импорта sin, пи
печать (грех (0.5))
печать (пи) 
         

Вы можете импортировать все объекты из модуля, используя «подстановочный знак» *:

код Python

              из математического импорта *
печать (cos (pi / 3), журнал (54,3), sqrt (6)) 
         

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

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

код Python

              # определения функций здесь
 
если __name__ == "__main__":
    # здесь идет дополнительный код 
         

Это гарантирует выполнение блока кода только в том случае, если мы запускаем этот файл напрямую (делая его «основным» файлом).Если он импортируется в другой файл и мы его запускаем, код не будет выполняться.

Действие 2:

Напишите функцию resolve_linear (a, b) , которая вернет корень линейного уравнения ax + b = 0 или вернет «Нет решений», если уравнение не имеет решение или вернуть «Все действительные числа», если все действительные числа удовлетворяют уравнению. Напишите функцию resolve_quadratic (a, b, c) , которая будет возвращать корни квадратного уравнения ax ² + bx + c = 0 (придумайте творческий способ вернуть оба корня и даже корни) если они сложные), или вернуть «Нет решений», если уравнение не имеет решения, или вернуть «Все комплексные числа», если все комплексные числа удовлетворяют уравнению.Поместите эти две функции в модуль под названием algebra.py . Теперь напишите другую программу, которая предлагает пользователю выбрать решение линейного или квадратного уравнения, позволяет пользователю ввести все необходимые коэффициенты, а затем использует соответствующую функцию из алгебры для отображения решений. Решение: algebra.py solution_activity_2.py

Вот несколько вопросов, чтобы попрактиковаться в том, что вы узнали:
functions_and_modules.questions.pdf
functions_and_modules.solutions.pdf

Shiny - Модульное приложение Shiny, код

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

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

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

В информатике традиционное решение проблемы конфликтов имен - это пространство имен .Пока имена уникальны в пределах пространства имен и нет двух пространств имен с одинаковыми именами, тогда каждая комбинация пространства имен / имени гарантированно будет уникальной. Многие системы позволяют вам вкладывать пространства имен, поэтому для пространства имен не требуется глобально уникальное имя, только уникальное в пределах своего родительского пространства имен.

Shiny modules решает проблему пространств имен в Shiny UI и логике сервера, добавляя уровень абстракции помимо функций.

Примечание: До Shiny 1.5.0 мы рекомендовали использовать callModule () для вызова модулей. Начиная с версии 1.5.0, мы рекомендуем использовать moduleServer () вместо этого, поскольку он имеет более простой синтаксис для использования модуля. Кроме того, модули нового стиля можно тестировать с помощью функции testServer () , также представленной в Shiny 1.5.0. Если вы хотите увидеть, как перейти от старых модулей к новым и сравнить их, см. Раздел «Переход с callModule на moduleServer » ниже.

Простой модуль

Вот небольшое приложение, демонстрирующее простой модуль «счетчика»:

  библиотека (блестящая)

counterButton <- function (id, label = "Counter") {
  нс <- NS (идентификатор)
  tagList (
    actionButton (ns ("кнопка"), label = label),
    verbatimTextOutput (ns ("выход"))
  )
}

counterServer <- function (id) {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      count <- reactiveVal (0)
      Наблюдение за событием (input $ button, {
        счетчик (счетчик () + 1)
      })
      output $ out <- renderText ({
        считать()
      })
      считать
    }
  )
}

ui <- fluidPage (
  counterButton ("counter1", "Counter # 1")
)

server <- функция (ввод, вывод, сеанс) {
  counterServer ("counter1")
}

shinyApp (ui, server)  
  1. NS () используется в counterButton () для инкапсуляции пользовательского интерфейса модуля.
  2. counterServer () - это функция, которая вызывает moduleServer () .
  3. Вызов moduleServer () передается id , а также функции модуля .
  4. В этом конкретном примере функция модуля возвращает реактивное значение, но может возвращать любое значение.
  5. Внутри приложений server функция, counterServer () вызывается для инициализации модуля.

Если это все имеет для вас смысл, отлично! В противном случае читайте подробности.

Представляем блестящие модули

Модуль Shiny - это часть приложения Shiny. Его нельзя запустить напрямую, как приложение Shiny. Вместо этого он включен как часть более крупного приложения (или как часть более крупного модуля Shiny - их можно компоновать).

Модули

могут представлять вход, выход или и то, и другое. Они могут быть такими же простыми, как один выход, или такими сложными, как интерфейс с несколькими вкладками, украшенный элементами управления / выходами, управляемыми несколькими реактивными выражениями и наблюдателями.

После создания модуль Shiny можно легко повторно использовать - будь то в разных приложениях или несколько раз в одном приложении (например, набор элементов управления, которые должны отображаться на нескольких вкладках сложного приложения). Одним из возможных мотивов создания модулей является объединение их в пакеты R для использования другими авторами Shiny. Еще одна возможная мотивация - разбить сложное приложение Shiny на отдельные модули, каждый из которых можно рассматривать независимо; такие модули, вероятно, не имеют потенциала для повторного использования, но они служат важной цели в приложении.

Создание блестящих модулей

Модуль состоит из двух функций, которые представляют 1) часть пользовательского интерфейса и 2) фрагмент серверной логики, использующей этот пользовательский интерфейс - аналогично тому, как приложения Shiny разделяются на пользовательский интерфейс и логику сервера.

Действительно, содержимое вашего пользовательского интерфейса и серверных функций будет очень похоже на обычную логику Shiny UI / server. Но упаковка должна отличаться в нескольких важных аспектах.

Создание пользовательского интерфейса

Функция пользовательского интерфейса модуля должна иметь имя с суффиксом Input , Output или UI ; например, csvFileUI , zoomableChoroplethOutput или tabOneUI .

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

Вот пример модуля ввода файла CSV:

  # Функция пользовательского интерфейса модуля
csvFileUI <- function (id, label = "CSV file") {
  # `NS (id)` возвращает функцию пространства имен, которая была сохранена как `ns` и будет
  # вызвать позже.нс <- NS (идентификатор)

  tagList (
    fileInput (ns ("файл"), метка),
    checkboxInput (ns ("заголовок"), "Имеет заголовок"),
    selectInput (ns ("цитата"), "Quote", c (
      "Нет" = "",
      "Двойная кавычка" = "\" ",
      "Одиночная кавычка" = "'"
    ))
  )
}  

Тело этой функции очень похоже на код пользовательского интерфейса для приложения Shiny. Основные отличия:

  1. Тело функции начинается с оператора ns <- NS (id) . Все тела функций пользовательского интерфейса должны начинаться с этой строки.Он берет строку id и создает функцию пространства имен .
  2. Все идентификаторы ввода и вывода, которые появляются в теле функции, должны быть заключены в вызов ns () . В этом примере показано, что аргументов inputId заключены в ns () , например нс («файл») ). Если бы у нас был plotOutput в нашем пользовательском интерфейсе, мы бы также хотели использовать ns () при объявлении, например, outputId или brush ID.
  3. Результаты заключены в tagList вместо fluidPage , pageWithSidebar и т. Д. Вам нужно использовать tagList , только если вы хотите вернуть фрагмент пользовательского интерфейса, состоящий из нескольких объектов пользовательского интерфейса; если вы просто возвращали div или один ввод, вы можете пропустить tagList .

По общему признанию, механизм ns () не очень элегантен, но то, что он нам дает, того стоит. Благодаря пространству имен нам нужно только убедиться, что идентификаторы «файл» , «заголовок» и «цитата» являются уникальными в рамках этой функции , а не уникальными для всего приложения .

Написание серверных функций

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

Функции сервера модуля

должны называться так же, как соответствующие им функции пользовательского интерфейса модуля, но с суффиксом server вместо суффикса Input / Output / UI . Поскольку наша функция пользовательского интерфейса называлась csvFileUI , мы будем называть нашу серверную функцию csvFileServer .

Внутри csvFileServer есть вызов moduleServer () , которому передаются две вещи. Один - это id , а второй - функция модуля :

  # Модуль серверной функции
csvFileServer <- function (id, stringsAsFactors) {
  moduleServer (
    я бы,
    ## Ниже представлена ​​функция модуля
    функция (ввод, вывод, сеанс) {
      # Выбранный файл, если есть
      userFile <- reactive ({
        # Если файл не выбран, ничего не делайте
        проверить (нужно (input $ file, message = FALSE))
        input $ file
      })

      # Данные пользователя, проанализированные во фрейм данных
      dataframe <- реактивный ({
        читать.csv (userFile () $ datapath,
          заголовок = ввод $ заголовок,
          quote = input $ quote,
          stringsAsFactors = stringsAsFactors)
      })

      # Мы можем запустить сюда наблюдателей, если захотим
      наблюдать({
        msg <- sprintf ("Файл% s был загружен", userFile () $ name)
        кошка (сообщение, "\ n")
      })

      # Возвращаем реактив, который дает фрейм данных
      возврат (фрейм данных)
    }
  )
}  

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

Внутри csvFileServer () находится вызов функции moduleServer () . Этой функции передается переменная id , а также функция модуля .Вы можете заметить много общего между функцией модуля и обычной функцией сервера Shiny. Его три параметра - вход , выход и сеанс - должны быть знакомы: каждая функция модуля должна принимать эти три параметра. Функция moduleServer () вызывает функцию модуля особым образом, создавая специальные объекты input , output и session , которым известен идентификатор id .

Внутри функции модуля он может использовать параметры из внешней функции.В этом примере это внешняя функция csvFileServer () , а ее параметр stringsAsFactors используется внутри функции модуля. Вы можете иметь столько или меньше дополнительных параметров, сколько захотите, включая ... , если это имеет смысл, и вы можете использовать их для чего угодно внутри тела функции.

Внутри функции модуля мы можем использовать input $ file для ссылки на компонент ns («файл») в функции пользовательского интерфейса. Если бы в этом примере были выходы, мы могли бы аналогичным образом сопоставить нс ("график") с output $ plot , например.Объекты input , output и session , которые мы предоставили, являются особыми, поскольку они используют id , чтобы ограничить их определенным пространством имен, которое соответствует нашей функции пользовательского интерфейса.

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

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

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

  myModule ("myModule1", реактивный (вход $ checkbox1))  

Использование модулей

Предполагая, что загружены указанные выше функции csvFileUI и csvFileServer (подробнее об этом чуть позже), вы бы использовали их в приложении Shiny следующим образом:

  библиотека (блестящая)

ui <- fluidPage (
  sidebarLayout (
    sidebarPanel (
      csvFileUI ("файл данных", "Данные пользователя (формат .csv)")
    ),
    mainPanel (
      dataTableOutput («таблица»)
    )
  )
)

server <- функция (ввод, вывод, сеанс) {
  файл данных <- csvFileServer ("файл данных", stringsAsFactors = FALSE)

  output $ table <- renderDataTable ({
    файл данных()
  })
}

shinyApp (ui, server)  

Функция пользовательского интерфейса csvFileUI вызывается напрямую, используя «файл данных» в качестве идентификатора id .В этом случае мы вставляем сгенерированный пользовательский интерфейс на боковую панель.

Функция сервера модуля вызывается с помощью csvFileServer () , с идентификатором id , который мы будем использовать в качестве пространства имен; он должен быть точно таким же, как аргумент id , который мы передали csvFileUI . Вызов функции сервера модуля также передается с параметром stringsAsFactors = FALSE .

Как и все модули Shiny, csvFileUI можно встроить в одно приложение более одного раза.Каждому вызову должен быть передан уникальный id , и каждый вызов должен иметь соответствующий вызов csvFileServer () на стороне сервера с тем же id .

Пример вывода

Вот пример модуля, который состоит из двух связанных диаграмм рассеяния (при выборе области на одном графике будут выделены наблюдения на обоих графиках).

  библиотека (блестящая)
библиотека (ggplot2)  

Сначала мы создадим функцию пользовательского интерфейса модуля. Нам нужны два графика, plot1 и plot2 , бок о бок с общим идентификатором кисти brush .(Обратите внимание, что идентификатор кисти должен быть заключен в ns () , как и идентификаторы plotOutput.)

  connectedScatterUI <- function (id) {
  нс <- NS (идентификатор)

  FluidRow (
    column (6, plotOutput (ns ("plot1"), brush = ns ("brush))),
    column (6, plotOutput (ns ("plot2"), brush = ns ("brush")))
  )
}  

Далее идет функция сервера модуля. Помимо обязательных параметров input , output и session , нам нужно знать фрейм данных для построения ( данных ) и имена столбцов, которые должны использоваться как x и y для каждого графика ( слева). и справа ).

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

  connectedScatterServer <- function (id, data, left, right) {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      # Дает фрейм данных с дополнительным столбцом selected_
      # который указывает, очищено ли это наблюдение
      dataWithSelection <- реактивный ({
        brushtedPoints (данные (), вход $ brush, allRows = TRUE)
      })

      output $ plot1 <- renderPlot ({
        scatterPlot (dataWithSelection (), left ())
      })

      output $ plot2 <- renderPlot ({
        scatterPlot (dataWithSelection (), right ())
      })

      возврат (dataWithSelection)
    }
  )
}  

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

Для ясности и простоты тестирования давайте поместим код построения в отдельную функцию. Вызов scale_color_manual устанавливает цвета невыделенных и выбранных точек, а guide = FALSE скрывает легенду.

  scatterPlot <- function (data, cols) {
  ggplot (данные, aes_string (x = cols [1], y = cols [2])) +
    geom_point (aes (цвет = selected_)) +
    scale_color_manual (values ​​= c ("черный", "# 66D65C"), guide = FALSE)
}  

Чтобы увидеть этот модуль в действии, щелкните здесь.

Модули раскроя

Модули

могут использовать другие модули. При этом, когда функция пользовательского интерфейса внешнего модуля вызывает функцию пользовательского интерфейса внутреннего модуля, убедитесь, что id заключен в ns () . В следующем примере, когда externalUI вызывает innerUI , обратите внимание, что аргумент id равен нс ("inner1") :

  innerUI <- function (id) {
  нс <- NS (идентификатор)
  «Это внутренний интерфейс»
}

externalUI <- function (id) {
  нс <- NS (идентификатор)
  wellPanel (
    innerUI (нс ("внутренний1"))
  )
}  

Что касается функций сервера модуля, просто убедитесь, что вызов callModule для внутреннего модуля происходит внутри функции сервера внешнего модуля.Обычно нет необходимости использовать нс () .

  innerServer <- function (id) {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      # здесь внутренняя логика
    }
  )
}

externalServer <- function (id) {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      innerResult <- innerServer ("внутренний1")
      # здесь внешняя логика
    }
  )
}  

Использование renderUI в модулях

Внутри модуля вы можете использовать uiOutput / renderUI .Если ваш блок renderUI сам содержит входы / выходы, вам нужно использовать ns () для обертывания аргументов идентификатора, как в примерах выше. Но эти нс экземпляров были созданы с использованием NS (id) , и в этом случае нет параметра id для использования. Что делать?

Параметр session может предоставить вам ns ; просто позвоните по номеру ns <- session $ ns . Это поместит идентификатор в то же пространство имен, что и сеанс.

  columnChooserUI <- function (id) {
  нс <- NS (идентификатор)
  uiOutput (ns ("элементы управления"))
}

columnChooserServer <- функция (идентификатор, данные) {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      output $ controls <- renderUI ({
        ns <- сессия $ ns
        selectInput (ns ("col"), "Columns", names (data), multiple = TRUE)
      })

      возврат (реактивный ({
        проверить (нужно (input $ col, FALSE))
        данные [, вход $ col]
      }))
    }
  )
}  

Упаковочные модули

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

Есть несколько вариантов.

Встроенный код

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

Если вы используете макет файла в стиле app.R (как пользовательский интерфейс приложения, так и логику сервера в одном файле), то вы можете просто включить код для функций вашего модуля прямо в этот файл перед пользовательским интерфейсом приложения и логикой сервера.

Если вы используете ui.Разметка файла в стиле R / server.R, добавьте файл global.R в каталог приложения (если у вас его еще нет) и поместите туда пользовательский интерфейс и функции сервера. Файл global.R будет загружен перед ui.R или server.R.

Если вам нужно определить много модулей или модулей, содержащих много кода, это может привести к раздутому файлу global.R / app.R.

В сценарии R в подкаталоге R /

Вы можете создать отдельный сценарий R (файл .R) для модуля в подкаталоге R / вашего приложения.Он будет автоматически получен (начиная с Shiny 1.5.0) при загрузке приложения.

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

В сценарии R в другом месте каталога приложения

Вы можете создать отдельный сценарий R (файл .R) для модуля либо непосредственно в каталоге приложения, либо в подкаталоге. Затем вызовите source ("path-to-module.R") из global.R (при использовании ui.R / server.R) или app.R. Это добавит функции вашего модуля в глобальную среду.

В версиях Shiny до 1.5.0 это был рекомендуемый метод, но с 1.5.0 и новее мы рекомендуем предыдущий метод, когда автономный сценарий R находится в подкаталоге R /.

R упаковка

Для модулей, которые предназначены для повторного использования в приложениях, рассмотрите возможность создания пакета R. Если вы никогда не делали этого раньше, то хорошим ресурсом является книга Хэдли Уикхэм R Packages, которая находится в свободном доступе в Интернете.

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

Переход с модуля вызова

на модуль на модуль Сервер

До Shiny 1.5.0 единственный способ использовать функцию модуля был с callModule ; в Shiny 1.5.0 мы добавили функцию moduleServer и рекомендуем использовать ее вместо callModule , потому что синтаксис для пользователя модуля более согласован с частью пользовательского интерфейса и несколько проще для понимания.(Обратите внимание, что UI-часть модулей не изменилась.) Модули нового стиля также можно тестировать с помощью функции testServer , также представленной в Shiny 1.5.0.

Вот пример модуля старого образца. Часть, на которую следует обратить внимание, - это определение myModule и его соответствующее использование в функции сервера с callModule :

.
  # Определение модуля, старый метод
myModuleUI <- function (id, label = "Введите текст:") {
  нс <- NS (идентификатор)
  tagList (
    textInput (ns ("txt"), label),
    textOutput (ns ("результат"))
  )
}

myModule <- function (input, output, session, prefix = "") {
  output $ result <- renderText ({
    paste0 (префикс, toupper (ввод $ txt))
  })
}


# Использовать модуль в приложении
ui <- fluidPage (
  myModuleUI ("myModule1")
)
server <- функция (ввод, вывод, сеанс) {
  callModule (myModule, "myModule1", prefix = "Преобразовано в верхний регистр:")
}
shinyApp (ui, server)  

Вот то же приложение с новым методом, использующим moduleServer () .На этот раз мы создаем функцию с именем myModuleServer , и в серверной функции приложения мы вызываем эту функцию напрямую (вместо использования callModule () .

  # Определение модуля, новый метод
myModuleUI <- function (id, label = "Введите текст:") {
  нс <- NS (идентификатор)
  tagList (
    textInput (ns ("txt"), label),
    textOutput (ns ("результат"))
  )
}

myModuleServer <- function (id, prefix = "") {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      output $ result <- renderText ({
        paste0 (префикс, toupper (ввод $ txt))
      })
    }
  )
}


# Использовать модуль в приложении
ui <- fluidPage (
  myModuleUI ("myModule1")
)
server <- функция (ввод, вывод, сеанс) {
  myModuleServer ("myModule1", prefix = "Преобразовано в верхний регистр:")
}
shinyApp (ui, server)  

Старая и новая версии приложения ведут себя одинаково.Обратите внимание, однако, что в новой версии использование модуля в приложении более согласовано: myModuleUI ("myModule1") и myModuleServer ("myModule1", prefix = "Преобразовано в верхний регистр:") .

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

  # Старомодные модули
myModule <- function (input, output, session, prefix = "") {
  output $ result <- renderText ({
    paste0 (префикс, toupper (ввод $ txt))
  })
}  

А вот и новый метод:

  # Модули нового стиля
myModuleServer <- function (id, prefix = "") {
  moduleServer (
    я бы,
    функция (ввод, вывод, сеанс) {
      output $ result <- renderText ({
        paste0 (префикс, toupper (ввод $ txt))
      })
    }
  )
}  

В старой версии функция myModule принимает вход , выход и сеанс в качестве параметров вместе с любыми дополнительными пользовательскими параметрами - в данном случае префиксом .В новой версии функция просто берет id и дополнительные пользовательские параметры ( префикс ).

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

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

  # Старомодные модули
server <- функция (ввод, вывод, сеанс) {
  callModule (myModule, "myModule1", prefix = "Преобразовано в верхний регистр:")
}  

Новый метод более простой: он просто вызывает функцию myModuleServer .

  # Модули нового стиля
server <- функция (ввод, вывод, сеанс) {
  myModuleServer ("myModule1", prefix = "Преобразовано в верхний регистр:")
}  

Для получения дополнительной информации по этой теме см. Следующие ресурсы: