Инфоурок Информатика СтатьиМетодические особенности изучения темы численного решения дифференциальных уравнений

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

Скачать материал

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

Мордовских И.Е.,
учитель информатики,
МКОУ «Ушаковская СОШ»

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

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

Курс численных методов изучается в ВУЗ’ах и на факультетах технического направления. Он включает в себя различные темы.

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

За последние годы численным методам решения прикладных задач посвящен целый ряд работ таких авторов как В.М. Вержбицкий, В.Н. Исаков, Б.П. Демидович, М.П. Лапчик, П.И. Лизоркин, В.М. Заварыкин, А.А._Самарский и другие.

У некоторых из них представлена реализация численных методов на каком-либо языке программирования (Qbasic, Turbo Pascal, Фортран и др.), у некоторых показано, как данные методы могут быть реализованы в каком-либо математическом пакете (Mathcad, Matlab и др.).

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

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

 

I. Для начала рассмотрим как решение дифференциальных уравнений реализуется при помощи ПРОГРАММИРОВАНИЯ.

Обыкновенные дифференциальные уравнения (или просто ОДУ) первого порядка  с начальным условием  наиболее изучены, поэтому существует огромное количество методов их решения.

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

Рассмотрим некоторые из существующих методов.

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

Метод Эйлера на самом деле представляет собой целую группу методов, т.к. существует огромное количество его модификаций, и хотя их порядок не превышает второго, они являются основой для другого семейства методов – методов Рунге-Кутты, речь о которых пойдёт ниже.

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

Методы Эйлера, в отличие от метода последовательных приближений, являющегося итерационным по сути, являются итерационными лишь по форме; на самом деле, это шаговые методы, в которых на каждом шаге выполняются однотипные действия; характерного для итерационных методов уточнения решения здесь не происходит. Этот метод реализуется за счёт разложения функции y(x) в окрестности точки x0 в ряд Тейлора , который можно применять для нахождения приближённого значения y(x).

Идея построения методов Рунге-Кутты р-го порядка заключается в получении приближений к значениям f(xi+1) по формуле вида  где j(х,.у,.h) — некоторая функция, приближающая отрезок ряда Тейлора до р-го порядка и не содержащая частных производных функции f(x,.у). Таким образом метод Эйлера можно считать простейшим примером методов Рунге-Кутты, соответствующим случаю р.=.1. Для построения методов Рунге-Кутты порядка, выше первого, функцию j(х,.у,.h) берут многопараметрической, и подбирают ее параметры сравнением формулы, представленной выше, с многочленом Тейлора для у(х) соответствующей желаемому порядку степени.

Лучше в качестве реализации использовать методы второго и четвёртого порядков, а также пятиэтапный метод Кутты-Мерсона.

Алгоритмы решения дифференциальных уравнений первого порядка методами Эйлера и Рунге-Кутта различных порядков достаточно просты и легко реализуемы на языке программирования.

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

Особенность этих методов заключается в том, что для нахождения решения им необходимы несколько начальных значений, которые находятся каким-либо другим методом (например, методом Рунге-Кутта второго порядка).

Методы Адамса – это два семейства методов: экстраполяционные методы Адамса—Башфорта и интерполяционные методы Адамса-Моултона.

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

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

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

Дифференциальные уравнения в частных производных наименее изучены. Они представляют собой частные случаи, что затрудняет составление каких-либо общих методов решения. Наиболее общим является метод сеток, однако алгоритмы решения разных дифференциальных уравнений в частных производных будут существенно отличаться.

Метод сеток можно продемонстрировать на примере решения уравнения диффузии или уравнения теплопроводности в стержне вида  при заданном a2 на отрезке [x0; xn-1] по явной разностной схеме с шагом по пространственной сетке ∆x в течении промежутка времени [t0; tm-1] с шагом по временной сетке ∆t. Начальное условие

и краевые условия

В начальный момент времени левая половина стержня имеет температуру °С, правая половина – температуру °С, а затем происходит процесс перераспределения температуры при условии, что на левом конце стержня поддерживается температура p1°С, а на правом p2°С.

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

Искомую функцию u(х, t) будем аппроксимировать ее значениями в узлах сетки. Конечно, такое представление не дает полного описания, но в промежуточных точках, если сетка достаточно мелкая, возможна интерполяция.

Для внутренних узлов сетки используем центрально-разностную аппроксимацию производной, а для крайних узлов — одностороннюю.

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

Асимптотика решения при больших значениях t фактически очевидна (линейная функция) из физического смысла решаемой задачи. Действительно, если неоднородно нагретый в начальный момент стержень достаточно долго держать в условиях, когда на его концах поддерживаются постоянные (неодинаковые) значения температуры, то процесс теплопроводности приведёт к установлению линейного распределения температуры вдоль стержня.

Среди дифференциальных уравнений в частных производных это будет самый удобный пример.

 

II. А теперь рассмотрим решение этой же проблемы при помощи ИСПОЛЬЗОВАНИЯ ПРИКЛАДНЫХ ПРОГРАММ.

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

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

Для численного интегрирования одного ОДУ (равно как и системы ОДУ) можно использовать вычислительный блок GivenOdesolve, введённый впервые в версии Mathcad 2000 Professional, где после ключевого слова Given задаётся само дифференциальное уравнение и начальные условия для функции и производной (или производных, если ОДУ порядка выше первого) в точке x0. Затем функция Odesolve возвращает вектор решения ОДУ при заданных переменной, относительно которой решается уравнение, и конце интервала интегрирования. После чего решение можно вывести в виде таблицы или графика.

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

Mathcad имеет возможность находить решение дифференциального уравнения методами Рунге-Кутта. Достоинством Mathcad’а является то, что метод Рунге-Кутта он реализует несколькими функциями.

Функция rkfixed решает дифференциальное уравнение методом Рунге-Кутта четвёртого порядка с фиксированным шагом и находит решение аналогичное найденному с помощью программы на языке программирования.

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

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

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

Встроенные функции rkfixed, Rkadapt и Bulstoer, решают линейные и нелинейные ОДУ, а также системы дифференциальных уравнений любого порядка методами Рунге-Кутта четвёртого и пятого порядков.

Для решения дифференциальных уравнений в частных производных существует функция multigrid, решающая дифференциальные уравнения Пуассона:

.

Необходимо задать граничные условия (начальное приближение во всех узлах), три точечных источника, матрицу, содержащую значения правой части уравнения Пуассона и число циклов на каждом уровне итерации функции multigrid (хорошую аппроксимацию решения обычно дает значение 2). Решение уравнения Пуассона выводится в виде трёхмерного графика.

 

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

Кроме того, полученный результат представляется в более наглядной форме, чем результат запуска программы, составленной на языке программирования, а это в какой-то мере облегчает для студентов изучение темы.

Но не следует считать исчерпывающим исследование данной темы только лишь в прикладном пакете, поскольку в отличие от самостоятельного составления программ на конкретном языке программирования изучение численных методов решения дифференциальных уравнений встроенными функциями Mathcad’а не даёт никаких представлений о внутренних механизмах работы данных методов, т.е. алгоритм методов решения не виден, остается вне зоны видимости пользователя.

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

С другой стороны не все ВУЗ’ы занимаются языками программирования и могут предложить своим студентам обучение численным методам с точки зрения программирования. Поэтому нельзя сказать, что практическая реализация с помощью программ является ведущей.

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

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методические особенности изучения темы численного решения дифференциальных уравнений"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Психолог-консультант

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Краткое описание документа:

Тема: «Решение дифференциальных уравнений» является одной из самых сложных и мало изученных в курсе численных методов.

За последние годы численным методам решения прикладных задач посвящен целый ряд работ таких авторов как В.М. Вержбицкий, В.Н. Исаков, Б.П. Демидович, М.П. Лапчик, П.И. Лизоркин, В.М. Заварыкин, А.А._Самарский и другие.

У некоторых из них представлена реализация численных методов на каком-либо языке программирования (Qbasic, Turbo Pascal, Фортран и др.), у некоторых показано, как данные методы могут быть реализованы в каком-либо математическом пакете (Mathcad, Matlab и др.).

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

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

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 663 247 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 03.11.2017 1126
    • DOCX 74.5 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Мордовских Илья Евгеньевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Мордовских Илья Евгеньевич
    Мордовских Илья Евгеньевич
    • На сайте: 6 лет и 5 месяцев
    • Подписчики: 0
    • Всего просмотров: 1203
    • Всего материалов: 1

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Бухгалтер

Бухгалтер

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 23 человека из 16 регионов

Курс профессиональной переподготовки

Разработка и сопровождение требований и технических заданий на разработку и модернизацию систем и подсистем малого и среднего масштаба и сложности

Системный аналитик

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Сейчас обучается 66 человек из 34 регионов
  • Этот курс уже прошли 83 человека

Курс повышения квалификации

Методика преподавания информатики в начальных классах

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Этот курс уже прошли 67 человек

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Математика и информатика")

Учитель математики и информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 38 человек из 18 регионов
  • Этот курс уже прошли 33 человека

Мини-курс

Основы дизайна в Figma

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 83 человека из 27 регионов
  • Этот курс уже прошли 11 человек

Мини-курс

Эффективное создание и продвижение школьной газеты

3 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Организация образовательного процесса в современном вузе

5 ч.

780 руб. 390 руб.
Подать заявку О курсе