При создании сложных компьютерных моделей требующих большого числа вычислений математические пакеты становятся незаменимым помощником, освобождая учащихся от рутинных расчетов и сосредотачивая их внимание на сущности метода решения той или иной задачи.
Учащимся предоставляется возможность выполнять более сложные задания и получать наглядные результаты. Это способствует более эффективному закреплению знаний и умений, полученные ими при изучении других школьных дисциплин, помогает проявлять свои творческие и исследовательские способности.
Одним из доступных и многофункциональных пактов для использования в образовательных учреждениях стала среда Maxima — свободная система компьютерной алгебры, написанная на языке Common Lisp. Среда произошла от системы Macsyma, разрабатывавшейся в MIT с 1968 по 1982 годы в рамках проекта Project MAC, финансируемого Министерством энергетики США (DOE) и другими государственными организациями. Maxima имеет широкий набор средств для проведения аналитических и численных вычислений, построения графических примитивов. Для среды создан ряд графических интерфейсов пользователя и надстроек. В Maxima включено достаточно большое количество средств позволяющих решать задачи моделирования, параметрической идентификации, исследования моделей.
Рассмотрим примеры построения компьютерных моделей.
Пример 1. Броуновское движение
Броуновские частицы имеют размер порядка 0,1–1 мкм, т.е. от одной тысячной до одной десятитысячной доли миллиметра. Построим упрощённую модель броуновского движения. Для генерации случайных чисел используем пакет distrib, включающий необходимые функции (использован генератор random_normal). Пакет distrib содержит набор функций для вычисления вероятностей как в дискретных, так и в непрерывных одномерных моделях.
Описание алгоритма:
- Настройка функции — отключения упрощений (simp);
- Определение каталога временных файлов — для оператора создания изображения;
- Загрузка библиотек;
- Определение переменных;
- Создание набора координат — перемещение броуновской частицы;
- Построение графического изображения (рис.1).
Код:
simp:true$;maxima_tempdir: "C:\\Documents and Settings\\All Users";load("distrib")$x:0$ y:0$ xy:[[0,0]]$ m:0$ s:1$Nmax:50$for i:1 thru Nmax do(x:x+random_normal(m,s),y:y+random_normal(m,s), xy:append(xy,[[x,y]]))$plot2d([discrete,xy]);

Пример 2. Линейная регрессия
Пусть необходимо установить функциональную зависимость между двумя эмпирическими данными x и y, значения которых занесены в следующую таблицу:
x | x1 | x2 | … | xi | … | xn |
y | y1 | y2 | … | yi | … | yn |
Установим вид функции y=f(x) по характеру расположения на координатной плоскости экспериментальных точек.
Если точки расположены таким образом, что определяют некоторую прямую (с определенной погрешностью), то можем предположить, что между x и y существует линейная зависимость, выражающаяся формулой: y=kx+b.
Данная функциональная зависимость называется линейной регрессией, а возникшие коэффициенты k и b — коэффициенты линейной регрессии.
Показатели по объему производства (х, у.е.) и затратам (у, тыс. руб.), взятые из отчетной ведомости предприятия за 10 месяцев, приведены в таблице.
хi | 2,32 | 2,33 | 2,38 | 2,41 | 2,44 | 2,48 | 2,51 | 2,55 | 2,58 | 2,60 |
уi | 427 | 430 | 440 | 444 | 448 | 455 | 460 | 462 | 465 | 466 |
Полагая, что зависимость между х и у задается формулой y=kx+b, где b — постоянные затраты в тыс. руб., k — переменные затраты на 1 условную единицу продукции, определить параметры k и b. Определите затраты при росте объема производства, на 11 месяце на 10%.
В дальнейшем предполагается, что исходные данные для решения подготовлены в виде файла tbl.txt (данные записаны в двух столбцах):
2.32 4272.33 4302.38 4402.41 4442.44 4482.48 4552.51 4602.55 4622.58 4652.60 466
Для считывания используем пакет numericalio. В памяти данные представляются матрицей, а для построения отдельных графиков — списками (переменные x, y). Простейшую линейную регрессию можно построить, используя функцию simple_linear_regression (пакет stats).
Построим зависимость затрат от объема производства.
Описание алгоритма:
Блок 1.
- Загрузка библиотек создания изображения и расчета линейной регрессии;
- Считывание данных из файла в матрицу;
- Создание двух списков, соответствующих столбцам считанной матрицы;
- Вычисление функции линейной регрессии.
Блок 2
- Определение функции линейной регрессии отдельным определением;
- Построение графиков.
Блок 3.
- Вычисление затрат 11 месяца.
Код.
Блок 1.
load("draw");load("numericalio");data:read_matrix("C:\\1\\tbl.txt");p:makelist(data[k,1], k, 1, 10);e:makelist(data[k,2], k, 1, 10);pe:makelist([p[k],e[k]], k, 1, 10);simple_linear_regression(pe);
Вывод (рис.2):

В окне вывода полученные данные модели линейной регрессии. Определены коэффициенты и функция.
Блок 2.
function:139.64*x+106.16;draw2d(xlabel="Production volume",ylabel="Expenses",point_size = 3,point_type=3,points(p,e),key="Expenses=f(Production volume)", explicit(function,x,2,3));
Вывод (рис.3)

Блок 3.
newX:data[10,1]*1.1;newY: function, x:newX;
Вывод.
2.86505.5304
Таким образом, поставленная задача решена:
- Определена модель линейной регрессии у=139.64*x+106.16;
- Вычеслены прогнозируемые затраты при росте объема производства, а 11 месяце на 10% — 505.5304.
Пример 3. Составить модель биоритмов для конкретного человека. На основе анализа индивидуальных биоритмов возможно прогнозировать неблагоприятные дни, выбирать благоприятные дни для разного рода деятельности. Циклы описываются следующими формулами: физический цикл Ф(x)=sin(2*PI*x/23,688437),эмоциональный цикл Э(x)= sin(2*PI*x/28,426124), интеллектуальный цикл И(x)= sin(2*PI*x/33,163812), где переменная x соответствует возрасту человека в днях.
Код.
maxima_tempdir: "C:\\1";d:5000;f: sin(2*%pi*x/23.688437);e:sin(2*%pi*x/28.426124);i:sin(2*%pi*x/33.163812);wxplot2d([f,e,i],[x, d, d+30], [legend, "physical","emotional","intellectual"],[style, [lines,1,5], [lines,2,5], [lines,4,5]], [ylabel, "biorhythm"],[xlabel,"time"]);
Результат построения графика приведен на рис.4.

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