Курсовая работа по предмету "Программирование, компьютеры и кибернетика, ИТ технологии"


Метод "Стрілянини"



23

Вступ

На даний момент велика роль в розвитку сучасного світу відводиться підвищенню технічного рівня обчислювальної техніки, пристроїв і засобів автоматизації. Це передбачає розвиток виробництва і широке використання промислових роботів, систем автоматичного управління з використанням мікропроцессорів і мікро-ЕОМ, створення гнучких автоматизованих виробництв. Розвязок цих задач потребує широкого упровадження в інженерну практику методів обчислювальної математики.

Обчислювальна математика заснована на чисельних методах, придатних до застосування при розрахунках на ЕОМ. Сучасні ЕОМ дозволили дослідникам значно підвищити ефективність математичного моделювання складних задач науки і техніки. Нині методи досліднення проникають практично в усі сфери людської діяльності, а математичні моделі стають засобами пізнання.

Значення математичних моделей неперервно зростає у звязку з тенденціями до оптимізації технічних пристроїв і технологічних схем планування експерименту. Реалізація моделей на ЕОМ здійснюється за допомогою різноманітних методів обчислювальної математики, яка неперервно удосконалюєтьтся.

В даній роботі розглянуто розвязання крайової задачі методом “стрілянини” (на прикладі диференційного рівняння другого порядку).

2. Теоретичні відомості

Диференційним рівнянням називають рівняння, що звязує незалежну змінну х , шукану функцію y=f(x) та її похідні y, y,…, y(n).

В залежності від числа незалежних змінних та типу похідних, що входять до них диференційні рівняння діляться на звичайні диференційні рівняння, що мають одну незалежну змінну та похідні по ній, та рівняння в частинних похідних, маючих декілька незалежних змінних та похідні (частинні) по ним.

Існує багато методів для знаходження розвязків диференційних рівнянь через елементарні чи спеціальні функції. Такі методи називають аналітичними, чи класичними, але в більшості задач вони чи зовсім непридатні, чи приводять до дуже складних розрахунків. При заданні коефіціентів чи функцій в диференційних рівняннях у вигляді таблиць експерементальних даних використання класичних методів принципово неможливо. Це обумовлює важливість чисельних методів, що розглядають рішення диференційних рівнянь, це є основою при складанні алгоритмів та програм для ЕОМ.

Звичайне диференційне рівняння має нескінчену множину розвязків. Для відшукання якогось конкретного розвязку потрібні додаткові умови. Ці умови можуть бути різними. У випадку, коли додаткові умови задаються при одному значенні незалежної змінної, має місце задача Коші (задача з початковими умовами). Якщо ж умови задаються при двох чи більше значеннях незалежної змінної, то задача називається крайовою. В задачі Коші додаткові умови називаються початковими, а в крайовій - граничними. При рішенні цих задач використовуються різні методи та алгоритми.

Сформулюємо задачу Коші. Нехай дано диференційне рівняння: та початкова умова . Потрібно знайти функцію на відрізку від до , таку, що задовольняє як дане рівняння, так і початкову умову.

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

2.1 Методи розвязку задачі Коші.

В основі чисельних методів розвязку диференційних рівнянь лежить розклад функції в ряд Тейлора в околі вихідної точки : , де - відстань (крок) між вихідною точкою та точкою , в якій шукають розвязок.

Причому в різних методах враховується різна кількість членів розкладу, що визначає точність розрахунків. Вважають, що порядок похобки рівний , якщо існує таке число , та , де - локальна помилка; - крок дискретизації.

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

Методи розвязку задачі Коші можна розділити на дві групи: однокрокові, в яких для знаходження слідуючої точки на кривій потрібна інформація лише про один попередній крок (методи Ейлера та Рунге-Кутта); багатокрокові (прогнозу та корекції), в яких для знаходження слідуючої точки на кривій потрібна інформація більш ніж про одну із попередніх точок.

2.2 Вибір методу розвязання задачі Коші

Порівнюючи ефективність однокрокових і багатокрокових методів, виділяють такі особливості:

Багатокрокові методи вимагають більшого обєму памяті ЕОМ, тому що оперують більшою кількістю початкових даних.

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

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

4. Однокрокові методи на відміну від багатокрокових дозволяють одразу почати розвязання задачі ("самостартування") і легко змінювати крок в процесі обчислень.

Перед початком розвязання задачі необхідно провести перевірку на "жорсткість" і у випадку позитивного результату використати спеціальні методи. Якщо задача Коші дуже складна, то зазвичай перевага надається методу прогнозу і корекції, який має до того ж більш високу швидкодію. Початок розвязання задачі при цьому проводиться за допомогою однокрокових методів. Якщо для обчислення чергового значення уі вимагається більш ніж дві ітерації або якщо помилка зрізання дуже велика, то необхідно зменшити крок Н. З іншого боку при дуже малій похибці зрізання можна збільшити крок, тим самим підвищити швидкодію, але при цьому весь процес розвязання треба починати спочатку. Інколи на практиці вимагається мінімізувати час підготовки задачі до розвязання. Тоді доцільно використовувати методи Рунге-Кутта.

На закінчення слід відзначити, що велике значення для ефективного розвязання задачі мають досвід, інтуїція і кваліфікація користувача як при постановці задачі, так і в процесі вибру методу розробки алгоритму і програми для ЕОМ. При цьому часто зручно користуватись вже готовими програмними засобами, які є в наявності (наприклад, в пакетах МАРLЕ, МАТНЕМАТIКА).

2.3Методи розвязання крайових задач

Методи розвязання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку

при граничних умовах у(а) = А , у(в) - В. Методи розвязання крайових задач розділяють на дві групи: методи, що побудовані на заміні розвязання крайової задачі розвязанням декількох задач Коші (методи "стрілянини") та різницеві методи.

2.4 Метод "стрілянини"

Якщо звичайне диференціальне рівняння другого порядку - лінійне, то воно має вигляд:

при у(а) = А , у(в) = В.

Крайову задачу можна звести до задачі Коші введенням додаткової початкової умови, крім у(а)=А вводиться у(а)=.

Знайшовши розвязок (х), можна поставити іншу початкову умову у(а)= і отримати інший розвязок у2 (х). Якщо а , причому , то розвязок:

буде задовольняти обидві початкові умови.

При розвязуванні нелінійного звичайного диференціального
рівняння методами "стрілянини" крайова задача зводиться до
розвязування декількох задач Коші, послідовно вводячи в початкові і
умови значення :

у(а)=А і у(а)=а

і намагаючись знайти розвязок, який задовольняє умову у(в)=В,

При цьому алгоритм досягнення мети будується на основі одного з методів оптимізації. Однак цей шлях розвязання задачі повязаний з великими обчислювальними труднощами, і тому у випадку нелінійних |диференціальних рівнянь перевага надається різницевим методам.

3.Вибір методу інструментальних засобів вирішення задач.

Розвязок даної задачі реалізовано на ЕОМ, причому було складено алгоритм та програму в середовищі Borland Delphi 7. Програма є досить простою та зрозумілою для користувача середнього рівня

Для нормального функціонування програми необхідна наявність наступних апаратних засобів :

IBM PC/XT сумісний компютер;

CPU не нижче Intel P-100;

Операційна система MS-Windows 95 та вище;

8 Mb ОЗУ;

Монітор, що підтримує режим 640x480, 16 кольорів;

4. Функціональне призначення

Розроблена програма дозволяє розвязати вказану крайову задачу:

,

методом стрілянини з кроками 0,1 і 0,05.

Результати виводяться у текстовій формі.

5. Розробка та опис логічної частини програми

В даній курсовій роботі було розроблено програмне забезпечення для розвязання та дослідження заданого диференційного рівняння. Розвязок ведеться за різницевим алгоритмом.

Кодування на мові Паскаль проводилося з застосуванням інтуїтивно-зрозумілих назв змінних та процедур. Також відступи та табуляція дозволяє досить легко збагнути структуру програми.

В інтерфейсі також не допущено зайвих елементів.

6. Керівництво оператору

Для завантаження програми необхідно запустити програмний файл Project1.exe. При цьому зявиться вікно (рис. 1), де можна задати початкові умови, переглянути постановку задачі а також ознайомитися з розвязком при натисненні кнопки Розвязок.

Рисунок 1. Інтерфейс програми.

7. Результати обчислень

Результати обчислень:

Крок: 0,1000000000

X | Y

-----------

0,000|1,0000000000

0,100|0,3273336200

0,200|0,1072995400

0,300|0,0356159580

0,400|0,0131109860

0,500|0,0085276729

0,600|0,0151296980

0,700|0,0408859800

0,800|0,1180330500

0,900|0,3434084400

1,000|1,0000000000

Похибка не б_льше: 0,0050000000

Результати обчислень:

Крок: 0,0500000000

X | Y

-----------

0,000|1,0000000000

0,050|0,5993159300

0,100|0,3592222800

0,150|0,2153842700

0,200|0,1292593800

0,250|0,0777695550

0,300|0,0471172200

0,350|0,0290879730

0,400|0,0188492490

0,450|0,0136550000

0,500|0,0121092040

0,550|0,0137906880

0,600|0,0191384160

0,650|0,0295660470

0,700|0,0478356090

0,750|0,0787890890

0,800|0,1306317000

0,850|0,2171069500

0,900|0,3611400200

0,950|0,6009154100

1,000|1,0000000000

Похибка не більше: 0,0012500000

Висновки

При виконані даної курсової роботи я навчився розвязувати крайові задачі за допомогою методу стрілянини. Було відмічено, що метод досить важко приміняти до компютерних обчислень через необхідність врахування специфіки кожної задачі.

Література

В.Т.Маликов, Р.Н.Кветный . Вычислительные методы и применение ЭВМ . Учебное пособие -- К.: Выща шк. Головное издательство,1989.-213 с .

В.Е.Краскевич, К.Х.Зеленский, В.И.Гречко . Численные методы в инженерных исследованиях. -- К.: Выща шк. Головное издательство, 1986.--263 с .

Самарський А.А. Вступ в чисельні методи. - М.: Наука,

1987. - 286 с.

Додаток A

Алгоритм роботи програми

Додаток Б

Лістинг програми

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, Buttons, Math;

type

TForm1 = class(TForm)

GroupBox2: TGroupBox;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Memo1: TMemo;

LabeledEdit1: TLabeledEdit;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Form2.ShowModal;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

var

i, j, n :integer;

h:Extended;

ybeg, yend, t: Extended;

alpha1, alpha2, beta1, beta2 : extended;

b:array of Extended;

a:array of array of Extended;

y,y1,y2:array of Extended;

x:array of Extended;

M0,M1,M2,err:Extended;

k,k0,k1,k2,k3,l,l0,l1,l2,l3,zn,xn:extended;

function f(x,y,dy:extended):extended;

begin

result:=100*y;

end;

begin

try

h:=StrToFloat(LabeledEdit1.Text);

n:=round(1/h)+1;

ybeg:=1; yend:=1;

SetLength(y,n);

SetLength(y1,n);

SetLength(y2,n);

y1[0]:=ybeg;

y2[0]:=ybeg;

alpha1:=yend;

alpha2:=yend;

zn:=alpha1; xn:=0;

for i:=1 to n-1 do begin

l0:=h*f(xn,y1[i-1],zn);

k0:=h*zn;

l1:=h*f(xn+h/2,y1[i-1]+k0/2,zn+l0/2);

k1:=h*(zn+l1/2);

l2:=h*f(xn+h/2,y1[i-1]+k1/2,zn+l1/2);

k2:=h*(zn+l2/2);

l3:=h*f(xn+h,y1[i-1]+k2,zn+l2);

k3:=h*(zn+l3);

k:=(k0+2*k1+2*k2+k3)/6;

l:=(l0+2*l1+2*l2+l3)/6;

y1[i]:=y1[i-1]+k;

zn:=zn+l;

xn:=xn+h;

end;

beta1:=y1[n-1]; beta2:=beta1;

while (beta1=beta2) do begin

alpha2:=alpha2-h;

zn:=alpha2; xn:=0;

for i:=1 to n-1 do begin

l0:=h*f(xn,y2[i-1],zn);

k0:=h*zn;

l1:=h*f(xn+h/2,y2[i-1]+k0/2,zn+l0/2);

k1:=h*(zn+l1/2);

l2:=h*f(xn+h/2,y2[i-1]+k1/2,zn+l1/2);

k2:=h*(zn+l2/2);

l3:=h*f(xn+h,y2[i-1]+k2,zn+l2);

k3:=h*(zn+l3);

k:=(k0+2*k1+2*k2+k3)/6;

l:=(l0+2*l1+2*l2+l3)/6;

y2[i]:=y2[i-1]+k;

zn:=zn+l;

xn:=xn+h;

end;

beta2:=y2[n-1];

end;

for i:=0 to n-1 do

y[i]:=1/(beta1-beta2)*((1-beta2)*y1[i]+(beta1-1)*y2[i]);

with Memo1.Lines do begin

clear;

Add(Результати обчислень: );

Add( Крок: +FloatToStrF(h,ffFixed,8,10));

Add( X | Y );

Add( ----------- );

for i:=0 to n-1 do

Add( +FloatToStrF(h*i,ffFixed,3,3)+|+FloatToStrF(abs(y[i]),ffFixed,8,10));

Add( Похибка не б_льше: +FloatToStrF(h*h/2,ffFixed,8,10));

end;

except

on EConvertError do

Application.MessageBox(Неправильно введен_ дан_, Увага);

end;

end;

end.




Не сдавайте скачаную работу преподавателю!
Данную курсовую работу Вы можете использовать для написания своего курсового проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем курсовую работу самостоятельно:
! Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ.
! Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу.
! Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться.
! План курсовой работы Нумерованным списком описывается порядок и структура будующей работы.
! Введение курсовой работы Что пишется в введении, какой объем вводной части?
! Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать.
! Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа.
! Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема.
! Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом.
! Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ.

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

Сейчас смотрят :

Курсовая работа Фразеология немецкого языка в лексикографическом аспекте
Курсовая работа Лекарственные препараты, получаемые биотехнологическими методами. Ферменты
Курсовая работа Анализ себестоимости услуг и продукции, пути ее снижения
Курсовая работа Расчет эффективности перевозок для автотранспортного предприятия
Курсовая работа Нетрадиционные формы уроков как способ развития интереса к учебе у детей младшего школьного возраста
Курсовая работа Хронический гломерулонефрит
Курсовая работа Здоровий спосіб життя
Курсовая работа Экономическое обоснование путей обновления оборудования на предприятии
Курсовая работа Финансовая устойчивость и платежеспособность предприятий
Курсовая работа Правоохранительная деятельность таможенных органов РФ
Курсовая работа Изучение феномена тревожности у студентов первого курса
Курсовая работа SWOT - анализ и синтез
Курсовая работа Расходы бюджетов РФ на национальную оборону
Курсовая работа Управление оборотными средствами
Курсовая работа Эффективность использования оборотных средств