Міністерство освіти, культури та охорони здоров'я p>
Республіки Казахстан p>
Алматинський ВУЗ індустрії, економіки і кібернетики p>
Факультет інформатики p>
Кафедра технічної кібернетики p>
Пояснювальна записка p>
до курсової роботи з предмету «Мови та технології програмування» p>
Тема: «Застосування мов програмування високого рівня для
реалізації чисельних методів і прикладних програм » p>
Виконав студент 2-го курсу З.О. p>
Гриньов М.В. p>
Прийняв ст. преп. Каф. ТК p>
Муртазіна А.У. p>
Алмати 1998 p>
Введення
Впровадження ЕОМ в усі сфери людської діяльності вимагає від фахівців різного профілю оволодіння навичками
використання обчислювальної техніки. Підвищується рівень підготовки студентів вузів, які вже з перших курсів долучаються до використання ЕОМ і найпростіших
чисельних методів, не кажучи вже про те, що при виконанні курсових і дипломних проектів застосування обчислювальної техніки стає нормою в переважній
більшості вузів. p>
Обчислювальна техніка використовується зараз не тільки в інженерних розрахунках і економічних науках, але й таких
традиційно нематематичне спеціальності, як медицина, лінгвістика, психологія. У зв'язку з цим можна констатувати, що застосування ЕОМ придбало
масовий характер. Виникла численна категорія фахівців - користувачів ЕОМ, яким необхідні знання із застосування ЕОМ у своїй галузі
- Навики роботи з уже наявним програмним забезпеченням, а також створення свого власного ПЗ, пристосованого для вирішення конкретного завдання. І тут
на допомогу користувачеві приходять для мов програмування високого рівня (далі ЯВУ) і чисельні методи (далі ЧМ). p>
ЧС розробляють та досліджують, як правило, висококваліфіковані фахівці-математики. Для більшості
користувачів головним завданням є розуміння основних ідей і методів, особливостей та областей застосування. p>
Проте, користувачі хочуть працювати з ЕОМ не тільки як з високоінтелектуальним калькулятором, а ще і як з помічником у
повсякденній роботі, сховищем інформації зі швидким і впорядкованим доступом, а так само з джерелом і обробником графічної інформації. Всі ці функції
сучасної ЕОМ я припускаю продемонструвати у цій роботі. p>
У першій частині роботи представлена програма зі знаходження коренів системи з двох нелінійних рівнянь методами
Ньютона і простих ітерацій. P>
У другій частині моєї роботи представлена програма, що демонструє користувачеві всю міць і різноманіття графічних
можливостей сучасних ПК на прикладі застосування графічних функцій мови С + + з використанням VGA-графіки. p>
У третій частині роботи представлена програма «Електронної блокнота», яка має і практичне значення
для користувачів малопотужних персональних комп'ютерів і ПК блокнотів з малим дисковим ресурсом для яких нерентабельна експлуатація ПО типу Lotus Organizer і подібних ПЗ з потужним графічним
інтерфейсом. p>
На мій жаль через відсутність необхідного довідкового матеріалу мені не вдалося продемонструвати в третій
частини SUPER VGA-графіком, але це справа недалекого майбутнього. Перша і друга частини роботи виконані з застосування мови С + + фірми Borland
версії 3.1 для DOS та WINDOWS, а третя частина виконана на ЯВУ «Турбо Паскаль» версії 7.0 для DOS та WINDOWS фірми Borland із застосуванням засобів TURBO VISION. p>
Теоретична частина.
Етапи
рішення задачі на ЕОМ.
Найбільш ефективне застосування Вт знайшла при проведенні трудомістких розрахунків у наукових
дослідженнях та інженерних розрахунках. При рішенні задачі на ЕОМ основна роль все-таки належить людині. Машина лише виконує його завдання з
розробленою програмою. роль людини і машини легко усвідомити, якщо процес вирішення завдання розбити на такі етапи. p>
Постановка завдання. Цей етап полягає у змістовній (фізичної) постановці завдання і визначенні
кінцевих рішень. p>
Побудова математичної моделі. Модель повинна правильно (адекватно) описувати основні закони фізичного
процесу. Побудова або вибір математичної моделі з існуючих вимагає глибокого розуміння проблеми і знання відповідних розділів математики. P>
Розробка ЧС. Оскільки ЕОМ може виконувати лише прості операції, вона «не розуміє» постановки задачі,
навіть в математичній формулюванні. Для її вирішення має бути знайдений чисельний метод, що дозволяє звести задачу до деякого обчислювальному алгоритмі. У
кожному конкретному випадку необхідно вибрати відповідне рішення з вже розроблених стандартних. p>
Розробка алгоритму. Процес рішення задачі (обчислювальний процес) записується у вигляді послідовності
елементарних арифметичних і логічних операцій, що приводить до кінцевого результату і званої алгоритмом розв'язання задачі. p>
Програмування. Алгоритм рішення задачі записується на зрозумілому машині мові у вигляді точно визначеною
послідовності операцій - програми. Процес звичайно проводиться за допомогою деякого проміжного мови, а її трансляція здійснюється самою машиною і
її системою. p>
Налагодження програми. Складена програма містить різного роду помилки, неточності, описки. Налагодження включає
контроль програми, діагностику (пошук і визначення змісту) помилок, і їх усунення. Програма випробовується на
рішенні контрольних (тестових) завдань для одержання впевненості в достовірності результатів. p>
Проведення розрахунків. На цьому етапі готуються вихідні дані для розрахунків та проводиться розрахунок за налагодженою
програмі. при цьому для зменшення ручної праці з обробки результатів можна широко використовувати зручні форми видачі результатів у вигляді текстової та графічної
інформації, в зрозумілому для людини вигляді. p>
Аналіз результатів. Результати розрахунків ретельно аналізуються, оформляється науково-технічна документація. P>
Математичні
моделі.
Основна вимога до математичної моделі, - адекватність даного процесу, явища, тобто вона має досить точно (в рамках
допустимої похибки) відображати характерні риси явища. Разом з тим вона повинна володіти порівняльною простотою і
доступністю дослідження. p>
Адекватність і порівняльна простота моделі не вичерпують пропонованих до неї вимог. Необхідно
звернути увагу на правильність оцінки області застосування математичної моделі. Наприклад, модель вільно падаючого тіла, в якій знехтували
опором повітря, дуже ефективна для твердих тіл з великою і середньою щільністю і формою поверхні, близької до сферичної. Разом з тим, у ряді
інших випадків для вирішення завдання вже не достатньо відомих з курсу фізики найпростіших формул. Тут необхідні більш складні математичні моделі,
враховують опір повітря та інші фактори. Відзначимо, що успіх вирішення завдання в значній мірі визначається вибором математичної моделі; тут
в першу чергу потрібні глибокі знання тій області, до якої належить поставлене завдання. Крім того, необхідні знання відповідних розділів математики та
можливостей ЕОМ. p>
Чисельні методи.
За допомогою математичного моделювання рішення науково-технічної задачі зводиться до вирішення
математичної задачі, що є її моделлю. Для вирішення математичних задач використовуються основні групи методів: графічні, аналітичні, чисельні. P>
Графічні методи дозволяють у ряді випадків оцінити порядок шуканої
величини. Основна ідея цих методів полягає в тому, що рішення знаходиться шляхом геометричних побудов. Наприклад, для знаходження коренів рівняння f (x) = 0
будується графік функції y = f (x), точки перетину якої з віссю абсцис і будуть шуканими
корінням. p>
При використанні аналітичних методів рішення завдання вдається виразити за допомогою формул. Зокрема, якщо
математична задача полягає у вирішенні найпростіших алгебраїчних або трансцендентних рівнянь, диференціальних рівнянь і т.п., то використання
відомих з курсу математики прийомів відразу приводить до мети. На жаль, на практиці це дуже рідкісні випадки. P>
Основним інструментом для вирішення складних математичних задач в даний час є чисельні методи,
що дозволяють звести рішення задачі до виконання кінцевого числа арифметичних дій над числами; при цьому результати виходять у вигляді числових значень.
Багато ЧС розроблені давно, однак при обчисленнях вручну вони могли використовуватися лише для вирішення не дуже трудомістких завдань. P>
З появою ЕОМ почався період бурхливого розвитку ЧС та їх впровадження в практику. Тільки обчислювальної машині під
силу виконати за порівняно короткий час обсяг обчислень в мільйони, мільярди і більше операцій, необхідних для вирішення багатьох завдань. За рахунку
вручну людині не вистачило б життя для вирішення однієї такої задачі. ЧС поряд з можливістю отримання результату за прийнятний час повинен мати і ще
однією важливою якістю - не вносити в обчислювальний процес значних похибок. p>
Чисельні методи, що використовуються в даній роботі.
При написанні програми вирішення системи з двох нелінійних рівнянь мною використовувалися два відомих і широко
застосовуваних чисельних методу. Це метод Ньютона і метод простих ітерацій. P>
Метод Ньютона. Цей метод має швидкої збіжністю і порівняно хорошою точністю обчислень. У
випадку одного рівняння F (x) = 0 алгоритм методу був легко отриманий шляхом запису рівняння дотичної до кривої
y = F (x). В основі методу ньютона для системи рівнянь лежить використання розкладання функцій Fi (x1, x2, ... xn) в ряд Тейлора, причому члени, що містять
другий (і більш високих порядків) похідні, відкидаються. p>
Нехай наближені значення невідомих системи рівнянь p>
F1 (x1, x2, ... xn) = 0, p>
F2 (x1, x2, ... xn) = 0, p>
p>
................ (1) p>
Fn (x1, x2, ... xn) = 0, p>
(наприклад, отримані на попередній ітерації) рівні відповідно a1, a2, ... an. Завдання полягає в знаходженні збільшень
(поправок) до цих значень Dx1, Dx2 ,...., Dxn, завдяки яким рішення системи (1) запишеться у вигляді: p>
xi = ai + Dx1, x2 = a2 + Dx2 ,..., xn, = an + Dxn. (2) p>
Проведемо розкладання лівих частин рівнянь (1) в ряд Тейлора, обмежуючись лише лінійними членами щодо
збільшень: p>
F1 (x1, x2, ... xn) »F1 (a1, ... an) + p>
F2 (x1, x2, ... xn) »F2 (a1, ... an) + p>
..............................................
Fn (x1, x2, ... xn) »Fn (a1, ... an) + . p>
Оскільки відповідно до (1) ліві частини цих виразів повинні звертатися в нуль, то прирівняє нуля і праві
частини. Отримаємо наступну систему лінійних алгебраїчних рівнянь щодо збільшень: p>
=- F1 p>
=- F2 (2) p>
............................ p>
=- Fn p>
Значення F1, F2 ,..., Fn і їхні похідні обчислюються при x1 = a1, x2 = a2, ... xn = an. p>
визначником системи (2) є якобіан: p>
J = p>
Для існування єдиного рішення системи (2) він повинен бути відмінним від нуля на кожній ітерації. p>
Таким чином, ітераційний процес вирішення системи рівнянь (1) методом Ньютона полягає у визначенні збільшень
Dx1, Dx2, ... Dxn, до значень невідомих на кожній ітерації. Рахунок припиняється, якщо всі
збільшення стають малими за абсолютною величиною: max | Dxi |
i p>
Ньютона також важливий вибір початкового наближення для забезпечення гарної збіжності.
Збіжність погіршується зі збільшенням числа рівнянь системи. P>
В якості прикладу розглянемо використання методу Ньютона для розв'язання системи двох рівнянь p>
F1 (x, y) = 0, (3) p>
F2 (x, y) = 0. p>
Нехай наближені значення невідомих дорівнюють a, b. Припустимо, що якобіан системи (3)
при x = a; y = b відрізняється від нуля, тобто: p>
p>
J =