Секция 7 - MATLAB в образовании и Интернете (1250002), страница 13
Текст из файла (страница 13)
Все задачи из обязательного спискавключены в учебное пособие [4], в котором приводится физическая постановка задачи, основные методы её решения, особенности реализации используемых алгоритмов, а также текст каркасной программы. Текст каркасной программы (подобно приведенной выше программе «Биения») доступен студенту в электронном виде, что позволяет ему сразу запустить задачу на счёт и получить результаты в самой простой реализации модели.Руководствуясь списком заданий и вопросов, приведённых в пособии, студент далее модернизирует свою программу, чтобы ответить на поставленные вопросы. При этом происходит одновременное углубление пониманияфизической природы моделируемого явления и освоение методов численной реализации модели и представления результатов. Опыт работы со студентами показывает, что результаты своих численных экспериментов онизапоминают навсегда, что помогает в им изучении физики, которая, казалось бы, не является основным предметом изучения в компьютерном практикуме.1882Секция 7.
MATLAB в образовании и ИнтернетеГрафический интерфейс в задаче «Биения»Для проведения серийных расчётов при решении как учебных, так инаучных задач удобно вводить исходные данные без перезапуска программы, не меняя текст самой программы. Для реализации такого способавзаимодействия с программой мы разработали интерактивный графический интерфейс.
Он позволяет видеть на экране одновременно окно выводаграфической информации, «кнопки управления» и окна редактированияданных (рис. 1).Создание такого интерфейса включает две самостоятельные стадии:разработку внешнего вида интерфейса (сколько и каких окон для графиков, какие кнопки и редактируемые поля и т. д.
будут на экране) и связывание этого интерфейса с вычислительной программой.Рис.1. Графический интерфейс для задачи «Биения»/Созданная с помощью стандартного визуального редактора GUIDE(MATLAB, версия 5.3) функция Interface_Window(APAS, NAMEPAS,RUN_NAME) была потом доработана «вручную» таким образом, что числополей ввода данных автоматически изменяется в зависимости от длины1883Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»массива редактируемых переменных APAS. Вызов этой функции осуществляется из главной программы (или функции без параметров) по следующей схемеclear; % Очистка предыдущего состояния% Задание начальных значений параметровa2=1;w1=1;w2=1.2;t0=0;N=600;tm=25;%Создание «транспортной» переменнойAPAS(1)=a2;APAS(2)=w1;APAS(3)=w2;APAS(4)=t0;APAS(5)=tm;APAS(6)=N;% Создание имен переменных для выводаNAMEPAS(1,:)=' a2/a1';NAMEPAS(2,:)='w1';NAMEPAS(3,:)='w2';NAMEPAS(4,:)='t0';NAMEPAS(5,:)='tm';NAMEPAS(6,:)='N';%Вызов функции графического интерфейсаInterface_Window(APAS,NAMEPAS,Run_beats);На втором этапе разработки проекта с графическим интерфейсомстудент переделывает расчётную часть программы, заменяя ту её часть,где производится ввод исходных данных.
Приведём вводный фрагментфункции Run_beats с произведёнными изменениями.function r=Run_beats()% Определение дескриптора текущего рисункаh0=gcf;% Извлечение структуры info из свойства Userdatainfo=get(h0,'Userdata');a2=info.APAS(1);w1=info.APAS(2);w2=info.APAS(3);t0=info.APAS(4);tm=info.APAS(5);N=info.APAS(6);Функция Run_beats вызывается при нажатии клавиши RUN.
Онасчитывает входные параметры из структуры info и реализует основной вычислительный алгоритм. Поскольку эта структура сама является полемструктуры, хранящейся в свойстве Userdata текущего рисунка, к ним имеет1884Секция 7. MATLAB в образовании и Интернететакже доступ специально написанная функция редактирования Edit_beats,что и делает эту систему интерактивной.После выполнения вычислительной части функции производитсявызов функции рисования plot.
После вывода графиков программа переходит в режим ожидания действий пользователя, что позволяет ему отредактировать значения входных параметров и повторить расчет, вновь нажавкнопку RUN. Выход осуществляется по нажатию клавиши EXIT, что реализуется функцией exit_beats, которая с помощью встроенной функцииdelete(gcf) удаляет текущий рисунок.
Таким образом, используя подготовленные функции студент, а также преподаватель непрограммист могутлегко переделать свою вычислительную программу в программу с удобным интерактивным интерфейсом. Описанные функции были разработаныдля MATLAB 5.3, и, хотя в MATLAB 6.Х технология разработки подобныхприложений изменилась, все разработанные функции работают и в новойверсии.Использование MATLAB в курсе электродинамикиУчебные программы, моделирующие физические явления, которыепозволяют представить результаты расчетов в виде графических и анимационных изображений, являются действенным инструментом обучения варсенале преподавателей естественнонаучных дисциплин.
Не подменяяживое общение преподавателя и студента, они дополняют традиционноеизложение предмета в виде набора простых моделей, которые можно объяснить «на пальцах», средствами визуализации теоретических построений.Особую ценность представляют программы двойного назначения, которыеможно использовать как для обучения студентов на практических занятияхи лекционных демонстраций, так и для самостоятельных занятий обучаемых через Интернет при предварительном ознакомлении с материалом илидля закрепления полученных знаний.Выбор языка программированияИспользование СБРП MATLAB позволяет быстро разрабатывать иотлаживать локальные приложения с развитым графическим интерфейсом(см.
выше). Входящий в состав системы MATLAB пакет MATLAB WEBServer позволяет преобразовывать разработанные учебные задачи в вебприложения, пригодные для размещения в Интернете [5].При разработке учебных и (или) демонстрационных программ первый вопрос, который приходится решать, — должна ли быть разрабатываемая программа открытой или закрытой. Закрытой программой мы называем такую программу, при использовании которой возможно заданиеразличных параметров, определяющих моделируемый процесс, а сам алго1885Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»ритм производимых вычислений и программа являются неизменными и,как правило, недоступными.
Открытой программой мы называем такуюпрограмму, которую может видоизменять пользователь для получения техили иных ответов. Если целью обучения является обучение моделированию (см. выше), то предпочтительной является открытая программа, тексткоторой доступен пользователю, и он может сам видоизменять ее, решаяновые задачи. Если же говорить об обучении предметной области (физике,математике, химии), то предпочтительным является тщательно разработанная закрытая программа с удобным графическим интерфейсом, использование которой не требует знания языка программирования. Достаточнонаучиться пользоваться такой программой.
Такая же программа являетсяпредпочтительной при проведении лекционных демонстраций.Рис. 2. Стандартный интерфейс пакета PDE для решения задачи электростатики.Поскольку целью нашей работы было создание моделирующих (обучающих) программ и/или демонстрационных программ по физике (в данном конкретном случае — по электродинамике), мы выбрали вариант закрытой программы, текст которой частично или полностью недоступенпользователю. Один из вариантов разработки такой программы предлагаетфирма Mathworks — это пакет PDE (Partial Different Equations — уравнения в частных производных), который совместно с задачей pdetool (см.рис. 2) предоставляет удобные средства решения двумерных задач Лапласаи Пуассона. Фактически, демонстрационная задача pdetool, поставляемая1886Секция 7.
MATLAB в образовании и Интернетефирмой MathWorks, является образцом для разработки подобных задач.Система имеет удобный графический ввод области решения, интуитивнопонятный интерфейс для ввода граничных условий и достаточно развитыесредства вывода результатов расчета. Поскольку имеется отдельный пунктменю, позволяющий решать задачи электро- и магнитостатики, то при небольших доделках данный пакет используется для проведения практических занятий по электродинамике в компьютерном классе.
В частности,при решении многих задач электростатики, сводящихся к решению уравнения Лапласа и Пуассона, по результатам расчета потенциала необходимопомимо построения картины поля и/или потенциала находить распределение зарядов и токов на граничных металлических поверхностях или награницах раздела сред. Предложенный пакет не содержал таких средств, ипришлось его дорабатывать. При этом, конечно, не хотелось просто скопировать полученное с помощью PDE распределение поля и сетки в заданнойобласти в другую программу на MATLAB’е и там вычислять требуемыевеличины. Сама же функция вычисления нормальной производной на границы (а именно через эту величину выражается заряд и ток на границе) отсутствует как в стандартных функциях MATLAB, так и в пакете PDE.