Рисование данных
Maple не вполне предназначен для анализа данных (он больше любит функции). Для данных лучше подходят LabView или MatLab. Но чтобы вводить в Maple какие-то данные и сравнивать их с формулами, надо владеть соответствующими приемами.
Maple хранит и строит данные в матричной форме.
Для чтения данных предназначена команда readdata:
- d:=readdata("datafile",2);
где цифра 2 означает, что в файле данных две колонки. При исполнении команды получится ошибка, поскольку в соответствующей папке нет файла с именем datafile, которое названо в команде. Для исправления ошибки надо создать файл данных с помощью Блокнота Windows (не забывайте о возможности копирования/вставки):
0 | 1.0 |
1 | 1.5 |
2 | 1.9 |
3 | 2.6 |
4 | 3.7 |
5 | 5.4 |
6 | 7.3 |
7 | 10.4 |
8 | 14.2 |
9 | 20.0 |
10 | 29.0 |
После создания и сохранения файла в рабочей папке попытайтесь снова выполнить команду. Удачно или нет? Если нет, то потому, что Блокнот автоматически ставит всем файлам расширение .txt. Исправим команду чтения readdata:
- d:=readdata("datafile.txt",2);
Если остаться в окне Windows, то эта конструкция не сработает, так как не указано правильно имя папки. Примените команду currentdir: currentdir ("имя папки"), например:
- currentdir("c:\\PhysicsMaple");
Для поиска рабочей папки (директории) применяется команда:
- currentdir();
- currentdir("a:");
(Применять другие DOS-овские команды не получится, Maple их не поймет.)
Числа сохранены в матрице. По ним можно построить график. Применяется команда Maple pointplot (см. ниже). Но вначале необходимо загрузить пакет with(plots) (он большой, и его загружают, только если он нужен). Без пакета Maple ответит повторением команды синим текстом на экране.
- with(plots):
- pointplot(d);
Учтите, что команда with(plots) заканчивается :, т. е. без листа выдачи на экране. Если поставить ;, то выдача будет очень большой.
Пусть теперь надо проверить, насколько хорошо данные аппроксимируются формулой Присвоим изображенный точками график одной именованной переменной, а другой переменной – формулу, а затем нарисуем их вместе. В конце присваиваний ставим двоеточие, чтобы не было лишней выдачи.
- p1:=pointplot(d):
- p2:=plot(exp(x/3),x=0..10):
- display({p1,p2});
Maple-овский пакет stats делает подобные вещи, и можно даже сделать подгонку.