Лекция Стивена Вольфрама

ВНИМАНИЕ!!!

БЛОГ ПЕРЕЕХАЛ НА НОВЫЙ АДРЕС https://blog.wolframmathematica.ru

Онлайн машина вычисления знаний Wolfram|Alpha ®

Онлайн машина вычисления знаний Wolfram|Alpha ®

четверг, 28 февраля 2013 г.

Создание интерактивной модели-от постановки задачи до документа формата CDF
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_Large.png
Создание интерактивной модели:
от постановки задачи до документа формата CDF

Андрей Зеленица,
z-andr@ukr.net
Общее количество использованных в посте встроенных функций или символов: 34

Список имен используемых встроенных функций и символов в порядке их появления в коде:
Information | Rule (->, ->) | LongForm | False | RandomReal | List ({...}) | CompoundExpression (;) | Set (=) | Plot | ListPlot | Joined | True | ListLinePlot | EuclideanDistance | Partition | Print | Apply (@@) | Total | Take | Flatten | Graphics | Red | Disk | ImageSize | Green | Show | Labeled | Grid | Bottom | Top | Manipulate | PlotRange | RuleDelayed (:>, :->) | Initialization
Постановка задачи
Задача: Создать интерактивную модель, использующую набор случайных данных, и сохранить ее в файле формата CDF.
В качестве примера создадим модель, отображающую траекторию перемещения по точкам, заданных набором случайных данных. Дадим возможность пользователю прорисовывать траекторию от точки старта до точки финиша с помощью “ползункового” элемента управления. Реализуем подсчет пройденного пути, привязав его в реальном времени к “ползунковому” элементу управления.
Разобьем поставленую задачу на основные этапы:
1. Генерация набора случайных данных
2. Графическое отображение полученного набора данных
3. Вычисление длины траектории
4. Добавление в графическое отображение различных элементов
5. Превращение графического отображения в интерактивную модель
6. Окончательное оформление интерактивной модели
7. Преобразование интерактивной модели в формат CDF
Этап 1
Генерация набора случайных данных
Mathematica обладает мощным встроенным генератором псевдослучайных чисел, который считается едва ли не эталонным для существующих на сегодняшний день компьютерных вычислительных систем.
Так как случайному объекту или действию в английском языке соответствует слово Random, посмотрим на список функций, которые содержат это слово в своем названии.
Для запроса воспользуемся простым синтаксисом: Начнем код с вопросительного знака, за которым идет искомое слово Random. Для полноты результата, перед и после слова Random, вставим звездочки *, которые обозначают любую комбинацию знаков, то есть обеспечивают нахождение всех встроенных объектов Mathematica, содержащих в своем названии слово Random.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_1.png
Из полученного списка наиболее подходящей для нашей задачи является функция RandomReal, генерирующая случайные действительные числа. Как альтернативу, можно использовать также функцию RandomInteger, генерирующую целые случайные числа.
Зададимся целью получить список случайных двухмерных координат точек (x, y), Допустим, что значения для любой из координат лежат в пределах от 0 до 100, и нам требуется получить 50 точек. В результате должен получиться вложенный список из 50 подсписков вида  (x, y).
Обратимся к документации по функции RandomReal для составления синтаксической конструкции, позволяющей решить поставленную задачу.
Как указано ниже, первый аргумент функции определяет диапазон, внутри которого генерируются случайные числа, второй аргумент функции задан списком, первый элемент которого определяет количество вложенных подсписков, а второй — количество элементов в каждом подсписке.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_2.gif
Оперировать таким большим списком не очень удобно, поэтому мы можем присвоить набору данных имя. К тому же, так как выводить на экран полученный набор данных не имеет большого смысла, мы можем поставить в конце кода точку с запятой, для подавления ячейки вывода. Изменение цвета имени, присвоенного набору данных, с синего на черный просигнализирует нам, что данные сгенерированы и занесены в память под заданным именем.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Этап 2
Графическое отображение набора данных
Итак, у нас есть список координат и нам нужно отобразить их графически. Функция Plot в данном случае не сработает. Она “не ладит” со списками, и если вы попытаетесь её использовать, Mathematica красным указателем укажет вам на проблему в синтаксисе. И если вы все таки попытаетесь вычислить эту ячейку кода, Mathematica выдаст сообщение об ошибке.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_3.png
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_4.gif
Подсказка о том, что делать дальше кроется в простом факте, что почти все функции Mathematica, которые относятся к построению графиков, содержат слово Plot в своем названии. Поэтому, вновь воспользуемся описанным выше приемом и выведем на экран перечень всех встроенных объектов Mathematica, содержащих в своем названии слово Plot.
И кстати, щелчек мышью на любом элементе полученного перечня вызовет краткую справку о выбранном элементе.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_5.png
Полученный нами набор данных является списком, а список, на английском, звучит List. И, по всей видимости, функция ListPlot должна нам подойти. Действительно, функция работает, но мы получили лишь графическое отображение точек, но никак не траекторию.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_6.gif
Обратившись к документации по функции ListPlot , мы увидим среди её опций есть такая, которая определяет соединять ли точки линией. Эта опция называется Joined, и по умолчанию ей задано значение False. Для её активации, нам нужно добавить в функцию запись Joined->True.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_7.gif
Это именно тот результат, которого мы добивались. Наблюдательный пользователь скорее всего заметил, что в перечне функций содержится также одна под названием ListLinePlot. Её применение дает идентичный результат без необходимости применять дополнительные опции. Это делает сам код короче и изящнее, так что далее мы будем пользоваться именно ею.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_8.gif
Этап 3. Вычисление длины траектории
Для вычисления расстояния между двумя точками на плоскости или в трехмерном пространстве используется Евклидово расстояние. Посмотрим, содержит ли Mathematica такую функцию.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_9.png
Обратимся к документации по функции EuclideanDistance. Её синтаксис предполагает вычисление расстояния только между парой точек (векторов). Поэтому, сразу вычислить длину траектории у нас не получится.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_10.png
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_11.gif
Что ж, тогда нам потребуется преобразовать набор данных на попарный список точек, посчитать расстояние между каждой парой и просуммировать полученные результаты.
Преобразование набора точек нам нужно сделать особым образом:
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_12.png
Обратившись к документации, по работе со списками (например раздел Grouping and Combining Elements of Lists) мы найдем информацию о том, что подобное преобразование удобнее всего провести с помощью функции Partition. И для наших условий синтаксис должен быть следующим:
первым аргументом функции выступает набор данных (список) — в нашем случае "data"
второй аргумент функции задает длину (количество элементов) каждого подсписка в формируемом списке — в нашем случае "2"
третий аргумент функции задает шаг (смещение), используемый при формировании нового списка — в нашем случае "1"
Проверим, сначала, работает ли функция так, как нам это нужно.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_13.gif
Убедившись, что мы на правильном пути, поглядим на полученный нами список.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_14.gif
Не будет лишним сравнить его с исходным набором данных, однако, мы изначально не выводили его на экран, воспользовавшись точкой с запятой в конце выражения. И к тому же, нам было бы удобно вывести его прямо здесь, а не возвращаться на сотню строк назад для сравнения. И в этом нам поможет функция Print.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_15.png
Мы получили новый список, состоящий из пар точек. Однако, мы не можем применить к нему функцию  EuclideanDistance напрямую. Все дело в том, что она поддерживает лишь один простейший синтаксис, состоящий из пары точек. Значит, нам нужно найти средство заставить функцию EuclideanDistance последовательно обрабатывать пары точек (подсписки первого уровня), и таким средством является функция  Apply.
Документация по функции Apply детально описывает алгоритм её работы и синтаксиса:
первым аргументом является функция, которую мы хотим применить (EuclideanDistance).
вторым аргументом выступает выражение (или список) к которому мы хотим применить функцию
(Partition[data, 2, 1]).
третье выражение показывает, к элементам какого уровня выражения (списка) мы хотим применять функцию ({1}).
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_16.gif
Итак, мы получили расстояния между всеми точками списка. Теперь нам нужно найти итоговую сумму этих расстояний. На английском, итоговая сумма звучит как Total. Попробуем посмотреть, содержит ли Mathematica объекты с таким названием.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_17.png
Как видим, функция Total именно то, что нам нужно. Что же касается её применения, то у нас есть два варианта:
1) мы задаём имя полученному списку расстояний и далее используем это имя в качестве аргумента функции  Total;    
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_18.gif
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_19.gif
2) мы "оборачиваем" функцию Total вокруг выражения     
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_20.gif
Второй вариант выглядит предпочтительнее, так как не требует ввода новых переменных.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_21.gif
Этап 4. Добавление в графическое отображение различных элементов
Итак, пройдя три этапа, мы получили три элемента кода:
генерация набора случайных данных
графическое отображение полученного набора данных
вычисление длины траектории
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_22.gif
Обратите внимание, что при вычислении ячейки был сгенерирован новый набор данных, что сказалось на графике и длине траектории.
Рассматривая график, можно отметить, что нам трудно найти точки старта и финиша. И даже если мы их найдем, увеличив размер графика, все еще непонятно какая из них старт, а какая финиш.
Чтобы указать точки на графике, нужно найти их координаты. Обратившись к документации по работе со списками, мы легко найдем информацию о том, что для выборки элементов списка используется функция Take. Выберем первый и последний элемент списка, используя функцию Take.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_23.gif
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_24.gif
Функция Take заключает свой результат в фигурные скобки. А так как выбранные нами элементы списка являются подсписками, и изначально уже были заключены в фигурные скобки, оба результата заключены в двойные фигурные скобки, что помешает их дальнейшему использованию. Одну пару скобок нужно удалить. Для подобных операций Mathematica располагает функцией Flatten. “Обернем” функцией Flatten приведенные выше выражения, а заодно присвоим полученным координатам имена.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_25.gif
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_26.gif
Теперь пора отобразить эти точки на графике. Логично предположить, что в Mathematica за точку отвечает функция Point (Точка). Так и есть, но познакомившись с документацией, мы увидим, что еще проще применить в этом случае функцию Disk. Прямо на странице документации мы можем скопировать требуемый код и вставить его в наш документ.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_27.gif
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_28.gif
Пока что место, определенное синтаксисом для указания координат, пустует. Давайте скопируем и вставим туда код, использованный выше для получения координат первой и последней точки списка. А заодно, зададим точкам соответствующие имена. Используем точку с запятой в конце каждого выражения для подавления вывода результатов на экран.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Как нам теперь вставить точки старта и финиша в график? Ведь точки и график созданы разными функциями. Для таких случаев Mathematica располагает функцией Show. Её синтаксис очень прост: нужно просто перечислить графические объекты (или их имена), которые требуется одновременно отобразить.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_29.gif
Давайте подставим в последнее выражение код, соответствующий указанным в нем именам. И зададим новое имя получившемуся выражению. Это упростит наши последующие действия.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_30.gif
Теперь было бы неплохо добавить к графику легенду, включив туда, помимо описания точек, также и длину траектории.
Для добавления надписей и подписей в график используется функция Labeled. Надпись также можно добавить с помощью опции PlotLabel, однако, эта опция располагает надпись только над графиком, в то время как для функции Labeled позволяет расположить надпись с любой стороны (по умолчанию — под графиком).
В надписи мы укажем название нашего графика. А в подписи нам нужно, помимо текста, добавить изображения точек и вывести рассчитанное значение длины траектории. Стандартные инструменты для построения легенды здесь не подойдут. К тому же, прописывать расположение всех элементов надписи — задача утомительная. Выход кроется в использовании функции Grid, которая в Mathematica используется очень широко и в частности для построения таблиц. При этом, Grid является своеобразным контейнером, способным содержать самые разнообразные выражения (текст, графику, код, рисунки и т. д.).  
Ознакомившись в синтаксисом функций Labeled и Grid, мы можем записать приведенный ниже код. Обратите внимание, что для наглядности и удобства в работе по совершенствованию кода, аргументы функции Grid пока обозначим простыми переменными.
В дальнейшем, нам будет удобно подставлять на место переменных достаточно длинные выражения с помощью команды скопировать > вставить.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_31.gif
Ввод надписей (поля “x”, “y”, “z”) не вызывает трудностей. В поле “с” мы вставим код для подсчета длины траектории, созданный нами на предыдущем этапе. Но нам нужно подготовить графические объекты, чтобы вставить их в поля “a” и “b”. Воспользуемся для этого теми же выражениями, что были использованы для точек, встроенных в график. При этом, координаты не указываем.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_32.gif
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_33.gif
Теперь все готово. Скопируем и вставим выражения, а также введем текст вместо соответствующих переменных.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_34.gif
Этап 5. Превращение графического отображения в интерактивную модель
Пришло время воспользоваться функцией Manipulate для превращения графика в модель, с которой пользователь может взаимодействовать.
Для этого, нам нужно решить в чем взаимодействие будет заключаться, определиться с органами управления, начальными значениями, диапазоном изменения значений и т. д.
Мы будем шаг за шагом отображать траекторию движения от точки к точке, одновременно рассчитывая и выводя на экран длину отображаемой траектории.
Для этого, прежде всего возьмем последнее полученное нами выражение и подставим  в него вместо имени model2 выражение, которое оно обозначает.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_35.gif
Для использования функции Manipulate, нам нужно ввести в код переменную, которой мы будем манипулировать. Так как мы хотим контролировать отображение траектории, нам нужно ввести переменную в ту часть кода, которая содержит имя набора данных data. Вместо data мы введем выражение с функцией Take:
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_36.png
Это выражение берет данные из набора data начиная с первого элемента списка до n-го элемента списка, определяемого переменной end. Вот именно этой переменной мы и будем в итоге управлять с помощью интерфейса функции Manipulate.
Набор данных data упоминается в последнем полученном нами коде несколько раз (выделено цветом). Но нас интересуют только две позиции: та, которая является аргументом функции ListLinePlot и та, которая указана в выражении, которое вычисляет длину траектории (красный цвет).
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_37.png
Подставим выражение Take[data,{1,end}] вместо выделенных красным цветом имен data. Затем "обернем наше выражение функцией Manipulate и введем, в предусмотрительно подсвеченное красным указателем место, список, состоящий из переменной end, её минимального и максимального значения, а также шага изменения переменной. Логично начальным значением для переменной end указать 1. Конечным значением для end станет общее количество элементов первого уровня списка data. Шаг изменения установим равным 1.
Вычислим полученный код.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Этап 6. Окончательное оформление интерактивной модели
Наша модель ожила!
Однако сразу напрашиваются несколько улучшений:
нужно придумать название.
нужно закрепить оси, иначе "адаптивная выборка" будет варьировать шкалу осей при начальных положениях "ползунка". Это замечательное свойство Mathematica очень полезно в большинстве случаев работы с графикой, но в данном случае оно только ухудшает поведение модели.
нужно вывести соответствующую надпись для элемента управления (ползунка), вместо имени переменной end.
С названием все понятно, но стоит упомянуть одну полезную подсказку: оператор \n, вставленный в текст описания, указывает на начало абзаца, что очень удобно при длинном названии.
Для “закрепления” осей, следует применить к функции ListLinePlot опцию PlotRange:
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_39.png
Для ввода надписи элемента управления, вместо текущего списка значений переменной end, которая выглядит как {end,1,50,1} требуется вставить более обширную конструкцию:
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_40.png
Здесь, следующая за названием переменой цифра 1 обозначает начальное значение переменной элемента управления (не путать с диапазоном значений!), в кавычках указана желаемая надпись, ну а дальше следуют минимальное и максимальное значения, а также шаг изменения переменной, связанной с элементом управления.
Применим все изменения и вычислим полученный код.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Все работает очень хорошо, однако, все наши вычисления, графики и модели привязаны к набору данных data, который был вычислен много строк назад.
Пока мы не завершили эту сессию Mathematica, все будет работать, но как только она будет закрыта, значения переменной data будут удалены из памяти. При повторном открытии этого документа интерактивная модель работать не будет, пока мы не вычислим ячейку с переменной data.
Каждый раз искать и вычислять эту ячейку при открытии документа — посильная, но не очень приятная процедура. Поэтому, есть смысл включить генерацию набора данных data прямо внутри полученной модели.
Для этой цели в Mathematica существует опция Initialization.
Синтаксис опции Initialization достаточно прост:
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_42.png
Соответственно, в нашем случае это трансформируется в следующее выражение:
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_43.png
Обратите внимание, что для того, чтобы Mathematica правильно распознала очередность выполнения заданного выражения (операторы :>  и  =  имеют равную очередность)  мы заключили выражение в круглые скобки.
Теперь добавим опцию инициализации в конце кода нашей интерактивной модели.
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Чтобы проверить корректность работы опции инициализации, нужно закрыть Mathematica, затем  вновь запустить её и открыть этот файл. Модель должна работать без необходимости вычисления переменной data.
Этап 7. Преобразование интерактивной модели в формат CDF
У нас все готово для преобразования построенной нами интерактивной модели в файл формата CDF.
Было бы неплохо добавить заголовок, краткое пояснение как взаимодействовать с моделью, краткое описание цели создания модели и процессов, которые она отражает.  
Примерный текст приведен ниже  
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_45.png
Интерактивное отображение и вычисление длины сложной траектории
Перемещайте ползунок для отображения все большего количества отрезков траектории, до тех пор, пока они не соединят точки старта и финиша.
По мере того, как изменяется количество отображаемых отрезков траектории, изменяется и значение длины.  
Нажмите, чтобы получить возможность скопировать код Wolfram Mathematica
закрыть
Эта модель выполняет визуализацию и вычисление длины сложной траектории, подобно тому, как это происходит в системах GPS навигации.
Для просмотра этого файла требуется наличие Wolfram CDF Player. Загрузить его можно здесь http://www.wolfram.com/cdf-player/
Sozdanie_interaktivnoj_modeli-ot_postanovki_zadachi_do_dokumenta_formata_CDF_47.png
Настало время скопировать все подсвеченные ячейки и вставить их в новый блокнот, после чего сохранить его в формате CDF.
Назовем его CreationOfInteractiveModel2.

Блог принадлежит “Русскоязычной поддержке Wolfram Mathematica
При любом использовании материалов блога, ссылка на блог обязательна.
SpikeyСоздано с помощью Wolfram Mathematica 9

Комментариев нет:

Отправить комментарий