Алгоритм метода квазиобращения.
На первом шаге решения поставленной задачи перейдем от
функции
, являющейся решением задачи (7)-(10), к отысканию семейства
решений
регуляризованной задачи:
(11)
(12)
(13)
(14)
(15)
где,
-параметр регулярузации. В рассматриваемом случае функция
.
Однако, в реальных условиях при наличии шума в измерениях она может принимать значения,
отличные от нуля.
Заметим, что задание дополнительного условия (15) является необходимым, поскольку
уравнение (11) имеет второй порядок по переменной х. Оно непосредственно вытекает из уравнения
теплопроводности (7).
В развернутой форме начально-краевая задача (11)-(15) имеет вид:
(16)
(17)
(18)
(19)
(20)
На втором шаге решения поставленной задачи рассматривается вычислительный алгоритм,
постренный на основе метода конечных разностей. Для численного решения задачи (16)-(20) в
области изменения непрерывного аргумента
. построим прямоугольную
сетку с параметрами h и
. Тогда
значения искомой функции
(индекс для упрощения записи опускаем), определенной в узлах
сеточной области
, будут являться решениями системы разностных уравнений, полученных из
(16)-(20) путем замены производных конечно-разностными соотношениями. Конечно-разностная
схема решения задачи имеет вид:
(21)
(22)
(23)
(24)
(25)
Задание условий однозначности (22)-(25) позволяет выявить в каждом уравнении разностной
системы (21) одно неизвестное
при фиксированных значениях и к. Разрешая (21) относительно
388
, получаем
где =
,
.
(26)
Выполняя вычисления по формуле (26) для всех значений і и k (і=1,2,…..,N-1; k=1,2,…..,K-1),
можно вычислить последовательно все значения искомой сеточной функции .
Численный эксперимент проводился в следующем порядке. По заданному начальному
распределению поля температур (6) и нулевому начальному тепловому потоку при t=0 по алгоритму
(21)-(25) рассчитывалась температура при t=1. Параметр регуляризации при этом полагался равным
нулю, т.е. осуществлялись вычисления поля температур без регуляризации.
Далее исходные данные (6) зашумлялись синусоидальной помехой вида α sinϖt с частотой
ϖ=50.0 и амплитудой а=0.1. После этого осуществлялась регуляризация решения при различных
значениях параметра регуляризации α с использованием метода квазиобращения.
Исследовалось также влияние на результат решения регуляризованной задачи предварительного
сглаживания зашумленных данных .
Исходная кривая зашумлялась синусоидальной помехой с амплитудой а=0.1 и с частотами
ϖ=66000 и ϖ=50 и на один шаг по переменной t решалась начально-краевая задача (16)-(20) с
параметром α=0. На следующем шаге эксперимента осуществлялась регуляризация с
использованием МКО, т.е. решалась задача (16)-(20) с параметром α=
, α=
, α=
.
Анализ результатов численного эксперимента, проведенного в широком диапозоне амплитуд и
частот синусоидальной помехи, а так же при различных значениях параметра регуляризации α
позволяет сделать следующие выводы:
1) метод квазиобращения является эффективным при решении задачи восстановления
температуры печного пространства, по результатам измерения температуры и теплового потока на
внешней поверхности футеровки и металлургической печи, представленной в форме начально-
краевой задачи для эволюционного уравнения второго порядка;
2) применение алгоритма МКО является эффективным средством сглаживания результатов
термометрирования, содержащих как высокочастотные, так и низкочастотные помехи при высоком
уровне отнешения шум/сигнал и может быть рекомендовано к использованию при решении
широкого круга различных задач практической теплотехники.
ЛИТЕРАТУРА
1. Латтес Р. , Лионс Ж.Л. Метод квазиобращения и его приложения. М.,1986.
2. Вабищевич П.Н. Метод квазиобращения для приближенного решения задач теплообмена/Предпринт
ИБРАЭ АН СССР, 1991. №11.
3. Атанбаев С.А. Об одном разностном аналоге метода квазиобращения для эволюционных уравнений.
Вестник. КазГУ. Сер.мат.1998. №11.
REFERENCES:
1. Lattes R., Lions J.L. Method of quasiinversion and its applications. M., 1986.
2. Vabishchevich P. N. Method of quasiinversion for approximate solution of problems of heat transfer/Preprint
IBRAE USSR, 1991.№11.
3. Atambaev S.A. On one difference analogue of the method of quasiinversion for evolution equations. Herald.
KazGU. Ser.Mat.1998. №11.
Сейтбекова Г.О., Атанбаев С.А., Аймаханова A.Ш.
Mеталлургиялық жылу техникасының кері есебін шешу əдісі
Түйіндеме. Бұл мақалада металлургиялық жылутехникасы жылу өткізгіштік теңдеуіне қойылған кері
есепті екінші ретті эволюциялық теңдеуге қойылған бастапқы – шекаралық есепке келтіру арқылы квази-
керілендіру əдісін пайдаланып шешу əдісі қарастырылған. Математикалық өңдеуге негізделген жылу ағыны
мен қызуы өлшемінің нəтижелерін қашықтықтан анықтау əдістері негізгі өзектілігі болып табылады. Квази-
керілендіру əдісінің алгоритмі қызу өлшемінің нəтижелерін реттейтін тиімді құрал болып табылады.
Түйін сөздер: эволюциялық теңдеулер, дұрыс қойылмаған есептер, жылу өткізгіштік теңдеу.
Seitbekova G.O., Atanbaev S.А., Аimahanova А.SH.
Мethods for solving inverse problems of metallurgical heat engineering
Summary. The method of the use of method of quasiinversion (QIM) for the decision of reverse task of heat
conductivity is offered in this article, by transformation to initial-regional task for evolutional equalization the second
389
order. In this regard, particular relevance remote methods for determining the temperature based on a mathematical
analysis of the results of measurement of temperature and heat flux. Algorithm QIM is an effective means of smoothing
results termometrirovaniya.
Key words: evolutional equalizations, ill-conditioned problems, equalization of heat conductivity.
УДК 004.451
Серекбаев М.К. студент, Козбакова А.Х., ,Сейдахметова Г.Е., Калижанова А.У.
Казахский национальный технический университет имени К.И.Сатпаеваг
г.Алматы , Республика Казахстан
krit_0514@mail.ru
ВНЕДРЕНИЕ ПРОГРАММИРОВАНИЯ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ КАК КУРС
СТАНОВЛЕНИЯ ОБРАЗОВАТЕЛЬНОЙ ДЕЯТЕЛЬНОСТИ
Аннотация. В данной статье рассмотрены перспективы использования и положительные моменты
включения мобильного программирования в программу бакалавриата и средней школы.
Ключевые слова: мобильное программирование, методы обучения, IT-технологии, развитие
информатики как социальной сферы.
Сегодняшний мир форсирует рост информационных технологий, на текущей фазе развития
образования информационная отрасль занимает первые позиции. Иногда человечий мозг никак не
успевает обхватить разносторонность теснее наличествующего информационно-технического места.
Одной из привлекательных мыслей в сфере становления образования хоть какой области считается
использование исследований мобильных приложений в системе изучения определенному предмету.
Более того, этот вопрос уже давно не считается идеей, а активно внедряется в систему изучения в
целом. Пока этот шаг имеется в сфере дополнительного образования, но не исключено, что данный
способ в скором времени будет частью базисной системы изучения. Присутствие немалого
количества источников литературы обосновывает реальность изучения разработке мобильных
приложений от простейших разновидностей до наиболее профессиональных программных товаров.
С каждым годом отмечается быстрое понижение применения настольного персонального
компьютера и острое усиление использования мобильных устройств, в частности, планшетов.
Новейший эволюционный курс виден невооруженным глазом. Рынок мобильных устройств
увеличивается быстрыми темпами: ожидалось, что по объемам рынка смартфоны опередят ноутбуки
и стационарные ПК лишь в 2012 году, но это произошло на два года раньше. Это означает, что выход
в интернет в настоящий период времени, в 2014 году, осуществляется гораздо чаще с мобильных
устройств, нежели со стационарных ПК и ноутбуков.
Таким образом, одним из наиболее важных и передовых предполагаемых свежих ветвей в курсе
предметной области информационных технологий в общеобразовательной школе предстает
мобильное программирование. Мобильное программирование – это разрабатывание проектов для
мобильных устройств. Впрочем при написании приложений для телефонов и планшетов важен запас
знаний об их спецификах, кроссплатформенности, нюансах операционных систем для мобильных
устройств и многом остальном.
Овладение мобильного программирования понемногу вводится во многочисленные иностранные
образовательные программы. Для примера можно рассмотреть университет Кингстона, где в курс
бакалавриата включена отдельная специальность «Мобильное программирование». К сожалению, в
нашем государстве освоить данную профессию пока неосуществимо, однако имеется великое
множество специализированных курсов изучения мобильного программирования. Кроме того
имеется огромное число онлайн-курсов и обучающей литературы по данному предмету.
Одной из главной трудностей введения данного курса в образовательные шаблоны считается
небольшое количество методологической литературы на русском и казахском языке, а также малая
численность преподавателей по этой специальности.
Есть много методических специфик преподавания мобильного программирования. Осваивая
мобильное программирование, достаточно просто использовать проблемные, поисковые, проектные
технологии изучения, обеспечивающие процесс самостоятельности обучаемого в постановке
проблем, а также технологии игрового и обучения, позволяющие проектировать учебную
деятельность и дополнять мотивацию к учебе. Также хочется особо выделить, что, в отличие от
390
классического программирования, разработка мобильных приложений требует базовых знаний
дизайна, типографики, инфографики, грамотной организации экранного места. Необходимо обучить
грамотно и уместно применять разные элементы управления: панорамы, пивоты и так далее.
Существенную роль играет применение многих интегрированных в смартфон устройств, таких как
акселерометр, видеокамера, фотокамера, GPS-приемник и многое другое. То есть обширный
потенциал мобильных устройств гарантируют наглядность изучения
Естественно, мобильному программированию только предстоит пройти длинный путь до
внедрения в курс изучения бакалавров по информационным специальностям, однако не смотря ни на
что, активный прогресс мобильных технологий безусловно повлечет за собой их будущее более
сильное вовлечение и в общеобразовательную программу.
Далее описаны основные трудности создания приложений под Android. Рассматриваются
базовые понятия программирования Android. Для примера описано создание игры Sudoku из книги
Hello, Android – EdBurnette.
Android – это уникальная операционная система. Разработчик приложений должен знать ее
особенности и нюансы для получения хорошего результата. Существуют некоторые трудности,
которые нужно учитывать при разработке.
Перечислим их кратко:
1) Приложение требует для установки в два раза (или даже в четыре) больше места чем
оригинальный размер приложения.
2) Скорость работы с файлами на встроенной флэшке падает в десятки раз при уменьшении
свободного места.
3) Каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.
Существует ряд рекомендаций по созданию производительных приложений под Android. Их
также можно расширить на основе книг EffectiveJava — JoshuaBloch и Программирование мобильных
устройств на платформе .NetCompactFramework — И.Салмре.
Перечислим основные принципы разработки производительных приложений под Android.
Стратегические:
1) Ресурсы нужно экономить.
2) Нужно мгновенно выдавать реакцию на действия и поддерживать обратную связь с
пользователем.
3) Производительность приложения главная цель. Нужно постоянно в процессе разработки
оптимизировать производительность не оставляя эту работу на потом.
4) Нужно измерять время выполнения, протоколировать и анализировать ход выполнения
приложения, узкие участки кода, возникновения событий, выделение памяти, время жизни объектов.
Что не измеряется, то нельзя оптимизировать.
Тактические:
1) Избегайте создания лишних объектов.
2) По возможности делайте методы статичными.
3) Используйте прямой доступ к полям вместо методов посредников.
4) Используйте staticfinal для констант.
5) Не используйте enum там, где достаточно обычной переменной целого типа.
Android основан на Linux. Между приложением и ядром лежит слой API и слой библиотек на
нативном коде. Приложение выполняется на виртуальной машине Java (Dalvik Virtual Machine).В
Android можно запускать много приложений. Но одно из них есть главным и занимает экран. От
текущего приложения можно перейти к предыдущему или запустить новое. Это похоже на браузер с
историей просмотров.
Каждый экран пользовательского интерфейса представлен классом Activity в коде. Различные
Activity содержатся в процессах. Activity может даже жить дольше процесса. Activity может быть
приостановлена и запущена вновь с сохранением всей нужной информации.
Также Android содержит сервисы подобные демонам в Linux для выполнения нужных действий
в фоновом режиме (например, проигрывание музыки). Для обмена данными между приложениями
используются Contentproviders (провайдеры содержимого).
Будем рассматривать готовый проект игры Судоку.
Для работы нужен Android SDK и Eclipse. О том как все установить и начать написано тут.
Для загрузки проекта в Eclipse нужно выполнить такую последовательность действий:
1) Разархивировать проект в отдельную папку в рабочем пространстве Eclipse.
2) Выбрать пункт меню File->New->Android Project.
391
3) В диалоге New Android Project выбрать опцию Create project from existing source.
4) В поле Location указать путь к папке с проектом. Нажать Next.
Меню программы
Игровое меню описано в файле res/layout/main.xml. Описание интерфейса можно редактировать
в виде XML или в виде визуализированного интерфейса. Для переключения служат вкладки внизу
области отображения содержимого.
Обычно элементы управления содержатся внутри контейнера, в нашем случае это Linear Layout.
Он располагает все элементы в виде одной колонки.
Ресурсы
Обратите внимание, что все текстовые надписи (android:text) берут данные из ресурсов.
Например, запись android:text="@string/main_title" указывает, что текст нужно искать в файле
res/values/string.xml в узле с именем main_title (AndroidSudoku). Цвет фона также содержится в
ресурсах (android:background="@color/background") но в файле color.xml (#3500ffff). При открытии
файлов ресурсов в редакторе может возникнуть ошибка. Но всегда можно перейти к отображению
XML.
392
Элементы управления к которым нужно получить доступ из кода должны иметь id. У кнопок
есть id (android:id="@+id/continue_button") для того что бы было можно присоединить к кнопке
обработчик нажатия. Знак плюс указывает, что для кнопки нужно создать идентификатор в файле
/gen/org.example.sudoku/R.java (publicstaticfinalintcontinue_button=0x7f0b000b;).
Этот
файл
генерируется автоматически и не рекомендуется его изменять. Файл содержит класс R через него
можно обратиться к любому элементу интерфейса и другим ресурсам.
393
Создание окон
Рассмотрим создание окна с информацией о программе. Разметка этого окна находится в файле
/res/layout/about.xml. Activity класс описан в файле /src/org.example.sudoku/About.java. Activity связана
с разметкой в файле Android Manifest.xml. Этот файл можно просматривать или через редактор или в
виде XML. На разных вкладках редактора можно выбрать различные разделы файла. В разделе
Application находятся параметры Activity. Обратите внимание, что параметр Theme имеет значение
@android:style/Theme.Dialog. Благодаря этому стиль окна больше похож на модальный диалог.
Вызов окна с информацией о программе осуществляется из класса Sudoku по нажатию кнопки
About. Класс Sudoku написан так, что сам обрабатывает событие Click (public class Sudoku extends
Activity implements OnClickListener). В методе public void onClick(View v) определяется какая кнопка
вызвала событие и выполняется соответствующий код. Для показа окна About вызывается
394
соответствующий Intent.
caseR.id.about_button:
Intent i = new Intent(this, About.class);
startActivity(i);
break;
Обработчики событий также могут устанавливаться на конкретные элементы управления.
Например в классе Keypad при создании класса в методе setListeners() устанавливаются обработчики
для отдельных кнопок.
Простой диалог
Пользователю нужно дать возможность выбрать уровень сложности. Это маленький диалог, в
котором нужно выбрать один из нескольких вариантов. Очень радует, что для этого не нужно
создавать отдельный Intent, а достаточно воспользоваться классом AlertDialog.
Разберем процес старта новой игры. Пользователь нажимает на кнопку New Game. Обработчик
нажатия это метод класса Sudoku – onClick. Далее вызывается метод openNewGameDialog, который
показывает диалог выбора сложности и стартует игру с выбранным уровнем сложности. Это диалог
строится с помощью класса AlertDialog.
Private void openNewGameDialog() {
newAlertDialog.Builder(this)
.setTitle(R.string.new_game_title)
.setItems(R.array.difficulty,
newDialogInterface.OnClickListener() {
public void onClick(DialogInterfacedialoginterface,
inti) {
startGame(i);
}
})
.show();
}
Графика
За игровую логику отвечает класс Game. Тут загружаются задания, проверяются условия
выигрыша. Класс Game есть Activity но интерфейс описан не в XML, а создается кодом. В методе
onCreate создается View:
puzzleView = new PuzzleView(this);
395
setContentView(puzzleView);
puzzleView.requestFocus();
PazzleView это класс производный от View, в нем рисуется игровое поле и происходит
обработка событий касания экрана (метод onTouchEvent) и нажатия клавиш (метод onKeyDown).
Разберем процесс рисования в Android. Для рисования нужно перегрузить метод onDraw. Метод
получает объект Canvas, через который осуществляется рисование. Для задания цветов создаются
обьекты класса Paint. Цвет задается в формате ARGB. Цвет лучше хранить в виде ресурсов (файл
colors.xml). Paint это не только класс для хранения информации о цвете. Например, при рисовании
текста он содержит информацию о способе закрашивания, шрифте и выравнивании текста.
Canvas содержит набор методов для рисования графики (drawRect, drawLine, drawPath, drawText
и другие).
Для оптимизации графики, лучше воздержаться от создания объектов и лишних вычислений
внутри метода onDraw (рассматриваемый пример реализации графики не оптимален).
Обратите внимание, что содержимое диалога (набор кнопок) строится из массива строк
R.array.difficulty. Тут же назначается обработчик нажатия на кнопки диалога, который по номеру
нажатой кнопки запускает новую игру с заданным уровнем сложности, вызывая метод startGame.
Музыка
Для воспроизведения музыки используется класс MediaPlayer. Музыка для игры добавлена в
ресурсы. Нужно просто скопировать нужные файлы в папку /res/raw (форматы WAV, AAC, MP3,
WMA, AMR, OGG, MIDI).
Для начала нужно создать экземпляр класса MediaPlayer:
mp = MediaPlayer.create(context, resource);
тут context это обычно класс, который инициирует запуск музыки, resource – идентификатор
ресурса с музыкой. Для управления воспроизведением используют методы start, stop и release.
В игре музыка воспроизводится в главном меню (запуск из класса Sudoku) и в игровом процессе
(запуск из класса Game). Для управления воспроизведением создан класс Music. Класс содержит
статический экземпляр MediaPlayer, что позволяет не создавать отдельный проект для каждого
запуска звукового ресурса.
В классах Sudoku и Game переопределены методы onResume и onPause, в которых запускается
музыка при старте Activity и останавливается при деактивации.
Выводы
Пример, который рассматривается в статье не слишком сложный, что позволяет в нем
разобраться без особых усилий. При этом он затрагивает различные аспекты разработки под Android.
396
ЛИТЕРАТУРА
1. Леонтьев В.П. Новейшая энциклопедия Компьютер и Интернет 2013. / М.:
2. Гриншкун В.В. Качество информационных ресурсов и профессиональные качества педагогов. Взаимосвязь
и проблемы. // Информатика и образование. М.,-2013, №1. С. 79-81.Изд. ОлмаМедиаГрупп, 2013.- 960 с.
3. Федотова Е.Л., Федотов А.А. Информационные технологии в науке и образовании: учебн. пособие /
Е.Л. Федотова, А.А. Федотов. — М.: ИД «ФОРУМ»: ИНФРА-М, — 2013, 336 с.: ил.
4. Люк Вроблевский. Сначала мобильные! Серия «Актуальные книги для тех, кто создает сайты», книга 4:
Манн Иванов и Фербер, Москва,- 2012 г, 134 с
5. Кузьмичёв А.Э. Мобильное программирование в подготовке бакалавров информационных
специальностей. Сборник научных трудов «Применение инновационных технологий в образовании. ИТО
Троицк-2013».
REFERENCES:
1. Leont'ev V.P. NovejshajajenciklopedijaKomp'juteri Internet 2013. / M.:
2. Grinshkun V.V. Kachestvo informacionnyh resursov i professional'nye kachestva pedagogov. Vzaimosvjaz' i
problemy. // Informatika i obrazovanie. M.,-2013, №1. S. 79-81.Izd. OlmaMediaGrupp, 2013.- 960 s.
3. Fedotova E.L., Fedotov A.A. Informacionnye tehnologii v nauke i obrazovanii: uchebn. posobie / E.L.
Fedotova, A.A. Fedotov. — M.: ID «FORUM»: INFRA-M, — 2013, 336 s.: il.
4. Ljuk Vroblevskij. Snachalamobil'nye! Serija «Aktual'nye knigi dlja teh, kto sozdaet sajty», kniga 4: Mann
Ivanov i Ferber, Moskva,- 2012 g, 134 s
5. Kuz'michjovA.Je. Mobil'noe programmirovanie v podgotovke bakalavrov informacionnyh special'nostej.
Sbornik nauchnyh trudov «Primenenie innovacionnyh tehnologij v obrazovanii. ITO Troick-2013».
Серекбаев М.К., Қозбакова А.Х., Сейдахметова Г.Е., Қалижанова Ə.У.
Достарыңызбен бөлісу: |