Ім'я файлу: КУРСОВА ІНФОРМАТИКА.doc
Розширення: doc
Розмір: 506кб.
Дата: 15.07.2020
Пов'язані файли:
Титулка.docx




Зміст


Вступ 3

1. Постановка задачі 4

2. Опис алгоритму для реалізації поставленої задачі 8

3. Складання графічного алгоритму для знаходження розв’язку задачі 10

4. Реалізація поставленої задачі у середовищі Visual Basic 13

5. Опис використаних операторів та процедур та відповідні пояснення до VB-проекту 14

6. Реалізація поставленої задачі у середовищі MathCad 17

7. Опис інструментів, що були використані для отримання MathCad-розв’язку 19

8. Аналіз отриманих результатів 21

Висновки 24

Перелік посилань 25

Додатки 25


Вступ



Механіка (грец. Μηχανική - мистецтво побудови машин) - область фізики, що вивчає рух матеріальних об'єктів і взаємодію між ними [1]. Рух матеріальної точки є одним з базових понять кінематики - одного з розділів механіки.

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

Для розрахунків використовуються різноманітні інструменти – як спеціалізовані програми для проведення математичних розрахунків (з яких у даній роботі використаний пакет MathCad), так і програми,написані мовами високого рівня (у даній роботі це програма мовою Visual Basic).

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

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

  • сформулювати задачу, яку необхідно вирішити;

  • розробити послідовність дій - алгоритм вирішення задачі;

  • реалізувати розв’язання задачі мовою Visual Basic;

  • реалізувати розв’язання задачі у середовищі MathCad;

  • порівняти отримані результати.



1. Постановка задачі



Завдання механіки полягає у вивченні різних рухів та встановленні їх законів, які дають можливість наперед передбачати потрібні рухи і конструювати механізми та машини [1].

Традиційно вивчення курсу фізики починається з класичної механіки. Це зумовлено тим, що основні її питання і методи при відповідних узагальненнях використовуються у всіх інших розділах фізики. Щодо підходу вивчення механічних рухів механіку поділяють на [3]:

  • кінематику, яка вивчає змину положення тіл або їхніх частин у просторі або в часі без урахування взаємодії з іншими тілами;

  • динаміку – це основний розділ механіки, в якому встановлюються закони механічних рухів у зв’язку з тими механічними взаємодіями тіл, які ведуть до зміни їх механічних станів;

  • статику, яка вивчає умови рівноваги тіл. Її закони можна вивести із законів динаміки, тому статику розглядають як окремий випадок динаміки.

Об’єктами вивчення механіки є не реальні тіла в усій їх багатогранності, а ідеалізовані об’єкти – моделі - це деякий уявний образ явища, що спирається на відомі поняття і дозволяє побудувати корисну аналогію:

  • матеріальна точка;

  • абсолютно тверде тіло;

  • ідеальна рідина, тощо [3].

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

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

Положення точок у просторі можна характеризувати різними способами, згідно з якими можна описувати і рух точки.

Координатний спосіб опису руху. При русі матеріальної точки відносно системи відліку кожному моменту часу відповідатимуть певні значення її координат. Рух матеріальної точки можна визначити, якщо відома функціональна залежність її координат від часу [1]:

(1.1)

З допомогою функцій (1.1) можна обчислити значення координат матеріальної точки для будь-яких моментів часу. Отже, описати рух – значить задати функції (1.1).

Лінія, яку описує матеріальна точка в просторі, називається траєкторією руху. Рівняння траєкторії в явній формі можна дістати з системи рівнянь (1.1).

Довжину траєкторії, яку проходить точка за проміжок часу, називатимемо шляхом.

Опис руху за допомогою параметрів траєкторії. Він застосовується у випадках, коли траєкторія руху є наперед відомою. Якщо траєкторія задана, то завдання зводиться до зазначення закону руху вздовж неї. Деяка точка траєкторії приймається за початкову, а будь-яка інша характеризується відстанню вздовж неї від початкової точки, встановлюється на траєкторії додатній і від’ємний напрямок відліку (як на осі координат) (рисунок 1.1).




Рисунок 1.1 – Траєкторія руху матеріальної точки [3]

Розглянемо матеріальну точку, яка в момент часу знаходиться в точці рисунок 1.2). В момент часу ( ) матеріальна точка буде знаходитись в точці .


Рисунок 1.2 – Переміщення матеріальної точки [3]
Положення точок та можна задати як координатами, так і радіус-векторами, проведеними з початку координат будь-яких систем відліку. Характерним при цьому є те, що відрізок не залежить від вибору систем відліку.

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

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

Закон руху матеріальної точки М заданий в декартовій системі координат наступними рівняннями:

Необхідно знайти відстань d між початковим положенням точки при t=0 та її положенням у момент часу зустрічі з площиною Х=5.

Відстань між двома точками М0 та М1, при відомих їх координатах можна знайти за формулою [1]:
(1.2)
Координати точки М0 можна визначити, підставивши в рівняння координат значення t=0.

Для визначення координат точки М1 необхідно знайти корінь t* рівняння х=5 та підставити знайдене значення у рівняння координат y та z.

Для розв’язання задачі знаходження коренів нелінійного рівняння використати метод простої ітерації.

Метод простої ітерації (також відомий як метод послідовних наближень) є одним з найбільш важливих способів чисельного розв'язання рівняня [3]. Основна ідея даного методу полягає в тому, що ми замінюємо рівняння рівносильним йому рівнянням виду:

(1.3)

При цьому вважаємо, що є неперервною на проміжку .

Оберемо, довільним чином, наближене значення кореня і підставимо його в праву частину рівняння (1.3) . Тоді отримаємо число:

(1.4)

Підставивши, тепер в праву частину рівняння (1.4) замість  число , отримаємо нове число і так далі продовжуємо даний процес. В результаті отримаємо послідовність чисел:



Якщо отримана послідовність збіжна, тобто існує , то переходячи до границі в рівнянні (1.5) отримаємо:

або ,

тобто границя є коренем рівняння (1.3) з довільним степенем точності.

Також, слід зазначити, що ітераційний процес збігається до єдиного кореня рівняння  , якщо на відрізку  , який містить корінь, виконується умова:

(1.6)

де

і збіжність процесу ітерації буде тим швидшою, чим менше число , яке задовольняє нерівність (1.6).

Якщо ж умова (1.6) не виконується, то потрібно рівняння  перетворювати до рівняння виду (1.3), таким чином, щоб дана умова виконувалась. Цього можна досягнути, наприклад, шукаючи функцію із наступного співвідношення:

(1.7)

де обираємо так, щоб .

Процес ітерації слід продовжувати до тих пір, поки не буде виконуватись умова:



де — задана похибка обчислень.

2. Опис алгоритму для реалізації поставленої задачі



Визначимо послідовність дій, які необхідно виконати для реалізації поставленої задачі.

1. Розрахувати початкові координати точки в момент t=0.

2. Визначити корінь t1 рівняння x(t)=5.

3. Визначити координати точки в момент t1.

4. Розрахувати відстань між точками.

5. Вивести результат виконання програми.

Пункт 2 є розрахунком кореня нелінійного рівняння за допомогою методу простої ітерації.

Опишемо алгоритм методу простої ітерації:

1. Задати межі ізоляції кореня та показник точності розрахунку.

2. Розрахувати значення функції у визначених точках.

3. Якщо знаки розрахованих значень збігаються, то повернутися до пункту 1 та змінити визначені межі, інакше перейти до пункту 4.

4. Задати перше наближене значення кореню в межах ізоляції.

5. Розрахувати наступне наближене значення кореня.

6. Розрахувати різницю між двома останніми розрахованими наближеними значеннями кореня.

7. Порівняти різницю із заданим показником точності розрахунків.

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

Для реалізації програми необхідно буде використання набору змінних. В таблиці 2.1 наведений перелік використовуваних змінних.
Таблиця 2.1 – Ідентифікація змінних

Найменування змінної

Позначення змінної у завданні

Ідентифікатор у VB-програмі

Ідентифікатор у програмі MathCad

1

2

3

4

Відстань

d

r

d

Початкове значення часу

-

t0

t

Продовження таблиці 2.1

Початкові координати точки

-

x0

y0

z0

f(t)

Значення часу в момент перетину точкою площини x=5 (корінь рівняння)

t*

q

Δt1

Координати точки в момент перетину точкою площини x=5

-

x1

y1

z1

f(Δt1)



3. Складання графічного алгоритму для знаходження розв’язку задачі



На рисунку 3.1 наведений загальний алгоритм розв’язання задачі, в якому розрахунок кореня нелінійного рівняння за допомогою методу простої ітерації вказаний єдиним блоком.


Рисунок 3.1 - Алгоритм розв’язання задачі
На рисунку 3.2 наведений алгоритм розрахунку кореня нелінійного рівняння за допомогою методу простої ітерації


Рисунок 3.2 – Алгоритм розрахунку кореня нелінійного рівняння за допомогою методу простої ітерації

4. Реалізація поставленої задачі у середовищі Visual Basic



У середовищі Visual Basic поставлена задача була розв’язана з використанням стандартного конструктора віконних форм (рис. 4.1). Були виведені для відображення у вікні програми всі важливі показники (задана функція, координати початкового та кінцевого положення точки, розрахований методом простої ітерації корінь) та результат обчислень – відстань між точками.


Рисунок 4.1 – Процес реалізації поставленої задачі у середовищі Visual Basic
На рисунку 4.2 наведена віконна форма з результатами виконання реалізованої програми.



Рисунок 4.2 – Віконна форма з результатами виконання реалізованої програми

5. Опис використаних операторів та процедур та відповідні пояснення до VB-проекту



Для реалізації поставленої задачі у середовищі Visual Basic були використані наступні оператори та процедури.

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

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

1. Функція розрахунку кореня методом простої ітерації
Function Iter() 'функція уточненя кореня

Const e = 0.0001

Dim t0 As Single, t1 As Single, tn As Single

t0 = 0

tn = t0

Do

t1 = tn

tn = (Cos(Sqr(t1) + 1) + 3) / 1.3

Loop While Abs(tn - t1) > e

Iter = tn

Text8.Text = Str(tn)

End Function
У цій функції був використаний оператор циклу Do…Loop…While
Do

t1 = tn

tn = (Cos(Sqr(t1) + 1) + 3) / 1.3

Loop While Abs(tn - t1) > e
Цей оператор реалізує повторюваність дій з розрахунку кореня до досягнення необхідної точності (While Abs(tn - t1) > e ; e = 0.0001)

2. Процедура, що розраховує відстань між двома точками:
Sub Vidst()

Dim x0 As Single, y0 As Single, z0 As Single, x1 As Single, y1 As Single, z1 As Single, r As Single, t0 As Single, q As Single

t0 = 0

x0 = 1.3 * t0 - Cos(Sqr(t0) + 1) + 2

Text2.Text = "x0=" & Str(x0)

y0 = t0 + 5 + Cos(t0)

Text3.Text = "y0=" & Str(y0)

z0 = 4 * t0 * t0 + Atn(t0)

Text4.Text = "z0=" & Str(z0)

q = Iter

x1 = 1.3 * q - Cos(Sqr(q) + 1) + 2

Text5.Text = "x1=" & Str(x1)

y1 = q + 5 + Cos(q)

Text6.Text = "y1=" & Str(y1)

z1 = 4 * q * t0 + Atn(q)

Text7.Text = "z1=" & Str(z1)

r = Sqr((x1 - x0) ^ 2 + (y1 - y0) ^ 2 + (z1 - z0) ^ 2)

Text1.Text = Str(r) & " см"

End Sub
У цій процедурі відбувається розрахунок початкових і кінцевих координат (результати цих розрахунків одразу виводяться у відповідні поля форми) і після цього – розрахунок відстані, результат також виводиться в поле (Text1.Text = Str(r) & " см").

Крім того, в тілі цієї процедури відбувається виклик функції розрахунку кореня:
q = Iter
3. У головній процедурі (процедурі запуску головної форми) визначені назви полей, встановлені початкові значення тих полів, що далі заповнюються при розрахунках.
Private Sub Form_Load()
Form1.Caption = "Рух матеріальної точки" 'заголовок форми

Text1.Text = "" ' початкове значення текстбоксів - пуста строка

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Text = ""

Text6.Text = ""

Text7.Text = ""

Text8.Text = ""

Label1.Caption = "Результат. Відстань дорівнює"

Label2.Caption = "Закон руху матеріальної точки М"

Label4.Caption = "Координати при перетині площини x=5"

Label5.Caption = "Час при перетині площини x=5 (знайдений корінь x=5)"

Label3.Caption = "Координати в момент 0"

Command1.Caption = "Розрахувати"
End Sub
4. У процедурі, яка обробляє натискання на кнопку «Розрахувати» відбувається лише одна операція - виклик процедури розрахунку відстані.
Private Sub Command1_Click()
Vidst
End Sub


6. Реалізація поставленої задачі у середовищі MathCad



Для реалізації даної задачі у середовищі MathCad були виконані наступні дії:
Побудований тривимірний графік заданої траєкторії руху матеріальної точки (рисунок 6.1).


Рисунок 6.1 - тривимірний графік заданої траєкторії руху матеріальної точки
Далі був реалізований алгоритм метода простої ітерації (рисунок 6.2).


Рисунок 6 – Реалізація алгоритму метода простої ітерації середовищі MathCad
Далі визначили значення координат точок в початковий момент часу та в кінцевий. Після чого була розрахована шукана відстань (рисунок 6.3).


Рисунок 6.3 – Розрахунок координат та знаходження відстані

7. Опис інструментів, що були використані для отримання MathCad-розв’язку



При рішенні задачі засобами MathCad були використані стандартні процедури математичного процесора, такі, як присвоєння значення («:=»), математичні та тригонометричні функції («cos») та ін.

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

Побудова графіка виконана за допомогою функції CreateSpace.

Функція CreateSpace (function, [t0, t1], [tgrid], [fmap]) повертає вкладений масив з трьох векторів, що представляють координати x, y, z кривої в параметричному просторі, певною функцією з однією змінною в першому аргументі. Це може бути корисним для побудови графіка кривої на 3D-графіці.

Реалізувати алгоритм обчислення в пакеті Mathcad можна, використовуючи програми-функції, що містять конструкції, подібні до конструкцій мов програмування– оператори присвоєння, оператори циклів, умовні оператори тощо. Такий спосіб програмування називається програмуванням у програмі – функції.

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

Порядок опису програми-функції MathCad

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

  • ввести ім’я програми-функції і список формальних параметрів та ввести символ “:”;

  • відкрити панель Програмування та клацнути кнопку “Add line”.

На екрані з’явиться вертикальна риска і вертикальний стовпець із двома полями для введення операторів, що утворюють тіло програми-функції.

  • перейти в перше поле і ввести перший оператор тіла програми-функції. Нижнє поле завжди призначене для визначення значень, які повертаються програмою. Для того, щоб ввести додаткові поля для введення операторів, потрібно натиснути кнопку “Add line”. Для видалення того чи іншого оператора або поля введення з тіла програми-функції, потрібно виділити його рамкоюі натиснути клавішу Delete.

  • заповнити нижнє поле введення, ввести вираз, який визначає значення, що повертається через ім’я програми-функції.

Для виконання ітераційного процесу був застосований оператор циклу з передумовою

Для введення цього оператора необхідно виконати такі дії:

  • клацнути на кнопці while панелі Programming (Программирование) . На екрані з’являться поля введення (місце заповнювачі)



  • в поле 1 вводять умову виконання циклу;

  • в поле 2 вводять оператори тіла циклу. У тілі циклу повинні бути присутні оператори, які роблять умову циклу хибною, інакше цикл буде виконуватись нескінченно.

Оператор циклу з передумовою виконується таким чином: знайшовши оператор while, Mathсad перевіряє вказану умову. Якщо вона істинна, то виконується тіло циклу і знову перевіряється умова. Якщо вона хибна, то цикл завершується.

8. Аналіз отриманих результатів



Розрахунки, виконані за допомогою двох різних програм – у середовищі Visual Basic та у математичному пакеті Mathсad, майже збігаються (див. таблицю 8.1).
Таблиця 8.1 – Порівняння розрахунків, виконаних у середовищі Visual Basic та у математичному пакеті Mathсad

Назва показника

Visual Basic

Mathсad

Початкові координати матеріальної точки:

x

y

z

1.459698

6

0

1.46

6

0

Наближене значення кореня

1.776575

1.777

Кінцеві координати матеріальної точки:

x

y

z

5

6.572

13.684

4.99998

6.572246

13.683

Відстань між точками

14.145

14.14516


Деякі розбіжності в результатах обумовлюються лише різною точністю обчислень.

Що стосується зручності реалізації задачі в за допомогою двох різних програм, то можна відмітити наступне:

  • перевагою математичного пакету Mathсad є можливість легко побудувати графічно задану траєкторію;

  • також як перевагу математичного пакету Mathсad можна відмітити більш просту можливість виправити будь які дані (наприклад, змінити точність розрахунків та ін.);

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



Висновки



У ході виконанні курсової роботи було виконане розв’язання задачі знаходження відстані між двома точками на траєкторії руху матеріальної точки. Для розрахунку кореня нелінійного рівняння був застосований алгоритм простої ітерації.

Розв’язання задачі було реалізоване у середовищі Visual Basic та у математичному пакеті Mathсad. Був розроблений алгоритм рішення задачі, визначені необхідні змінні.

Були написані необхідні програми і отримані результати їх виконання.

В ході виконання роботи мною були закріпленні знання про побудову алгоритмів, освоєні базові оператори та процедури математичного пакету Mathсad, вивчені деякі процедури та функції мови програмування Visual Basic. Були закріплені знання з програмування та навички користування еом для рішення задач.


Перелік посилань


  1. Демидович Б. П., Марон І. А. Основи обчислюваної математики. – М.: Наука, 1970. – 664 с.

  2. Соколов О. Ю. та ін. Інформатика для інженерів / За редакцією

О. Ю. Соколова, І. Т. Зарецької. – Х.: Факт, 2005. – 424 с.

  1. Краскевич В. Є., Зеленський К. Х., Гречко в. і. Чисельні методи в інженерних дослідженнях. – К.: Вища шк.., 1986. – 263 с.

  2. Плис А. І., Сливина Н. А. MathCad. Математичний практикум для інженерів і економістів: - М.: Фінанси і статистика, 2003. – 656 с.

  3. Процюк В. Р. та інші. Методичні вказівки і завдання на курсову роботу з дисципліни «Інформатика та програмування». – Івано-Франківськ, 2009.

  4. Шпачук В. П. та інші. Теоретична механіка. Кінематика. Конспект лекцій. – Харків, 2006.

  5. Глинський Я. М. Практикум з інформатики: Навч. Посібник. 5-е вид. – Львів: Деол. 2002.

  6. Інформатика: Комп’ютерна техніка. Комп’ютерні технології / За редакцією О. І. Пушкаря. – К.: Видавничий центр “ Академія “, 2002.

  7. Волченков Н. Г. Програмирование на Visual Basic 6: в 3 ч. – Учеб. Пособие: М.: ИНФРА – М, 2000.

  8. Паранчук Я. С., Алгоритмізація та програмування. MathCad: навчальний посібник / Я. С. Паранчук, В. І. Мороз. – 2-е видання – Львів: Видавництво Львівської політехніки, 2012. – 312 с.


Додатки


Додаток 1
Лістинг програми Visual Basic

Private Sub Command1_Click()
Vidst
End Sub

Sub Vidst()

Dim x0 As Single, y0 As Single, z0 As Single, x1 As Single, y1 As Single, z1 As Single, r As Single, t0 As Single, q As Single
t0 = 0

x0 = 1.3 * t0 - Cos(Sqr(t0) + 1) + 2

Text2.Text = "x0=" & Str(x0)

y0 = t0 + 5 + Cos(t0)

Text3.Text = "y0=" & Str(y0)

z0 = 4 * t0 * t0 + Atn(t0)

Text4.Text = "z0=" & Str(z0)

q = Iter

x1 = 1.3 * q - Cos(Sqr(q) + 1) + 2

Text5.Text = "x1=" & Str(x1)

y1 = q + 5 + Cos(q)

Text6.Text = "y1=" & Str(y1)

z1 = 4 * q * t0 + Atn(q)

Text7.Text = "z1=" & Str(z1)

r = Sqr((x1 - x0) ^ 2 + (y1 - y0) ^ 2 + (z1 - z0) ^ 2)

Text1.Text = Str(r) & " см"

End Sub

Function Iter() 'функція уточненя кореня

Const e = 0.0001
Dim t0 As Single, t1 As Single, tn As Single
t0 = 0

tn = t0

Do

t1 = tn

tn = (Cos(Sqr(t1) + 1) + 3) / 1.3
Loop While Abs(tn - t1) > e

Iter = tn

Text8.Text = Str(tn)

End Function
Private Sub Form_Load()
Form1.Caption = "Рух матеріальної точки" 'заголовок форми

Text1.Text = "" ' початкове значення текстбоксів - пуста строка

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Text = ""

Text6.Text = ""

Text7.Text = ""

Text8.Text = ""

Label1.Caption = "Результат. Відстань дорівнює"

Label2.Caption = "Закон руху матеріальної точки М"

Label4.Caption = "Координати при перетині площини x=5"

Label5.Caption = "Час при перетині площини x=5 (знайдений корінь x=5)"

Label3.Caption = "Координати в момент 0"

Command1.Caption = "Розрахувати"
End Sub
Додаток 2
Лістинг програми MathCad













Реалізація метода простої ітерації з параметром для пошука коріня рівняння:



Шуканий корінь:













скачати

© Усі права захищені
написати до нас