3856

Розв’язування задачі Коші методом Рунге-Кутта

Лабораторная работа

Информатика, кибернетика и программирование

Розв’язування задачі Кошіметодом Рунге-Кутта Мета роботи: вивчити і засвоїти постановку та методи розв’язування задачі Коші. Навчитися досліджувати розв’язок , використовуючи метод Рунге-Кутта. Короткі теоретичні відомості Тільк...

Украинкский

2012-11-09

163 KB

62 чел.

Розв’язування задачі Коші методом Рунге-Кутта

Мета роботи: вивчити і засвоїти постановку та методи розв’язування задачі Коші. Навчитися досліджувати розв’язок , використовуючи метод Рунге-Кутта.

Короткі теоретичні відомості

Тільки невелика кількість задач Коші, iнтегровних у явному виглядi, зустрічаються серед задач, якi потрiбно розв’язувати. Тому для розв’язування задач Коші широко використовують чисельні методи з їх реалізацією на комп’ютерах. При цьому особливо важливими є вибір потрібного методу і його програмної реалізації, а також підготування всіх даних, необхідних для роботи комп’ютерної програми.

1.Формулювання задачi.

Нехай на вiдрiзку потрiбно знайти розв’язок диференцiйного рiвняння

      (1)

який задовольняє таку умову

      (2)

Задачу (1)-(2) називають задачею Кошi для звичайногодиференцiйного рівняння першого порядку.

Будемо припускати, що функцiя f(х,у) неперервна та задовольняє умову Лiпшиця за у, тобто виконується

   (3)

де L– деяка додатна стала. В цьому випадку задача Кошi має єдиний розв’язок на промiжку

2. Метод Ейлера.

Розiб’ємо проміжок [а, b], на якому шукаємо розв’язок, на рiвномiрнi вiдрізки причому

Розрахункова формула методу Ейлера має вигляд

  (4)

де .У випадку рівномiрного розбиття вiдрізка [а, b] точками отримасмо

3. Методи Рунге-Кутта.

На практиці для розв’язування задачi Коші найчастiше використовують методи Рунге-Кутта. Цими методами можна розв’язати задачу Кошi для звичайного диференцiйного рiвняння першого порядку, для диференцiйних рiвнянь вищих порядків, системи диференцiйних рiвнянь першого порядку.

Перевага методiв Рунге-Кутта полягає в тому, що обчислювальні алгоритми є однорiдними, тобто не змiнюються при переходi від однiєї точки до iншої, а крок змiнюється вiдповiдно до потреби точностi обчислень, без ускладнення обчислювального алгоритму.

Методи Рунге-Кутта мають високу точнiсть, причому обчислення можна проводити із змінним кроком: неважко эменшити крок там, де функцiя швидко змiнюється, i збiльшити в протилежному випадку.

Недоліком методів Рунге-Кутта є те, що для відшукання наближеного розв’язку в точцi заданого вiдрiзку необхiдно виконати декілька обчислень значень функцій.

Наведемо рекурентні формули методу Рунге-Кутта рiзних порядкiв точностi.

Формули методу Рунге-Кутта другого порядку:

4. Оцiнювання похибки наближеного розв’язку задачі Кошi.

Для методiв Ейлера та його модифiкацiй, а також методів Рунге-Кутта i Адамса застосовують апріорні оцiнки похибки наближеного розв’язку задачi Кошi (1)-(2) . Однак цi оцiнки здебiльшого значно завищені. Тому їхнє значення не стiльки практичне, скiльки теоретичне, бо з них безпосередньо випливає висновок про збiжність цих методiв. Крім того, апрiорнi оцiнки мiстять у собi ряд сталих, для вiдшукання яких часто треба виконувати досить складні обчислення.

Тому, щоб оцiнити похибку наближеного розв’язку задачi (1) - (2), намагаються використати iнформацiю, яку дiстають в процесі чисельного розрахунку (такі оцінки називають апостеріорними). Найефективнiшим оцінюванням є використання оцiнки з подвiйним перерахунком.

Розглянемо детальнiше метод подвiйного перерахункудля  таких трьох випадків [2]:

1) задано крок iнтегрування h i треба визначити точні цифри наближеного розв’язку в кожнiй вузловiй точцi ;

2) задано точнiсть ε>0, з якою треба обчислити наближений розв’язок задачi, добираючи належним чином як сам метод, так i крок iнтегрування h;

3) оцiнити похибку – вiдповiдно наближений і точний розв’язок задачi в кожнiй вузловiй точцi .

Для цього розв’язок задачi (1)-(2) у кожнiй вузловiй точці обчислюють двiчі: з кроком h i h/2. Позначатимемо їх вiдповiдно .

Десятковi розряди наближень , які збiгаються мiж собою, вважають точними цифрами наближеного розв’язку в точцi .

Якщо наближений розв’язок задачi (1)-(2) треба обчислити з наперед заданою точнiстю є>0, то, використовуючи метод певного порядку точностi, інтегрування з кроками h і h/2 доцiльно вести паралельно, щоб вчасно визначити неузгодженiсть мiж значеннями  i, можливо, перейти до нового кроку.

Якщо ж у точцi  значення задовольняють нерiвність то крок інтегрування для наступної точки треба збільшити, наприклад, подвоїти. Якщо то крок ітегрування ділять навпіл. Цим забезпечують автоматичний вибiр кроку iнтегрування.

Нарештi, наявнiсть наближених значень , обчислених вiдповiдно з кроком h i h/2, дає змогу наближено оцiнити похибку методу у точцi  . Для одержання оцiнки похибки, припустимо, що виконуються такі умови:

1) на кожному кроці iнтегрування h похибка методу приблизно пропорцiйна до де S – порядок точностi методу;

2) похибка методу на кожному кроцi інтегрування однакова;

3) на кожному наступному кроцi інтегрування сумарна похибка методу містить також усi похибки, зробленi на попереднiх кроках.

Тому, якщо де М — невiдомий коефiцiєнт пропорційності, то

Отже, для похибки в точцi  у випадку iнтегрування з кроком h маємо рівнiсть

    (4.1)

а при інтегруванні з кроком h/2 – рiвність

     (4.2)

Віднявши почленно (4.2) вiд рiвностi (4.1) та розв’язавши одержане рівняння щодо невiдомого коефiцiєнта М, знайдемо

Пiдставивши це значення M в (4.2), отримаємо

    (4.3)

Оцiнювання абсолютної похибки за допомогою величини називають правилом Рунге.

Варіант 17

Застосовуючи чисельнi методи розв’язування задачi Кошi, розв’язати диференцiйне рiвняння першого порядку з точнiстю є =0.0001 на відрiзку  із кроком h= 0.05 i заданими початковими умовами , а також порівняти отриманий розв’язок із точним розв’язком y*, використовуючи правило Рунге.

Текст програми:

//---------------------------------------------------------------------------

#include <vcl.h>

#include <math.h>

#pragma hdrstop

#include "RungeUn.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

float x0, y0, xn0, ytn1, yn0, eps, h, xn1, yn1, k1, k2;

bool modif=true;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

 : TForm(Owner)

{

}

//---------------------------------------------------------------------------

double func(double xn0, double yn0)

{

return ((yn0*yn0+xn0)/(xn0*yn0));

}

//---------------------------------------------------------------------------

double func_toch(double xn0)

{

return (sqrt(2*xn0*(3*xn0-1)));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

 x0=StrToFloat(LabeledEdit1->Text);

 y0=StrToFloat(LabeledEdit2->Text);

 h=StrToFloat(LabeledEdit3->Text);

 eps=StrToFloat(LabeledEdit4->Text);

 Memo1->Clear();

 Memo1->Lines->Add((AnsiString)"      x                y              h               ytoch");

 xn0=x0;

 yn0=y0;

 while (xn0 < (x0+0.5))

{

  k1 = h * func(xn0,yn0);

  k2 = h * func(xn0+h,yn0+k1);

  yn1 = yn0 + (k1+k2)/2.0;

  xn1 = xn0 + h;

  xn0 = xn1;

  yn0 = yn1;

  ytn1=func_toch(xn1);

  Memo1->Lines->Add(FloatToStrF(xn1,ffFixed,8,4)+

                     (AnsiString)"      "+

                     FloatToStrF(yn1,ffFixed,8,4)+

                     (AnsiString)"      "+

                     FloatToStrF(h,ffFixed,8,4)+

                     (AnsiString)"      "+

                     FloatToStrF(ytn1,ffFixed,8,4));

  if(abs(yn1-ytn1)>eps){h/=2.0; modif=false;}

  else if(!modif){h*=2; modif=true;}

}

}

//-----------------------------------------------------------------------------------------------------------

Результат виконання програми:

    Висновок: На цій лабораторній роботі я вивчив і засвоїв постановку та методи розв’язування задачі Коші. Навчився досліджувати розв’язок, використовуючи метод Рунге-Кутта.


 

А также другие работы, которые могут Вас заинтересовать

20203. Загрязнение гидросферы 87 KB
  Пресная вода составляет только 25 от всех запасов воды. Примерно 70 пресной воды содержится в ледниках. Ежегодно люди расходуют около 3000 км3 воды из них 150 км3 безвозвратно. Больше всего воды потребляет сельское хозяйство.
20204. Стандартизация и охрана окружающей природной среды 31 KB
  ПДКрз это концентрация которая при ежедневной работе в течение всего рабочего стажа не может вызвать заболевания или отклонения в состоянии здоровья в процессе работы или в отдаленные сроки жизни настоящего и последующего поколения. ПДКав это максимальная концентрация примеси в атмосфере отнесенная к определению времени усреднено значение которой при периодическом воздействии или на протяжении всей жизни человека не оказывая на него вредного влияния включая отдаленные последствия. Это концентрация присутствие которой допустимо не...
20205. Расчёт предельно допустимого выброса вредного вещества в атмосферу 145 KB
  Нарисуем график зависимости концентрации загрязняющего вещества по оси факела выброса от расстояния до источника выброса. Расчёт предельно допустимого выброса состоит из нескольких частей и первая часть расчёт максимальной приземной концентрации. Все формулы даются для двух вариантов: горячего выброса и холодного выброса.
20206. Контроль загрязнения почв 38 KB
  Кроме ПДК в номенклатуру санитарного состояния почв входят показатели: Общее количество аммонийного азота. Общее количество нитратного азота. Общее количество хлоридов. Общее количество пестицидов.
20207. ИССЛЕДОЛВАНИЕ ДИФФЕРЕНЦИАЛЬНЫХ СИСТЕМ 96 KB
  Для получения равноплечной дифференциальной системы соединяются дужками гнезда 10 16 при этом коэффициенты трансформации равны: Для получения неравноплечной дифференциальной системы соединяются дужками гнезда 10 16 при этом коэффициент трансформации равны Резисторная дифференциальная схема состоит из четырех резистров по 600 Ом образующих равноплечный мост рис. Для этого соединить дужкой гнезда 11 16 а к гнездам ГЕН 23 27 подключить измерительный генератор с частотой...
20208. ИЗУЧЕНИЕ ОКОНЕЧНОЙ АППАРАТУРЫ СИСТЕМЫ ПЕРЕДАЧИ К - 60П 148.5 KB
  Шестидесятиканальная система передачи на транзисторах К 60П предназначена для уплотнения симметричного кабеля диаметром жил 12мм в спектре частот 12 252 кГц. Работой устройств АРУ управляют токи контрольных частот: 16кГц наклонная 112 кГц криволинейная 248 кГц плоская. Индивидуальное преобразование спектра частот 03 34 кГц каждого из 12 каналов тональной частоты осуществляется соответственно с помощью одной из несущих частот: 108; 104; ; 64 кГц. В результате этого преобразования образуется спектр стандартной первичной...
20209. ИЗУЧЕНИЕ КОДИРУЮЩЕГО УСТРОЙСТВА 33 KB
  Сигнал на выходе компаратора зависит от соотношения Iвх и Iэт если Iвх Iэт на выходе компаратора логическая 1 . Если Iвх Iэт на выходе компаратора логический 0 . Сигнал строб 1 формирует импульс кодовой группы а сигнал строб 2 в зависимости от решения компаратора оставляет эталонный ток включенным до конца кодирования отсчета если Iвх Iэт или выключает эталонный ток данного разряда если Iвх Iэт. Наименование импульсов Амплитуда Примечание ТИ Строб 1 Строб 2 РИ 2вых Iэт 23 = 8 Iэт 22 = 4 Iэт 21 = 2 Iэт 20 = 1...
20210. ИССЛЕДОВАНИЕ РЕГЕНЕРАТОРА ЦСП 35 KB
  Подключить шнуры питания макета и измерительные приборы к розеткам сеть 220В . Включить тумблеры питания настроить измерительные приборы. Исследовать работу датчика кодовых групп ДКГ: поставить на макете ключ 1 в положение РУЧ при этом работой ДКГ можно управлять вручную кнопкой при помощи ручного датчика импульсов РДИ для контроля состояния комбинации кодовой группы используются светодиоды; при помощи шнуров подключить 1ый вход осциллографа к выходу ДКГ и настроить осциллограф на неподвижное изображение импульсов на экране для этого...
20211. НЕОБСЛУЖИВАЕМЫЙ РЕГЕНЕРАЦИОННЫЙ ПУНКТ НРП-К12 СИСТЕМЫ ПЕРЕДАЧИ ИКМ-30 57.5 KB
  Ознакомиться с составом оборудования и конструкцией НРПК12 ИКМ30. Изучить структурную схему НРП. Оборудование НРП.