Разработка программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона - Программирование, компьютеры и кибернетика курсовая работа

Главная
Программирование, компьютеры и кибернетика
Разработка программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона
Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В курсовой работе в соответствии с заданием на проектирование решается задача разработки программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона.
В данной пояснительной записке проводится описание последовательности шагов по составлению программы на алгоритмическом языке Turbo Pascal. Рассматриваются вопросы математической формулировки и алгоритмизации задачи, разработки блок-схемы алгоритма её решения, составления исходной Pascal-программы и реализации вычислений по составленной программе.
Выбор метода вычисления, обращение к справке по программе и выход из программы обеспечивается с помощью специального меню. Ввод исходных данных и вывод результатов вычисления выполняется в отдельном для каждого метода вычислений окне.
В пояснительной записке приводится также сравнения точности вычислений корней системы уравнений использованными методами.
Ставится задача составить программу решения системы дифференциальных уравнений:
Требуется найти решение системы дифференциальных уравнений (1) методом Рунге-Кутта и методом Рунге-Кутта-Мерсона. Выбор метода решения посредствам меню, при помощи клавиш управления курсором.
Таким образом, программа должна обеспечивать возможность:
выбора пользователем численного метода поиска решения системы дифференциальных уравнений;
предоставить пользователю возможность получить краткую справку о программе;
вывода результатов вычисления на дисплей в удобном для восприятия виде.
В результате сформулируем следующую задачу по созданию програ м мы:
вид системы дифференциальных уравнений должен задаваться в подпрограмме - процедуре;
вид правой части уравнений должен задаваться в подпрограмме - функции;
программа после загрузки должна выводить на дисплей исходное окно-заставку, в которой отображаются общие сведения о статусе программы и её авторе;
после выполнения указанной в строке подсказки процедуры перехода должно выводиться вертикальное меню с пунктами: «Справка», «Метод Рунге-Кутта», «Метод Рунге-Кутта-Мерсона» и «Выход»
при выборе в меню пункта «Справка» должна выводиться краткая справка о назначении программы;
после выбора в меню варианта численного метода должно открываться отдельное окно, в котором будут вводиться начальные условия и выводиться результат поиска выбранным методом;
при выборе пункта меню «Выход» программы должна завершать работу.
2. Математическая формулировка задачи
Задача Коши заключается в решении систем обыкновенных дифференциальных уравнений (1) первого порядка, представляемых в виде:
Где j =1 N -номер каждой зависимой переменной y j , x -независимая переменная .
Решение системы (1.1) при заданных начальных условиях x = x 0 , y 1 ( x 0 )= y 10 ,…, y 2 ( x 0 )= y 20 , y N ( x 0 )= y N 0 сводиться к нахождению зависимостей (интегральных кривых ) y 1 ( x ),…, y 2 ( x ), y N ( x ), проходящих через точки ( x 0 , y 10 ), ( x 0 , y 20 ),…, ( x 0 , y N 0 ). Задача Коши сводиться к интегрированию дифференциальных уравнений. Порядок метода численного интегрирования при этом определяется и порядок метода решения (1).
Этот метод является наиболее распространенным методом решения систем (1.1) при шаге h = const . Его достоинством является высокая точность-погрешность - и меньшая склонность к возникновению неустойчивости решения. Алгоритм реализации метода заключается в циклических вычислениях Y j ( i +1) на каждом i+1 шаге по следующим формулам:
При переходе от одной формулы к другой задаются или вычисляются соответствующие значения x и Y j и находятся по подпрограмме значения функции F j ( x , Y j ).
Автоматическое изменение шага в ходе решения систем дифференциальных уравнений необходимо, если решение требуется получить с заданной точностью. При высокой точности (погрешность ) и решении в виде кривых с сильно различающейся крутизной автоматическое изменение шага обеспечивает уменьшение общего числа шагов в несколько раз, резко уменьшается вероятность числовой неустойчивости, даёт более равномерное расположение точек графика кривых (решений) при их выводе на печать. Данный метод обеспечивает приближённую оценку погрешностей на каждом шаге интегрирования. Погрешность интегрирования имеет порядок h 5 . Этот метод реализуется следующим алгоритмом: Задаём число уравнений N, погрешность е= E , начальный шаг интегрирования h = H и начальное значение y 10 ,…,y N 0 . С помощью пяти циклов с управляющей переменной J=1,2,..,N вычисляем коэффициенты:
Находим (в последнем цикле) значение (12)
Если условие (14) не выполняется, то делим шаг h на 2 и повторяем вычисления. Если это условие выполняется и выполняется условие (15), значение x i +1 = x i + h и Y j ( i +1) , то считаем, что решение системы дифференциальных уравнений найдено с заданной точностью. Если условие (15) не выполняется , шаг h увеличивается вдвое и вычисления повторяются.
В соответствии с постановленной в разделе 2 задачей целесообразно реализовать алгоритм, использующий обращение к соответствующим подпрограммам из головной программы.
Алгоритм работы головной программы сл е дующий:
Скрыть курсор с использованием подпрограммы - процедуры скрытия курсора и вывести в специальном окне заставку программы, содержащую сведения о назначении программы, исполнителе и руководителе курсовой работы, а также подсказку для пользователя о последующих действиях, с использованием подпрограммы - процедуры заставки.
Запустить подпрограмму-процедуру вертикального меню при нажатии любой клавиши с использованием подпрограмм-процедур построения окна, вывода рамки окна и скрытия курсора.
Запустить подпрограмму-процедуру справки и вывести в специальном окне справочные сведения о работе с программой при выборе пункта меню «Справка» с использованием строки-подсказки о возврате в меню.
Запустить подпрограмму-процедуру поиска решения системы дифференциальных уравнений методом Рунге-Кутта при выборе пункта меню «Метод Рунге-Кутта» с использованием включения курсора, а также строки-подсказки о возврате в меню.
Запустить подпрограмму-процедуру поиска решения системы дифференциальных уравнений методом Рунге-Кутта-Мерсона при выборе пункта меню «Метод Рунге-Кутта-Мерсона» с использованием включения курсора, а также строки-подсказки о возврате в меню.
Завершить работу программы при выборе пункта меню «Выход».
Алгоритм поиска решения системы уравнения методом Рунге-Кутта в подпрограмме-процедуре runkut включает сл е дующие шаги:
Создать окно для ввода исходных данных и вывода результатов вычисления.
Восстановить отображение курсора нормального размера соответствующей подпрограммой - процедурой.
Задать начальный шаг-h и начальные значение x о ,y 10 ,…,y N 0 .
В подпрограмме-функции задаём вид правой части уравнений.
В подпрограмме-процедуре задаём вид системы дифференциальных уравнений.
Организовать цикл для поиска коэффициентов погрешности по формулам (2-5)
По формуле (6) найти решение системы дифференциальных уравнений .
Вывести результаты вычислений в том же окне.
Вывести в окне запрос о продолжении вычислений с новыми исходными данными.
Выполнить анализ кода нажатой в ответ на запрос клавиши: при нажатии “Y” повторить ввод снова, при нажатии “N” перейти в окно с меню.
Алгоритм поиска решения системы уравнений методом Рунге-Кутта-Мерсона в подпрограмме процедуре rukutm включ а ет:
Создание окно для ввода исходных данных и вывода результатов вычисления.
Восстановления отображение курсора нормального размера соответствующей подпрограммой - процедурой.
Задание начального шаг-h, начальных значений x о ,y 10 ,…,y N 0 и точности вычисления- е.
Подпрограмме-процедуре задаём вид системы дифференциальных уравнений
В подпрограмме-функции задаём вид правой части уравнений
С помощью пяти циклов с управляющей переменной J=1,N вычисляем коэффициенты по формулам (7)-(11).
В последнем цикле находим решение системы дифференциальных уравнений по формуле (12) и погрешность по формуле (13).
Проверка выполнение условий (14) и (15). Если первое условие не выполняется то h := h /2 и переходим к п.5.
Если выполняются оба условия, то значение x i +1 = x i + h и Y j ( i +1) выводим на экран.
Если второе условие не выполняется, то h := h + h и переходим к п.5.
Вывести результаты вычислений в том же окне.
Вывести в окне запрос о продолжении вычислений с новыми исходными данными.
Выполнить анализ кода нажатой в ответ на запрос клавиши: при нажатии “Y” пoвторить ввод снова , при нажатии “N” перейти в окно с меню.
Для указания соответствия обозначений переменных в формулах математической формулировки и их идентификаторов в программе сведем их в таблицу 1:
Остальные идентификаторы являются промежуточными или служебными.
5.1 Блок-схема алгоритма головной программы
5.2 Блок-схема алгоритма подпрограммы-процедуры runkut
5.3 Блок-схема алгоритма подпрограммы-процедуры rukutm
5.4 Блок-схема подпрограммы-процедуры mo y m enu
5.5 Блок-схема подпрограммы-процедуры ur
5.6 Блок-схема подпрограммы- функции f 1
5.7 Блок-схема подпрограммы- функции f 2
5. 8 Блок-схема подпрограммы-процедуры CursorSize
5. 9 Блок-схема подпрограммы-процедуры HiddeCursor
5. 10 Блок-схема подпрограммы-процедуры NormCursor
5.9 Блок-схема подпрограммы-процедуры Spravka
5.10 Блок-схема подпрограммы-процедуры Zastavka
y,w,k,f,e,a,c,d:array[1..10] of real;
Procedure ramka (x1,y1,x2,y2:byte);
Procedure Okno(x1,y1,x2,y2,Fcolor,Tcolor:byte);
Writeln(' Министерство образования Республики Беларусь');
Writeln(' Белорусский национальный технический университет');
writeln(' Программа решения системы дифференциальных уравнений ');
writeln(' по дисциплине "Информатика" ');
Writeln(' Исполнитель: Неверовская Я.Б') ;
writeln(' Руководитель: Петренко С.М.');
writeln(' Для продолжения нажмите любую клавишу... ');
Writeln(' Данная программа позволяет найти решения системы дифференциальных уравнений. ') ;
Writeln(' В частности системы уравнений:');
Writeln(' y`2=-2*y1+4*y2+2*x1*x1-4*x1-7 ');
Writeln(' методом Рунге-Кутта или методом Рунге-Кутта-Мерсона. ') ;
Writeln(' Правые части системы дифференциальных уравнений заданы в подпрограммах ');
Writeln(' функциях f1 и f2 соответственно. В данных подпрограммах можно задать');
Writeln(' свои функции вместо исходных.');
Writeln(' После перехода в меню выберите клавишами управления курсора');
Writeln('При выборе пунктов меню "Метод Рунге-Кутта " или "Метод');
Writeln('Рунге-Кутта-Мерсона " введите исходные данные , программа выведет');
writeln(' полученные результаты.');
write( ' Для возврата в меню нажмите любую клавишу... ' ) ;
Writeln(' Для прдолжения вычисления нажмите Y, для выхода -N');
if ch=#121 then moymenu else Zastavka;
2: Write('Задайте положительный начальный h=');
Write('Задайте начальные y0[',j,']=');
Writeln('решение системы дифференциальных уравнений:');
writeln('Для продолжения вычисления нажмите ,');
if ch=#121 then runkut else moymenu;
Writeln('Метод Рунге-Кутта-Мерсона ');
3: Write('задайте положительный начальный шаг h=');
Write('Задайте погрешность вычислений e=');
write('Введите начальное Y0[',j,']=');
e2:=abs(-2*a[j]+9*c[j]-8*d[j]+e[j])/30;
Writeln('решение системы дифференциальных уравнений:');
writeln('Для продолжения вычисления нажмите ,');
if ch=#121 then rukutm else moymenu;
После запуска программы в соответствии с поставленной задачей на проектирование выводится окно заставки программы, приведенное на рисунке 1.
После нажатия любой клавиши выводится окно с меню, представленное на рисунке 2.
При выборе пункта меню «Справка» открывается соответствующие окно в котором находится справочная информация о программе. Пример такого окна представлен на рисунке 3.
При выборе пункта меню « Метод Рунге-Кутта » или «Метод Рунге-Кутта-Мерсона» открывается соответствующие окна, в которых вводятся исходные данные и выводятся результаты вычисления. Примеры таких окон представлены на рисунках 4 ( Метод Рунге-Кутта ) и 5 (Метод Рунге-Кутта-Мерсона).
Рисунок 4. Вычисление методом Рунге-Кутта.
Рисунок 5. Вычисление методом Рунге-Кутта-Мерсона.
Для анализа результатов сведем данные нескольких расчетов в таблицу.
Сравнение методов показывает, что они обеспечивают примерно одинаковое решение.
В большинстве случаев метод Рунге-Кутта-Мерсона даёт более точный результат (погрешность ). Кроме того, хотя он громоздок в реализации, но быстрая сходимость метода компенсирует увеличение числа вспомогательных операций и, резко уменьшает вероятность числовой неустойчивости.
9. Инструкция по работе с программой
Файл NYBKURSO.pas с исходным текстом Паскаль-программы находится по адресу E:\2 kurs\Неверовская. Результат компиляции исходной программы NYBKURSO.exe находится в той же папке.
Необходимо запустить на выполнение NYBKURSO.exe либо загрузить Turbo Pascal, сделать текущим каталог Неверовская, открыть файл с исходной Паскаль-программой NYBKURSO.pas и запустить ее на выполнение командой Run\ Run.
После вывода заставки программы нажать любую клавишу для перехода в меню и открыть окно справки. После ознакомления со справкой нажатием любой клавиши возвратится в окно меню, с помощью клавиш управления курсором выбрать метод вычисления и ввести по запросу программы значения, а также погрешность.
Результаты вычисления выводятся в том же окне, где вводились исходные данные.
Для продолжения вычислений следует ответить на запрос программы нажатием клавиши `Y', что обеспечит переход к повторному вводу данных. Нажатие клавиши `N' приводит к переходу в меню программы.
Завершение работы с программой реализуется выбором пункта меню “Выход”.
В данной курсовой работе разработана блок-схема и реализована средствами языка программирования Турбо-Паскаль программа, позволяющая решить систему дифференциальных уравнений :
методом Рунге-Кутта-Мерсона и методом Рунге-Кутта.
Программа по запросу пользователя сообщает общие сведения по работе с программой и производит вычисления, выбор метода вычисления производится посредством меню, ввод данных осуществляется с клавиатуры по запросу программы.
Из анализа результатов вычисления можно сделать вывод о большей точности вычисления по методу Рунге-Кутта-Мерсона.
Разработка программы на языке Turbo Pascal 7.0 для преобразования кинетической схемы протекания химических реакций при изотермических условиях в систему дифференциальных уравнений. Ее решение в численном виде методом Рунге-Кутта четвертого порядка. курсовая работа [929,7 K], добавлен 06.01.2013
Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++. курсовая работа [163,4 K], добавлен 16.05.2016
Анализ предметной области объектно-ориентированного программирования. Языки Delphi, Object Pascal - объектно-ориентированная среда программирования. Основные алгоритмические решения. Решение дифференциального уравнения методом Рунге-Кутта в среде Excel. курсовая работа [1,5 M], добавлен 02.04.2011
Математическое описание задачи решения обыкновенного дифференциального уравнения численным явным методом Рунге-Кутта, разработка схемы алгоритма и написание программы в среде программирования Microsoft Visual Studio 2010. Тестирование работы программы. курсовая работа [1,1 M], добавлен 22.01.2014
Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов. курсовая работа [532,9 K], добавлен 14.01.2014
Математическая модель, описание теории, применяемой к задаче. Обсчет точек методом Рунге-Кутта, модифицированным методом Эйлера, схема и листинг программы. Решение дифференциальных уравнений и построение графиков, решение уравнений в среде Turbo Pascal. курсовая работа [76,7 K], добавлен 18.11.2009
Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы. курсовая работа [226,6 K], добавлен 05.04.2013
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Разработка программы поиска решения системы дифференциальных уравнений двумя методами: Рунге-Кутта и Рунге-Кутта-Мерсона курсовая работа. Программирование, компьютеры и кибернетика.
ВОПРОС № 4. КИНЕТИКА СУШКИ.
Курсовая Работа На Тему Региональный Компонент В Обучении Иностранному Языку
Токсичные вещества. Неорганические соединения, токсины, яды небелковой природы
Реферат Сгу Образец
Курсовая работа по теме Рекомендации по оптимизации бизнес-процесса продажи недвижимого имущества в 'E3 Group'
Личность Гитлера Реферат
Сочинение Миниатюра На Тему Осень И Школа
Реферат: Совершенствование таможенного регулирования внешнеэкономической деятельности в условиях глобализации экономики
Сочинение О Владимире Дубровском Краткое
Доклад: Романов, Владимир Кириллович
Горные Породы И Их Классификация Реферат
Сочинение По Репродукции Картины Первый Снег
Спорт В Жизни Великих Людей Реферат
Курсовая работа по теме Методики ветеринарных мероприятий по снижению хозяйственных неполноценностей при болезнях свиней
Реферат: Социальные предпосылки и последствия использования информационных технологий в социальной сфере
Три Товарища Сочинение
Короткое Сочинение Мой Класс
Реферат: Ответы на билеты по конфликтологии
Контрольная работа по теме Классификация топливно-энергетических ресурсов. Виды возобновляемых энергоресурсов
Люди Щепки Так Ли Это Сочинение
Исследование транспортного средства Hyundai ix35 в целях определения стоимости восстановительного ремонта, рыночной стоимости и величины УТС - Государство и право дипломная работа
Физическая реабилитация детей, больных хроническим гастритом - Медицина реферат
Моделирование системы управления углом поворота инерционного объекта - Коммуникации, связь, цифровые приборы и радиоэлектроника курсовая работа