Розв’язання диференційного рівняння коливань струни
Виведення рівняння коливань струни. Постановка початкових і кінцевих умов. Приклад аналітичного розв’язку рівняння коливань струни. Чисельний розв’язок рівняння параболічного типу. Розв’язок задачі мовою С+. Блок схема програми, програмне середовище.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 16.02.2013 |
Размер файла | 750,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
ЗМІСТ
Вступ
1. РІВНЯННЯ КОЛИВАНЬ СТРУНИ
1.1 Виведення рівняння коливань струни
1.2 Постановка початкових і кінцевих умов
1.3 Програмне середовище
2. Метод Фур'є
2.1 Приклад аналітичного розв'язку рівняння коливань струни
2.2 Чисельний розв'язок рівняння параболічного типу
2.3 Постановка та розв'язок задачі
3. Розв'язок задачі мовою С
3.1 Блок схема програми
3.2 Програма
ВИСНОВКИ
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
Вступ
В даній курсовій роботі розглядається рівняння коливання струни. Це рівняння дозволяє визначити положення всіх точок струни у будь-який момент часу. Рівняння являє собою диференційне рівняння другого порядку параболічного типу з початковими та граничними умовами.
Існують декілька способів розв'язку цих рівнянь. При вивчені рівняння коливань струни на курсі механіки, студенти користуються ідеалізацією, спрощений та другим законом Ньютона. У курсі ж математичного аналізу розв'язок рівнянь коливань струни легко розв'язати методом характеристик чи методом Фур'є.
Отже, для початку, нам потрібно визначити, що таке струна? Струна - це тонка, гнучка, сильно натягнута нитка з рівномірно розподіленою по всій довжині щільністю
У 1625 році богословом Мареном Мерсенном була виявлена залежність між частотою, натягненням, площею поперечного перетину і довжиною струни. Далі вона трансформувалась у суперечку про струну між математиками Жаном Д'Аламбером та Леонардом Ейлером. Мабуть вони так і не розуміли принципу коливання, що виклав Мерсенн. Коливання і хвилі різні явища, що виникають від руху. Марен Мерсенн був допитливою людиною вочевидь він уважно розглянув коливання струни. Він визначив, що коливання струни являє хвилю, що стоїть, через обмеження опорами, звідси береться в розрахунок половина струни. Це прекрасно видно без будь-якого приладу. Коливання являє перекидання струни з боку в бік. Якщо струна вертається, значить їй необхідно зупинитися для повернення. Вплив маси і натягу очевидні. Швидкість змінна, з прискоренням від нуля до максимуму, звідси швидкість в квадраті при перетворенні в частоту перетворюється на зворотне квадрату - корінь квадратний.
Робота натягу і маси в коливальному процесі дуже цікава: по-перше кожна з них постійно змінює свою швидкість,а таким чином, і енергію. Коливання потенційної і кінетичної енергій зрушено в часі змінює свою активність в стадії процесу, коли виникає нульова швидкість однієї з них. В цей час інша з пари сил набирає свого максимуму.
Але сотнею роками раніше від 1625 року, в Італії, Брешії та Кремоні виготовлялися скрипки майстрами, аматорами-фізиками за законами коливань. Їм були відомі закономірності між довжиною струни і довжиною хвилі, закономірності сил, що спричиняють процес коливань. Ці закономірності їм відомі були від перших кроків, що зробила людина на Землі.
Офіційний фізичний процес коливання струни надається, як односторонній рух хвилі від місця збудження в напрямку ближньої опори, відлуння від неї та рух дальньої опори. Далі рух хвилі продовжує свій шлях тією ж довжиною і в тому ж напрямку. Це є ні що інше, як рух поздовжньої, хвилі стиснення-розрідження.
Процес поливання не розглядається, його вважають за траєкторію руху хвилі від місця збудження - як рівномірне, що прямує в одну сторону.
Це вірне уявлення, але тільки для хвилі згущення-розрідження що біжить, у якої є шлях, проекція, слід - пам'ять пройденого шляху, траєкторія руху однієї нерухомої точки будь-якого тіла, незалежно від його габаритів.
Процес коливання: відхилення, розподіл зусиль руху та зміни зусиль щодо місця збурення, відображення хвиль коливання в залежності від довжини хвилі і довжини шляху. Визначення головних хвиль коливання і повного періоду їх, виникнення гармонік і їх місць на струні та ін. Під виглядом коливання постає поздовжня хвиля згущення-розрідження. І це відбувається в часи виникнення теореми Фур'є вже після смерті Марена Мерсенна - 1 вересня 1648 р. Жан Батист Жозеф Фур'є народився після смерті М.Мерсенна через 120 років. Фур'є - аналіз личить в електриці - поздовжньої хвилі стиснення-розрідження, що біжить, а також в теплотехніці, для яких і був розроблений. Хоча сумнівно: синусоїдальні хвилі - хвилі зміни стиснення-розрідження, але аж ніяк не коливання і форми хвилі. У точних науках не повинно бути синонімів - тільки однозначні визначення.
Існує думка: рух хвилі починається від місця збудження. Це вірно для поступальної хвилі. Що являє просту поздовжню, поодиноку хвилю. Для коливальної хвилі, що являє комплекс синхронних хвилі, визначення такого розуміння залежить від цілого ряду причин: Найпростіша коливальна система - струна, має хвилі, що виникають від поштовху молотка фортепіано. У такому разі одна з хвиль, поступальна, починається від місця збудження. Інші хвилі, що виникають від реакцій на поштовх, починаються від місця, що зреагувало на поштовх. Це хвиля відхилення струни, де є розтягнення і зміщення мас та їх роз'єднання. Це реакція опор у напрямку відхилення струни відносно основи, на якій вони закріплені. Якщо обурення виникає від поштовху основи, то хвиля коливання починається від опор, що торкаються струни.
1. РІВНЯННЯ КОЛИВАНЬ СТРУНИ
1.1 Виведення рівняння коливань струни
Нехай кінцеві точки струни закріплені, а сама струна туго натягнута. Якщо вивести струну з положення рівноваги (наприклад, відтягнути її або вдарити по ній), то струна почне коливатися. Будемо припускати, що всі точки струни рухаються перпендикулярно її положенню рівноваги (поперечні коливання), причому в кожен момент часу струна лежить в одній і тій самій площині.
Візьмемо в цій площині систему прямокутних координат. Якщо в початковий момент часу струна розташовувалася вздовж осі , то вона означатиме відхилення струни від положення рівноваги.
Рис. 1 - відхилення струни від положення рівноваги
У процесі коливання величина відхилення залежатиме від абсциси точки струни і від часу . Таким чином, щоб знайти положення будь-якої точки струни в будь-який момент часу, нам треба знайти залежність від і , тобто знайти функцію u(). При кожному фіксованому значенні графік функції представляє форму коливання струни у момент часу , часткова похідна дає при цьому кутовий коефіцієнт дотичної в точці с абсцис . При зміні форма струни, очевидно, змінюється, і, щоб уявити собі процес коливань, ми повинні побудувати декілька графіків функції при різних значеннях , тобто зробити декілька миттєвих знімків коливання струни. При постійному значенні функція дає закон руху точки с абсцис вздовж прямої, паралельної осі , похідна швидкість цього руху, а друга похідна прискорення.
Завдання курсової полягає в тому, щоб скласти рівняння, яке повинно задовольняти функція Будемо вважати струну абсолютно гнучкою, тобто вона не чинить опір вигину; це означає, що якщо видалити частину струни, що лежить по одну сторону від будь-якої її точки, то сила натягу , яка замінює дію віддаленій частині, завжди буде спрямована по дотичній до струни. Струна, передбачається пружною і підкоряється закону Гука; зміна величини сили натягу при цьому пропорційно зміні довжини струни. Припустимо, що струна однорідна; лінійну щільність її позначимо буквою ( - маса одиниці довжини струни).
Нехай на коливання струни в площині діють сили, паралельні осі , які можуть змінюватися вздовж струни з часом. Ці сили будемо вважати безперервно розподіленими вздовж струни; величину сили, спрямованої вгору, будемо вважати позитивною, а вниз негативною. Щільність розподілу цих сил вздовж струни є функція абсциси і часу ; позначимо її через . Якщо, зокрема, єдиною зовнішньою силою є вага струни, то , де - щільність струни, g - прискорення сили тяжіння.
Силами опору середовища, в якому коливається струна, знехтуємо.
Якщо позначити через a гострий кут між віссю абсцис і дотичною до струни в точці абсцис в момент часу , то умова малості коливань полягає в тому, що величиною можна нехтувати:
. (1.1)
Оскільки розкладання функції в ряд Маклорена має вигляд
то за умовою (1.1) можна вважати, що
(1.2)
Рис. 2 - Струна при максимальному моменту вищої точки за інтервал часу
Далі,
отже,
1. (1.3)
І нарешті,
і
. (1.4)
Так як то в силу отриманих умов накладаємо, що
0 (1.5)
Звідси одразу випливає, що в процесі коливання ми можемо знехтувати зміною довжини будь-якої ділянки струни. Дійсно, довжина ділянки М1М2 в момент часу дорівнює
коливання струна програма аналітичний
= (1.6)
З формули (1.5) маємо,
х2 - х1 (1.7)
Покажемо тепер, що при наших припущеннях величину сили натягу можна вважати постійною, що не залежить від точки її програми, ні від часу . Візьмемо для цього яку-небудь ділянку струни М1М2
В момент часу і замінимо дію відкинутих ділянок силами натягу і Так як за умовою всі точки струни рухаються паралельно осі і зовнішні сили також паралельні цієї осі, то сума проектних сил натягу на вісь повинна дорівнювати, нулю:
(1.8)
У формулу (1.3) укладаємо, що . Так як точки М1 і М2 вибрані довільно, то це і доводить, що в даний момент часу сили натягу в усіх точках рівні між собою.
Оскільки ми нехтуємо зміною довжини будь-якої ділянки струни, то у законі Ґука незмінним залишається натяг струни. Отже, ми показали, що в межах обраної точності є величина постійна:
(1.9)
Виділимо нескінченно малу ділянку струни М1М2 проектуючи інтервал осі абсцис. Як вже зазначалося вище, сили Т1 і Т2 направлені по дотичних до струни в точках М1 і М2 величина цих сил постійно дорівнює Т0. Згідно з рівності (1.8) сума проекцій сил Т1 і Т2 на вісь дорівнює нулю. Обчислимо суму проекцій цих же сил на вісь :
У формулу (1.4) можна записати, що
Отже,
(1.10)
Тут ми замінили частковий приріст похідної при переході від аргументів до аргументів її частковим диференціалом,
Рівнодіюча зовнішніх сил, прикладених до ділянки М1 М2 в момент часу t, позначимо через . Відповідно до визначення функції і наближеному рівності (1.7) можна вважати, що
(1.11)
Напрямок рівнодіючої визначиться знаком функції (напрямок відповідає випадку ).
Після того, як знайдені всі сили, що діють на ділянку М1 М2 застосуємо до нього другий закон Ньютона, згідно з яким добуток маси на прискорення дорівнює сумі всіх діючих сил.
Оскільки маса ділянки М1М2 струни дорівнює =, то використовуючи формули (1.10) і (1.11), отримаємо
T0
Скоротивши ліву і праву частину на і розділивши всі члени рівності на, приведемо отримане рівняння до вигляду
(1.12)
(- позитивна стала величина). В результаті ми отримали лінійне диференційне рівняння з частковими похідними другого порядку з постійними коефіцієнтами. Рівняння (1.12) називається рівнянням коливань струни або одновимірним хвильовим рівнянням. Це одне з найпростіших і в той же час найважливіших диференціальних рівнянь математичної фізики. Як ми пізніше побачимо, до нього зводиться не тільки розглянута задача, а й багато інших.
Якщо 0, то рівняння (1.12) називається однорідним; воно описує вільні коливання струни без впливу зовнішніх зусиль.
Якщо не тотожно дорівнює нулю, то рівняння називається неоднорідним; в цьому випадку розглядаються вимушені коливання струни. Коли на струну діють тільки сили тяжіння, а натяг струни Т0 великий, то ми маємо право знехтувати другою складовою в правій частини рівняння струни в порівнянні з першими і розглядати, таким чином, коливання струни як вільні.
1.2 Постановка початкових і кінцевих умов
При розгляді задачі про коливання струни додаткові умови можуть бути двох видів: початкові та кінцеві (або граничні).
Початкові умови показують, в якому стані перебувала струна в момент початку коливання. Зручніше вважати, що струна почала коливатися в момент часу (). Первинне положення точок струни задається умовою
(1.13)
А початкова швидкість
(1.14)
де і - задані функції.
Запис означає, що функція взята при довільному значенні х та за, , тобто ; аналогічно Така форма запису постійно застосовується в подальшому; так, наприклад, і т. д.
Умови (1.13) і (1.14) аналогічні початковим умовам в найпростішої задачі динаміки матеріальної точки. Там для визначення закону руху точки, крім диференціального рівняння, потрібно знати початкове положення точки і її початкову швидкість.
Інший характер мають кінцеві умови. Вони показують, що відбувається на кінцях струни в увесь час коливань. І простому випадку, коли кінці струни закріплені (початок струни - на початку координат, а кінець - у точці (t, 0)), функції буде підкорятися умовам
(1.15)
Нехай, наприклад, струну, закріплену на кінцях, як-то відтягнули, тобто поставили функцію - рівняння початковому форми струни, і відпустили без початкової швидкості (це означає, що ). Ясно, що цим самим подальший характер коливань буде повністю визначений і ми знайдемо єдину функцію вирішуючи однорідне рівняння при відповідних умовах. Можна змусити струну коливатися й інакше, а саме надавши точкам струни деяку початкову швидкість. Додання точкам струни початкової швидкості може бути здійснено за допомогою удару по струні (як це має місце при грі на роялі); перший спосіб збудження струни застосовується при грі на щипкових інструментах (наприклад, гітарі).
Потрібно розв'язати однорідне лінійне диференціальне рівняння з частинними похідними другого порядку з постійними коефіцієнтами
(1.16)
по початкових умовах
і кінцевих умовах
(1.18)
Функції та визначені на інтервалі [0, l] і, як це випливає з першої умови (1.17) і умов (1.18), .
Можна довести, не спираючись на фізичні уявлення, що при деяких обмеженнях, накладених на функції і , це завдання має єдиний розв'язок.
1.3 Програмне середовище
Мова С - універсальна, процедурна, імперативна мова програмування загального призначення, розроблена у 1972 році Денісом Рітчі у Bell Telephone Laboratories з метою написання на ній операційної системи UNIX.
Хоча, С і було розроблено для написання системного програмного забезпечення, наразі вона досить часто використовується для написання прикладного програмного забезпечення.
С імовірно, є найпопулярнішою у світі мовою програмування за кількістю вже написаного на ній програмного забезпечення, доступного під вільними ліцензіями коду та кількості програмістів, котрі її знають. Реалізації компіляторів для мови С існують для багатьох операційних. С здійснила великий вплив на інші мови програмування, особливо С++, яка спочатку проектувалася, як розширення для С, а також для Java та C#, які запозичили у С синтаксис.
Серед її головних цілей: можливість прямолінійної реалізації компіляції, використовуючи відносно простий компілятор, забезпечити низькорівневий доступ до оперативної пам'яті, формувати лише декілька інструкцій машинної мови для кожного елементу мови, і не вимагати обширної динамічної підтримки. У результаті, код С придатний для більшості системного програмного забезпечення, яке традиційно писалося асемблером.
Незважаючи на її низькорівневі можливості, мова проектувалася для машинно-незалежного програмування. Сумісна зі стандартами та машинно-незалежно написана мовою С програма, може легко компілюватися на великій кількості апаратних платформ та операційних систем з мінімальними змінами. Мова стала доступною для великої кількості платформ, від вбудованих мікроконтролерів до суперкомп'ютерів.
Мова С має можливості для структурного програмування і дозволяє здійснювати рекурсії, у той час, як система статичної типізації даних запобігає виникненню багатьох непередбачуваних операції. У С увесь виконуваний код міститься у функціях. Параметри функції завжди передаються значеннями. Передача параметрів за вказівником реалізовується шляхом передачі значення вказівника. Гетерогенні сукупності типів даних (структури) дозволяють пов'язаним типам даних бути об'єднаними і маніпулювати ними, як єдиним цілим.
Для написання програми мовою С, я використовував компілятор Dev-C++.
Dev-C++ - вільне інтегроване середовище розробки для мов програмування С/С++. У дистрибутив входить компілятор MinGW. Сам Dev-C++ написаний на Delphi. Розповсюджується згідно з GPL.
Проект підтримується Source Forge. Засновник проекту Колін Лаплас, компанія Bloodshed Software. Свого часу був доступний Linux-порт, проте на теперішній час актуалізована Windows-версія.
2. Метод Фур'є
2.1 Приклад аналітичного розв'язку рівняння коливань струни
Розглянемо просте завдання про коливання нескінченної струни. Якщо уявити собі дуже довгу струну, то ясно, що на коливання, що виникли в її середній частині, кінці струни не будуть надавати помітного впливу. Так, якщо взяти довгий натягнутий мотузок і злегка качнути його в середині, то по мотузці вліво і вправо побіжать хвилі. Картина почне спотворюватися тільки тоді, коли хвилі дійдуть до кінців мотузки і, відбившись, підуть назад. Отже, не враховуючи впливу решт струни, ми тим самим будемо враховувати впливу відбитих хвиль.
Ми розглянемо задачу про вільні коливання струни, закріпленої на обох кінцях. Завдання зводиться до вирішення однорідного рівняння струни
(2.1)
При початкових умовах
(2.2)
і кінцевих умовах
(2.3)
Метод Фур'є (метод розподілу змінних) належить до числа найважливіших методів розв'язання рівнянь математичної фізики. Ми будемо в подальшому неодноразово зустрічатися з ним.
Перша частина методу Фур'є полягає в тому, що ми знаходимо часткові розв'язки рівняння (2.1), задовольняють кінцевим умовам (2.3), виду
(2.4)
Кожне з часткових розв'язків, таким чином, представляється у вигляді двох функцій, одна з яких залежить тільки від , а інша - тільки від .
Диференціюючи двічі вираз (2.4) по і по , отримаємо
Для скорочення запису ми не пишемо аргументів функцій і
Підставляючи вирази для похідних в рівняння (2.1), отримаємо
або, ділячи обидві частини рівності на ,
(2.5)
Щоб функція була розв'язком рівняння (2.1), рівність (2.5) повинна дотримуватися при всіх значеннях і . Ліва частина цієї рівності залежить тільки від змінної і не може змінюватися при зміні . Тому, якщо зафіксувати і міняти , ліва частина, а отже і права, буде зберігати постійне значення. Розмірковуючи аналогічно, встановимо, що права частина, а отже і ліва, не може змінюватися і при вимірюванні . Це буде справедливо тільки в тому випадку, коли обидві частини рівності (2.5) взагалі не залежать ні від , ні від t, тобто коли обидва відносини і є величинами постійними:
(2.6)
Звідси випливає, що функції і повинні задовольняти диференціальних рівнянь
. (2.7)
Оскільки ми шукаємо часткові розв'язки, що задовольняють кінцевим умовам (3.3), то при будь-якому значенні повинні дотримуватися рівності
Якщо б перетворювався в нуль другий множник, то розв'язок дорівнював б нулю при всіх значеннях і . Тому, щоб відшукати розв'язок, не тотожно рівні нулю (а тільки такі нас і цікавлять), ми повинні вважати що
і .
В результаті для відшукання функції ми прийшли до наступної задачі: знайти розв'язок лінійного диференціального рівняння другого порядку
(2.8)
за умов
(2.9)
Зрозуміло, це завдання за будь-якого має розв'язок, тотожно рівне нулю: . Виявляється, що при деяких значеннях постійної ця задача має й інші розв'язки.
Зауважимо, що в цьому полягає суттєва відмінність рівняння розглянутої задачі від розв'язка звичайних диференційних рівнянь з початковими умовами, коли для визначення часткового розв'язку задаються значення функції та її похідної до деякої початкової точки. Як відомо, останнє завдання має єдиний розв'язок.
Вважаючи , складемо для формули (2.8) рівняння
і розглянемо різні випадки:
1) Нехай . Тоді корені рівняння дійсні, , та спільний розв'язок має вигляд
Щоб дотримувалися умови (2.9), ми повинні покласти
,
Так як визначник цієї однорідний системи
не дорівнює нулю, то система має єдиний розв'язок
Таким чином, у цьому випадку розв'язок, відмінних від тотожного нуля, не існує.
2) Нехай . Тоді обидва кореня рівняння дорівнюють нулю і
Підставляючи в умови (2.9), отримаємо
,
тобто знову ж таки
.
3) Нехай, нарешті, . Корені рівняння чисто уявні, , і розв'язок буде містити тригонометричні функції
.
При має бути
,
а при
Остання рівність можлива, коли , саме воно буде задовольняти при
,
тобто при
( не дорівнює нулю, так як за умовою ).
Отже, якщо, тобто існують розв'язки рівняння (2.8), не рівні тотожно нулю.
Розв'язок, що відповідає деякому фіксованому , позначимо через . Воно має вигляд
(2.10)
де - довільна постійна. Ми маємо право надалі надавати тільки позитивні значення: оскільки при негативних виходитимуть розв'язки того ж виду (адже - довільні постійні, які можуть мати будь-які знаки).
Як ми бачимо, кожному значенню, відповідає незліченна безліч розв'язків (2.10), що відрізняються один від одного постійним множником.
Величини , називають власними числами, а функції власними функціями диференціального рівняння (2.8) з кінцевими умовами (2.9).
Нагадаємо, що система функцій , називається ортогональною в інтервалі , якщо інтеграл від будь-яких двох різних функцій системи дорівнює нулю:, якщо . Легко встановити, що знайдені власні функції ортогональні на інтервалі . Дійсно, при
Тепер звернемося до відшукання функцій . Кожному власному числу буде відповідати своя функція , що визначається друге з рівнянь (2.7) (нагадаємо, що ):
Його загальний розв'язок має вигляд
(2.11)
де і - довільні постійні.
Підставляючи вирази (2.10) і (2.11) у формулу (2.4), знайдемо часткові розв'язки рівняння (2.1), що задовольняють кінцевим умовам (2.3). При цьому кожному значенню відповідатиме розв'язок
.
Вносячи множник в дужку і вводячи позначення і , запишемо у вигляді
(2.12)
Розв'язок и називаються власними функціями задачі; відповідні їхні коливання струни називаються власними коливаннями.
Перейдемо до другої частини методу Фур'є і за допомогою власних функцій побудуємо рівняння, яке задовольняє початковим умовам (2.2). Для цього візьмемо суму розв'язків (2.12), яка в силу лінійності і однорідності рівняння (2.1) також буде його розв'язком:
(2.13)
Оскільки ми склали нескінченний ряд, то треба, щоб він сходився в одному. Ми припустимо також, що його можна двічі почленно диференціювати. Зрозуміло, що функція задовольняє кінцевим умовам (2.3), так як їм задовольняє кожна з функцій .
Будемо тепер підбирати довільні сталі і так, щоб функція (2.13) задовольняла початковим умовам. Підставляючи значення , отримаємо
(2.14)
Диференціюючи ряд (2.13) по :
і підставляючи , задовольнимо другу початкового умову:
(2.15)
Формули (2.14) і (2.15) показують, що величини і є коефіцієнтами розкладання функцій і в ряд Фур'є по синусам в інтервалі Згадуючи формули для коефіцієнтів цього розкладу, знайдемо :
(2.16)
Так як
(2.17)
Підставляючи вирази для коефіцієнтів і в ряд (2.13), ми остаточно знайдемо розв'язок поставленої задачі.
Ми не зупиняємося на умовах, які треба накласти на функції і , щоб було виправдано зроблене припущення про можливість по членного диференціювання ряду (2.13). Формула (2.13) показує, що в моменти часу … струна, повертається у свій первинний стан; це означає, що коливання струни незгасаючі і періодично повторюються, з періодом Так відбувається тому, що ми знехтували силами тертя.
2.2 Чисельний розв'язок рівняння параболічного типу
Цей спосіб рішення називається методом скінченних різниць. Цей метод заснований на визначенні похідної функції :
Якщо є функція , то часткова похідна буде наступна:
Тоді попередні вирази можна записати так:
Ці вирази називають правими диференціалами. Їх можна записати і по-іншому:
- це ліві диференціали.
Підсумувавши обидва вирази отримаємо наступне:
з яких одержуємо:
Аналогічно можна одержати і диференціали другого порядку:
Рівняння коливань струни записується в такій формі:
Додаткові умови задаються у вигляді:
,
де і - позиції кінців (кріплень) струни в часі, а і - початковий стан і швидкість струни з якої ми можемо отримати стан струни в наступний момент часу за формулою
У обчисленнях використовують дискретизацію струни (розділяють її на однакові інтервали довжина яких ).
Значення функції для інших і можна обчислити з рівняння коливань струни:
Таким чином, ми одержали схему, за якою можна знайти значення функції для будь-яких і , використовуючи значення функції при попередніх і .
Цей метод дає наближену відповідь, ступінь точності . Для достатньо точних результатів необхідно використовувати інтервали і
2.3 Постановка та розв'язок задачі
Розглянемо розв'язок задачі на метод Фур'є(вільні коливання струни).
Умова задачі: розв'язати задачу про коливання струни із закріпленими кінцями, якщо початкові швидкості точок дорівнюють нулю, зовнішні сили відсутні, а початкове відхилення має форму параболи, віссю симетрії якої слугує пряма, а вершиною - точка
Розв'язок:
Складемо рівняння, що описує коливання цієї струни:
В даному випадку:
а) Так як кінці закріплені, то
б) Початкові швидкості точок дорівнює нулю: .
в) Початкове відхилення має форму параболи, віссю симетрії якої слугує пряма , а вершиною - точка Складемо рівняння цієї параболи.
Загальний вигляд рівняння параболи: Відомо, що ця парабола проходить через три точки: , причому її вершина.
Підставимо ці координати в рівняння параболи і отримаємо систему:
Отже, парабола задана рівнянням:
Задача складена:
Розв'яжемо його методом ділення змінних.
Уявимо функцію як добуток двох функцій, одна з них залежить тільки від , а інша тільки від .
Рівняння і його граничні умови у точності відповідають розібраному матеріалу в теоретичній частині,тому можна записати його розв'язок:
с коефіцієнтами
і
Підставимо значення
Для того, щоб обчислити цей інтеграл потрібно двічі використати формулу інтегрування частинами.
d
Ппідставляючи обчисленні коефіцієнти:
.
Зауваження: Останнє перетворення пояснюється тим, що при парному співмножник дорівнює нулю, а при непарному , тобто , він дорівнює -2.
Відповідь:
(4.1)
Результат розв'язку задачі за наведеною формулою наведено нижче на рис.3.
Рис. 3 - розв'язок задачі коливання струни за методом Фур'є.
3. Розв'язок задачі мовою С
3.1 Блок схема програми
Наведена нижче блок-схема описує логіку роботи програми. Блок-схема була виконана при використані рекомендацій, щодо зображення основних елементів блок-схем згідно з ГОСТ 19.701-90.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
3.2 Програма
Таблиця 1 Код програми з коментарями
#include<stdio.h> 1 #include<math.h> 2 #define koef_a 3.0 3 float countPointHeight(float x, float t, float h) 4 { float l=1, result =0; 5 for(int k=0; k<10; k++) { result =result + ((32*h)/pow(M_PI*(2*k+1),3))*cos((M_PI*(2*k+1)*koef_a*t)/l)*sin((M_PI*(2*k+1)*x)/l); 6 } return result; 7 } main() 8 { float h=0, t=0; 9 printf("Введите макс. высоту колеблющейся струны:\n"); 10 scanf("%f",&h); 11 while(printf("\nВведите интервал времени через которое надо вывести положение всех точек\nили \"-1\" для выхода:\n"), scanf("%f",&t), t>0 ) 12 { printf("\nВысота точек струны закреплённой на концах:\n"); for (float x=0; x<=1.0; x = x + 0.1) { float result = countPointHeight(x, t, h); 13 printf("%f ", result); 14 } printf("\n\a"); } } |
1 Бібліотека для функцій вводу та виводу
2 Бібліотека в якій міститься математичні функції
3 Глобальна константа з ім'ям koef_a, яка в програмі приймає значення 3.0
4 Окрема функція десяткового типу, яка призначена для обчислення висоти точок струни
5 Десяткові змінні з початковими умовами
6 Цикл в якому вичислюється значення положення висоти точки струни закріпленої на кінцях за формулою, яку ми визначили в постановці задачі
7 Завершує виконання функції і повертає значення result
8 Головна точка входу в програму
9 Десяткові змінні з початковими умовами
10 Користувач вводить максимальну висоту на яку підіймається струна
11 Ввід даних висоти з клавіатури
12 Цикл, за допомогою якого можна декілька разів дізнатися значення положення висоти точок струни за деякий час, для входу з програми треба ввести від'ємне значення
13 Цикл в якому вичислюються значення висоти точок струни закріпленої на кінцях з кроком 0,1 метру
14 Виводимо кінцевий результат програми у вигляді рядка
ВИСНОВКИ
Метою даної курсової роботи являється дослідження та обчислення диференційного рівняння коливань струни з початковими та кінцевими умовами. Розв'язок даної задачі описується диференційним хвильовим рівнянням другого порядку і маж вигляд . Розв'язок цього рівняння дозволяє визначити положення усіх точок струни в будь-який момент часу. Найпоширенішими розв'язками рівняння коливань струни є: метод скінченних різниць, метод Фур'є, метод Д'Аламбера та ін.
Чисельний спосіб рішення називається методом скінченних різниць. Цей метод заснований на визначенні похідної функції . У обчисленнях використовують дискретизацію струни (розділяють її на однакові інтервали довжина яких ). Цей метод дає наближену відповідь, ступінь точності . Для достатньо точних результатів необхідно використовувати інтервали і
Метод Фур'є (метод розподілу змінних) належить до числа найважливіших методів розв'язання рівнянь математичної фізики. Перша частина методу Фур'є полягає в тому, що ми знаходимо часткові розв'язки рівняння, які задовольняють кінцевим умовам . Кожне з часткових розв'язків, таким чином, представляється у вигляді двох функцій, одна з яких залежить тільки від , а інша - тільки від . Зауважимо, що в цьому полягає суттєва відмінність рівняння розглянутої задачі від розв'язка звичайних диференційних рівнянь з початковими умовами, коли для визначення часткового розв'язку задаються значення функції та її похідної до деякої початкової точки.
Ефективним методом розв'язання заданої задачі для диференціального рівняння коливань струни другого порядку є метод скінчених різниць, у якому використовуються різницеві схеми апроксимації для похідних першого і другого порядків. У результаті поставлена задача перетворюється на задачу розв'язання системи лінійних рівнянь. Цю систему можна розв'язати методом прогону.
Метод скінчених різниць можна застосовувати і для розв'язання нелінійних крайових задач, але в цьому випадку необхідно лінеаризовувати нелінійні функції, що входять в умову задачі.
За результатами курсової роботи була зроблена обчислювана програма, яка була реалізована мовою С і був використаний метод Фур'є. Вона розраховує положення усіх точок коливань струни в заданий момент часу. Програма має початкові умови, які задаються з самого початку.
Про правильність результату роботи програми свідчить:
· Якщо ввести момент часу , то точки струни будуть розташовані по параболі, що відповідає початковим умовам.
· При від'ємних значеннях програма завершає роботу.
· За будь-якого допустимого значення параметру часу положення всіх точок знаходиться в межах заданої амплітуди.
Струна виконує незатухаючі коливання і положення всіх точок поступово змінюється між максимальною та мінімальною відмітках амплітуди. Описане рішення відповідає поставленій задачі для розв'язку.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. И.Г. Араманович, В.И. Левин "Уравнения математической физики", Москва, 1969.
2. А.Н. Тихонов, А.А.Самаровский "Уравнения математической физики", Гостехиздат, 1954.
3. В.Я. Арсенин "Методы математической физики и специальные функции", Москва,1984р.
4. Н.С. Пискунов "Дифференциальное и интегральное исчисление", т.ч., Москва, 1972.
5. Савельев И.В. Курс общей физике, т. 2. Электричество и магнетизм. Волны. Оптика: Учебное пособие. - 2-е изд., пераб. - М.: Наука. Главная редакция физико-математической литературы, 1982. - 496 с.
6. Методичні розробки до вивчення нормативного курсу "Рівняння математичної фізики для студентів факультету кібернетики.
Упоряд. С.О.Войцеховський, В.І.Гаркуша, М.П.Копистра та ін.- Київ, 2001. - 65 с.
7. Владимиров В. С. Уравнения математической физики. -- М.: Наука, 1971. -- 512 с.
8. Перестюк М. О., Маринець В. В. Теорія рівнянь математичної фізики. -- К.: Либідь, 2002. -- 336 с.
9. Гончаренко В. М. Основи теорії рівнянь з частинними похідними. -- К., 1996
10. DevC++ оболочка для программирования в Windows [Электронный ресурс]: http://kpolyakov.narod.ru/school/c/devcpp.htm
11. Керниган Б., Ритчи Д. Язык программирования Си = The C programming language. -- 2-е изд. -- М.: Вильямс, 2007. -- С. 304.
12. Гукин Д. Язык программирования Си для «чайников» = C For Dummies. -- М.: Диалектика, 2006. -- С. 352.
13. Сайт Константина Полякова [Электронный ресурс]: К. Поляков. Язык программирования Си. Введение в программирование - 1995-2009.: http://kpolyakov.narod.ru/school/c.htm
14. Демидов С. С. Возникновение теории дифференциальных уравнений с частными производными // Историко-математические исследования. -- М.: Наука, 1975. -- № 20. -- С. 204-220.
15. ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
Размещено на Allbest.ru
...Подобные документы
Розвиток виробництва і широке використання промислових роботів. Алгоритми методів, блок-схеми алгоритмів розв'язку даного диференційного рівняння. Аналіз результатів моделювання, прямий метод Ейлера, розв’язок диференціального рівняння в Mathcad.
контрольная работа [59,1 K], добавлен 30.11.2009В роботі розглянуто наближені методи розв’язку нелінійних рівнянь. Для вказаних методів складено блок-схеми та написано програму, за якою розв’язується задане рівняння. Аналіз як самого рівняння і методів його розв’язання так і результатів обрахунку.
курсовая работа [302,8 K], добавлен 03.12.2009Виконання "ручного" розв'язування рівняння методом Ньоютона. Розробка програми на мові С#, яка реалізує введення вихідних даних, розв'язання заданого рівняння, виведення результатів у зручній формі на екран. Визначення початкового наближення кореня.
лабораторная работа [120,9 K], добавлен 19.01.2022Види рівнянь та методи їх розв’язань. Чисельні методи уточнення коренів, постановка задачі. Рішення нелінійного рівняння методом простих та дотичних ітерацій. Використання програмних засобів. Алгоритми розв’язку задач. Програми мовою С++, їх тестування.
курсовая работа [232,2 K], добавлен 12.02.2013Розв’язання нелінійних алгебраїчних рівнянь методом дихотомії. Вирішення задачі знаходження коренів рівняння. Розробка алгоритму розв’язання задачі і тестового прикладу. Блок-схеми алгоритмів основних функцій. Інструкція користувача програмою мовою С++.
курсовая работа [2,0 M], добавлен 24.09.2010В роботі розглянуто наближені методи розв'язку нелінійних рівнянь для методів Ньютона та хорд, складено блок-схеми та написано програму, за допомогою якої розв'язується задане рівняння. Аналіз рівняння, методів його розв'язання і результатів обрахунку.
курсовая работа [380,9 K], добавлен 30.11.2009Визначення і розв’язання задачі Коші для звичайних диференціальних рівнянь першого порядку методом Ейлера, алгоритм розв’язання, похибка при вирішенні. Складання блок-схеми. Реалізація алгоритму у середовищі Borland Pascal. Результат роботи програми.
курсовая работа [264,0 K], добавлен 20.08.2010Метод розв’язків рівнянь більш високих порядків. Вибір методу розв'язання задачі Коші. Методи розв'язання крайових задач розглядаються на прикладі звичайного диференціального рівняння другого порядку. Вибір методу інструментальних засобів вирішення задач.
курсовая работа [132,0 K], добавлен 03.12.2009Загальні відомості та геометричний зміст розв'язання задачі Коші. Використання методу Ейлера для розв'язання звичайних диференціальних рівнянь першого порядку. Розробка блок-схеми та реалізація алгоритму в середовищі програмування Borland Delphi 7.0.
курсовая работа [398,1 K], добавлен 14.10.2012Розв’язання системи рівняння методом Гауса за схемою з частковим вибором головного елементу. Рішення задачі Коші методом Рунге-Кутта. Знаходження моментів кубічних сплайнів методом прогонки. Розв’язування системи нелінійних рівнянь методом Ньютона.
контрольная работа [252,3 K], добавлен 04.06.2010Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Крамера, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.
курсовая работа [47,7 K], добавлен 23.04.2010Розробка програми для розв’язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду. Алгоритм розв’язання квадратного рівняння у програмах з будь-яким інтерфейсом користувача, а саме: "консольний" та "форма".
лабораторная работа [14,9 K], добавлен 14.05.2011Розробка програмного забезпечення для розв'язку системи лінійних рівнянь за формулами Гаусса, головні особливості мови Turbo Pascal. Методи розв'язування задачі, архітектура програми та її опис. Контрольний приклад та результат машинного експерименту.
курсовая работа [40,3 K], добавлен 23.04.2010Графічне зображення методу половинного ділення. Вибір методу інструментальних засобів вирішення задач. Розробка логічної частини програми для розв’язання нелінійного рівняння методами половинного ділення та січних. Особливість кодування на мові Паскаль.
курсовая работа [135,5 K], добавлен 30.11.2009Дослідження застосування різницевого методу для розв’язання крайової задачі. Дослідження проводиться на прикладі заданого диференційного рівняння. Дається опис методу та задачі в цілому. Застосування при обчисленні формули Чебишева і формули Гаусса.
курсовая работа [157,2 K], добавлен 03.12.2009Стандартний спосіб розв’язання задачі Коші для звичайного диференціального рівняння першого порядку чисельними однокроковими методами. Геометричний зміст методу Ейлера. Побудова графіку інтегральної кривої. Особливість оцінки похибки за методом Рунге.
курсовая работа [112,9 K], добавлен 30.11.2009Розв’язання нелінійних алгебраїчних рівнянь методом хорд. Опис структури програмного проекту та алгоритмів розв’язання задачі. Розробка та виконання тестового прикладу. Інші математичні способи знаходження коренів рівнянь, та опис виконаної програми.
курсовая работа [4,1 M], добавлен 28.09.2010Програма чисельного розв'язку систем лінійних алгебраїчних рівнянь (СЛАР) з розрідженою матрицею, економне витрачання оперативної пам'яті дозволяє розв’язувати багато систем високих ступенів за допомогою персональних комп'ютерів. Методи розв’язку СЛАР.
дипломная работа [1,1 M], добавлен 01.08.2009Характеристика мови Turbo Pascal. Опис деяких графічних процедур і функцій модуля Graph. Робота в графічному режимі. Процедури, опції модуля CRT. Створення програми розв'язку системи нерівностей з двома змінними в графічному режимі Турбо Паскаля.
курсовая работа [35,0 K], добавлен 24.02.2011Розв’язання системи лінійних та нелінійних рівнянь у програмі MathCAD. Матричний метод розв'язання системи рівнянь. Користування панеллю інструментів Математика (Math) для реалізації розрахунків в системі MathCAD. Обчислення ітераційним методом.
контрольная работа [1023,4 K], добавлен 08.04.2011