Решение одного дифференциального уравнения




Первым этапом анализа достоверности была проверка правильности решения одного дифференциального уравнения. Полученное численное решение сравнивается с аналитическим.

Пусть требуется решить уравнение:

при начальном условии y(0)=1, 0<=x<=1, и шаге интегрирования h=0.1. Это линейное уравнение, имеющее следующее точное решение:

 

 

которое поможет нам сравнить точность численного решения для случая с постоянным шагом, т.к. точность решений с переменным шагом выше. Результаты расчета представлены в Таблице 1.Как видно из таблицы, отличие между численными и аналитическими решениями удовлетворительное даже для такого большого шага, и не превышает 2%. Теперь решим этот же пример тем же методом, но с переменным шагом. Получаем любопытные зависимости точности от выбора шага, а также шага сходимости, - которые носят периодический характер. Результаты исследования приведены в таблице 2. Как мы видим, погрешность резко уменьшается с использованием метода с переменным шагом, и показывает очень высокую точность решения для численных методов, не превышающею 1%.

 

Таблица 2

 

Таблица 2

Начальный шаг Максимальная погрешность Сведение к шагу
0.1 1.683 % 0.0250
0.01 1.163 % 0.0100
0.001 0.744 % 0.0040
0.0001 0.568 % 0.0032
0.00001 0.451 % 0.0025
0.000001 0.723 % 0.0040
0.0000001 0.578 % 0.0032
0.00000001 0.462 % 0.0026
0.000000001 0.740 % 0.0041
0.0000000001 0.592 % 0.0033
0.00000000001 0.473 % 0.0026

 

Иллюстрация решения данного дифференциального уравнения в виде графика – приведена в Приложении 2.

Решение системы дифференциальных уравнений

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

Рассмотрим следующую систему дифференциальных уравнений, которую требуется решить методом Адамса-Башфорта:

Начальными условиями здесь являются:

. Возьмем начальный шаг интегрирования h=0.00001, время интегрирования по трех точечному методу прогноза и коррекции tp=0.1 и время интегрирования по методу Адамса-Башфорта ta=1.

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

Иллюстрация решения данной системы дифференциальных уравнений приведены в виде графика в приложении 3.

ЗАКЛЮЧЕНИЕ

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

Проведены тестовые расчеты, подтвердившие высокую эффективность и точность метода Адамса-Башфорта со стартованием трех точечным методом прогноза и коррекции с переменным шагом.

Проведены ряд исследований решения систем как с постоянным шагом, так и с переменным шагом на сходимость к постоянному шагу.

Во всех случаях получены результаты высокой точности.

Список литературы

1.Дж.Ортега, У.Пул “Введение в численные методы решения дифференциальных уравнений ”. Пер.с англ.; под редакцией А.А.Абрамова - М.;Наука.Гл.ред.физ.мат.лит.1986.-288с.

2.Р.В.Хемминг “Численные методы для научных работников инженеров ”: Пер с англ.:Под редакцией Р.С.Гутера.- Гл.ред.физ.мат.лит.1968.-203 с.

Т.Шуп.”Решение инженерных задач наЭВМ. Практическое пособие “

Пер.с англ.-М.Мир.1982.-238с.

Приложение 1:

Блок схема Алгоритма

 

 

 

 

 

 

-

+

 

 

 

 

-

+

 

 

Приложение 2:

 

 

 

Решение одного дифференциального уравнения

 

 

Приложение 3:

 

Решение системы линейных дифференциальных уравнений

 

1-ое уравнение 2 –ое уравнение

3 – е уравнение 4 –ое уравнение

 

Приложение 4: Тексты программ

 

{

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

| PrandCoM version 2.41 Copiright (c) 2001 |

| Программа разработана студентом |

| Национального Технического Университета |

| " Харьковский Политехнический Институ " |

| группы И - 29 |

| Кафедры Автоматического Управления Движением |

| (Системы и процессы управления) |

| Ухановым Е.В. |

| NetMail (FidoNet) 2:461/212.21 |

| E-Mail: JVUMailbox@rambler.ru |

| |

| Программа разработана на основе объектной библиотеки VFH version 4.XX |

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

}

{$M 10000,0,0}

(****************************************************************************)

(****** Дата последней разработки: 05.05.2001 **********************)

(****************************************************************************)

Program Prognoz_and_Correction_Modification;

(****************************************************************************)

Uses PACM;

(****************************************************************************)

var

TPC: TApplPandC;

(****************************************************************************)

(******************************) begin (*************************************)

TPC.Application;

TPC.Done;

(*******************************) end. (*************************************)

(****************************************************************************)

 

{

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

| Версия 2.XX |

| Программа разработана студентом Национального Технического |

| Университета " Харьковский Политехнический Институ " группы И - 29 |

| Кафедры Автоматического Управления Движением - Ухановым Е.В. |

| NetMail (FidoNet) 2:461/212.21 |

| E-Mail: jvumailbox@rambler.ru |

| |

| Программа разработана на основе объектной библиотеки VFH version 4.XX |

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

}

(****************************************************************************)

(**** Дата последней разработки модуля: 15.04.2001 *****************)

(****************************************************************************)

 

(****************************************************************************)

(*******************************) Unit PACM; (*******************************)

(****************************************************************************)

(*******************************) INTERFACE (********************************)

(****************************************************************************)

Uses FormObj,MouseObj,PACMEr,PACMMenu,PACMBtn,PACMPnl,PACMPC,PACMCnst;

(****************************************************************************)

type

TApplPandC = object (TForm)

Function MouseHandler: boolean;Virtual;

Procedure FormCreate;Virtual;

Procedure Application;

end;

(****************************************************************************)

(******************************) IMPLEMENTATION (****************************)

(****************************************************************************)

Procedure TApplPandC.FormCreate;

var

Pnl: TPanel;

Pnl1: TPanel;

TMenu1: TCreateMenus;

begin

Pnl.Init(548,35,619,50,1,7,1,1,1,1,false,false);

Pnl.Panel;

Pnl1.Init(470,407,630,460,1,7,1,0,1,4,true,false);

Pnl1.Panel;

TPnl1.ToolBarCreate;

TPnl1.PanelCreate;

TPageControl1.PageControlCreater;

TBitBtns.BitBtnCreaters;

TMenu1.MenusCreate;

end;

(********************************)

Function TApplPandC.MouseHandler;

var

TMouse1: TMouse;

b,x,y: word;

TMenu1: TCreateMenus;

TSubMenu1: TCreateMenus;

ST1: TSystemTime;

begin

MouseHandler:=false;

TMouse1.GetMouseState(b,x,y);

ST1.Init(549,36,618,49,1,15);

ST1.SystemTime;

TBitBtns.BitBtnHandlers(b,x,y);

MouseHandler:=fExitBtn;

TMenu1.MenusVisible(x,y);

TMenu1.MenusHandlers(b,x,y);

TPageControl1.PageControlHandlers(b,x,y);

end;

 

Procedure TApplPandC.Application;

var

TIEr: TInitErrors;

begin

TIEr.FatalErrorVFH;

TIEr.LoadFont('km_defj8.fnt');

TIEr.FindImEr1('x.bi');

InitObjGraph;

if InitMouseJVU then

begin

TIEr.LfLoad('Lf.sys');

TIEr.ErrorExec('x.bi');

TIEr.FindFile('f1.dat');

TIEr.FindFile('f2.dat');

TIEr.FindFile('f3.dat');

TIEr.FindFile('f4.dat');

TIEr.FindFile('km_defj8.fnt');

TIEr.FindFile('f_nfrj8.fnt');

TIEr.FindFile('t_nfrj8.fnt');

TIEr.FindFile('asdf.bi');

TIEr.FindFile('pacm_n1.bi');

TIEr.FindFile('pacm_n2.bi');

TIEr.FindFile('pacm_n3.bi');

TIEr.FindFile('pacm_n4.bi');

TIEr.FindFile('PrandCoM.hlp');

TIEr.FindFile('litj.chr');

TIEr.FindFile('scri.chr');

TIEr.FindFile('trip.chr');

TIEr.FindFile('tscr.chr');

TIEr.FindFile('initm.mtr');

TIEr.FindFile('initnu.mtr');

if not fQuickHalt then

begin

TIEr.LoadCFG('PrandCom.cfg');

With HT do

begin

hx1:=575;

hy1:=20;

hx2:=637;

hy2:=34;

hc:=true;

hs:='Закрыть';

end;

Init(1,1,639,479,7,1,'Prognoz & Corrections Modifications');

Form;

end;

end

else

begin

TIEr.ErrorVFH;

end;

end;

 

(****************************************************************************)

(***********************************) END. (*********************************)

(****************************************************************************)

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-07-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: