Опубликован: 27.12.2010 | Доступ: свободный | Студентов: 835 / 131 | Оценка: 5.00 / 5.00 | Длительность: 18:38:00
ISBN: 978-5-9556-0117-5
Специальности: Математик
Лекция 3:

Элементы управления и динамика

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >

Функция Manipulate[]

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

  • Manipulate[expr,{u,umin,umax}] - параметр u меняется на отрезке от umin до umax (управляется ползунком Slider );
  • Manipulate[expr,{u,{xmin,ymin},{xmax,ymax}}] - параметр u меняется в прямоугольнике, с нижним левым углом в {xmin,ymin} и верхним правым углом в {xmax,ymax} (двумерный ползунок Slider2D );
  • Manipulate[expr,{u,umin,umax,du}] - параметр u меняется ползунком с шагом du ;
  • Manipulate[expr,{{u,uinit},umin,umax}] - параметру u присваивается начальное значение uinit ;
  • Manipulate[expr,{{u,uinit},umin,umax,du}] - параметру u присваивается начальное значение uinit и он меняется с шагом du ;
  • Manipulate[expr,{u,{u1,u2,...}}] параметр u пробегает дискретный набор значений {u1, u2,...} ; при этом если список значений короткий, то u управляется строкой кнопок ( Setter Bar ), а если список длинный - то выпадающим меню ( Popup Menu );
  • Manipulate[expr,{u,color}] - параметр u задается с помощью цветового ползунка;
  • Manipulate[expr,{u,{True,False}}] - параметр u задается с помощью флаговой кнопки CheckBox ;
  • Manipulate[expr,{u,Locator}] - параметр u задается с помощью локатора Locator ;
  • Manipulate[expr,{{u,uinit},Locator}] - начальное положение локатора равно uinit.

Можно также задавать не один параметр, а несколько:

In[79]: =
        Manipulate[
           Plot [λ f [a (x - loc[[1]]) + b] n g [x - loc[[l]] ] + loc[[2]] ,
                   {x,  0, [[1]]},  PlotRange -> {{0, pt [[1]]},   {-pt[[1]], pt[[2]]}},
              PlotStyle -> {color} , Axes -> axes] ,
           {λ , 1, 2},
           {pt,  {2 π,  1},   {4 π 2}}, 
           {n, 1, 5,  1}, 
           {{a,  1}, 0, 2}, 
           {{b, 1}, 0, 2, 0.2}, 
           {f,   {Sin, Cos, Tan, Cot}}, 
           {g,   {Sin, Cos, Tan, Cot, Sqrt, Log}}, 
           {color, Red} , 
           {axes,  {True, False}}, 
           {{loc,   {0, 0}}, Locator} 
    ]

Управление скоростью движения ползунка. Если при смещении ползунка удерживать клавишу Alt, изменение параметра замедлится в 20 раз.

Если к Alt добавить Ctrl или Shift, движение замедлится еще в 20 раз (проделайте это на примере, приведенном выше).

Редактируемая визуализация текущего значения параметра, задаваемого ползунком, изменение этого значения, автоматизация процесса изменения, последовательное изменение всех параметров ( Autorun ). Если кликнуть на значок "+" справа от ползунка, то под ползунком возникнет окошко с текущим значением параметра, а также шесть кнопок справа от этого окошка. Окошко можно редактировать, изменяя тем самым значение параметра. Шесть кнопок позволяют задавать автоматическое изменение параметра (поэкспериментируйте с этими кнопками и разберитесь, за что они отвечают). Чтобы посмотреть зависимость от всех параметров, можно кликнуть на значок "+" в правом верхнем углу панели Manipulate и в появившемся меню выбрать Autorun. Появится управляющее окошко Autorun и параметры начнут последовательно менять свои значения. В управляющем окошке можно менять параметры демонстрации Autorun. Чтобы остановить процесс, нажмите в этом окошке на Close.

Нередактируемая визуализация значения параметра, задаваемого ползунком. Чтобы вывести справа от ползунка текущее нередактируемое значение параметра, добавьте в список описания параметра опцию Appearance \to "Labeled":

In[80]: = Manipulate[Plot[Sin[a x + b] , {x,  0, 2 π } , 
                 PlotRange -> {{0, 2 π } , {-1, 1}}], 
              {{a, 1}, 0, 2},
              {b, 0, 2, Appearance -> "Labeled"\}
      ]

Замена имен параметров на метки. Для этого после обязательного задания начального значения нужно указать название параметра:

In[81]: = Manipulate[Plot[Sin[ax + b] , {x, 0, 2 π },
               PlotRange -> {{ 0 , 2 π } , {-1,1}}],
             {{a, 1, "Частота"}, 0, 2}, 
             {{b, 0,  "Фаза"}, 0, 2, Appearance -> "Labeled"}
           ]

Визуализация дискретных значений параметра метками. Для этого после задания дискретного значения нужно поставить стрелочку \to и указать метку (типа String ):

In[82]: = Manipulate[Plot[f [ах + b] g[х] ,  {х, 0, 2 π },
                   PlotRange -> {{0,  2 π } ,   {-1,  1}}] , 
                {{а, 1}, 0, 2}, 
                {{b, 1}, 0, 2,  0.2}, 
                {{f, Sin},   {Sin -> "Синус", Cos,  Tan -> "Тангенс",
                    Cot -> "Котангенс"}} , 
                {{g,  Sin},   {Sin -> "Синус", Cos -> "Косинус",  Tan, 
                    Cot -> "Котангенс" , Sqrt -> "Квадратный корень", 
                    Log -> "Логарифм"}}
]

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Armen Samvelyan
Armen Samvelyan
Россия
Артур Гибадуллин
Артур Гибадуллин
Россия, г. Нижневартовск