Решение физических и математических задач с Maxima
7.2 Некоторые физические задачи
Применение систем символьной математики в преподавании физики и химии позволяет сосредоточиться на содержательной части преподаваемого материала. Кроме того, учащиеся получают возможность решать куда более сложные задачи, чем при ручных расчётах. Наличие в Maxima чётко выраженного алгоритмического языка (в отличие от Matcad) существенно снижает риск подмены понятий, когда пробелы собственного подхода к решению задачи учащиеся относят на наличие ошибок и неточностей в программном обеспечении.
Идеи рассмотренных задач взяты из известных руководств по использованию MathCad, однако, по мнению автора, использование Maxima может быть не менее, а во многих случаях и более эффективным.
7.2.1 Вычисление средней квадратичной скорости молекул
Выражение, содержащие переменные, по существу может использоваться в качестве функции пользователя в Maxima.
Рассмотрим возможность вычисления среднеквадратичной скорости молекул для различных газов. Используемая формула: , где — абсолютная температура, — молярная масса.
Вычислим среднеквадратичную скорость молекул ( = 0.044 кг/моль) при температуре 273 К:
(%i1) v:sqrt(3*R*T/M);
(%i2) vCO2:float(v),M=0.044,T=273,R=8.314;
Расчёт для нескольких различных газов несложно провести, варьируя молярную массу:
(%i3) vVozd:float(v),M=0.029,T=273,R=8.314;
(%i4) vH2:float(v),M=0.002,T=273,R=8.314;
7.2.2 Распределение Максвелла
Аналогично предыдущему расчёту создадим выражение, описывающее распределение Максвелла (см. блок команд Maxima ниже).
(%i1) fun:4*%pi*(M/2/%pi/R/T)^(3/2)*exp(-M*v^2/2/R/T)*v^2;
Для анализа полученных выражений в формулу распределения Максвелла подставляем только температуру:
(%i2) fun70:fun,T=70;
(%i3) fun150:fun,T=150;
(%i4) fun300:fun,T=300;
увеличить изображение
Рис. 7.1. Распределение Максвелла по скоростям молекул воздуха для различных температур
Для построения графика зависимости функции распределения от температуры подставляем молярную массу воздуха и величину универсальной газовой постоянной (см. результаты на рис. 7.1):
(%i5) plot2d([fun70,fun150,fun300],[v,0,1000]),M=0.029,R=8.314;
Можно изучить влияние температуры на форму кривой, а так- же на положение максимума функции распределения. С помощью интегрирования можно посчитать долю молекул, обладающих скоростями в каком-либо интервале, а также определить среднюю и среднюю квадратичную скорости молекул.
Пример:
(%i6) integrate(v*v*fun,v,0,inf); Is M\,R\,T positive, negative, or zero? p;
Таким образом, , откуда среднеквадратичная скорость молекул газа .
7.2.3 Броуновское движение
Наличие генератора случайных чисел дает возможность моделировать движение броуновской частицы.
Эйнштейн первый рассчитал параметры броуновского движения, показав, что нерегулярное перемещение частиц, взвешенных в жидкости, вызвано случайными ударами соседних молекул, совершающих тепловое движение. В соответствии с теорией Смолуховского- Эйнштейна, среднее значение квадрата смещения броуновской частицы () за время прямо пропорционально температуре и обратно пропорционально вязкости жидкости , размеру частицы и постоянной Авогадро , где — газовая постоянная.
Броуновские частицы имеют размер порядка 0,1–1 мкм, т.е. от одной тысячной до одной десятитысячной доли миллиметра.
Построим несколько упрощённую модель броуновского движения, предполагая, что смещение частицы по каждой из координат — нормально распределённая случайная величина с нулевым математическим ожиданием. Для генерации случайных чисел используем пакет distrib, включающий необходимые функции (использован генератор ).
(%i1) load("distrib")$ x:0$ y:0$ xy:[[0,0]]$ m:0$ s:1$ Nmax:500$ 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]);
Результат построения графика приведен на рис. 7.2.