Компьютерное моделирование на уроках информатики в среде Maxima

№102-1,

педагогические науки

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

Похожие материалы

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

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

Одним из доступных и многофункциональных пактов для использования в образовательных учреждениях стала среда Maxima — свободная система компьютерной алгебры, написанная на языке Common Lisp. Среда произошла от системы Macsyma, разрабатывавшейся в MIT с 1968 по 1982 годы в рамках проекта Project MAC, финансируемого Министерством энергетики США (DOE) и другими государственными организациями. Maxima имеет широкий набор средств для проведения аналитических и численных вычислений, построения графических примитивов. Для среды создан ряд графических интерфейсов пользователя и надстроек. В Maxima включено достаточно большое количество средств позволяющих решать задачи моделирования, параметрической идентификации, исследования моделей.

Рассмотрим примеры построения компьютерных моделей.

Пример 1. Броуновское движение

Броуновские частицы имеют размер порядка 0,1–1 мкм, т.е. от одной тысячной до одной десятитысячной доли миллиметра. Построим упрощённую модель броуновского движения. Для генерации случайных чисел используем пакет distrib, включающий необходимые функции (использован генератор random_normal). Пакет distrib содержит набор функций для вычисления вероятностей как в дискретных, так и в непрерывных одномерных моделях.

Описание алгоритма:

  1. Настройка функции — отключения упрощений (simp)
  2. Определение каталога временных файлов — для оператора создания изображения.
  3. Загрузка библиотек.
  4. Определение переменных.
  5. Создание набора координат — перемещение броуновской частицы.
  6. Построение графического изображения (рис.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]);
Имитация движения броуновской частицы
Рисунок 1. Имитация движения броуновской частицы

Пример 2. Линейная регрессия.

Пусть необходимо установить функциональную зависимость между двумя эмпирическими данными x и y, значения которых занесены в следующую таблицу:

Таблица 1. Функциональная зависимость между двумя множествами.

x

x1

x2

xi

xn

y

y1

y2

yi

yn

Установим вид функции y=f(x) по характеру расположения на координатной плоскости экспериментальных точек.

Если точки расположены таким образом, что определяют некоторую прямую (с определенной погрешностью), то можем предположить, что между x и y существует линейная зависимость, выражающаяся формулой: y=kx+b.

Данная функциональная зависимость называется линейной регрессией, а возникшие коэффициенты k и b — коэффициенты линейной регрессии.

Показатели по объему производства (х, у.е.) и затратам (у, тыс. руб.), взятые из отчетной ведомости предприятия за 10 месяцев, приведены в таблице.

Таблица 2. Показатели по объему производства и затратам

х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.

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

Блок 2

  1. Определение функции линейной регрессии отдельным определением.
  2. Построение графиков.

Блок 3.

  1. Вычисление затрат 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. Окно вывода

В окне вывода полученные данные модели линейной регрессии. Определены коэффициенты и функция.

Блок 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. График соответствия

Блок 3.

newX:data[10,1]*1.1;newY: function, x:newX;

Вывод.

2.86505.5304

Таким образом, поставленная задача решена:

  1. Определена модель линейной регрессии у=139.64*x+106.16.
  2. Вычеслены прогнозируемые затраты при росте объема производства, а 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.

Биоритмы
Рисунок 4. Биоритмы

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

Список литературы

  1. Кавтрев А. Ф., Методические аспекты преподавания физики с использованием компьютерного курса «Открытая Физика».// URL: www.college.ru/teacher/metod_phys.html (дата обращения, 12.04.2019).
  2. Чичкарёв Е. А .Компьютерная математика с Maxima: Руководство для школьников и студентов / Е. А .Чичкарёв — М. : ALT Linux, 2009.